###### tags: `計算智慧與規劃` # 計算智慧與規劃WEEK13 -PSO ## PSO ### flowchart ![](https://i.imgur.com/pcBBBOo.png) ### 公式 - 要考慮CPU、GPU、頻寬 - 每一個TPU都會有記憶上限 ![](https://i.imgur.com/FTZdpr3.png =500x) ### 實踐 ![](https://i.imgur.com/7yszmCA.png =400x) - 第一行為使用者,第二行(格子內)為對應到的CPU ![](https://i.imgur.com/FYLI11Y.png) - 解決的問題 - 如果記憶體超過上限,用GA的處罰方式 - 處罰方式:因為結果越小越好,所以若是超過就加分 ex: ![](https://i.imgur.com/AAO0mxh.png) ## ### use of lbest - 視野大小 - 用 lbest 控制收斂速度,讓他不要收斂太快或太慢 ### Use of Vmax 最大速率 - 最大步伐長度 - 田口正交法:幫你找出較適合的參數組合,才不用像無頭蒼蠅一樣亂下參數,造成資源浪費 - 最差利分析:找出最低的標準進行運算 > 如果用亂數:隨機產生的亂數都很大,就會爆衝 > 隨機產生的亂數都很小,變化不大,難分析 > 如果不用亂數:產生的結果都會相同 - 如果沒有 Vmax ,約在 150 代時會爆衝 ### impact of c - 回頭的強度,讓震動幅度不會那麼大 - c = c1 + c2 = 3 時,效果最好 (c1, c2 大約等於 1.5) ### use of inertia weight 慣性權重 - 證明:![](https://i.imgur.com/pWWdZo5.png) - ![](https://i.imgur.com/bKE8YVH.png =300x) - k1: 單一隻小鳥會收斂到的位置 (個人最佳解與群體最佳解的平均) - k2, k3 - ![](https://i.imgur.com/grSDMq1.png) - 若 w 在這個範圍,k2, k3 幾乎等於 0 ,可以只看 k1 - 若符合圖片中的if條件 -> 結果為收斂 - ![](https://i.imgur.com/Jc4sMdf.png) - pbest=1,gbest=0,所以權重=(1+0)/2=0.5 - 加上權重的公式: ( ) ex: ![](https://i.imgur.com/vA13622.png) - 上圖為前面為大部分的機率為收斂的,小部分的機率會爆衝 (大約在 230 次時) - 暴衝 - 收斂 - 暴衝 - 收斂 ... => 沒效率,所以應該設Vmax > 理論的設定好的 w, c1, c2,不需要 Vmax 就會收斂,但實務上發現有設 Vmax 效果還是比較好 (避免一次走太大步忽略最佳解) > Vmax 可以自動調整 - ![](https://i.imgur.com/6srXtiO.jpg) - r1、r2 -> [0,1] ## 蜜蜂演算法 有三種蜂 1. 工蜂 2. 等待要出去的蜂 3. 偵查蜂 - 偵查蜂出去找random (random 產生亂數local search) - 其他的蜜蜂按機率去不同偵查蜂附近找