首页 > 编程语言 > 详细

神经网络BP算法推导

时间:2020-03-05 11:54:18      阅读:61      评论:0      收藏:0      [点我收藏+]

Cost Function

  • \(L\):表示神经网络的总层数。
  • \(S_l\):表示第\(l\)层的单元数(即神经元的数量),其中不包括第\(l\)层的偏置单元。
  • \(K\):输出层单元数目。
  • \(\left( h_\Theta \left( x^{\left( i\right)} \right) \right)_k\):表示输出神经网络输出向量中的第\(k\)个元素。
  • 如果一个网络在第\(j\)层有\(S_j\)个单元,在\(j+1\)层有\(S_{j+1}\)个单元,那么矩阵\(\theta^{\left(j\right)}\),即控制第\(j\)层到第\(j+1\)层映射的矩阵,他的维度是\(S_{j+1}\times(S_j+1)\).

  • 神经网络代价函数(带正则化项):
    \[ J(\theta)=\frac1m \sum_{i=1}^m \sum_{k=1}^K \left[ - y^{\left(i \right)}_k log \left( h_\Theta \left( x^{\left( i\right)} \right) \right)_k - \left( 1-y^{\left( i\right)}_k \right) log \left( 1- \left( h_\Theta \left( x^{\left( i\right)} \right) \right)_k \right) \right] + \frac {\lambda}{2m} \sum_{l=1}^{L-1} \sum_{i=1}^{S_l} \sum_{j=1}^{S_{l+1}} \left( \Theta_{ji}^ { \left( l \right) } \right)^2 \]
  • 看起来复杂很多的代价函数背后的思想还是一样的,通过代价函数来观察算法预测的结果与真实情况的误差有多大。
  • 唯一不同的是对于每一行特征,都会给出\(K\)个预测。在\(K\)个预测中选择可能性最高的一个,将其与\(y\)中的实际数据进行比较。
  • 正则化的那一项是排除了每层的\(\theta_0\)后,每一层的\(\theta\)矩阵的和。最里面的循环\(j\)循环所有的行,由\(S_{l+1}\)层的激活单元数决定;循环\(i\)则循环所有的列,由\(S_l\)层的激活单元数决定。

Forward propagation

\(\theta^{\left(i\right)}\):第\(i\)层的参数矩阵(即控制第\(i\)层到第\(i+1\)层映射的矩阵)
\(z^{\left(l\right)}\):第\(l\)层的输入
\(a^{\left(l\right)}\):第\(l\)层的输出

Backpropagation Algorithm

\(\delta^{\left(l\right)}\):第\(l\)层的误差

神经网络BP算法推导

原文:https://www.cnblogs.com/yangdd/p/12419326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!