BP算法的原理解释和推导

Posted Super__Tiger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BP算法的原理解释和推导相关的知识,希望对你有一定的参考价值。

BP算法的原理解释和推导

已知的神经网络结构:

且已知的条件:

  • a ( j ) = f ( z ( j ) ) \\mathbfa^\\left( \\mathbfj \\right)=\\mathbff\\left( \\mathbfz^\\left( \\mathbfj \\right) \\right) a(j)=f(z(j))
  • z ( j ) = W ( j ) a ( j − 1 ) + b ( j ) ,而 θ ( j ) = W ( j ) , b ( j ) \\mathbfz^\\left( \\mathbfj \\right)=\\mathbfW^\\left( \\mathbfj \\right)\\mathbfa^\\left( \\mathbfj-1 \\right)+\\mathbfb^\\left( \\mathbfj \\right)\\text,而\\mathbf\\theta ^\\left( \\mathbfj \\right)=\\left\\ \\mathbfW^\\left( \\mathbfj \\right),\\mathbfb^\\left( \\mathbfj \\right) \\right\\ z(j)=W(j)a(j1)+b(j),而θ(j)=W(j),b(j)

对于上图,如果我们想得到 ∂ l ∂ θ ( j ) \\frac\\partial \\mathbfl\\partial \\mathbf\\theta ^\\left( \\mathbfj \\right) θ(j)l,可以通过 z ( j ) \\mathbfz^\\left( \\mathbfj \\right) z(j)建立l和θ(j)之间的联系,即 ∂ l ∂ θ ( j ) = ∂ l ∂ z ( j ) ∗ ∂ z ( j ) ∂ θ ( j ) \\frac\\partial \\mathbfl\\partial \\mathbf\\theta ^\\left( \\mathbfj \\right)=\\frac\\partial \\mathbfl\\partial \\mathbfz^\\left( \\mathbfj \\right)*\\frac\\partial \\mathbfz^\\left( \\mathbfj \\right)\\partial \\mathbf\\theta ^\\left( \\mathbfj \\right) θ(j)l=z(j)lθ(j)z(j),而l和z(j)之间的联系则可以通过z(j+1)进行建立 ∂ l ∂ z ( j ) = ∂ l ∂ z ( j + 1 ) ∗ ∂ z ( j + 1 ) ∂ z ( j ) = ∂ l ∂ z ( j + 1 ) ∗ ∂ z ( j + 1 ) ∂ a ( j ) ∗ ∂ a ( j ) ∂ z ( j ) \\frac\\partial \\mathbfl\\partial \\mathbfz^\\left( \\mathbfj \\right)=\\frac\\partial \\mathbfl\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)*\\frac\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)\\partial \\mathbfz^\\left( \\mathbfj \\right)=\\frac\\partial \\mathbfl\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)*\\frac\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)\\partial \\mathbfa^\\left( \\mathbfj \\right)*\\frac\\partial \\mathbfa^\\left( \\mathbfj \\right)\\partial \\mathbfz^\\left( \\mathbfj \\right) z(j)l=z(j+1)lz(j)z(j+1)=z(j+1)la(j)z(j+1)z(j)a(j),由此,我们得到 ∂ l ∂ θ ( j ) = ∂ l ∂ z ( j + 1 ) ∗ ∂ z ( j + 1 ) ∂ a ( j ) ∗ ∂ a ( j ) ∂ z ( j ) ∗ ∂ z ( j ) ∂ θ ( j ) \\frac\\partial \\mathbfl\\partial \\mathbf\\theta ^\\left( \\mathbfj \\right)=\\frac\\partial \\mathbfl\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)*\\frac\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)\\partial \\mathbfa^\\left( \\mathbfj \\right)*\\frac\\partial \\mathbfa^\\left( \\mathbfj \\right)\\partial \\mathbfz^\\left( \\mathbfj \\right)*\\frac\\partial \\mathbfz^\\left( \\mathbfj \\right)\\partial \\mathbf\\theta ^\\left( \\mathbfj \\right) θ(j)l=z(j+1)la(j)z(j+1)z(j)a(j)θ(j)z(j)(链式求导法则),然后不断的迭代求导下去。

这里我们细心观察下式:

其中, ∂ z ( j + 1 ) ∂ a ( j ) = w ( j + 1 ) \\frac\\partial \\mathbfz^\\left( \\mathbfj+1 \\right)\\partial \\mathbfa^\\left( \\mathbfj \\right)=\\mathbfw^\\left( \\mathbfj+1 \\right) a(j)z(j+1)=w以上是关于BP算法的原理解释和推导的主要内容,如果未能解决你的问题,请参考以下文章

BP算法基本原理推导----《机器学习》笔记

一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)

bp神经网络算法介绍 bp神经网络算法简介

神经网络——BP算法

BP神经网络算法推导

BP神经网络算法推导