文章目錄
- 1. 梯度下降概念
- 2. 梯度下降的技巧
- 2.1 動態設置學習率
- 2.2 Adagrad調整梯度
- 2.3 隨機梯度下降(SGD)
- 2.4 特征縮放
- 3. 梯度下降理論基礎
1. 梯度下降概念
- 梯度:Loss 對參數在某一點的偏微分,函數沿梯度的方向具有最大的變化率
- 梯度下降:從某點出發,計算該點梯度,以一定的學習率沿著該梯度的反方向移動,直到梯度接近 0
- 公式: w t + 1 = w t ? η d L d w w_{t+1} = w_t - \eta \frac{dL}{dw} wt+1?=wt??ηdwdL?
2. 梯度下降的技巧
2.1 動態設置學習率
- 原理:離終端越遠,學習率越大;離終點越近,學習率越小。
- 公式: η t = η t \eta_t = \frac{\eta}{\sqrt{t}} ηt?=t?η?
其中,t 是迭代次數。
2.2 Adagrad調整梯度
-
原理:
- 梯度大的時候,調正的步伐不一定要大,要綜合考慮到二階導數的影響。
- 通過參數的歷史信息來調整學習率。
-
使用 Adagrad 方法更新參數的公式:
- η t σ t = η ∑ i = 1 t ( g i ) 2 \frac{\eta^t}{\sigma^t} = \frac{\eta}{\sqrt{\sum_{i=1}^{t} (g^i)^2}} σtηt?=∑i=1t?(gi)2?η?
- w t + 1 = w t ? η t σ t g t w^{t+1} = w^t - \frac{\eta^t}{\sigma^t} g^t wt+1=wt?σtηt?gt
其中: σ t \sigma^t σt 是梯度平方的累加和(即歷史梯度的平方和的平方根)。
-
總結:化簡后,分子是一階導數,分母其實是反應二階導數的影響
2.3 隨機梯度下降(SGD)
- 概念:不考慮所有樣本,每次隨機選取某個或某些樣本點來做梯度下降更新參數。
- 作用:
- 訓練更迅速,結果也不會太差。
- 可能受到某些樣本的影響,導致不精確。
2.4 特征縮放
- 概念:將不同的輸入特征統一縮放到相同的范圍或分布。
特征歸一化
- 公式: x ′ = x ? min ? ( x ) max ? ( x ) ? min ? ( x ) x' = \frac{x - \min(x)}{\max(x) - \min(x)} x′=max(x)?min(x)x?min(x)?
- 將數據統一到特定的范圍,避免某些極端數據的影響。
特征標準化
-
公式: x ′ = x ? μ σ x' = \frac{x - \mu}{\sigma} x′=σx?μ?
其中:- μ \mu μ 是特征的均值。
- σ \sigma σ 是特征的標準差。
-
效果:
- 數據更符合正態分布,處理后的特征均值為 0,標準差為 1。
- 減少特征間方差的差異,幫助加速收斂。
特征縮放的優點
-
未處理之前:
- Loss 是一個橢圓,每次更新沿著等高線(梯度)方向走,不是往圓心(最低點)走。
- 如果不使用 Adagrad,可能很難得到好的結果。
-
處理之后:
- Loss 是一個圓,每次更新都往圓心(最低點)走,容易訓練。
- 有助于模型訓練和加快收斂速度。
3. 梯度下降理論基礎
泰勒級數近似
- 理論:
- 移動方向與梯度(偏導)方向相反時,內積最小。
- 發現附近以 $\theta $ 半徑圈的最小值,移動到那里。
使用前提
- Loss function 必須是無限可微的。
- 附近圈小,可以忽略高次項,意味著學習率要足夠小。