優化算法筆記(五)粒子群算法(3)

(已合并本篇內容至粒子群算法(1))

5.參數實驗

上一節中,我們看到小鳥們聚集到一個較小的范圍內后,不會再繼續集中。這是怎么回事呢?
猜測:
1.與最大速度限制有關,權重w只是方便動態修改maxV。
2.與C1和C2有關,這兩個權重限制了鳥兒的搜索行為。
還是上一節的實驗,f(x_i)=(x_1-a)^2+(x_2-b)^2,a=b=0。現在我們將maxV的值有5修改為50,即maxV=50,其他參數不變。參數如下

參數
問題維度(維度) 2
鳥的數量(種群數) 20
開會次數(最大迭代次數) 50
C1 2
C2 2
W 1
maxV 50
取值范圍 (-100,100)

此時得到的最優位值的適應度函數值為0.25571,可以看出與maxV=5相比,結果差了很多而且小鳥們聚集的范圍更大了。
  現在我們設置maxV=1,再次重復上面的實驗,實驗結果如下:


maxV=1

  這次最終的適應度函數值為,比之前的結果都要好0.00273。從圖中我們可以看出,小鳥們在向一個點集中,但是他們飛行的速度比之前慢多了,如果問題更復雜,可能無法等到它們聚集到一個點,迭代就結束了。
  為什么maxV會影響鳥群的搜索結果呢?
  我們依然以maxV=50為例,不過這次為了看的更加清晰,我們的鳥群只有2只鳥,同時將幀數放慢5倍以便觀察。

參數
問題維度(維度) 2
鳥的數量(種群數) 2
開會次數(最大迭代次數) 50
C1 2
C2 2
W 1
maxV 50
取值范圍 (-100,100)

maxV=50

可以看出若當前的慣性速度V較大時,且P、G相距較近時(考慮極端情況P與G重合在一個點),我們來看看小鳥的飛行軌跡。
飛行1

小鳥從A點出發,速度為A->B,這一次飛行過后,小鳥的期望位置為點D,將此次飛行記為第一次飛行。其中AG=GC,由于P=G,故

  第二次飛行,小鳥由點D為起點,此時小鳥的慣性速度為A->D,而它向目標飛行的速度為D->E,其中DG=GE,此次飛行的合速度為D->C,故C為此次飛行的期望點位置。
飛行2

  第三次飛行,小鳥由點C為起點,此時小鳥的慣性速度為D->C,而它向目標飛行的速度為C->A,其中CG=GA,此次飛行的合速度為C->E,故E為此次飛行的期望點位置。
飛行3

  第四次飛行,小鳥由點E為起點,此時小鳥的慣性速度為C->E,而它向目標飛行的速度為E->D其中EG=GD,此次飛行的合速度為E->A,故A為此次飛行的期望點位置。
飛行4

  可以看出如果G和P重合,那么小鳥的飛行軌跡的期望為A->D->C->E->A,如果這四個位置均差于全局最優點G和自己的歷史最優點P,那么小鳥將會一直圍著當前最優點打轉,這樣當然無法繼續聚集在同一個點。
  問題找到了,那應該如何解決呢?先思考幾種方案,能不能行的通,實驗之后見分曉。

思路一:限制鳥的最大飛行速率,由于慣性系數W的存在,使得控制最大速率和控制慣性系數的效果是等價的,取其一即可。
  方案1:使慣性系數隨著迭代次數增加而降低,這里使用的是線性下降的方式,即在第1次迭代,慣性系數W=1,最后一次迭代時,慣性系數W=0,當然,也可以根據自己的意愿取其他值。
實驗參數如下:

參數
問題維度(維度) 2
鳥的數量(種群數) 20
開會次數(最大迭代次數) 50
C1 2
C2 2
W 1->0
maxV 50
取值范圍 (-100,100)

  小鳥們的飛行過程如上圖,可以看到效果很好,最后甚至都聚集到了一個點。再看看最終的適應度函數值8.61666413451519E-17,這已經是一個相當精確的值了,說明這是一個可行的方案,但是由于其最后種群過于集中,有陷入局部最優的風險。
  方案2:給每只鳥一個隨機的慣性系數,那么鳥的飛行軌跡也將不再像之前會出現周期性。每只鳥的慣性系數W為(0,2)中的隨機數(保持W的期望為1)。
實驗參數如下:

參數
問題維度(維度) 2
鳥的數量(種群數) 20
開會次數(最大迭代次數) 50
C1 2
C2 2
W rand(0,2)
maxV 50
取值范圍 (-100,100)

  可以看到小鳥們并沒有像上一個實驗一樣聚集于一個點,而是仍在一個較大的范圍內進行搜索。其最終的適應度函數為0.01176,比最初的0.25571稍有提升,但并不顯著。什么原因造成了這種情況呢?我想可能是由于慣性系數成了期望為1的隨機數,那么小鳥的飛行軌跡的期望可能仍然是繞著一個四邊形循環,只不過這個四邊形相比之前的平行四邊形更加復雜,所以其結果也稍有提升,當然對于概率算法,得到這樣的結果可能僅僅是因為運氣不好
  我們看到慣性系數W值減小,小鳥們聚攏到一處的速度明顯提升,那么,如果我們去掉慣性系數這個參數會怎么樣呢。
  方案3:取出慣性系數,即取W=0,小鳥們只向著那兩個最優位置飛行。

參數
問題維度(維度) 2
鳥的數量(種群數) 20
開會次數(最大迭代次數) 50
C1 2
C2 2
W 0
maxV 50
取值范圍 (-100,100)

  可以看見鳥群們迅速聚集到了一個點,再看看得到的結果,最終的適應度函數值為2.9086886073362966E-30,明顯優于之前的所有操作。
  那么問題來了,為什么粒子群算法需要一個慣性速度,它的作用是什么呢?其實很明顯,當鳥群迅速集中到了一個點之后它們就喪失了全局的搜索能力,所有的鳥會迅速向著全局最優點飛去,如果當前的全局最優解是一個局部最優點,那么鳥群將會陷入局部最優。所以,慣性系數和慣性速度的作用是給鳥群提供跳出局部最優的可能性,獲得這個跳出局部最優能力的代價是它們的收斂速度減慢,且局部的搜索能力較弱(與當前的慣性速度有關)。
  為了平衡局部搜索能力和跳出局部最優能力,我們可以人為的干預一下慣性系數W的大小,結合方案1和方案2,我們可以使每只鳥的慣性系數以一個隨機周期,周期性下降,若小于0,則重置為初始值。


  這樣結合了方案1和方案2的慣性系數,也能得到不錯的效果,大家可以自己一試。

思路二:改變小鳥們向群體最優飛行和向歷史最優飛行的權重。
  方案4:讓小鳥向全局最優飛行的系數C2線性遞減。

參數
問題維度(維度) 2
鳥的數量(種群數) 20
開會次數(最大迭代次數) 50
C1 2
C2 2->0
W 1
maxV 50
取值范圍 (-100,100)

  小鳥們的飛行過程與之前好像沒什么變化,我甚至懷疑我做了假實驗。看看最終結果,0.7267249621552874,這是到目前為止的最差結果。看來這不是一個好方案,讓全局學習因子C2遞減,勢必會降低算法的收斂效率,而慣性系數還是那么大,小鳥們依然會圍繞歷史最優位置打轉,畢竟這兩個最優位置是有一定關聯的。所以讓C1線性遞減的實驗也不必做了,其效果應該與方案4相差不大。
  看來只要是慣性系數不變怎么修改C1和C2都不會有太過明顯的效果。為什么實驗都是參數遞減,卻沒有參數遞增的實驗呢?
  1.慣性系數W必須遞減,因為它會影響鳥群的搜索范圍。
  2.如果C1和C2遞增,那么小鳥的慣性速度V勢必會跟著遞增,這與W遞增會產生相同的效果。

6.總結

上面我們通過一些實驗及理論分析了粒子群算法的特點及其參數的作用。粒子群作為優化算法中模型最簡單的算法,通過修改這幾個簡單的參數也能夠改變算法的優化性能可以說是一個非常優秀的算法。
  上述實驗中,我們僅分析了單個參數對算法的影響,實際使用時(創新、發明、寫論文時)也會同時動態改變多個參數,甚至是參數之間產生關聯。
  實驗中,為了展現實驗效果,maxV取值較大,一般取值為搜索空間范圍的10%-20%,按上面(-100,100)的范圍maxV應該取值為20-40,在此基礎上,方案1、方案2效果應該會更好。
  粒子群算法是一種概率算法,所以并不能使用一次實驗結果來判斷算法的性能,我們需要進行多次實驗,然后看看這些實驗的效果最終來判斷,結果必須使用多次實驗的統計數據來說明,一般我們都會重復實驗30-50次,為了發論文去做實驗的小伙伴們不要偷懶哦。
  粒子群算法的學習目前告一段落,如果有什么新的發現,后面繼續更新哦!
以下指標純屬個人yy,僅供參考

指標 星數
復雜度 ★☆☆☆☆☆☆☆☆☆
收斂速度 ★★★★★☆☆☆☆☆
全局搜索 ★★★★☆☆☆☆☆☆
局部搜索 ★★★★★★☆☆☆☆
優化性能 ★★★★★★☆☆☆☆
跳出局部最優 ★★★★☆☆☆☆☆☆
改進點 ★★★★☆☆☆☆☆☆

目錄
上一篇 優化算法筆記(四)粒子群算法(2)
下一篇 優化算法筆記(六)遺傳算法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容