爬山演算法
閱讀設定
爬山演算法(粵音:paa4 saan1 jin2 syun3 faat3 | 英文:hill climbing algorithm / hill climbing)係機械學習(ML)上一種常用嚟做最佳化嘅演算法。
基本做法
[編輯]睇埋:最佳化
想像一個 ML 模型,有兩個參數, 同 ,而家用某個指標 量度個 ML 模型嘅表現,而呢個指標係數值愈細代表個模型愈理想嘅,例如係個模型嘅犯錯率。
家陣 同 經已有咗數值,所以個模型喺幅附圖入面有個座標位置,而個爬山演算法可以喺每一步噉做:
- 加減 同 嘅數值嚟改變個模型,即係個模型有 4()個前進方向;
- 計四個數值 ,當中 係移去第 個方向會得到嘅 值;
- 按「揀 值最小化嘅方向」呢條法則嚟改變 同 嘅數值;
- 重複,直至結束條件達到為止。
如果順利,個模型嘅 值會慢慢變到愈嚟愈細(接近理想數值),不過原則上,呢個最後嘅答案值唔保證會係理想數值-可能喺睇到嘅空間外有更低嘅可能 值,但呢個演算法唔會能夠保證將個模型帶到去嗰個數值-所以係一個近似演算法[1]。
相關概念
[編輯]- 動量(momentum):同力學上所講嘅動量唔同,機械學習上所講嘅動量指個演算法喺最佳化每一步更新模型參數嗰陣,會記住之前嗰幾次更新嘅改變數值(),而今次嘅更新嘅改變值 會係 嘅函數,,即係例如[2]:
- ,當中 係估計嘅梯度, 係一個 0 至 1 之間嘅數值,決定打前嘅改變數值對而家呢次更新有幾大影響。
- 平均法(averaging):喺做完若干步(經過嘅總步數係 )最佳化之後,將個參數變成最佳化中途得到嘅數值嘅平均值,即係話[3]:
- 地區性最細(local minimum)同地區性最大(local maximum):用爬山演算法成日要面對嘅問題;想像好似下圖噉,個模型有一個參數 ,而指標 係數值愈低愈好嘅,例如犯錯率;而家陣個演算法係按簡單嘅法則「試吓改變 嘅數值,然後將 移去 比較低嗰邊,如果兩邊嘅 都高過而家嘅,就用而家個 值做模型參數嘅最後數值」,
if (z(p - 1) > z(p)) AND (z(p + 1) > z(p)), then output p
,噉一個可能嘅結果係,個演算法會俾出一個地區性最細做output
,呢個output
值喺佢周圍範圍內係最細值,但查實仲有更細嘅可能數值[4]。睇埋函數最高點與最低點。 - 步(step):喺爬山演算法上,一「步」係指個演算法會一嘢將參數數值變幾多,例如一個爬山演算法可能每次都將 數值
±1
(步數係1
),而另一個爬山演算法每次都將 數值±5
(步數係5
)。又有啲爬山演算法會選擇中途改變步數,例如喺頭 10 步都每步±5
而喺跟住嗰 10 步每步±4
... 如此類推。喺實用上,將步數設做大嘅數值或者中途改變步數可以一定程度上幫手應付地區性最細同地區性最大嘅問題[5]。
睇埋
[編輯]引述
[編輯]- ↑ Russell, Stuart J.; Norvig, Peter (2003), Artificial Intelligence: A Modern Approach (2nd ed.), Upper Saddle River, New Jersey: Prentice Hall, pp. 111–114.
- ↑ Rumelhart, David E.; Hinton, Geoffrey E.; Williams, Ronald J. (8 October 1986). "Learning representations by back-propagating errors". Nature. 323 (6088): 533–536.
- ↑ Polyak, Boris T.; Juditsky, Anatoli B. (1992). "Acceleration of stochastic approximation by averaging". SIAM J. Control Optim. 30 (4): 838–855.
- ↑ Local Maxima and Minima, and, Absolute Maxima and Minima.
- ↑ Nolle, L. (2006). On a hill-climbing algorithm with adaptive step size: towards a control parameter-less black-box optimisation algorithm. In Computational Intelligence, Theory and Applications (pp. 587-595). Springer, Berlin, Heidelberg.