前言:
关于我最近学习深度学习的一点感悟就是,要建立一个完整的卷积神经网络,最重要的是对它的前向传播和反向传播进行数学建模。虽然现在使用OpenCV和Tensorflow等工具,可以很便捷的实现一个前人完成的成熟的神经网络,但是如果你的目的是创造一个神经网络并对其进行优化,了解并熟悉整个网络参数的传递过程和演变过程是十分必要的。
关于前向传播,有一点高数和线代基础的同学可以根据神经网络的模型,给出相应传递的公式,这个难度不大;而反向传播还是有一点难度的,虽然Jake Bouvrie在2006年发表的名为《Notes on Convolutional Neural Networks》的论文中进行了推导,但是如果数学基础不好,其中一些公式理解起来可能会有难度。我也搜索过网上已有的一些推导的过程,可惜都是错的。
写这篇博文的主要目的,就是对其中难以理解的几个公式进行分解和推导。一方面帮助自己记忆,另一方面也能帮助大家更好的理解。以下是推导的原论文:
http://cogprints.org/5869/1/cnn_tutorial.pdf
正文:
1.首先是论文中的公式(4)
以下给出推导过程: