【机器学习与深度学习理论要点】22. 梯度,梯度下降,梯度消失问题,梯度爆炸问题,批量梯度下降、随机梯度下降的特点?
1、什么是梯度
梯度是一个向量,表示某一函数在该点处的方向导数沿该方向取得最大值,即函数在该点处沿着该方向变化最快,变化率最大。
2、什么是梯度下降
梯度下降是一个最优化的算法,用来递归性地逼近最小偏差模型,核心思想是按照梯度相反的方向,不停地调整函数权值,步骤为:
1)求损失函数值
2)损失是否最够小,如果不是,计算损失函数的梯度
3)按梯度的反方向走一小步(调整权重, w i = w i + δ w i w_i = w_i + \delta w_i wi=wi+δwi)
- 循环到第2步,迭代执行
3、激活函数出现梯度消失会有什么后果
在机器学习中,如果模型的优化依赖于梯度下降,梯度消失会导致模型无法进一步进行优化。
4、如何解决梯度消失问题
1)更换激活函数:如更平滑为relu,leakrelu
2)批量规范化处理:通过规范化操作将输出信号x规范化到均值为0,方差为1保证网络的稳定性
3)使用残差结构:通过引入残差结构,能有效避免梯度消失问题
5、什么是梯度爆炸,如何解决梯度爆炸问题
1)梯度爆炸:梯度消失是在计算中出现了梯度过小的值,梯度爆炸则相反,梯度计算出现了过大的值。梯度过大,可能使参数更新幅度过大,超出了合理范围。
2)解决梯度爆炸的方法
- 梯度裁剪:把沿梯度下降方向的步长限制在一个范围之内,计算出来梯度的步长的范数大于这个阈值的话,就以这个范数为基准做归一化,使这个新的梯度的范数等于这个阈值。
- 权重正则化:通过正则化,可以部分限制梯度爆炸的发生
6、什么是批量梯度下降、随机梯度下降,分别什么特点?
1)批量梯度下降
①定义:批量梯度下降是指在每一次迭代时使用所有样本来进行梯度的更新
②特点
- 优点:收敛比较稳定
- 缺点:当样本数目很大时,每迭代一步都需要对所有样本计算,训练过程会很慢
2)随机梯度下降
①定义:随机梯度下降每次迭代使用一个样本来对参数进行更新,使得训练速度加快
②特点
- 优点:计算量小,每一轮训练更新速度快
- 缺点:收敛不稳定
3)小批量梯度下降
①定义:每次迭代使用指定个(batch_size)样本来对参数进行更新
②特点
- 优点:每次在指定批量样本优化神经网络参数并不会比单个数据慢太多,大大减小收敛所需要的迭代次数,同时可以使收敛的结果更加接近梯度下降的效果
- 缺点:batch_size的不当选择可能会带来一些问题