深度学习——PyTorch实战计算机视觉3

后向传播

深度学习中,后向传播主要用于对模型的参数进行微调。经过多次后向传播之后,可以得到模型的最优参数组合。这个过程其实就是一个复合函数求导的过程。

举例:

深度学习——PyTorch实战计算机视觉3

定义上图模型的前向传播函数为深度学习——PyTorch实战计算机视觉3。假设输入数据深度学习——PyTorch实战计算机视觉3,可得前向传播计算结果深度学习——PyTorch实战计算机视觉3。若把原函数改写为复合函数的形式,令深度学习——PyTorch实战计算机视觉3,就可以得到深度学习——PyTorch实战计算机视觉3

接下来是后向传播中涉及到的计算过程。

假设在后向传播过程中需要微调的参数有3个,分别是X, Y, Z,这3个参数每轮后向传播的微调值为深度学习——PyTorch实战计算机视觉3深度学习——PyTorch实战计算机视觉3深度学习——PyTorch实战计算机视觉3,这3个值计算的都是偏导数。将求偏导的步骤拆解:

首先,分别计算深度学习——PyTorch实战计算机视觉3深度学习——PyTorch实战计算机视觉3深度学习——PyTorch实战计算机视觉3深度学习——PyTorch实战计算机视觉3,然后计算X,Y,Z后向传播微调值,即偏导数:

  •  Z的偏导数:深度学习——PyTorch实战计算机视觉3
  • Y的偏导数:深度学习——PyTorch实战计算机视觉3
  • X的偏导数:深度学习——PyTorch实战计算机视觉3

接下来看一个复杂点的例子:

深度学习——PyTorch实战计算机视觉3

假设x0=1、x1=1、b=-1,同时有对应权重值w0=0.5、w1=0.5,使用Sigmoid作为**函数,则前向传播的计算函数为:深度学习——PyTorch实战计算机视觉3,将参数代入函数进行计算,可得深度学习——PyTorch实战计算机视觉3,然后再对函数进行求导。同样,若将原函数进行化简,改写为复合函数形式求解,令深度学习——PyTorch实战计算机视觉3,化简后的函数为深度学习——PyTorch实战计算机视觉3,故深度学习——PyTorch实战计算机视觉3深度学习——PyTorch实战计算机视觉3,然后计算x0、x1后向传播微调值:

  •  x0后向传播微调值:深度学习——PyTorch实战计算机视觉3
  •  x1后向传播微调值:深度学习——PyTorch实战计算机视觉3