智慧演算法-粒子群演算法(2)
theme: scrolls-light
一起養成寫作習慣!這是我參與「掘金日新計劃 · 4 月更文挑戰」的第16天,點選檢視活動詳情。
1. 粒子群演算法
本節主要介紹粒子群演算法的改進思路及策略,首先回顧一下粒子群演算法:一群分散的鳥兒在隨機地飛行覓食,它們不知道食物所在的具體位置,在覓食過程中,每隻小鳥都會記錄自己飛行位置。突然,其中某一隻小鳥$A$發現好多玉米,於是就喊:“快來,我這裡有好多食物!”,然而,其他小鳥都只發現了零零星星的幾個玉米粒。於是,每個小鳥在飛行的時候就有了一個指導的方向(往小鳥A的位置飛),但是,每個小鳥都有不忍心放棄當前努力搜尋過的位置(小鳥們心想:我這裡剛才也找到點玉米粒,再繼續找找說不定比你還要多)。因此,它們最終決定結合自身的經驗和整個群體的經驗,調整自己的飛行速度和所在位置,不斷地尋找更加接近食物的位置,最終使得群體聚集到食物位置。
粒子群演算法介紹以及例項詳解請參考智慧演算法-粒子群演算法 - 掘金 (juejin.cn)
2. 粒子群演算法改進策略
2.1 選擇思想
從種群中選擇出一個個體,將該個體的適應度與其它個體的適應度進行比較,若優於某個體,則每次給該個體記一分。對每個個體重複這個過程。根據每個個體的分數,對所有個體進行排列。選擇較好的前半部分個體,並複製它們,替代種群中較差的後半部分個體。在此過程中,最佳個體的適應度並未發生改變。
評價:此種改進策略收斂速度緩慢,相當於把差的粒子都替換了成優秀的粒子,導致所有粒子都很優秀,都比較相似,大家朝著最優秀的粒子進步速度就緩慢了。越是差距大,越知道自己的努力方向,越是都很優秀,大家差距越小,提升空間過小,進步緩慢。
2.2 雜交微粒群思想
微粒群中的每個微粒被賦予一個雜交概率,由使用者給定,與適應值無關。
在每次迭代時,依據雜交概率選擇一定數量的微粒進入雜交池,池內的微粒隨機地兩兩雜交,產生相同數目的子代,並用子代微粒取代父代微粒,以保持種群的微粒數目不變
。
微粒雜交計算方式請參考如下公式:
2.3 變異思想
測試所有粒子與當前最優的距離,當距離小於一定的數值的時候,可以拿出所有粒子的一個百分比(如10%,需根據題目自行確定)的粒子進行隨機初始化,讓這些粒子重新尋找最優值(給一些粒子隨機賦予新的位置,豐富粒子群)。
評價:此改進思想可以克服“早熟”(防止收斂過快而陷入區域性最優解)
2.4 小生境改進思想
小生境的簡單概述,自然界中往往特徵、性狀相似
的物種相聚在一起,並在同類中交配繁衍後代。遺傳演算法中的小生境思想主要是將每一代個體劃分為若干類,每類選出優秀個體組成一個種群;
基於動態鄰域的改進微粒群演算法。 根據微粒的下標將微粒群體分割成若干個相鄰的區域,而不管它們在空間位置上如何。每次迭代時,種群中一個微粒到其它微粒之間的距離可以被算出來,並記錄下最大距離$dmax$,然後計算每一個粒子的 $‖𝑥𝑎−𝑥𝑏‖/𝑑max$,根據計算出的結果選擇相鄰的微粒,利用較小比值和較大比值作為選擇依據。公式中的$‖𝑥𝑎−𝑥𝑏‖$表示粒子$a$與粒子$b$的距離。
- 【深度學習】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)