网易云课堂吴恩达深度学习微专业相关感受和总结。因为深度学习较机器学习更深一步,所以记录机器学习中没有学到或者温故知新的内容。
闲来复习,可以学到很多东西!
上一篇:深度学习(1)--小总结(验证训练、方差误差、L1L2正则化、dropout、提前停止、输入归一化、梯度爆炸和消失、梯度检验)https://blog.youkuaiyun.com/qq_36187544/article/details/90261834
下一篇:深度学习(3)--小总结(评估指标,查准查全率,正交化思想,划分数据集,贝叶斯最优误差,解决数据不匹配,多任务学习,端到端架构)https://blog.youkuaiyun.com/qq_36187544/article/details/92564198
目录
指数加权平均值与偏差修正
指数加权(移动)平均值,是一种优化算法。理解:通过加权的方式计算均值。内存代码仅仅占用一行数字而已,不断覆盖掉原有的V值即可,只占单行数字的存储和内存.虽然不是最精确的计算平均值的方法,但是相比于原有的计算平均值需要保存所有数据求和后取平均的方法效率更高和资源占用率大大减小.所以在机器学习中大部分采用指数加权平均的方法计算平均值.递推公式如下(占用常数级内存):
偏差修正,在指数加权(移动)平均值算法中,前几次偏差会较大,采用另外一种评估方式:
详细算法介绍分析:https://www.cnblogs.com/cloud-ken/p/7723755.html
简言之,这是动量梯度下降的数学原理。
momentum梯度下降
momentum梯度下降(动量梯度下降),运用指数加权平均值,更快下降收敛,减少水平方向波动(下降比作下山的话,尽可能要竖直方向)。可以理解成公式提供了速度和加速度,且速度的常数项小于1,摩擦力减速。
应用须知:动量梯度下降能加快收敛速度
RMSprop与adam
RMSprop均方根,同样以减小摆动的方式加快收敛速度,类似于动量梯度下降
adam结合动量梯度下降,采用二阶微分思想实现自适应调整学习率。
学习率衰减
目的为使收敛的更快更精细(记住这些专业词,当时去查学习率衰减不知道叫啥,具体需要的时候再查,衰减方式很多如指数衰减等方式)
调参建议
参数选择不要用线性轴,对数轴更好。比如学习率0.0001到0.1,对数轴寻找更好的值(实际上都是直接手动调节)
batch归一化与BN层
batch归一化,已知对于输入的参数进行归一化处理收敛更快更好,batch归一化的思想即将隐藏单元也进行同样的归一化处理,加快收敛速度。
BN层即在网络过程中加入Batch Normalization层,实现batch归一化
作用:实现BN层前面的层与BN层后面的层相对独立,减弱了前面的层参数对后面层参数的影响(因为被归一化了),助于加速网络训练;轻微正则化的作用(所以可以和dropout共同使用加强正则化效果)
注意:BN层参数涉及到均值和方差,所以在做预测时,通常放入一个样本进行预测,这样均值和方差就没有意义,所以一定要保存BN层参数,tensorflow需要手动保存,吃过的大亏,解决方案:加入BN层后预测与训练时准确率差距很大解决方案,is_traing参数(ResNet,GoogLeNet,Inception)https://blog.youkuaiyun.com/qq_36187544/article/details/91429723