社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

彻底搞懂深度学习-前向传播和反向传播(动图讲解)

架构师带你玩转AI • 16 小时前 • 9 次点击  

在深度学习中,模型的每个训练周期(epoch)都会通过循环迭代的方式,依次执行前向传播与反向传播过程

前向传播神经网络从输入到输出计算预测值的过程,负责将输入数据通过网络中的各层神经元逐层计算和转换,最终输出预测结果。
而反向传播则是从输出层反向逐层计算损失函数对网络参数(权重和偏置)的梯度,并依据梯度更新参数,以最小化损失函数、优化模型性能并提升预测准确性。

一、前向传播(Forward Propagation
前向传播是神经网络通过逐层计算,从输入层开始,经过隐藏层,最终到达输出层,以产生预测值的过程
在这个过程中,输入数据通过网络中的权重和偏置进行线性变换,然后通过激活函数进行非线性变换,得到每一层的输出。最终,输出层的输出即为神经网络的预测值。
图片

(1)输入层接收数据

输入层是神经网络的第一层,它接收来自外部的数据。

(2)计算隐藏层输出

数据从输入层传递到隐藏层,隐藏层中的每个神经元都会接收来自上一层神经元的输入,并计算其加权和。加权和通过激活函数(如ReLU、Sigmoid、Tanh等)进行非线性变换,生成该神经元的输出。

(3)计算输出层输出

输出层是神经网络的最后一层,它接收来自隐藏层的输入,并计算最终的输出。

图片
、反向传播(Backw ard Propagation
反向传播则是根据损失函数计算梯度,并据此更新网络的权重和偏置
在这个过程中,从输出层开始,利用损失函数逐层计算各神经元的误差,再结合前一层的激活值,求出当前层权重的梯度(即损失函数对权重的偏导数)。最后,通过优化算法(如梯度下降)利用这些梯度更新网络参数,以降低损失函数值。
图片

一、计算误差

在神经网络的训练过程中,我们需要一个衡量模型预测输出与真实输出之间差异的标准,这个标准就是损失函数。常见的损失函数包括均方误差(MSE)、交叉熵损失(Cross-Entropy Loss)等。

二、计算梯度

计算误差后,需要利用链式法则(Chain Rule)将损失函数的值反向传播到网络的每一层,并计算每个权重的梯度。梯度表示了损失函数相对于每个权重的变化率,用于指导调整权重以减小损失函数的值。

三、更新参数

得到每个权重的梯度后,使用梯度下降(Gradient Descent)等优化算法来更新网络的权重和偏置。梯度下降算法的基本思想是沿着梯度的反方向更新权重,以减小损失函数的值。
(1)输入层:接收输入特征,是数据的入口。
(2)隐藏层:位于输入层和输出层之间,用于提取特征与整合。
(3)输出层:给出最终的预测结果。
图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183022
 
9 次点击