BP神经网络的数学公式推导

BP神经网络的数学公式推导

学习神经网络挺长一段时间了,最近才弄明白这其中的推导过程;
推导过程参考cousera上Andrew Ng的机器学习课程;我尽量细致通俗的解释推导过程:
BP神经网络的数学公式推导
假设我们有上图的这样一个神经网络;输入层为L=0,输出层L=2;隐层L=1;
参数则有两层Theta1和Theta2;

以下的公式均采用向量化的方式表达省略了求和符号;
另外,我写公式的习惯比较贴近写代码的习惯,所以会编程的朋友可能会理解的更容易一些;(LaTeX真心不会用~~)

假设一组样本为{x1,x2,y};
x1,x2为Feature;y为result;
g [email protected](z) (1+exp(-z)).^-1; sigmoid function ;
h [email protected](theta,x) g(theta*x); hypothesis ;
cost function : J(theta) = -((1-y)*log(1-h)+y*log(h));
对于参数theta的迭代公式:theta = theta - d(J(theta))/d(theta);

OK,基本的背景公式准备完毕,开始推导:
因为我们实际上只知道输出层的预期结果,隐层的y值是没有的,所以要分开计算隐层和输出层的d(J(theta))/d(theta);
有鉴于一行行的敲公式太麻烦,这里直接贴图了:
BP神经网络的数学公式推导
BP神经网络的数学公式推导
BP神经网络的数学公式推导
最后一张图中,一般公式的推导可能有人不会太明白,这里要解释一下:
对于任意一层:i
BP神经网络的数学公式推导

补充:cost function 的来源是基于最大似然法的思想获得的,这是很有趣的事情,有兴趣的可以了解一下;
实际的应用中,还要加入正则,这里不做讨论;可以看我的另一个博客里有基于MATLAB 的简单BP的实现,里面有正则的使用;