LSTM的梯度、学习率、前项传播等

梯度:在每一次学习迭代中使用反向传播算法计算损失函数对每一个权重或偏置的导数

从权重或偏置中减去这个梯度方向的标量值以降低网络的损失。由于梯度的反方向是函数下降最快的方向,为了控制参数调整的速度,算法使用梯度乘以一个步长来当作参数的修正量,这个步长又叫做学习率,即梯度 * 学习率作为参数的修正量

        学习率作为控制网络学习速度的超参数,设置过小则模型的收敛速度就会变得很慢,设置过大则会发生振荡导致网络无法收敛。因此通常在训练开始时使用较大的学习率以加快训练速度,等逐渐接近损失最小值点时再采用较小的学习率使网络收敛

       神经网络的执行步骤:输入的前向传播;误差的反向传播

       前向传播过程将输入值送入网络并得到相应的预测值输出。输入值首先进入网络的输入层,不执行任何运算进而传递到隐含层进行处理。在隐含层中,输入值经过加权求和、激活运算等处理后继续传递给下一层,后续隐含层也按同样方式处理,直到传递给输出层。最后经过输出层的处理获得网络的输出结果。

       前向传播过程之后网络得到了输出结果,即目标的预测值,为了计算网络预测值与目标实际值之间的误差,网络使用了损失函数来计算误差值,然后计算误差值的梯度来更新神经网络中的权重或偏置。反向传播过程使用了微积分学中的链式法则,首先计算输出层中每个节点误差值的梯度,并使用这些梯度值逆向计算上一层节点的梯度,并重复这一过程直到获得隐含层所有节点的梯度,输入层的节点无需计算。然后从各个参数值中减去相应梯度和学习率的乘积来更新参数降低误差,通过梯度下降来不断降低总体的误差损失。 在神经网络的学习训练过程中,交替执行上述两个过程,不断迭代直至学习次数达到最大或者网络的误差达到最低时训练才会停止,即网络收敛。

上一篇:pytorch实现IMDB数据集情感分类(全连接层的网络、LSTM)


下一篇:大数据之-Hadoop3.x_MapReduce_ReduceTask源码解析---大数据之hadoop3.x工作笔记0127