3.3 自适应学习率
要搞清楚损失率、梯度、学习率之间的关系。
要走到一个临界点其实是比较困难的,多数时候训练在还没有走到临界点的时候就已经停止了。
3.3.1 AdaGrad
AdaGrad(Adaptive Gradient)是典型的自适应学习率方法
随着梯度的不同,每一个参数的梯度的不同,来自动调整学习率的大小。
3.3.2 RMSProp
在 RMSprop 里面,可以自己调整现在的这个梯度的重要性。
3.3.3 Adam
最常用的优化的策略或者优化器
这个优化器里面有一些超参数需要人为决定,但是往往用 PyTorch 预设的参数就足够好了。
3.4 学习率调度
针对“爆炸”问题:学习率调度(learning rate scheduling)可以解决这个问题
预热的方法是让学习率先变大后变小,至于变到多大、变大的速度、变小的速度是超参数。
除了残差网络,BERT 和 Transformer 的训练也都使用了预热
3.5 优化总结
这种优化器除了 Adam 以外,还有各种变形
3.6 分类
分类与回归是深度学习最常见的两种问题
3.6.1 分类与回归的关系
回归是输入一个向量 x,输出 yˆ,我们希望 yˆ 跟某一个标签 y 越接近越好,y 是要学习的目标。
分类可当作回归来看,输入 x 后,输出仍然是一个标量 yˆ,要让它跟正确答案的那个类越接近越好。
3.6.2 带有 softmax 的分类
softmax 除了归一化,让 y′1、y′2 和y′3,变成 0 到 1 之间,和为 1 以外,它还会让大的值跟小的值的差距更大。
3.6.3 分类损失
做分类时,选均方误差的时候,如果没有好的优化器,有非常大的可能性会训练不起来。