https://www.bilibili.com/video/BV1V54y1B7K3?p=6https://www.bilibili.com/video/BV1V54y1B7K3?p=6https://www.bilibili.com/video/BV1V54y1B7K3?p=6
回顾:
基于动量法的GD:注意他是直接改变梯度值 g = f(g)
减少震荡:震荡的时候梯度是正负值依次出现,因此用上一次的梯度值来抵消这一次的梯度
加速平坦:累加
基于自适应思想的GD:这种方法没有利用震荡时梯度正负值交替出现的特点,而是利用平方运算(平方梯度)放 大梯度的大小,改造学习率,从而达到有效梯度下降的目的
关于loss
(1)一般的loss计算
(2)带正则损失的loss计算
(3)softmax交叉熵
过拟合与欠拟合
overfit:参数过多,过于复杂的模型掩盖了真正重要的参数,相当于只是牢牢记住训练集。比如说学习识别猫,有些图像猫只有三只脚,模型就记住了这一点
underfit:参数过少,没有触及到多数真正重要的参数
总的来说,两者都没能很好地学习到数据特征
由此,ML的根本问题就是模型的优化和泛化
大框可以叫训练前期,小框可以叫训练后期
处理overfit
最优方案:增加数据集。比如说获取全世界所有的猫图片
次优方案:1.缩小网络 2.增加正则损失,因为他使模型朝向权值分散修正,尽量使用所有特征
3.随即失活,丢弃学习。一方面缩小了网络,一方面间接起到了分散权值的作用 ,最后可以看作多个小网络的集成
随机失活的评估
假设dropout = 0.5,可以计算出训练阶段输出层某个神经元的期望,比较测试阶段该神经元的期望,就会发现两者不匹配,需要乘上一个dropout
那么我们就设置一个dropout层,在做随机失活的同时先除掉这个dropout.
dropout层的计算不是按照矩阵乘法的规则,而是按位相乘
超参数调优
法一:排列组合,网格法
法二:随机搜索。感觉上还是要在跟网格法一样的取值范围内
如何进行随机搜索?
1.粗搜索。在较大范围内采样,训练一个周期,选择验证集正确率小的范围
2.精搜索:在上步骤训练5-10个周期,选择在验证机上精度最高的
搜索的范围如何确定?超参数的标尺空间?
这个值要涉及到不同量级,所以是在log空间中选取