计算图中的Sigmoid激活函数的反向传播

文章目录

  • 前言
  • 一、激活函数是什么?
  • 二、神经元结构中的激活函数(Sigmoid)
    • 1.单个神经元结构的输入输出映射
    • 2.神经网络结构的输入输出映射
    • 3.Sigmoid激活函数
    • 4.Sigmoid层的输入输出映射
  • 总结


前言

激活函数是神经网络中必不可少的一个环节,它将输入和输出通过函数映射关联起来,激活函数是非线性函数,例如Relu函数、Sigmoid函数、Tanh函数。

提示:以下是本篇文章正文内容,有些许内容及图片借鉴于《深度学习入门:基于python的理论与实现》,基于自己的理解进行转述。

一、激活函数是什么?

激活函数是神经网络中必不可少的一个环节,它将输入和输出通过函数映射关联起来,激活函数是非线性函数,例如Relu函数、Sigmoid函数、Tanh函数。

二、神经元结构中的激活函数(Sigmoid)

1.单个神经元结构的输入输出映射

单个神经元结构的输入输出映射示意图如下:

计算图中的Sigmoid激活函数的反向传播_第1张图片

2.神经网络结构的输入输出映射

3输入-2输出的2层神经网络的输入输出映射:

计算图中的Sigmoid激活函数的反向传播_第2张图片

3.Sigmoid激活函数

Sgmoid激活函数表达式:

y = 1 1 + e − x {\rm{y}} = \frac{1}{{1 + {e^{ - x}}}} y=1+ex1

  引入激活函数的意义在于引入非线性,若无激活函数或者说激活函数为线性函数,无论多复杂的神经网络结构,最终都能化简成线性的输入输出映射结构:形似下列计算

a ( b ( c X + d ) + e ) + f = a b c X + a b d + a e + f a(b(cX + d) + e) + f = abcX + abd + ae + f a(b(cX+d)+e)+f=abcX+abd+ae+f

本文讨论在计算图法中Sigmoid函数的反向传播图

计算图中的Sigmoid激活函数的反向传播_第3张图片

  其中存在’ / ‘ 和’ + ‘以及 e x {e^x} ex和’ × ‘节点,共同组成sigmoid层,在此我们只关心sigmoid层的正向传播的输入与输出以及反向传播的输入与输出,所以最终sigmoid层也将化简成一个节点的形式。

  正向传播的数据流动都比较简单,在此不再讨论,仅讨论反向传播。

  1. 对于’ / ’节点:以数据反向传播为正方向,上游对下游求导(最终结果要化简成以y为变量的式子)乘以上游值。即:’ / '节点表示: y = 1 x y = \frac{1}{x} y=x1求导得 ∂ y ∂ x = − 1 x 2 = − y 2 \frac{{\partial y}}{{\partial x}} = - \frac{1}{{{x^2}}} = - y^2 xy=x21=y2,再乘以上游值( ∂ L ∂ y \frac{{\partial L}}{{\partial y}} yL)可得 − ∂ L ∂ y y 2 - \frac{{\partial L}}{{\partial y}}{y^2} yLy2

  2. 对于’ + ‘节点:上游值直接传播至下游

  3. 对于 e x {e^x} ex节点:同样是节点函数求导(最终结果要化简成以y为变量的式子)乘以上游值。即:节点函数 y = e x y = {e^x} y=ex
    求导得: ∂ y ∂ x = e x = y \frac{{\partial y}}{{\partial x}} = {e^x} = y xy=ex=y(y即正向传播的输出值),所以在此sigmoid函数层中的 e x {e^x} ex节点的正向传播输出值为 y = e − x y = {e^{ - x}} y=ex,所以 e x {e^x} ex节点反向传播的输出值为 − ∂ L ∂ y y 2 e − x - \frac{{\partial L}}{{\partial y}}{y^2}{e^{ - x}} yLy2ex

  4. 对于’ × ‘节点:这里我们考虑 z = x y z = xy z=xy。乘法的反向传播会将上游的值乘以正向传播时的输入信号的“翻转值”后传递给下游。翻转值表示一种翻转关系,正向传播时信号是x的话,反向传播时则是y;正向传播时信号是y 的话,反向传播时则是x。

∂ z ∂ x = y , ∂ z ∂ y = x \frac{{\partial z}}{{\partial x}} = y,\frac{{\partial z}}{{\partial y}} = x xz=y,yz=x

  所以“×”节点将正向传播时的值翻转后做乘法运算。因此,这里要乘以−1。

4.Sigmoid层的输入输出映射

计算图中的Sigmoid激活函数的反向传播_第4张图片

计算图中的Sigmoid激活函数的反向传播_第5张图片

  需动手去化简,利用下式化简成以y为变量:
y = 1 1 + e − x y = \frac{1}{{1 + {e^{ - x}}}} y=1+ex1


总结

  理解计算图法中反向传播计算的重点在于对函数求导后对式子的化简,要将正向传播时的输出量作为反向传播的输入量,即在函数求导后将导函数化简成以y为变量的函数,最终再将正向传播的输出值代入,就可得反向传播的输出值。

 

  求解计算图法中反向传播的目的在于计算结果的偏差对于前面各项参数的影响大小,应用于BP算法中对神经网络中的权重进行调整。当计算结果与真实结果不符,通过反向传播计算,可指导如何调节权重参数,以期结果符合预期。

你可能感兴趣的:(神经网络,机器学习)