BP反向传播网络

梯度下降法

BP反向传播网络_第1张图片

  • 本质上,在神经网络中实现的梯度下降和在线性回归和逻辑斯特回归这两件事上的梯度下降的步骤没有什么不同

  • 不同的是,神经网络中,参数非常多,它的梯度可能是个上百维的一个梯度

  • 反向传播是一种,为了让你计算梯度更有效率的一种衍生法

链式法则

——这是反向传播中为数不多需要掌握的数学

BP反向传播网络_第2张图片

损失函数 L ( θ ) = ∑ n = 1 N C n ( θ ) 损失函数\\ L(\theta)=\sum_{n=1}^NC^n(\theta)\\ 损失函数L(θ)=n=1NCn(θ)

损失函数求导 ∂ L ( θ ) ∂ w = ∑ n = 1 N ∂ C n ( θ ) ∂ w 损失函数求导\\ \frac{\partial L(\theta)}{\partial w}=\sum_{n=1}^N\frac{\partial C^n(\theta)}{\partial w} 损失函数求导wL(θ)=n=1NwCn(θ)

——下面的步骤,我们只focus在对某一个data上的偏微分

——后续的是,讲所有的训练集上的偏微分计算出来,求和,就能得到total loss对这一参数的偏微分

Cal. Example

BP反向传播网络_第3张图片

——我们将 ∂ z / ∂ w \partial z / \partial w z/w 称为向前,对所有的参数(z是未经过激活函数的值)

——我们将 ∂ C / ∂ z \partial C / \partial z C/z称为向后,对所有的激活函数

向前

BP反向传播网络_第4张图片

——我们会发现, ∂ z / ∂ w \partial z/\partial w z/w的值,就是这个权值前面接的是什么

BP反向传播网络_第5张图片

向后

Compute ∂ C / ∂ z \partial C/\partial z C/z for all activation function inputs z

BP反向传播网络_第6张图片

C是交叉熵

——通过假设 a = σ ( z ) a=\sigma(z) a=σ(z) 假设z通过的是逻辑回归函数

——得到
∂ C ∂ z = ∂ a ∂ z ∂ C ∂ a \frac{\partial C}{\partial z}=\frac{\partial a}{\partial z}\frac{\partial C}{\partial a} zC=zaaC
——a会用过下一部分的 z ′ z' z z ′ ′ z'' z′′ 影响最后的交叉熵C

——因此得到
∂ C ∂ a = ∂ z ′ ∂ a ∂ C ∂ z ′ + ∂ z ′ ′ ∂ a ∂ C ∂ z ′ ′ \frac{\partial C}{\partial a}=\frac{\partial z'}{\partial a}\frac{\partial C}{\partial z'}+\frac{\partial z''}{\partial a}\frac{\partial C}{\partial z''} aC=azzC+az′′z′′C
——而后面的两个部分又是下一层网络的偏微分

  • 假设 ∂ C ∂ z ′ \frac{\partial C}{\partial z'} zC ∂ C ∂ z ′ ′ \frac{\partial C}{\partial z''} z′′C 已知

    则得
    ∂ C ∂ z = σ ′ ( z ) [ w 3 ∂ C ∂ z ′ + w 4 ∂ C ∂ z ′ ′ ] \frac{\partial C}{\partial z}=\sigma'(z)[w_3 \frac{\partial C}{\partial z'}+w_4 \frac{\partial C}{\partial z''}] zC=σ(z)[w3zC+w4z′′C]

BP反向传播网络_第7张图片

输出层反向传输

  • 我们假设,上图红点就已经是输出层

∂ C ∂ z ′ = ∂ y 1 ∂ z ′ ∂ C ∂ y 1 \frac{\partial C}{\partial z'}=\frac{\partial y_1}{\partial z'}\frac{\partial C}{\partial y_1} zC=zy1y1C

  • ∂ y 1 ∂ z ′ \frac{\partial y_1}{\partial z'} zy1 取决于最后输出层的激活函数

  • ∂ C ∂ y 1 \frac{\partial C}{\partial y_1} y1C 取决于你怎么定义的Loss Function——你可以用交叉熵,也可以使用mean square error

——如果你的下一层不是输出层,则继续看下一层的下一层,直到最后输出层之后

——因此,我们的计算,直接从最后往前面进行误差传播

BP反向传播网络_第8张图片

总结

BP反向传播网络_第9张图片

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