前馈神经网络的正向传播和反向传播算法的推导

《前馈神经网络的正向传播和反向传播算法的推导》 单个神经元

    首先对本文中使用的符号进行解释,本文中出现的向量都默认为列向量《前馈神经网络的正向传播和反向传播算法的推导》表示样本数量,《前馈神经网络的正向传播和反向传播算法的推导》表示单个样本包含的输入特征数量,《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》个样本的第《前馈神经网络的正向传播和反向传播算法的推导》个特征值。《前馈神经网络的正向传播和反向传播算法的推导》表示从1开始计数的神经网络层号,《前馈神经网络的正向传播和反向传播算法的推导》表示最大层号,《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层包含的神经元数量(即输出特征数量)。《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层包含的神经元数量。《前馈神经网络的正向传播和反向传播算法的推导》《前馈神经网络的正向传播和反向传播算法的推导》分别表示《前馈神经网络的正向传播和反向传播算法的推导》层第《前馈神经网络的正向传播和反向传播算法的推导》个神经元的状态值和激活值,《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层中所有神经元的状态值组成的向量,《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层中所有神经元的激活值组成的向量。《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元与第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元连接的权重,《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元的偏置。《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元与第《前馈神经网络的正向传播和反向传播算法的推导》层中神经元连接的权重向量,《前馈神经网络的正向传播和反向传播算法的推导》表示该神经元的线性变换向量。《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层中所有神经元的权重向量组成的权重矩阵,每个神经元的权重向量是它的一个列向量;《前馈神经网络的正向传播和反向传播算法的推导》表示第《前馈神经网络的正向传播和反向传播算法的推导》层中所有神经元的线性变换向量组成的矩阵,每个神经元的线性变换向量是它的一个列向量。

    上面图片所示的是单个神经元,其中《前馈神经网络的正向传播和反向传播算法的推导》是神经元的状态值,《前馈神经网络的正向传播和反向传播算法的推导》是神经元的激活值,《前馈神经网络的正向传播和反向传播算法的推导》是从上一层神经网络到该神经元的线性变换向量(《前馈神经网络的正向传播和反向传播算法的推导》为偏置《前馈神经网络的正向传播和反向传播算法的推导》和权重向量《前馈神经网络的正向传播和反向传播算法的推导》组成的向量)。《前馈神经网络的正向传播和反向传播算法的推导》为激活函数,本文中采用《前馈神经网络的正向传播和反向传播算法的推导》函数作为激活函数,即《前馈神经网络的正向传播和反向传播算法的推导》,那么《前馈神经网络的正向传播和反向传播算法的推导》

一、正向传播算法

        神经网络的正向传播算法,从输入层到隐藏层最后到输出层,依次计算每个神经元的状态值和激活值。在输入层中,《前馈神经网络的正向传播和反向传播算法的推导》,那么第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元的状态值和激活值有下面的递推公式:

    《前馈神经网络的正向传播和反向传播算法的推导》

    第《前馈神经网络的正向传播和反向传播算法的推导》层中所有神经元的状态值和激活值有下面的递推公式:

    《前馈神经网络的正向传播和反向传播算法的推导》

    这样,根据输入层的激活值,使用递推公式就可以从输入层向后依次计算出每层神经网络的状态值和激活值。这就是正向传播算法。

二、反向传播算法

    神经网络的反向传播算法,用于计算损失函数关于每个权重《前馈神经网络的正向传播和反向传播算法的推导》和偏置《前馈神经网络的正向传播和反向传播算法的推导》的偏导数,与具体损失函数的形式无关。另外,假设本文中涉及的函数都是可微的,那么就可以使用链式法则来计算偏导数

    设《前馈神经网络的正向传播和反向传播算法的推导》为损失函数,那么它是一个高度复合的函数,可以看作是关于《前馈神经网络的正向传播和反向传播算法的推导》《前馈神经网络的正向传播和反向传播算法的推导》的函数,也可以看作是关于《前馈神经网络的正向传播和反向传播算法的推导》的函数。设《前馈神经网络的正向传播和反向传播算法的推导》是第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元的误差率,下面我们来计算《前馈神经网络的正向传播和反向传播算法的推导》

    第《前馈神经网络的正向传播和反向传播算法的推导》层的第《前馈神经网络的正向传播和反向传播算法的推导》个神经元与第《前馈神经网络的正向传播和反向传播算法的推导》层的所有神经元相连,损失函数可以看作是关于《前馈神经网络的正向传播和反向传播算法的推导》的函数,《前馈神经网络的正向传播和反向传播算法的推导》又是《前馈神经网络的正向传播和反向传播算法的推导》的函数,即损失函数作为复合函数有《前馈神经网络的正向传播和反向传播算法的推导》条路径可以从《前馈神经网络的正向传播和反向传播算法的推导》到达《前馈神经网络的正向传播和反向传播算法的推导》,那么:

    《前馈神经网络的正向传播和反向传播算法的推导》《前馈神经网络的正向传播和反向传播算法的推导》

    《前馈神经网络的正向传播和反向传播算法的推导》

    《前馈神经网络的正向传播和反向传播算法的推导》

    那么,第《前馈神经网络的正向传播和反向传播算法的推导》层中所有神经元的误差率组成的向量,和,第《前馈神经网络的正向传播和反向传播算法的推导》层的线性变换矩阵的偏导数,有下面的递推公式:

    《前馈神经网络的正向传播和反向传播算法的推导》

    《前馈神经网络的正向传播和反向传播算法的推导》

    《前馈神经网络的正向传播和反向传播算法的推导》

    这样,《前馈神经网络的正向传播和反向传播算法的推导》可以由损失函数的形式直接求出,使用递推公式就可以从输出层向前依次计算出每层神经网络的误差率和线性变换矩阵的偏导数。这就是反向传播算法。

    如果使用《前馈神经网络的正向传播和反向传播算法的推导》激活函数和下面形式的损失函数:

    《前馈神经网络的正向传播和反向传播算法的推导》

    那么可以计算出只有单个样本时第《前馈神经网络的正向传播和反向传播算法的推导》层的误差率为《前馈神经网络的正向传播和反向传播算法的推导》(不考虑正则项),分别计算出单个样本时参数的偏导数,然后将所有样本的偏导数相加,即可计算出损失函数关于所有样本时参数的偏导数。

    原文作者:xphter
    原文地址: https://www.jianshu.com/p/c33f1b4e87dd
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞