源视频:https://www.bilibili.com/video/BV11K4y1S7AD?p=5
学习笔记总结
1 当损失函数随着参数更新而没有下降或者误差仍然很大,一般表示一阶偏微分梯度向量等于0。
此时判断方法:
二阶偏微分矩阵H来判断此时是否处于saddle pint;
在原有参数上加上对应的H矩阵负特征值对应的特征向量,从而逃离saddle point 继续寻找降低损失函数值。(计算量较大)
低维下找不到路径优化的损失函数放到高维空间也许很容易找到下降路径。
2 batch size
一次选取纳入训练的样本数,每读取一次batch size 计算一次梯度来更新参数,再读取下一个batch样本接着计算梯度更新参数,依次迭代。
一个epoch 是读取完一次所有batch。
有无并行运算决定了单次运行batch size的计算速度,通常来说 越小batch size训练出来的模型效果越好,但计算时间越长,而越大的batch size则计算速度更快。
3 趋势项
类似惯性概念,在传统梯度下降方法中加入趋势项,从而赋予梯度下降法逃逸saddle point 局部最优解的能力。
每一次更新权重时加入上一次参数变化move向量,梯度向量和move向量两者合成出新的参数更新向量。
4 自适应学习率
平方根法则或RMSprop来根据计算的梯度大小来自适应调整学习率,结合预先制定的学习率变化策略和趋势变化项 ,从而更好完成梯度下降(Adagrad方法则是实现不同参数应用不同学习率)
5 批标准化
对网络输入层和隐藏层输出做归一化处理,让训练速度更快收敛
6 回归转化为多分类
利用softmax激活函数将回归值应用到多分类问题,一般会默认使用交叉熵作为损失函数来更新参数