Task5
神经网络设计技巧
有一个崎岖不平误差曲面
某时刻损失函数不随参数更新而下降,怎么回事?
猜想:梯度(导数)到达0了?
- 卡在局部最低
- 卡在平缓的马鞍处
分批次训练,批次的大小至关重要,不同规模的批次拥有不同的优缺点
动量思想:每次下降的方向不仅是与梯度相反的方向,并且考虑进去上一步的方向
训练受阻(损失函数不再下降)不等同于梯度很小,还有什么原因呢?
自动调整学习率
应该用不同的学习率配合不同的参数:全局学习率之后,每次通过,全局学习率逐参数的除以历史梯度平方和的平方根,使得每个参数的学习率不同(Adagrad优化方法)
改进:RMSProp方法
常用的优化方法Adam:RMSProp+momentum
有无办法将崎岖不平的误差曲面变简单呢?(只有一个全局最低点)
分类
将不同的类别用one-hot 向量(只有一个有效位,其余为0)表示
二分类问题一般用Sigmoid函数将结果映射到0-1之间,多分类问题一般用softmax函数将结果映射到0-1之间
计算代价:
- 将映射到0-1后的结果和目标标记做差再平方再求和
- 用交叉熵
批次标准化
有无办法将崎岖不平的误差曲面变简单呢?(只有一个全局最低点)
批次标准化就是这种想法
将不同维度的输入统一到相同的范围内,这样出来的误差曲面不会很崎岖
特征归一(标准)化