爬山演算法

係機械學習上一種常用嚟做最佳化嘅演算法。

基本做法

想像一個 ML 模型，有兩個參數， 同 ，而家用某個指標  量度個 ML 模型嘅表現，而呢個指標係數值愈細代表個模型愈理想嘅，例如係個模型嘅犯錯率。

家陣  同  經已有咗數值，所以個模型喺幅附圖入面有個座標位置，而個爬山演算法可以喺每一步噉做：
加減  同  嘅數值嚟改變個模型，即係個模型有 4個前進方向；
計四個數值 ，當中  係移去第  個方向會得到嘅  值；
按「揀  值最小化嘅方向」呢條法則嚟改變  同  嘅數值；
重複，直至結束條件達到為止。
如果順利，個模型嘅  值會慢慢變到愈嚟愈細，不過原則上，呢個最後嘅答案值唔保證會係理想數值－可能喺睇到嘅空間外有更低嘅可能  值，但呢個演算法唔會能夠保證將個模型帶到去嗰個數值－所以係一個近似演算法。

相關概念
動量：同力學上所講嘅動量唔同，機械學習上所講嘅動量指個演算法喺最佳化每一步更新模型參數嗰陣，會記住之前嗰幾次更新嘅改變數值，而今次嘅更新嘅改變值  會係  嘅函數，，即係例如：
，當中  係估計嘅梯度， 係一個 0 至 1 之間嘅數值，決定打前嘅改變數值對而家呢次更新有幾大影響。
平均法：喺做完若干步最佳化之後，將個參數變成最佳化中途得到嘅數值嘅平均值，即係話：

地區性最細同地區性最大：用爬山演算法成日要面對嘅問題；想像好似下圖噉，個模型有一個參數 ，而指標  係數值愈低愈好嘅，例如犯錯率；而家陣個演算法係按簡單嘅法則「試吓改變  嘅數值，然後將  移去  比較低嗰邊，如果兩邊嘅  都高過而家嘅，就用而家個  值做模型參數嘅最後數值」，if (z(p - 1) > z(p)) AND (z(p + 1) > z(p)), then output p，噉一個可能嘅結果係，個演算法會俾出一個地區性最細做 output，呢個 output 值喺佢周圍範圍內係最細值，但查實仲有更細嘅可能數值。函數最高點與最低點。
步：喺爬山演算法上，一「步」係指個演算法會一嘢將參數數值變幾多，例如一個爬山演算法可能每次都將  數值 ±1，而另一個爬山演算法每次都將  數值 ±5。又有啲爬山演算法會選擇中途改變步數，例如喺頭 10 步都每步 ±5 而喺跟住嗰 10 步每步 ±4... 如此類推。喺實用上，將步數設做大嘅數值或者中途改變步數可以一定程度上幫手應付地區性最細同地區性最大嘅問題。

拉曲線
機械學習
人工智能

攷 

機械學習