文章目录
1. 优化的目标
-
优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。
-
一旦我们有了损失函数,我们就可以使用优化算法来尝试最小化损失。
-
在优化中,损失函数通常被称为优化问题的目标函数。
-
优化算法的目标函数通常是基于训练数据集的损失函数,因此优化的目标是减少训练误差。而深度学习的目标是减少泛化误差。
2. 局部最小与全局最小
对于任何目标函数f(x),如果在x处对应的f(x)值小于在x附近任意其他点的f(x)值,那么f(x)可能是局部最小值
如果f(x)在x处的值是整个域中目标函数的最小值,那么f(x)是全局最小值。
- 使用迭代优化算法来求解,一般只能保证局部最小。
3. 凸性
如果算法在凸性条件设定下的效果很差,那通常我们很难在其他条件下看到好的结果。
1.凸集
简单地说,如果对于任何a, b ∈ X,连接a和b的线段也位于X中,则向量空间中的一个集合X是凸的。
2. 凸函数
给定一个凸集X,如果对于所有x, x′ ∈ X和所有λ ∈ [0, 1],函数f : X → R是凸的。
3. 凸函数优化
4. 凸和非凸
4. 梯度下降
由于学习率过大,优化问题可能会发散,这种现象早已在梯度下降中出现。同样地,预处理是梯度下降中的一种常用技术。
1. 随机梯度下降(SGD)
-
目标函数通常是训练数据集中每个样本的损失函数的平均值。
-
在随机梯度下降的每次迭代中,我们对数据样本随机均匀采样一个索引i,其中i ∈ {1, . . . , n},并计算梯度∇fi(x)以更新x。
-
随机梯度∇fi(x)是对完整梯度∇f(x)的无偏估计。
2. 小批量随机梯度下降
5. Adam算法
提示:使用指数加权移动平均值来估算梯度的动量和二次矩
- 常将它们设置为β1 = 0.9和β2 = 0.999。也就是说,方差估计的移动远远慢于动量估计的移动。
- 我们初始化v0 = s0 = 0,就会获得一个相当大的初始偏差。标准化状态变量由下式获得
- 重新缩放梯度
- 更新