反向传播的数学推导

前一篇手写识别的博文《深度学习数学基础—反向传播》中已经简单分析和推导过反向传播的原理,但是基于特定的场景给出的推导过程,现在我们再来系统的加深下神经网络反向传播的算法理解。


首先定义几个变量。

我们用来表示(l-1)层第k节点到l层第j节点的权重w

例如:


我们用来表示l层第j节点的偏差b,用来表示lj节点所受到的总影响。

例如:

可以分析得出整个神经网络正向是个递归推进的过程,公式如下:

其中σ是转换函数,在手写识别案例中σ就是sigmoid函数。

公式用矩阵简化后为:


再对公式进行一次简化:

整个网络输出的误差计算公式:

 

这里需要注意前面用的都是小写的l,对应着具体的l层节点的运算;最终误差这里用的是大写的L,对应着整个神经网络的总体的运算。

 

 

以上都是铺垫,下面我们来真正看一下一旦我们对神经网络中的某个节点做出改变会如何影响到整个网络。

如图对l层第j节点有个小恶魔做了微小的变动


改变后对该节点的产出变为:,对α的的影响是


假设

套用公式三后结果为:

前面介绍过L大小写的区别了,小恶魔对整个网络引起的差异速率为:

对公式四求导带入上面公式得:


PS:这是很重要的一步,因为万事开头难,对于反向传播来说整个网络output层反倒是修正时的最原始的input,到目前为止我们已经有了这个“input”的计算公式了,下面要解决的就是如何将其一点点往真正的input方向传递。

 

上面是站在整个网络上宏观的来分析对最终的输出造成的影响,下面我们聚焦到小恶魔只对后面一层(也就是l+1层的影响速率)

根据公式二推导出:

PS:这是另一个里程碑式的成功,因为我们具备了从l+1层计算l层误差率的方式。

 

有了上面2ps的理论,我们反向传播LàL-1àL-2à……l+1àlàl-1à….这条路就彻底打通了。

 

我们上面的小恶魔改动的是,最终我们产出的是每层的权重和偏差,再根据公式二求偏导:

这两个结果很容易推导的过来,但是给我们的启发是在求偏差还好通过结果数据可以计算的出来,但是在求每层权重的时候需要用到本节点的输入(也就是上一个节点的输出),所以我们在正向的运算时就需要把这些数据维护起来,否则无法完成反向传播的过程。


于是理解了上面的推导过程我们在处理反向传播时就有了一套很成熟的方法论了:

第一步:

将原始出入x作为α1的输入

 

第二步:

利用正向运算记得维护每层的输出。

 

第三步:

利用求网络总输出的误差率

其实这么写是为了方便理解,因为我们这里的求误差的方式是公式四,如果不是用欧氏距离来求误差需要修改等号右边第一个括号内的内容。

 

第四步:

利用从后向前求每一层的误差率

 

第五步:

利用求每一层的权重和偏差

 

第六步:

设置好步长和循环次数不断调优。


有了本篇的理论基础再回头看深度学习数学基础反向传播求导过程和代码应该如虎添翼了吧。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 卷积神经网络(Convolutional Neural Network,简称CNN)是一种基于数学推导深度学习算法,主要用于图像识别和处理。其数学推导包括了卷积运算、非线性激活函数、池化操作等。 在卷积神经网络中,卷积运算是其中一个核心概念。它通过对输入数据和滤波器(也称为卷积核)进行卷积操作,实现对输入数据的特征提取。卷积运算通过在输入数据上滑动滤波器,并将滤波器与输入数据中的对应部分相乘,然后将所有相乘的结果相加。这个过程可以通过数学推导和矩阵运算来实现,通过矩阵的乘法和求和操作,可以高效地进行卷积运算。 非线性激活函数是卷积神经网络中的另一个重要部分。它的作用是在卷积运算的结果上引入非线性变换,从而增加网络的表达能力。常见的非线性激活函数包括ReLU、Sigmoid和Tanh等。这些激活函数通过数学推导和函数的运算,将卷积运算的结果映射到一定范围内,以实现非线性的特征表示。 池化操作是卷积神经网络中的另一个关键步骤。它通过对输入数据进行降采样,减少数据的维度,从而进一步提取图像的特征。常见的池化操作包括最大池化和平均池化。最大池化选择输入数据中的最大值作为输出,而平均池化则取输入数据的均值作为输出。这些操作可以通过数学推导和简单的运算实现。 除了上述推导,卷积神经网络还包括了多层的神经网络结构、损失函数的定义、反向传播算法等。通过这些推导,我们可以更好地理解卷积神经网络的原理和工作原理,为图像处理和识别提供理论基础和数学支持。 ### 回答2: 卷积神经网络(Convolutional Neural Network, CNN)是一种主要应用于图像和语音识别等领域的深度学习算法。卷积神经网络数学推导在一定程度上可以帮助我们理解其工作原理和运行机制。 卷积神经网络数学推导主要涉及卷积操作和反向传播算法。首先,我们需要了解卷积操作。卷积操作是卷积神经网络中最重要的运算之一,它通常用于提取输入数据的特征。在数学推导中,卷积操作可以通过定义卷积核(或滤波器)和输入数据的卷积来实现。卷积操作的数学推导可以详细解释如何通过卷积核对输入数据进行滤波和特征提取。 另外,数学推导还包括了卷积神经网络反向传播算法反向传播算法是用于更新网络参数的关键步骤,通过计算损失函数对网络参数的导数,可以得到参数的梯度并进行参数更新。反向传播算法数学推导可以详细解释如何计算网络参数的导数,并通过链式法则将梯度从输出层传播到输入层。 卷积神经网络数学推导是一项复杂和深奥的任务,需要对线性代数、微积分和概率统计等数学知识有一定的了解。在理解和应用卷积神经网络时,对其数学推导的掌握可以提供清晰的思路和直观的认识。同时,掌握卷积神经网络数学推导还可以帮助我们理解和处理网络中的各个参数和运算过程,进而优化和改进网络的性能。 总而言之,卷积神经网络数学推导在一定程度上可以帮助我们理解网络的工作原理和运行机制。通过学习卷积操作和反向传播算法数学推导,我们可以更加清晰地理解卷积神经网络的各个组成部分,为进一步的研究和应用提供基础和指导。 ### 回答3: 卷积神经网络(Convolutional Neural Networks, CNN)是一种深度学习模型,特别适用于图像处理任务。其数学推导主要集中在卷积运算和反向传播算法两个方面。 卷积运算是CNN的核心操作,它基于滤波器(Filter)对输入数据进行局部感知和特征提取。假设输入数据为二维矩阵(如图像),滤波器为一个小的二维矩阵,卷积运算通过将滤波器与输入数据的不同位置进行逐元素相乘,然后将结果求和,得到一个输出特征值。通过滑动窗口的方式,可以在整个输入数据上进行卷积运算,得到一个特征图。 在数学上,卷积运算可以表示为: \[f(i, j) = \sum_{m} \sum_{n} g(m, n) \cdot w(i-m, j-n)\] 其中,\(f(i, j)\)表示输出特征图上的某个位置的值,\(g(m, n)\)表示输入数据上的某个位置的值,\(w(i-m, j-n)\)表示滤波器的权重。这个公式可以看作是对输入数据与滤波器进行一次像素级的逐元素相乘,然后将结果求和得到输出特征图上对应位置的值。 反向传播算法是CNN中的训练算法,用于在已知标签的样本上,通过更新网络参数来最小化损失函数。数学上,反向传播算法主要涉及到对损失函数求导的过程,以确定每一层网络参数的更新方向和大小。 通过链式法则,我们可以将总损失对某一层参数的导数表示为前一层参数的导数与该层输出对该层参数的导数的乘积,这样便可以通过逐层反向传播,计算每一层参数的梯度,并利用梯度下降等优化算法来更新参数。 总结起来,卷积神经网络数学推导主要包括卷积运算和反向传播算法。卷积运算利用滤波器对输入数据进行特征提取,而反向传播算法则用于训练网络参数。这些数学推导为CNN在图像处理等领域的应用提供了理论基础,并为算法改进和网络设计提供了方向。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值