📃
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
  • 让最终的cost尽量小
  • 其它

Was this helpful?

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

一个新的定义

Previous反向传播算法中的4个等式Next4个等式

Last updated 5 years ago

Was this helpful?

令 δjl\delta^l_jδjl​:l层第j个神经元的error。 δl\delta^lδl:l层神经元的error向量。

Δzjl\Delta z^l_jΔzjl​

已知第l层第j个神经元的输出为:

ajl=σ(zjl)a^l_j = \sigma(z^l_j)ajl​=σ(zjl​)

假设在上加上一点扰动,使得:

ajl=σ(zjl+Δzjl)a^l_j = \sigma(z^l_j+\Delta z^l_j)ajl​=σ(zjl​+Δzjl​)

a^l_j的变化通过网络传播到下一层,使得最终的代价也会变化。变化量为:

∂C∂zjlΔzjl\frac{\partial C}{\partial z^l_j} \Delta z^l_j∂zjl​∂C​Δzjl​

让最终的cost尽量小

如果我们希望找到一个合适的Δzjl\Delta z^l_jΔzjl​,使得cost变小。 场景一:∣∂C∂zjl∣|\frac{\partial C}{\partial z^l_j}|∣∂zjl​∂C​∣非常大。 只需要令Δzjl\Delta z^l_jΔzjl​为一个与∂C∂zjl\frac{\partial C}{\partial z^l_j}∂zjl​∂C​相反的数,就可以有效低使cost变小。 场景二:∣∂C∂zjl∣|\frac{\partial C}{\partial z^l_j}|∣∂zjl​∂C​∣接近0。 很难通过Δzjl\Delta z^l_jΔzjl​来改变cost。那么认为这个神经元已经在最优状态附近了,很难有改进空间。

δjl\delta^l_jδjl​

通过上面的分析可以发现,∂C∂zjl\frac{\partial C}{\partial z^l_j}∂zjl​∂C​可以用于衡量这个神经元离最优状态还有多远。 定义:

\begin{eqnarray} \delta^l_j \equiv \frac{\partial C}{\partial z^l_j}. \tag{29}\end{eqnarray}

反向传播算法会先计算每个神经元的δjl\delta^l_jδjl​,再根据δjl\delta^l_jδjl​去计算它们的w和b

其它

问:为什么改变的是神经元的加权输入而不是神经元的输入? 答:用神经元的输入来计算会增加计算的复杂度。

神经元的加权输入