1. 梯度的概念
在机器学习中,梯度是指一个多元函数在某一点处的变化率以及变化的方向。
对于一个参数化的函数,梯度可以告诉我们在一个特定的点处函数值增加最快的方向。
在深度学习中,梯度尤其重要,因为我们通常使用梯度下降算法来更新神经网络的参数。此时,梯度被用于计算在给定损失函数和当前参数值下,每个参数应该移动的方向和幅度,以使损失函数最小化。
梯度是多变量函数在某一点的导数(偏导数)向量。在深度学习中,梯度是损失函数相对于模型参数的偏导数。梯度指明了损失函数增长最快的方向,因此在梯度下降法中,通过向梯度的反方向调整模型参数,可以使得损失函数值下降,达到优化模型的目的。如果梯度是正的,那么在参数空间中移动的方向是增加,反之则是减少。而梯度的大小表明了将参数在梯度方向上移动多远可以导致损失函数的变化量。
梯度可以告诉我们不同方向上的最陡峭的变化率,使我们能够优化函数值并更新参数。
2. 梯度更新中存在的问题
2.1 梯度消失
梯度消失是指在深度神经网络中,由于网络层数过多,梯度通过反向传播时,乘积链中包含大量小于1的数,导致传到前面层时梯度越来越小,甚至趋向于零。这会导致网络前面层的权重几乎不更新,使得模型难以训练。
通常认为当梯度值小于或等于1e-4时