文章目录
- 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ηtgt
其中: σ 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 必须是无限可微的。
- 附近圈小,可以忽略高次项,意味着学习率要足够小。