zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

李宏毅机器学习_7-3训练DNN的技巧

机器训练学习 技巧 DNN 李宏毅
2023-09-11 14:14:28 时间

模型的效果不好,就要明确是在训练集效果不好还是在测试集效果不好,即使有偏差还是有方差,不同的原因采取相对应的措施。
训练集:学习率、模型结构的激活函数
测试集:提前停止,正则化,dropout

在这里插入图片描述
BUYID测试集效果不好不一定就是过拟合,可能训练集本身就差。
在这里插入图片描述
针对不同的目标,有不同的优化方式,分清是针对训练过程还是测试过程,训练结果还是测试结果
在这里插入图片描述
sigmoid激活函数存在的问题
在这里插入图片描述
衍生出来了线性的激活函数
在这里插入图片描述

B
在这里插入图片描述
relu是特殊的maxout
在这里插入图片描述
adgradgrad,不同方向不一样,同一方向一致
在这里插入图片描述
RMSRMSprop,不同方向也不一致,参数可以自动学习出来
在这里插入图片描述
当前的梯度方向,是当前的梯度和之前梯度做向量计算之后的结果
在这里插入图片描述
原来原来的惯性和现在的梯度相结合的方式,避免陷入局部最优
三种情况,原来的梯度和当前梯度方向一致叠加
最新的梯度为0,原来的梯度会当做惯性继续运动
原来的梯度和当前的梯度方向相反,假如原来的梯度够大会继续往前,这样就跳出局部最优了
另外一个就是,损失函数对参数的的梯度为0,需要所有维度的梯度累乘,这个从概率的角度几率是比较小的
在这里插入图片描述

adaaadam,就是前面的结合。
在这里插入图片描述
测试测试集上的优化,把控训练过程
在这里插入图片描述
测试测试集上,把控损失函数,加入正则表达式,本质上是缩小参数,L2是乘以小系数,大的影响大,所以没有很大的值,整体平滑,L1是直接相减大的影响小,小的影响大,存在很大的值,小的值趋于0.
在这里插入图片描述
dropout很形象的比喻。
在这里插入图片描述
本本质上是个集群学习,训练的时候训练处多个模型,测试的时候直接取各个模型的均值,来减小方差,达到平滑的目的。

在这里插入图片描述
为何训练的时候做dropout在测试的时候,参数要设置为原来的1-p%

在这里插入图片描述
在线性的情况下是相等的,这就是为何激活函数是RELU或者MAXOUT的时候是会更接近,这个从原理上是可以说得通的