-
优化器 - optimizer
-
优化器就是在深度学习反向传播过程中,指引损失函数(目标函数)的各个参数往正确的方向更新合适的大小,使得更新后的各个参数损失函数(目标函数)值不断逼近全局最小
-
优化器不计算梯度,他只是梯度的更新者,它决定了以什么样的形式更新参数
-
如果损失函数是一座山峰,优化器会通过梯度下降,帮助我们以最快的方式,从高山下降到谷底
-
-
优化器种类
-
1.梯度
-
2.梯度下降算法
- BGD:批量梯度下降法 在全训练集上计算精确的梯度
- SGD: 随机梯度下降法 采样单个样本来评估的当前梯度
- mini-batch GD:mini-batch梯度下降法使用batch的一个子集来计算梯度
- 为了获取准确的梯度,批量梯度下降法的每一步都把整个训练集载入进来进行计算,时间花费和内存开销都非常大,无法应用于大数据集、大模型的场景
- 随机梯度下降法则放弃了对梯度准确性的追求,每步仅仅随机采样一个样本来估计当前梯度,计算速度快,内存开销小,但由于每步接受的信息量有限,随机梯度下降法对梯度的估计常常出现偏差,造成目标函数曲线收敛得很不稳定,伴有剧烈的波动,有时甚至出现不收敛的情况
- 鉴于BGD和SGD各自的局限性,目前得训练采用Mini-Batch GD,每次对batch size得数据进行梯度计算,更新参数
-
3.Momentum
- 引入 惯性保持(动量)思想,Vt由两部分组成:一是学习率n乘以当前估计得梯度gt;二是带衰减的前一次步伐Vt-1。Vt直接依赖于Vt-1和gt,而不仅仅是gt。另外衰减系数γ扮演了阻力得作用
- 引入 惯性保持(动量)思想,Vt由两部分组成:一是学习率n乘以当前估计得梯度gt;二是带衰减的前一次步伐Vt-1。Vt直接依赖于Vt-1和gt,而不仅仅是gt。另外衰减系数γ扮演了阻力得作用
-
4.AdaGrad
- 引入 自适应思想,训练过程中,学习速率逐渐衰减,经常更新的参数其学习速率衰减更快
- AdaGrad 方法采用所有 历史梯度平方和平方根做分母,分母随机时间单调递增,产生得自适应学习速率随时间衰减的速度过于激进
- 此方法过于激进
-
5.RMSprop
-
RMSprop是Hinton在课程中提到得一种方法,是对AdaGrad算法得改进,主要是解决学习速率过快衰减得问题
-
采用梯度平方的指数加权移动平均值,其中一般取0.9,有助于避免学习速率很快下降得问题,学习率建议取值为0.001
-
-
6.Adam - 目前应用最广得方法
-
Adam 方法将惯性保持(动量)和自适应这两个有点集于一身
-
Adam 记录梯度的 一阶矩(first moment),即 过往梯度与当前梯度得平均,这体现了惯性保持:
-
Adam 还记录梯度的 二阶矩(second moment),即 过往梯度平方与当前梯度平方的平均,这类似AdaGrad方法,体现了自适应能力,为不同参数产生自适应学习速率:
-
一阶矩 和 二阶矩 采用类似于滑动窗口内求平均得思想进行融合,即 当前梯度和近一段时间内梯度的平均值,时间久远的梯度对当前平均值得贡献呈指数衰减
-
-
评估指标
-
2.分类模型
-
Accuracy
-
2.混淆矩阵 - Confusion Matrix
-