Datawhale X 李宏毅苹果书 AI夏令营


TASK1主要是对于3.1节各种不同的局部极小值以及3.2节中在梯度下降法中涉及的批与动量等概念的学习。

3.1局部极小值与鞍点

对于神经网络参数的训练,就是在参数空间里寻找使得损失函数最小的参数值。而损失函数的最小值一定是局部极小值,局部极小值不一定是损失函数的最小值。并且由于参数空间一般维度较高,局部极小值较多,不易判断当前得到的极小值是否是最优值。因此要通过其他方法判断得到极小值时是否停止迭代。

判断不同临界点

显然损失函数梯度为零是临界点的一个标志,也是损失函数值为局部极小值的一个必要条件。但是仍然需要有更多的信息来判断临界点的状态。
对损失函数在当前得到的梯度为零的参数值进行泰勒展开,由于参数是个向量,那么一阶导是一个向量(此时为0)而二阶导是一个矩阵(hessian矩阵)。
判别方法是若这个矩阵是正定的(所有特征值均为正)那么当前损失函数值是局部极小值,即,在一个选定的范围内,无论当前参数如何变动,都会使损失函数值变大。
当然如果是负定的(特征值全负)则为局部极大值。而如果是不定的(有正有负),则参数的改变不一定会减小或增大损失函数值,也就是鞍点,从图像可以看出确实导数为零而不是局部极小。此时可以选取hessian矩阵中负特征值的特征向量作为优化方向来优化参数。
后面还提到,落入鞍点实际上在实际训练中非常常见。如果说寻找临界点时要以hessian矩阵达到正定为目标,那么一般也只能完成50%到60%,毕竟维度是非常高的。这就导致大部分训练时损失函数下降停滞是卡在了鞍点。

3.2批量和动量

批量指每次更新参数是要学习多少样本,由于每一轮训练要将所有样本都用到一遍,所以批量大小不同,每一轮更新的次数也不同,调整这个超参数可以改变训练的效果。动量是用来摆脱鞍点的一个量,在鞍点被卡住时,可以通过上一次更新的惯性来离开鞍点。

批量的影响

如果不分批次进行训练,即每次将所有样本学习一遍后再更新一次参数,这样历次更新的参数变化更加平滑,更加准确,同时由于并行计算的存在,同等轮次的训练中速度会更快。缺点是对内存要求高,同时训练出来的模型过拟合,性能差。
分批进行梯度下降可以有效提高模型性能,由于随机噪声的扰动,参数不易被卡在鞍点,难以继续下降。

动量的影响

在鞍点被卡住时,实际上就是此时一阶导为零,用梯度下降法已没有可移动的方向。动量法就是在下降方向上加入一定权重的上一次更新的方向,这样即便梯度为零,仍然会按照倒数第一次的方向再更新参数,可以使损失函数继续有效的减少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值