⑴ Matlab問題--如何用遺傳演算法優化BP神經網路這篇文獻(中文)是如何做的

MATLAB是矩陣實驗室(Matrix Laboratory)之意。除具備卓越的數值計算能力外,它還提供了專業水平的符號計算,文字處理,可視化建模模擬和實時控制等功能。
MATLAB的基本數據單位是矩陣,它的指令表達式與數學,工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完相同的事情簡捷得多.在新的版本中也加入了對C,FORTRAN,c++ ,JAVA的支持.可以直接調用,用戶也可以將自己編寫的實用程序導入到MATLAB函數庫中方便自己以後調用,此外許多的MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用,非常的方便。
MATLAB的基礎是矩陣計算,但是由於他的開放性,並且mathwork也吸收了像maple等軟體的優點,使MATLAB成為一個強大的數學軟體
當前流行的MATLAB 6.5/7.0包括擁有數百個內部函數的主包和三十幾種工具包(Toolbox).工具包又可以分為功能性工具包和學科工具包.功能工具包用來擴充MATLAB的符號計算,可視化建模模擬,文字處理及實時控制等功能.學科工具包是專業性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬於此類.
開放性使MATLAB廣受用戶歡迎.除內部函數外,所有MATLAB主包文件和各種工具包都是可讀可修改的文件,用戶通過對源程序的修改或加入自己編寫程序構造新的專用工具包.
Matlab的官方網站:http://www.mathworks.com
Matlab的優勢和特點
(1)友好的工作平台和編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具採用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用於用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟體本身的不斷升級,MATLAB的用戶界面也越來越精緻,更加接近Windows的標准界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
(2)簡單易用的程序語言
Matlab一個高級的距陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)後再一起運行。新版本的MATLAB語言是基於最為流行的C++語言基礎上的,因此語法特徵與C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利於非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。
(3)強大的科學計算機數據處理能力
MATLAB是一個包含大量計算演算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的演算法都是科研和工程計算中的最新研究成果,而前經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如距陣,特徵向量、快速傅立葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態模擬等。
(4)出色的圖形處理功能
MATLAB自產生之日起就具有方便的數據可視化功能,以將向量和距陣用圖形表現出來,並且可以對圖形進行標注和列印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖。可用於科學計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使他不僅在一般數據可視化軟體都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對於一些其他軟體所沒有的功能(例如圖形的光照處理、色度處理以及四維數據的表現等),MATLAB同樣表現了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數,保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的製作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。
(5)應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發了功能強大的模塊集和工具箱。一般來說,他們都是由特定領域的專家開發的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數據採集、資料庫介面、概率統計、樣條擬合、優化演算法、偏微分方程求解、神經網路、小波分析、信號處理、圖像處理、系統辨識、控制系統設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理模擬、嵌入式系統開發、定點模擬、DSP與通訊、電力系統模擬等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)實用的程序介面和發布平台
新版本的MATLAB可以利用MATLAB編譯器和C/C++數學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立於MATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數學和圖形程序。
MATLAB的一個重要特色就是他有一套程序擴展系統和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數的子程序庫,每一個工具箱都是為某一類學科專業和應用而定製的,主要包括信號處理、控制系統、神經網路、模糊邏輯、小波分析和系統模擬等方面的應用。
(7)應用軟體開發(包括用戶界面)
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5。
(8) Matlab常用工具箱介紹(英漢對照)
Matlab Main Toolbox——matlab主工具箱
Control System Toolbox——控制系統工具箱
Communication Toolbox——通訊工具箱
Financial Toolbox——財政金融工具箱
System Identification Toolbox——系統辨識工具箱
Fuzzy Logic Toolbox——模糊邏輯工具箱
Higher-Order Spectral Analysis Toolbox——高階譜分析工具箱
Image Processing Toolbox——圖象處理工具箱
LMI Control Toolbox——線性矩陣不等式工具箱
Model predictive Control Toolbox——模型預測控制工具箱
μ-Analysis and Synthesis Toolbox——μ分析工具箱
Neural Network Toolbox——神經網路工具箱
Optimization Toolbox——優化工具箱
Partial Differential Toolbox——偏微分方程工具箱
Robust Control Toolbox——魯棒控制工具箱
Signal Processing Toolbox——信號處理工具箱
Spline Toolbox——樣條工具箱
Statistics Toolbox——統計工具箱
Symbolic Math Toolbox——符號數學工具箱
Simulink Toolbox——動態模擬工具箱
System Identification Toolbox——系統辨識工具箱
Wavele Toolbox——小波工具箱
例如:控制系統工具箱包含如下功能:
連續系統設計和離散系統設計
狀態空間和傳遞函數以及模型轉換
時域響應(脈沖響應、階躍響應、斜坡響應)
頻域響應(Bode圖、Nyquist圖)
根軌跡、極點配置
1.補充新的內容:
MATLAB R2007b正式發布了!MATLAB 2007b於2007年秋節正式發布,TMW正式發布了MATLAB R2007b,新版本涵蓋:Simulink 7、新產品Simulink Design Verifier、Link for Analog Devices VisualDSP以及82個產品模塊的更新升級及Bug修訂。從現在開始,MathWorks公司將每年進行兩次產品發布,時間分別在每年的3月和9 月,而且,每一次發布都會包含所有的產品模塊,如產品的new feature、bug fixes和新產品模塊的推出。
在R2007b中(MATLAB 7.4,Simulink 6.6),主要更新了多個產品模塊、增加了多達350個新特性、增加了對64位Windows的支持,並新推出了.net工具箱。R2007b, released on March 1, 2007, includes updates to MATLAB and Simulink, two new procts released since R2007b, and updates and bug fixes to 82 other procts. R2007b adds support for the Intel® based Mac, Windows Vista™, and 64-bit Sun Solaris™ SPARC platforms.
這次的升級做了重大的增強,也升級了以下各版本,提供了MATLAB、SIMULINK的升級以及其他最新的模塊的升級。這個Matlab 2007版本不僅僅提高了產品質量,同時也提供了新的用於數據分析、大規模建模、固定點開發、編碼等新特徵。
其中MATLAB Builder for .net擴展了MATLAB Compiler的功能,主要有:
可以打包MATLAB函數,使網路程序員可以通過C#,VB.net等語言訪問這些函數;
創建組件來保持MATLAB的靈活性;
創建COM組件;
將源自MATLAB函數的錯誤作為一個標準的管理異常來處理。
R2007b 提供了重大的新功能: 直接在命令行使用 Real-Time Workshop 的 嵌入式 MATLAB 函數的 C 代碼生成。 另外,Simulink 中的嵌入式 MATLAB 函數塊支持多 M 文件中的演算法。
MATLAB R2007b新版本中,產品模塊進行了一些調整,MATLAB Builder for COM的功能集成到MATLAB Builder for .net中去了,Finacial Time Series Toolbox的功能集成到Financial Toolbox中了。MATLAB 將高性能的數值計算和可視化集成在一起,並提供了大量的內置函數,從而被廣泛地應用於科學計算、控制系統、信息處理等領域的分析、模擬和設計工作,而且利用 MATLAB 產品的開放式結構,可以非常容易地對 MATLAB 的功能進行擴充,從而在不斷深化對問題認識的同時,不斷完善 MATLAB 產品以提高產品自身的競爭能力。
作為和Mathematica、Maple並列的三大數學軟體。其強項就是其強大的矩陣計算以及模擬能力。要知道Matlab的由來就是Matrix + Laboratory = Matlab,所以這個軟體在國內也被稱作《矩陣實驗室》。每次MathWorks發布Matlab的同時也會發布模擬工具Simulink。在歐美很多大公司在將產品投入實際使用之前都會進行模擬試驗,他們所主要使用的模擬軟體就是Simulink。Matlab提供了自己的編譯器:全面兼容C++以及 Fortran兩大語言。所以Matlab是工程師,科研工作者手上最好的語言,最好的工具和環境。Matlab 已經成為廣大科研人員的最值得信賴的助手和朋友!

⑵ 用什麼演算法能比較好的優化徑向基神經網路!

可以試試一些智能演算法,如蟻群演算法,蛙跳演算法等。

⑶ 最近在做概率神經網路的參數優化,就是平滑因子的優化,不知道有哪個大神有程序能幫幫我

你可以用模擬退火演算法去做它。

⑷ 模擬退火演算法優化BP神經網路

bp神經元網路的學習過程真正求解的其實就是權值的最優解,因為有可能會得出專局部最優解,所以你才會用模屬擬退火來跳出局部最優解,也就是引入了逃逸概率。在這里你可以把bp的學習過程理解成關於 誤差=f(w1,w2...) 的函數,讓這個函數在模擬退火中作為目標函數,再加上模擬退火的一些初始參數(初始溫度啊,退火速度啊等等),就能找到權值解空間的一個不錯的最優解,就是一組權向量。把權向量帶入到bp當中去,輸入新的對象,自然就能算出新的輸出了。
演算法學習要腳踏實地,你要先學會神經元,在學會退火,兩個的結合你才能理解。

⑸ 神經網路的訓練可以採用二階優化方法嗎

1. 時間復雜度:使用二階方法通常需要直接計算或者近似估計Hessian矩陣,這部分的時間損耗使得其相比一階方法在收斂速度上帶來的優勢完全被抵消;
2. 某些非線性網路層很難(或不可能)使用二階方法優化:如果這個情況為真,那是否可能針對每個網路層使用不同的優化方案,比如像Fully-Connected Layer這樣的簡單線性映射操作使用二階方法,非線性網路層使用傳統梯度下降方法?
3. 二階方法容易被saddle points吸引,難以到達local minimal或者global minimal:NIPS 2014有篇論文([1406.2572] Identifying and attacking the saddle point problem in high-dimensional non-convex optimization)認為在高維情況下,神經網路優化最大的問題不是網路容易到達local minimal,而是容易被saddle points困住,因為在這種情況下,local minimal不管在loss值還是泛化能力上都與global minimal相差不大,反而是非常多的saddle points存在loss較高的空間中。

⑹ 求利用遺傳演算法工具箱優化神經網路的權值的matlab程序!最好是三層神經網路多輸入單輸出。

《matlab在數學建模中的應用》這本書中有你想要的程序,你可以找找看看

⑺ 怎麼用mtlab優化工具箱求目標函數為BP神經網路訓練結果的極值

需要聲明全局變數。分別在兩段程序的開頭加上

globalnet

不然無法在函數中調用net.


如果你要多內於一個函數共用容一個簡單的變數,簡單的處理方法就是把這個變數在所有函數中定義為global全局變數。在命令行做同樣的事情,如果你要工作空間訪問上述變數。這個全局變數的定義必須出現在變數被應用於一個函數之前。雖然不是要求,但全局變數也最好以大寫字母開頭,這樣可以同其他變數區別出來。舉個例子,做一個以falling.m命名的M-文件。

function h = falling(t)
global GRAVITY
h = 1/2*GRAVITY*t.^2;

然後交互地輸入語句

global GRAVITY
GRAVITY = 32;
y = falling((0:.1:5)');

這兩個變數在函數中表示同一個內容。之後你可以交互地修改GRVITY並獲得新的解法,而不用再編輯文檔。

注意:1 全局變數列表中各個變數名不能用逗號分隔。 如: global a b c
2 全局變數使用前必須再matlab工作空間中申明,如果再具體得函數中用則要在函數前面申明,否則在該函數中即使用到了該變數,也會被當成局部變數使用。

⑻ 求一個模擬退火演算法優化BP神經網路的一個程序(MATLAB)

「模抄擬退火」演算法是源於對熱力學中退火過程的模擬,在某一給定初溫下,通過緩慢下降溫度參數,使演算法能夠在多項式時間內給出一個近似最優解。退火與冶金學上的『退火』相似,而與冶金學的淬火有很大區別,前者是溫度緩慢下降,後者是溫度迅速下降。

「模擬退火」的原理也和金屬退火的原理近似:我們將熱力學的理論套用到統計學上,將搜尋空間內每一點想像成空氣內的分子;分子的能量,就是它本身的動能;而搜尋空間內的每一點,也像空氣分子一樣帶有「能量」,以表示該點對命題的合適程度。演算法先以搜尋空間內一個任意點作起始:每一步先選擇一個「鄰居」,然後再計算從現有位置到達「鄰居」的概率。


這個演算法已經很多人做過,可以優化BP神經網路初始權值。附件是解決TSP問題的matlab代碼,可供參考。看懂了就可以自己編程與bp代碼結合。

⑼ 關於BP神經網路的優化

什麼是最優?最優到小數點後幾百位?

太形而上的話還不如不要最優。

蟻群只是一種,那麼遺傳呢,模擬退火呢?試試其他的。