李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?

目录

b站学习视频地址:​​​​​​李宏毅《机器学习/深度学习》2021课程(国语版本,已授权)_哔哩哔哩_bilibili

一、局部最小值(Local minima)和鞍点(Saddle point)

二、批次(Batch)和动量(Momentum)

三、自动调整学习率

四、损失函数也可能对训练有影响

五、批次标准化(BN)


b站学习视频地址:​​​​​​李宏毅《机器学习/深度学习》2021课程(国语版本,已授权)_哔哩哔哩_bilibili

        此次学习视频为李宏毅老师2021年的最新课程,相比较2019年的内容添加了很多的前沿知识。可以在学习完2019基础理论之后,进一步学习2021年的课程。

一、局部最小值(Local minima)和鞍点(Saddle point)

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第1张图片

如何判断是局部最小值还是鞍点?

通过泰勒展开式,逐项逼近函数值。然后判断该点处的二阶导数值。

二阶导数大于0,则为局部最小值,二阶导数小于0.则为局部最大值。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第2张图片

如果二阶导数值有大有小,则该点为鞍点。可以通过求解对应的海塞矩阵进行判断是否为鞍点。

eg:如下图所示,在(0,0)处的海塞矩阵的特征值求解出来为2和-2,有正有负,则该点就为鞍点。 

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第3张图片

那么如果该点为鞍点,则该如何更新呢?视频中指出,可以按照对应特征值的特征向量方向进行更新。就可以让你的loss减少。 但是要求特征值小于0。

二、批次(Batch)和动量(Momentum)

左边不采用batch ,右边batch size 为1。可以看出来,左边的比较稳,蓄力时间长。右边的蓄力时间短,但是不稳定,有曲折。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第4张图片

      如下左图所示: 因为Gpu有着平行运算的能力,所以batch size为1和1000的计算时间相差无几,但是如果你有60000个样本数据,那么如果batch size为1,则需要60000次更新才能完成一个epoch,相反如果batch size为1000。则仅需要60次更新就能完成一个epoc。对应的运行时间如下右图所示。可以看出大的batch size并没有在时间上有劣势。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第5张图片

        但是小的batch size不容易陷入局部最优解,因为就算某一个batch size陷入了,其它的照样可以进行优化。对训练也更好。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第6张图片 所以batch size也成为了一个不可获取的超参数。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第7张图片

        引入动量(Momentum),除了考虑当前梯度反方向之外,还需要考虑上一步的移动方向。简单来说就是考虑了上一步带给本次步骤的惯性因素。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第8张图片

三、自动调整学习率

loss下降的很低的时候,并不一定梯度为0。因此引入自动学习率,不同的参数配备不同的学习率。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第9张图片

不同的学习率除以不同的参数,计算方式如下图所示,即除以之前所有梯度的平方均值根。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第10张图片

为什么这样做有用呢?可以看出当你的梯度很小时,取平方均值根就很小,然后学习率除以它就会很大。也就是步伐更大,从而取得平衡。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第11张图片

四、损失函数也可能对训练有影响

一般采用one hot编码方式表示。

多分类问题采用soft max。

  • softmax 会让大的值跟小的值差距更大
  • softmax 的输入我们一般叫作 logit

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第12张图片

为什么对于 classification 而言选 cross-entropy 更合适?

  • 不同的 loss function 会改变训练的难度
  • mse 更难训练

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第13张图片

 

 

五、批次标准化(BN)

对特征做均值为0方差为1的归一化,有助于训练。 

Batch Normalization - Training
如果每次都使用所有的输入examples进行normalization,将会是一个large network,所以考虑 a batch 是自然而然的 — Batch Normalization适用于 batchsize 比较大的时候。

李宏毅机器学习打卡Task05:神经网络训练不起来怎么办?_第14张图片

你可能感兴趣的:(机器学习,机器学习,人工智能,深度学习,回归)