智慧演算法-粒子群演算法(3)
theme: healer-readable
一起養成寫作習慣!這是我參與「掘金日新計劃 · 4 月更文挑戰」的第17天,點選檢視活動詳情。
1. 粒子群演算法
本節主要介紹粒子群演算法的關鍵引數選取,簡單回顧一下粒子群演算法思路:一群分散的鳥兒在隨機地飛行覓食,它們不知道食物所在的具體位置,在覓食過程中,每隻小鳥都會記錄自己飛行位置。突然,其中某一隻小鳥A發現好多玉米,於是就喊:“快來,我這裡有好多食物!”,然而,其他小鳥都只發現了零零星星的幾個玉米粒。於是,每個小鳥在飛行的時候就有了一個指導的方向(往小鳥A的位置飛),但是,每個小鳥都有不忍心放棄當前努力搜尋過的位置(小鳥們心想:我這裡剛才也找到點玉米粒,再繼續找找說不定比你還要多)。因此,它們最終決定結合自身的經驗和整個群體的經驗,調整自己的飛行速度和所在位置,不斷地尋找更加接近食物的位置,最終使得群體聚集到食物位置。
粒子群算基本介紹及例項詳解請參考智慧演算法-粒子群演算法 - 掘金 (juejin.cn)
粒子群演算法改進策略請參考智慧演算法-粒子群演算法(2) - 掘金 (juejin.cn)
2. 關鍵引數選取
2.1 種群規模
種群規模N是指有多少個粒子,即粒子的數量。通常根據問題的複雜度來嘗試選取,總結如下: - 影響演算法的搜尋能力和計算量 - 一般取 $20-40$ - 對於較難問題,可以取到100或200
2.2 粒子長度和範圍
- 粒子長度$D$相當於每個解的長度,一般根據具體問題來具體定義。
- 粒子範圍$R$由優化問題本身決定,將粒子規定在某一範圍內,每一維可以設定不同的範圍
2.3 粒子最大速度
粒子的最大速度$Vmax$,也就是限定每個粒子一次迭代最大移動的距離。其選取思想概括如下: - 決定粒子每一次的最大移動距離,制約著演算法的探索和開發能力 - 一般取相應搜尋空間的$10%-20%$
2.4 慣性權重
慣性權重控制著前一速度對當前速度的影響,用於平衡演算法的探索和開發能力,該引數選取思路如下: - 一般設定從0.9線性遞減到0.4 - 演算法開始階段,大的慣性因子可以使演算法不容易陷入區域性最優 - 演算法的後期,小的慣性因子可以使收斂速度加快,使收斂更加平穩,不至於出現振盪現象
2.5 壓縮因子
壓縮因子$χ$限制粒子的飛行速度,保證演算法有效收斂,其選取思路如下:
通常取值0.729,同時設c1和c2為2.05,可以保證收斂,但不能收斂到全域性最優
2.6 加速係數$C1$和$C2$
加速係數代表了粒子向自身極值pbest和全域性極值gbest推進的加速權值,通常情況下的選取經驗概括如下: - 通常都等於2.0 - $c1$先大後小,而$c2$先小後大
2.7 演算法終止條件
演算法終止決定演算法執行的結束,由具體的應用和問題本身確定,最簡單的可以由達到規定的迭代次數作為終止條件,迭代次數一般設定500、1000、5000,需要根據具體問題規模去做不同嘗試。
- 【深度學習】TensorFlow線性迴歸案例演示(3)
- 【機器學習】LSTM神經網路實現中國人口預測(2)
- 【資料處理】北京市租房案例實戰(5)
- 【資料處理】Pandas庫:畫圖與檔案讀取
- 【資料處理】Pandas庫:陣列運算
- 【資料處理】北京市租房案例實戰(3)
- 【PaddleDetection深度學習】中國交通標誌影象分類任務
- 【資料處理】北京市租房案例實戰(4)
- 【資料處理】北京市租房案例實戰(2)
- 【資料處理】Seaborn-NBA資料分析案例(4)
- 【深度學習】工業安全生產環境違規使用手機的識別
- 【資料處理】北京市租房案例實戰(1)
- 【資料處理】Seaborn-NBA資料分析案例(2)
- 【Numpy】資料處理-Numpy庫基本介紹
- 【Numpy資料處理】ndarray介紹
- 【深度學習】醫學影像目標檢測-瘧原蟲識別問題
- Linux作業系統-基本使用(1)
- 智慧演算法-粒子群演算法(3)
- 智慧演算法-粒子群演算法(2)
- 智慧演算法-禁忌搜尋演算法(2)