A. Matlab神經網路原理中可以用於尋找最優解的演算法有哪些
若果對你有幫助,請點贊。
神經網路的結構(例如2輸入3隱節點1輸出)建好後,一般就要求神經網路里的權值和閾值。現在一般求解權值和閾值,都是採用梯度下降之類的搜索演算法(梯度下降法、牛頓法、列文伯格-馬跨特法、狗腿法等等),這些演算法會先初始化一個解,在這個解的基礎上,確定一個搜索方向和一個移動步長(各種法算確定方向和步長的方法不同,也就使各種演算法適用於解決不同的問題),使初始解根據這個方向和步長移動後,能使目標函數的輸出(在神經網路中就是預測誤差)下降。 然後將它更新為新的解,再繼續尋找下一步的移動方向的步長,這樣不斷的迭代下去,目標函數(神經網路中的預測誤差)也不斷下降,最終就能找到一個解,使得目標函數(預測誤差)比較小。
而在尋解過程中,步長太大,就會搜索得不仔細,可能跨過了優秀的解,而步長太小,又會使尋解過程進行得太慢。因此,步長設置適當非常重要。
學習率對原步長(在梯度下降法中就是梯度的長度)作調整,如果學習率lr = 0.1,那麼梯度下降法中每次調整的步長就是0.1*梯度,
而在matlab神經網路工具箱里的lr,代表的是初始學習率。因為matlab工具箱為了在尋解不同階段更智能的選擇合適的步長,使用的是可變學習率,它會根據上一次解的調整對目標函數帶來的效果來對學習率作調整,再根據學習率決定步長。
機制如下:
if newE2/E2 > maxE_inc %若果誤差上升大於閾值
lr = lr * lr_dec; %則降低學習率
else
if newE2 < E2 %若果誤差減少
lr = lr * lr_inc;%則增加學習率
end
詳細的可以看《神經網路之家》nnetinfo里的《[重要]寫自己的BP神經網路(traingd)》一文,裡面是matlab神經網路工具箱梯度下降法的簡化代碼
B. 數學建模怎樣處理一堆數據然後求出最優解
優化問題的話可以考慮用lingo求解,語法不難,看一個例子就會了,問題復雜的話需要比較長的時間,起碼是半個小時,有的還要一晚上,因為它是不停迭代求解。也可以用MATLAB進行演算法求解,比較著名的有模擬退火演算法,蟻群演算法,粒子群演算法等等,都有現成的程序。
C. 神經網路演算法可以求最優解嘛
神經網路可以做優化問題,但不一定能找到最優解。
邏輯性的思維是指根據邏輯規則進行推理的過程;它先將信息化成概念,並用符號表示,然後,根據符號運算按串列模式進行邏輯推理;這一過程可以寫成串列的指令,讓計算機執行。
直觀性的思維是將分布式存儲的信息綜合起來,忽然間產生的想法或解決問題的辦法。這種思維方式的根本之點在於以下兩點:
1、信息是通過神經元上的興奮模式分布存儲在網路上。
2、信息處理是通過神經元之間同時相互作用的動態過程來完成的。
神經網路:
思維學普遍認為,人類大腦的思維分為抽象(邏輯)思維、形象(直觀)思維和靈感(頓悟)思維三種基本方式。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。
D. 請問數錢的貪婪演算法怎樣確保得到最優解
貪婪演算法:總是作出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,它所做出的僅是在某種意義上的局部最優解。
(註:貪婪演算法不是對所有問題都能得到整體最優解,但對范圍相當廣泛的許多問題它能產生整體最優解。但其解必然是最優解的很好近似解。
基本思路:——從問題的某一個初始解出發逐步逼近給定的目標,以盡可能快的地求得更好的解。當達到某演算法中的某一步不能再繼續前進時,演算法停止
實現該演算法的過程:
從問題的某一初始解出發;
while 能朝給定總目標前進一步 do
求出可行解的一個解元素;
由所有解元素組合成問題的一個可行解;
基本要素:
1、 貪婪選擇性質:所求問題的整體最優解可以通過一系列局部最優的選擇,即貪婪選擇來達到。(與動態規劃的主要區別)
採用自頂向下,以迭代的方式作出相繼的貪婪選擇,每作一次貪婪選擇就將所求問題簡化為一個規模更小的子問題。
對於一個具體問題,要確定它是否具有貪婪選擇的性質,我們必須證明每一步所作的貪婪選擇最終導致問題的最優解。通常可以首先證明問題的一個整體最優解,是從貪婪選擇開始的,而且作了貪婪選擇後,原問題簡化為一個規模更小的類似子問題。然後,用數學歸納法證明,通過每一步作貪婪選擇,最終可得到問題的一個整體最優解。
2、最優子結構性質:包含子問題的最優解
1、 設有n個活動的安排,其中每個活動都要求使用同一資源,如演講會場,而在同一時間只允許一個活動使用這一資源。每個活動都有使用的起始時間和結束時間。問:如何安排可以使這間會場的使用率最高。
活動 起始時間 結束時間
1 1 4
2 3 5
3 0 6
4 5 7
5 3 8
6 5 9
7 6 10
8 8 11
9 8 12
10 2 13
11 12 14
演算法:一開始選擇活動1,然後依次檢查活動一i是否與當前已選擇的所有活動相容,若相容則活動加入到已選擇的活動集合中,否則不選擇活動i,而繼續檢查下一活動的相容性。即:活動i的開始時間不早於最近加入的活動j的結束時間。
Prodere plan;
Begin
n:=length[e];
a {1};
j:=1;
for i:=2 to n do
if s[i]>=f[j] then
begin a a∪{i};
j:=i;
end
end;
例1 [找零錢] 一個小孩買了價值少於1美元的糖,並將1美元的錢交給售貨員。售貨員希望用數目最少的硬幣找給小孩。假設提供了數目不限的面值為2 5美分、1 0美分、5美分、及1美分的硬幣。售貨員分步驟組成要找的零錢數,每次加入一個硬幣。選擇硬幣時所採用的貪婪准則如下:每一次選擇應使零錢數盡量增大。為保證解法的可行性(即:所給的零錢等於要找的零錢數),所選擇的硬幣不應使零錢總數超過最終所需的數目。
假設需要找給小孩6 7美分,首先入選的是兩枚2 5美分的硬幣,第三枚入選的不能是2 5美分的硬幣,否則硬幣的選擇將不可行(零錢總數超過6 7美分),第三枚應選擇1 0美分的硬幣,然後是5美分的,最後加入兩個1美分的硬幣。
貪婪演算法有種直覺的傾向,在找零錢時,直覺告訴我們應使找出的硬幣數目最少(至少是接近最少的數目)。可以證明採用上述貪婪演算法找零錢時所用的硬幣數目的確最少(見練習1)。
E. 最優化計算方法,求最優解,在線等,急
227,0,1,參考一下
F. 請高手:求最優解演算法!!!題目如下:
個人的理解,程序可能會花點時間寫。
定義數組 a(m,n)
該問題的數學模型應該如下
z=min(a(1,1)+a(1,2)+……+a(m,n))即所用的機器人最少
約束條件是:
a(i,j)=0或者1(當等於0時表明此格不安放機器人,1則表示安裝i=1,2…m j=1,2…n)
a(i-1,j)+a(i+1,j)+a(i,j-1)+a(i,j+1)>=1 前後左右至少有一個機器人,i=1,2…m j=1,2…n)。當然,當i-1=0,j-1=0 ,i+1>m,j+1>n 四情況下a(i-1,j) =0 a(i+1,j)=0 a(i,j-1)=0 a(i,j+1) =0 此時即邊角陳列室的情況,因為處於邊上的陳列室,其前後左右一邊或2邊沒有其他陳列室,因此不可能設置
監視。
該問題的求解,我覺得可以用運籌學的0,1規劃,具體你可以查查資料看看。
祝你成功!
G. 混沌優化演算法可以求解全局最優解嗎
非線性最優化問題的一種混合解法
摘 要:把BFGS方法與混沌優化方法相結合,基於混沌變數提出一種求解具有變數邊界約束非線性最優化問題的混合優化方法。混合演算法兼顧了混沌優化全局搜索能力強和BFGS方法收斂速度快的優點,成為一種求解非凸優化問題全局最優的有效方法。算例表明,當混沌搜索的次數達到一定數量時,混合優化方法可以保證演算法收斂到全局最優解,且計算效率比混沌優化方法有很大提高。
關鍵詞:混合法;BFGS方法;混沌優化方法;全局最優
1 引言
在系統工程、控制工程、統計學、反問題優化求解等領域中,很多問題是具有非凸性的。對此普通的優化技術只能求出局部最優解,因為這些確定性演算法總是解得最近的一個極值點[1],只有能夠給出很好的初始點才有可能得出所需要的全局最優解。為此,實際應用中通過在多個初始點上使用傳統數值優化方法來求取全局解的方法仍然被人們所採用,但是這種處理方法求得全局解的概率不高,可靠性低,建立盡可能大概率的求解全局解演算法仍然是一個重要問題。近年來基於梯度法的全局最優化方法已經有所研究[2],基於隨機搜索技術的遺傳演算法和模擬退火演算法等在全局優化問題中的應用也得到越來越大的重視[3-4]。本文則基於混沌優化和BFGS方法,提出一種求解具有簡單界約束最優化問題(1)的混合演算法。
混沌是存在於非線性系統中的一種較為普遍的現象。混沌運動宏觀上無序無律,具有內隨機性、非周期性和局部不穩定性,微觀上有序有律,並不是完全的隨機運動,具有無窮嵌套的自相似幾何結構、存在普適性規律,並不是雜亂無章的。利用混沌變數的隨機性、遍歷性和規律性特點可以進行優化搜索[5],且混沌優化方法容易跳出局部最優點。但是某些狀態需要很長時間才能達到,如果最優值在這些狀態時,計算時間勢必很長[5]。可以說混沌優化具有全局搜索能力,其局部搜索能力稍顯不足,文[5]採用二次載波技術,文[6]考慮逐漸縮小尋優變數的搜索空間都是為了彌補這一弱點。而本文則採用混沌搜索與BFGS方法進行優化求解,一方面採用混沌搜索幫助BFGS方法跳出局部最優,另一方面利用BFGS增強解附近的超線性收斂速度和搜索能力,以提高搜索最優的效率。
2 混沌-BFGS混合優化方法
2.1 BFGS方法
作為求解無約束最優化問題的擬牛頓方法類最有代表性的演算法之一,BFGS方法處理凸非線性規劃問題,以其完善的數學理論基礎、採用不精確線性搜索時的超線性收斂性和處理實際問題有效性,受到人們的重視[7-9]。擬牛頓方法使用了二階導數信息,但是並不直接計算函數的Hesse矩陣,而是採用一階梯度信息來構造一系列的正定矩陣來逼近Hesse矩陣。BFGS方法求解無約束優化問題min()的主要步驟如下:
(1) 給變數賦初值x0,變數維數n和BFGS方法收斂精度ε,令B0=I(單位陣),k=0,計算在點x0的梯度g0。
(2) 取sk=-Bk-1gk,沿sk作一維搜索,確定最優步長αk,,得新點xk+1=xk+αksk,計算xk+1點的梯度gk+1。
(3) 若||gk+1||≤ε,則令,,BFGS搜索結束,轉步驟3;否則執行(4)。
(4) 計算Bk+1:
(2)
(3)
(5) k=k+1,轉(2)。
2.2 混沌優化方法
利用混沌搜索求解問題(1)時,先建立待求變數與混沌變數的一一對應關系,本文採用。然後,由Logistic映射式(4)產生個軌跡不同的混沌變數()進行優化搜索,式(4)中=4。已經證明,=4是「單片」混沌,在[0,1]之間歷遍。
(4)
(1)給定最大混沌變數運動次數M;給賦初值,計算和;置,。
(2) 。
(3) 。
(4) 若k<M,
若,令,;
若,和保持不變;
然後令k=k+1,,轉(2)。
若k>M,則,,混沌搜索結束。
2.3 混合優化方法
混沌方法和BFGS方法混合求解連續對象的全局極小值優化問題(1)的步驟如下:
step1 設置混沌搜索的最大次數M,迭代步數iter=0,變數賦初值x0,。
step2 以為始點BFGS搜索,得當前BFGS方法最優解及=。
step3 若,取=;若,取;若,取,是相對於,較小的數。
step 4 以為始點進行混沌搜索M次,得混沌搜索後的最優解及=。
step5 若<,iter=iter+1,,轉step2;否則執行step6。
step6 改變混沌搜索軌跡,再次進行混沌搜索,即給加微小擾動,執行step 4,得搜索結果和。若<,iter=iter+1,,轉step2;否則計算結束,輸出、。
對全局極大值問題,max ,可以轉化為求解全局極小問題min 。
混合演算法中混沌搜索的作用是大范圍宏觀搜索,使得演算法具有全局尋優性能。而BFGS搜索的作用是局部地、細致地進行優化搜索,處理的是小范圍搜索問題和搜索加速問題。
3 算例
圖 1 函數-特性示意圖 圖 2 函數特性示意圖
採用如下兩個非常復雜的、常用於測試遺傳演算法性能的函數測試本文演算法:
函數稱為Camel 函數,該函數有6個局部極小點(1.607105, 0.568651)、(-1.607105, -0.568651)、(1.703607, -0.796084)、(-1.703607, 0.796084)、(-0.0898,0.7126)和(0.0898,-0.7126),其中(-0.0898,0.7126)和(0.0898,-0.7126)為兩個全局最小點,最小值為-1.031628。函數稱為 Schaffer's函數,該函數有無數個極大值,其中只有(0,0)為全局最大點,最大值為1。此函數的最大峰值周圍有一圈脊,它們的取值均為0.990283,因此很容易停留在此局部極大點。文獻[10]採用該函數對該文提出的基於移動和人工選擇的改進遺傳演算法(GAMAS)其性能進行了考察,運行50次,40%的情況下該函數的唯一全局最優點能夠找到。而採用本文混合演算法,由計算機內部隨機函數自動隨機生產100個不同的初始點,由這些初始點出發,一般混合演算法迭代2-4次即能夠收斂。M取不同數值時對函數、的計算結果分別如表1和表2所示,表中計算時間是指在奔騰133微機上計算時間。
由表2可見,當M=1500時,本文方法搜索到最優解的概率即達到40%,而此時計算量比文獻[10]小。同樣由混合演算法的100個起始點,採用文獻[5]的演算法對函數優化計算100次,以作為收斂標准,混沌搜索50000次,計算結果為67次搜索到最優解,概率為67%,平均計算時間為1.2369s。而即使保證混合演算法100次全收斂到最優解所花費的平均計算時間也只為0.2142s(表1),可見混合演算法優於文獻[5]的方法。
表1 M取不同數值時函數的計算結果
_____________________________________________________________________
M 搜索到全局最優點的次數 搜索到最優的概率 平均計算時間
(-0.0898,0.7126) (0.0898,-0.7126)
_____________________________________________________________________________________________
1000 44 39 83% 0.1214s
3000 53 45 98% 0.1955s
5000 53 47 100% 0.2142s
________________________________________________________________________________________________
表2 M取不同數值時函數的計算結果
___________________________________________________________
M 搜索到全局最優點的次數 搜索到最優的概率 平均計算時間
____________________________________________________________________________________
1500 40 40% 0.1406s
5000 73 73% 0.2505s
10000 88 88% 0.4197s
50000 100 100% 1.6856s
____________________________________________________________________________________
4 計算結果分析
由表1和表2可見,混合演算法全局尋優能力隨M的增加而增大,當M達到某一足夠大的數值Mu後,搜索到全局最優的概率可以達到100%。
從理論上說,Mu趨向無窮大時,才能使混沌變數遍歷所有狀態,才能真正以概率1搜索到最優點。但是,本文混沌運動M次的作用是幫助BFGS方法跳出局部最優點,達到比當前局部最優函數值更小的另一局部最優附近的某一點處,並不是要混沌變數遍歷所有狀態。由混沌運動遍歷特性可知,對於某一具體問題,Mu達到某一具體有限數值時,混沌變數的遍歷性可以得到較好模擬,這一點是可以滿足的,實際算例也證實了這一點。
由於函數性態、復雜性不同,對於不同函數,如這里的測試函數、,數值Mu的大小是有差別的。對於同一函數,搜索區間增大,在相同混沌運動次數下,即使始點相同,總體而言會降低其搜索到全局最優的概率,要保證演算法仍然以概率1收斂到全局最優,必然引起Mu 增大。跟蹤計算中間結果證實,當M足夠大時,混合演算法的確具有跳出局部最優點,繼續向全局最優進行搜索的能力;並且混合演算法的計算時間主要花費在為使混合演算法具有全局搜索能力而進行混沌搜索上。
5 結語
利用混沌變數的運動特點進行優化,具有非常強的跳出局部最優解的能力,該方法與BFGS方法結合使用,在可以接受的計算量下能夠計算得到問題的最優解。實際上,混沌優化可以和一般的下降類演算法結合使用,並非局限於本文採用的BFGS方法。採用的Logistic映射產生混沌變數序列,只是產生混沌變數的有效方式之一。
混沌運動與隨機運動是不同的。混沌是確定性系統中由於內稟隨機性而產生的一種復雜的、貌似無規的運動。混沌並不是無序和紊亂,更像是沒有周期的秩序。與隨機運動相比較,混沌運動可以在各態歷經的假設下,應用統計的數字特徵來描述。並且,混沌運動不重復地經過同一狀態,採用混沌變數進行優化比採用隨機變數進行優化具有優勢。
混沌優化與下降類方法結合使用是有潛力的一種全局優化途徑,是求解具有變數界約束優化問題的可靠方法。如何進一步提高搜索效率,以及如何把混沌優化有效應用於復雜約束優化問題是值得進一步研究的課題。
本文演算法全局收斂性的嚴格數學證明正在進行之中。
參考文獻
[1]胡山鷹,陳丙珍,何小榮,沈靜珠.非線性規劃問題全局優化的模擬退火法[J].清華大學學報,37(6),1997,5-9.
[2]C A Floudas, A Aggarwal, A R Ciric. Global optimum search for nonconvex NLP and MINLP problems[J]. Comput Chem Engng. 1989, 13(10), 1117~1132.
[3]康立山,謝雲,尤矢勇等.非數值並行演算法(第一冊)――模擬退火演算法[M].北京:科學出版社,1998.
[4]劉勇,康立山,陳琉屏.非數值並行演算法(第二冊)――遺傳演算法[M].北京:科學出版社,1998.
[5]李兵,蔣慰孫.混沌優化方法及其應用[J].控制理論與應用,14(4),1997,613-615.
[6]張彤,王宏偉,王子才.變尺度混沌優化方法及其應用[J].控制與決策,14(3),1999,285-287.
[7]席少霖.非線性最優化方法[M].北京:高等教育出版社,1992.
[8]席少霖,趙鳳志.最優化計算方法[M].上海:上海科學技術出版社,1983.
[9]Press W H, Tenkolsky S A, Vetterling W T, Flannery B P.Numerical Recipes in C, The Art of Scientific Computing[M]. Second edition, Cambridge University Press, 1992.
[10]J C Ports.The development and evaluation of an improved genetic algorithm based on migration and artificial selection[J].IEEE Trans. Syst. Man and Cybern..1994, 24(1),73-85.
A Hybrid Approach for Nonlinear Optimization
Abstract:Combined BFGS method with chaos optimization method, a hybrid approach was proposed to solve nonlinear optimization problems with boundary restraints of variables. The hybrid method is an effective approach to solve nonconvex optimization problems, as it given both attentions to the inherent virtue to locate global optimum of chaos optimization method and the advantage of high convergence speed of BFGS method. Numerical examples illustrate that the present method possesses both good capability to search global optima and far higher convergence speed than that of chaos optimization method.