小科普:機器學習中的粒子群優化演算法!
“梯度下降不會讓你成為機器學習的專家”
PSO被認為是蟻群演算法、魚群演算法之外的一種群體智慧的優化演算法。後來它被簡化並用於解決優化問題。
PSO使用了一堆叫做蜂群的粒子,這些粒子可以四處移動並探索搜尋空間。
這些粒子的運動方向是-
-
粒子自身的先前速度(慣性)
-
與單個粒子最佳已知位置的距離(認知力)
-
遠離人群最知名的位置(社會力量)
基本上,粒子彼此間的共同通訊會使它們聚得更快。該群集不能完全探索搜尋空間,但可能會找到更好的解決方案。
有趣的是,當粒子的個體最佳狀態優於群體最佳時,群體運動的總體方向可以在任何時間點改變。這使得許多無序和更多機會接近成本函式的全域性最小值。
現在回到現實,PSO相對來說非常容易。
與梯度下降不同,成本函式不可微分的。這是Python中用於模擬這些群粒子的簡單實現。令人驚訝的是,你不需要很多數學。它只是簡單確定三種不同的速度並計算粒子的適應度。我們儘可能多地迭代。
全居最佳或群體最佳將得到最優價值。
每個粒子都描述一組引數值和初始速度(向量)。我們只需在成本函式中插入這些值來計算適應度。這將給出我們粒子的適應度。
在每次迭代中,我們計算每個粒子的適應度。獲得了群體的最佳適應值,現在我們只需簡單地更新速度,即我們之前討論過的初始速度、認知力和社會力量的結果。
這是一個可以幫助您實現它的程式碼段。
群體粒子的初始位置是任意的。 為了獲得最佳效果,您可以在搜尋空間的不同位置生成多個群,以獲得最佳效果。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31509949/viewspace-2158395/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 群體智慧優化演算法之粒子群優化演算法優化演算法
- 優化演算法庫DEAP的粒子群優化演算法(PSO)示例程式碼分析優化演算法
- 利用粒子群優化演算法(PSO)來優化vnpy的量化策略引數優化演算法
- 粒子群優化演算法對BP神經網路優化 Matlab實現優化演算法神經網路Matlab
- 計算智慧(CI)之粒子群優化演算法(PSO)(一)優化演算法
- 併發優化 – 降低鎖顆粒優化
- 併發優化 - 降低鎖顆粒優化
- 粒子群演算法中對於學習因子的改進演算法
- 進化演算法、遺傳演算法與粒子群演算法之間的比較演算法
- 常見電腦記憶體條顆粒知識科普:記憶體顆粒哪個好?記憶體顆粒排名記憶體
- 聯邦學習中的優化演算法聯邦學習優化演算法
- 粒子群演算法和遺傳演算法的比較演算法
- 業務顆粒化思考
- count(*)小優化優化
- 淺談查詢優化器中的JOIN演算法優化演算法
- 關於PostCSS的一點小科普CSS
- 【機器學習】【base】 之 目標函式 損失函式 優化演算法機器學習函式優化演算法
- DocumentFragment 的優化小知識Fragment優化
- 最實用的機器學習演算法優缺點分析機器學習演算法
- MLSys提前看:機器學習的分散式優化方法機器學習分散式優化
- 【機器學習】--迴歸問題的數值優化機器學習優化
- 粒子群演算法求解帶約束最佳化問題 原始碼實現演算法原始碼
- 粒子群演算法(主要針對連續型函式最佳化問題)演算法函式
- Mysql優化小結MySql優化
- 【丁原 】優化小例子優化
- 收藏!機器學習演算法優缺點綜述機器學習演算法
- 機器學習 – 特徵選擇演算法流程、分類、優化與發展綜述機器學習特徵演算法優化
- 機器學習 - 特徵選擇演算法流程、分類、優化與發展綜述機器學習特徵演算法優化
- 優化SQL中的or優化SQL
- 超實用的格式塔原理小科普
- 基於粒子群最佳化演算法的圖象聚類識別matlab模擬演算法聚類Matlab
- 小資料在機器學習中的重要性機器學習
- 機器學習中常見優化方法彙總機器學習優化
- MySQL優化--IO排程演算法優化MySql優化演算法
- 機器學習-演算法背後的理論與優化(part3)--經驗風險與泛化誤差概述機器學習演算法優化
- 記錄小程式touchmove事件中setData優化過程事件優化
- 演算法科普:有趣的霍夫曼編碼演算法
- 微信小程式效能優化微信小程式優化