在深度学习中,模型的每个训练周期(epoch)都会通过循环迭代的方式,依次执行前向传播与反向传播过程。
前向传播是神经网络从输入到输出计算预测值的过程,负责将输入数据通过网络中的各层神经元逐层计算和转换,最终输出预测结果。
而反向传播则是从输出层反向逐层计算损失函数对网络参数(权重和偏置)的梯度,并依据梯度更新参数,以最小化损失函数、优化模型性能并提升预测准确性。
一、前向传播(Forward Propagation)
前向传播是神经网络通过逐层计算,从输入层开始,经过隐藏层,最终到达输出层,以产生预测值的过程。在这个过程中,输入数据通过网络中的权重和偏置进行线性变换,然后通过激活函数进行非线性变换,得到每一层的输出。最终,输出层的输出即为神经网络的预测值。(1)输入层接收数据
输入层是神经网络的第一层,它接收来自外部的数据。
(2)计算隐藏层输出
数据从输入层传递到隐藏层,隐藏层中的每个神经元都会接收来自上一层神经元的输入,并计算其加权和。加权和通过激活函数(如ReLU、Sigmoid、Tanh等)进行非线性变换,生成该神经元的输出。
(3)计算输出层输出
输出层是神经网络的最后一层,它接收来自隐藏层的输入,并计算最终的输出。
二、反向传播(Backw
ard Propagation)
反向传播则是根据损失函数计算梯度,并据此更新网络的权重和偏置。在这个过程中,从输出层开始,利用损失函数逐层计算各神经元的误差,再结合前一层的激活值,求出当前层权重的梯度(即损失函数对权重的偏导数)。最后,通过优化算法(如梯度下降)利用这些梯度更新网络参数,以降低损失函数值。一、计算误差
在神经网络的训练过程中,我们需要一个衡量模型预测输出与真实输出之间差异的标准,这个标准就是损失函数。常见的损失函数包括均方误差(MSE)、交叉熵损失(Cross-Entropy Loss)等。
二、计算梯度
计算误差后,需要利用链式法则(Chain Rule)将损失函数的值反向传播到网络的每一层,并计算每个权重的梯度。梯度表示了损失函数相对于每个权重的变化率,用于指导调整权重以减小损失函数的值。
三、更新参数
得到每个权重的梯度后,使用梯度下降(Gradient Descent)等优化算法来更新网络的权重和偏置。梯度下降算法的基本思想是沿着梯度的反方向更新权重,以减小损失函数的值。(2)隐藏层:位于输入层和输出层之间,用于提取特征与整合。