神经网络 基础知识整理
顾名思义,前向传播是从前往后传播的,从input层到output层的方向:前面一层的输出传入后一层作为输入,再对数据进行相应的处理,继续传下去,直到输出层;反向传播是从后往前传播的,从output层到input层的方向:目标函数(对应的损失函数)对某权重or某偏置(即神经网络中可训练的参数)求偏导,根据链式法则,从后往前计算偏导。
前向传播
前向传播
我们以多层感知机(MLP)为例子,来看看前向传播的过程:神经网络分为3层(输入层、中间层=隐藏层、输出层),数据分别用X、A、Y表示,输入是1*3的向量,中间层有4个神经元节点,输出有2个神经元(比如二分类任务)。X输入然后经过线性变换+非线性变换(激活函数)得到A,A再经过线性变换+非线性变换得到Y,Y经过非线性变换得到最终的输出,整个过程就是前向传播的过程。

我们来看看a1、a2、a3、a4具体的计算式子,用W表示权重,B表示偏置,表示成矩阵运算即A=f(WX+B),其中A是1*4的向量,W是4*3的矩阵,4对应着输出节点数量,3对应着输入节点数量【权重矩阵W的维度表示成m*n的话,m对应着i+1层网络层的维度,n对应着i层网络层的维度】,f是激活函数:

最后输出Y的计算式子:

pytorch中的forward函数
首先说说python中的__call__()方法,这个方法使得一个类(假设是MyClass)的实例化对象(myclass)可以直接用myclass()调用__call__()方法,而不需要myclass.__call__()这样显示调用。以下代码的输出是调用了__call__函数, 其中age=23, name=Eliy,可见myclass()等于myclass.__call__():
class

本文介绍了神经网络中的前向传播和反向传播原理,以PyTorch为例,详细讲解了前向传播过程中的多层感知机计算以及如何在自定义网络中实现forward函数。同时,阐述了反向传播算法的工作机制,包括损失函数的计算和参数梯度的求解,强调其在训练神经网络中的关键作用。

1442

被折叠的 条评论
为什么被折叠?



