Backpropagation 反向传播算法

  • 当我们搭建好一个神经网络后,我们的目标都是:将网络的权值和偏置训练为一个好的值,这个值可以让我们的输入得到理想的输出。
  • 我们经常使用梯度下降算法(Gradient Descent)来最小化损失函数,得到最好网络参数。当网络中参数较多时,为了高效的计算gradient,我们使用Backpropagation。
  • Backpropagation 反向传播算法_第1张图片
  • Forward pass,在前向传播中,我们可以得到每个神经元的输出z,以及z关于该层参数w的偏微分,因此我们可以很简单的计算出这一部分内容;
  • Backpropagation 反向传播算法_第2张图片
  • Backward pass,在反向传播中,根据chain rule,又可以将拆分为两项,其中的求导很简单,就是关于a的偏导。而又可以根据链式法则,拆分为多项,(由于neural数量不同拆分的数量不同,例中为了方面仅演示两项)。可以发现拆分后两项就等于w,容易计算,这样就将问题转变为了计算后一层中的

Backpropagation 反向传播算法_第3张图片

 这里我们可以用一个新的,反向的neural来尝试理解。

Backpropagation 反向传播算法_第4张图片

CASE1:Output Layer,如果后一层的Z'Z''直接连接输出的话,可以按照下面求解:

Backpropagation 反向传播算法_第5张图片

 CASE2:Not Output Layer,如果后一层的Z'Z''不是直接连接输出,后面还有隐藏层,需要继续迭代计算,可以按照下面求解:

Backpropagation 反向传播算法_第6张图片

SUMMARY:最后将前向和后项计算结果组合,就可得到我们要求的

 Backpropagation 反向传播算法_第7张图片

 

 

 

 

 

 

你可能感兴趣的:(算法,深度学习)