梯度上升法是一種最佳化算法,用於尋找函式的局部最大值或全局最大值。它的核心思想是沿著函式梯度的正方向進行疊代更新,以逐步接近最大值點。在每一次疊代中,根據當前位置的梯度方向來更新參數或變數值,使目標函式值增大。梯度上升算法適用於求解最佳化問題中的約束最最佳化、最大似然估計等。
梯度上升法基於的思想是:要找到某個函式的最大值,最好的辦法就是沿著該函式的梯度方向探尋。梯度運算元總是指向函式值增長最快的方向。這裡所說的是移動方向,而未提到移動量的大小。該量值稱為步長,記作a。用向量表示的話,梯度上升算法的疊代公式如下:w := w + a * f(w)。該公式將一直被疊代執行,直到達到某個停止條件為止,比如疊代次數達到某個指定值或是算法達到某個可以允許的誤差範圍。
梯度下降算法與梯度上升算法是一樣的,只是公式中的加法變成減法。對應的公式可以寫成:w := w - a * f(w)。梯度上升算法用來求函式的最大值,而梯度下降算法用來求函式的最小值。