梯度下降法優化
阿新 • • 發佈:2021-10-22
梯度下降法的優化:SGD 牛頓法 動量法等
梯度下降優化
為何要優化
梯度下降是求每個點的梯度,然後從該點減去一個極小量,去進行梯度下降
但計算機是無法計算極小量的,所以必須有一個確定的步長,即學習率
通過乘步長進行優化會與最理想的梯度下降路徑有所偏差,那麼如何去減小這個偏差就為梯度下降的優化帶來了可能性。
批量梯度下降法(Batch Gradient Descent)
批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新引數時使用所有的樣本來進行更新。
這樣需要把所有資料都計算一遍才能走一步,而且可能會陷入local minima
$\theta_i =\theta_i -\alpha\sum\limits_{j=1}^{m}(h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)}$
隨機梯度下降法(Stochastic Gradient Descent)
隨機梯度下降法,其實和批量梯度下降法原理類似,區別在與求梯度時沒有用所有的m個樣本的資料,而是僅僅選取一個樣本j來求梯度。
$\theta_i =\theta_i -\alpha (h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)}$
隨機梯度下降法由於每次僅僅採用一個樣本來迭代,訓練速度很快
隨機梯度下降法用於僅僅用一個樣本決定梯度方向,導致解很有可能不是最優。對於收斂速度來說,由於隨機梯度下降法一次迭代一個樣本,導致迭代方向變化很大,不能很快的收斂到區域性最優解。
小批量梯度下降法(Mini-batch Gradient Descent)
小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於m個樣本,我們採用x個子樣本來迭代
$\theta_i =\theta_i - \alpha\sum\limits_{j=t}^{t+x-1}(h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)}$