📃
Nielsen-NNDL
  • Introduction
  • 第1章 使用神经网络识别手写数字
    • 感知机神经元
    • sigmoid神经元
    • 神经网络的架构
    • 用于识别手写数字的简单网络
    • 梯度下降学习法
      • 准备工作
      • 梯度下降法
      • 应用到神经网络
    • 实现数字分类的神经网络
      • 数据集
      • 初始化
      • 向后传递
      • 随机梯度下降
      • 总结
  • 第2章 反向传播算法的工作原理
    • 热身:一种矩阵方法快速计算神经网络的输出
    • 关于代价函数的两个假设
    • Hadamard积
    • 反向传播算法中的4个等式
      • 一个新的定义
      • 4个等式
      • 等式的意义
    • 4个等式的证明
    • 反向传播算法
    • 代码解读
    • 反向传播算法为什么这么快
  • 第3章 提升神经网络的学习方法
    • cross-entropy代价函数
      • 当前神经网络存在的问题
      • 引入cross-entropy代价函数
      • 使用cross-entropy分类手写数字
      • cross-entropy代价函数是怎么推出来的
      • cross-entropy的数学意义
      • softmaxt+loglikelihood
    • 过拟合和正则化
      • 过拟合
      • L2正则化
      • 在当前神经网络中使用L2正则化
      • 其它问题
      • L1正则化
      • dropout正则化
      • 人为扩充训练数据
    • weights初始化
    • 回到手势识别代码
    • 怎样选择超参数
      • broad策略
      • 学习率eta
      • 迭代次数epochs
      • 正则化参数lambda
      • minibatch样本数m
      • 自动化技术
    • 其它技术
      • Hessian技术
      • momentum技术
      • tanh神经元
      • RectifiedLinear神经元
  • 第5章 训练深度神经网络难以训练
    • 梯度消失问题
    • 梯度消失的原因
  • 第6章 深度学习
    • 卷积神经网络介绍
      • LocalReceptiveField
      • SharedWeights
      • pooling层
      • 组装到一起
    • 卷积神经网络的实践与改进
    • 其它深度神经网络的方法
  • 术语中英文对照
Powered by GitBook
On this page
  • 等式一:输出层上的error
  • 等式二:根据下一层计算当前层的error
  • 等式三:bias公式
  • 等式四:weights公式

Was this helpful?

  1. 第2章 反向传播算法的工作原理
  2. 反向传播算法中的4个等式

4个等式

Previous一个新的定义Next等式的意义

Last updated 5 years ago

Was this helpful?

说明1:以下公式中的C都是指CxC_xCx​

等式一:输出层上的error

\begin{eqnarray} \delta^L_j = \frac{\partial C}{\partial a^L_j} \sigma'(z^L_j). \tag{BP1}\end{eqnarray}

公式说明: ∂C∂ajL\frac{\partial C}{\partial a^L_j}∂ajL​∂C​代表当ajLa^L_jajL​变化时C的变化有多快。 σ′(zjL)\sigma'(z^L_j)σ′(zjL​)代表在zjLz^L_jzjL​激活函数σ\sigmaσ变化有多快。 将公式(BP1)写成矩阵形式为:

\begin{eqnarray} \delta^L = \nabla_a C \odot \sigma'(z^L). \tag{BP1a}\end{eqnarray}

例如在上一章中使用的二次代价函数Cx=12∥y−aL∥2C_x = \frac{1}{2} \|y-a^L \|^2Cx​=21​∥y−aL∥2,其对应的error计算公式为:

\begin{eqnarray} \delta^L = (a^L-y) \odot \sigma'(z^L). \tag{30}\end{eqnarray}

等式二:根据下一层计算当前层的error

\begin{eqnarray} \delta^l = ((w^{l+1})^T \delta^{l+1}) \odot \sigma'(z^l), \tag{BP2}\end{eqnarray}

we can think intuitively of this as moving the error backward through the network, giving us some sort of measure of the error at the output of the lth layer. We then take the Hadamard product ⊙σ′(zl). This moves the error backward through the activation function in layer l, giving us the error δl in the weighted input to layer l.

[?] 这一段不太懂?

通过公式(BP1)和公式(BP2)的结合,可以计算出每一层每一个神经元的error。

等式三:bias公式

\begin{eqnarray} \frac{\partial C}{\partial b^l_j} = \delta^l_j. \tag{BP3}\end{eqnarray}

或

\begin{eqnarray} \frac{\partial C}{\partial b} = \delta, \tag{31}\end{eqnarray}

等式四:weights公式

\begin{eqnarray} \frac{\partial C}{\partial w^l_{jk}} = a^{l-1}_k \delta^l_j. \tag{BP4}\end{eqnarray}

或

\begin{eqnarray} \frac{\partial C}{\partial w} = a_{\rm in} \delta_{\rm out}, \tag{32}\end{eqnarray}