2021李宏毅机器学习笔记--7.1 backpropagation

2021李宏毅机器学习笔记--7.1 backpropagation

  • 1 摘要
  • 2 步骤
    • 2.1 chain rule链式法则
    • 2.2 loss function
      • 2.2.1 forward pass
      • 2.2.2 backward pass
        • case1 未知的两项在输出层
        • case2 未知的两项并不在输出层
  • 3 小结及展望

1 摘要

上文讲到可以用Backpropagation的方法对网络中的所有参数( w 和 b)进行更新,最终使total loss达到最低值,本文将介绍具体的步骤。

2 步骤

选定一组初始的参数,计算它们的梯度,然后进行更新,但是在神经网络中有非常多的参数,怎么能更有效率呢?用到了backpropagation的方法。
2021李宏毅机器学习笔记--7.1 backpropagation_第1张图片

2.1 chain rule链式法则

链式求导法则,一个变量受到其他变量或多个变量的影响时,求导时要注意不要求错或漏掉某一部分。
2021李宏毅机器学习笔记--7.1 backpropagation_第2张图片

2.2 loss function

求出预测值与真实值之间的差距再sum一下,然后进行偏微分。
2021李宏毅机器学习笔记--7.1 backpropagation_第3张图片具体应该怎么计算呢?以一个神经元为例,对于两个输入x1与x2,经过一系列神经元后得到两个输出y1与y2。然后求偏差对参数的微分,根据链式法则分为两个部分。

2021李宏毅机器学习笔记--7.1 backpropagation_第4张图片

2.2.1 forward pass

2021李宏毅机器学习笔记--7.1 backpropagation_第5张图片其实偏微分的值就是它的输入x
2021李宏毅机器学习笔记--7.1 backpropagation_第6张图片

2.2.2 backward pass

2021李宏毅机器学习笔记--7.1 backpropagation_第7张图片这里计算的时候将偏微分拆开,假设这里后面只有两项,用链式求导法则求解,注意假设其中两个未知的量是已知的,根据链式求导法则可以轻易地算出答案。
2021李宏毅机器学习笔记--7.1 backpropagation_第8张图片假设有另外一个神经元表示如下图,则该神经元的表达式与我们的偏微分求解的答案是一样的。

2021李宏毅机器学习笔记--7.1 backpropagation_第9张图片现在的问题是如何计算出刚刚我们假设的两项数值,只有计算出来这两项数值才能计算出最终的答案。

case1 未知的两项在输出层

结果就是最后的结果,可以写成如下形式。

2021李宏毅机器学习笔记--7.1 backpropagation_第10张图片

case2 未知的两项并不在输出层

后面还有其他的layer,那么一直往后嵌套,直至输出层,然后再从最后往前算。

2021李宏毅机器学习笔记--7.1 backpropagation_第11张图片

3 小结及展望

本文主要针对backpropagation进行详细讲解,目的是使得total loss的值最低,得到比较好的参数。计算过程中要多次应用偏微分,偏微分的计算要遵循链式法则进行求导。在后续的学习中将继续深入研究神经网络。

你可能感兴趣的:(机器学习,神经网络,人工智能,深度学习)