📃
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
  • 关于学习率
  • 关于参数
  • 变种

Was this helpful?

  1. 第1章 使用神经网络识别手写数字
  2. 梯度下降学习法

梯度下降法

Previous准备工作Next应用到神经网络

Last updated 5 years ago

Was this helpful?

先不考虑神经网络、手写数字这些东西。

假设有一个函数C(v),v是一个二维的参数向量(v1,v2) 如何找到C函数的全局最小值?

方法一: C对v求导并令导数为0,通过计算得到极值点的位置。 缺点:不是对每个函数都适用。 本例中参数是二维向量,实际上参数可能非常多,一一求导也不现实。 方法二: 利用C的积分公式:

\begin{eqnarray} \Delta C \approx \frac{\partial C}{\partial v_1} \Delta v_1 + \frac{\partial C}{\partial v_2} \Delta v_2. \tag{7}\end{eqnarray}

只要选择正确的Δv\Delta vΔv使得ΔC\Delta CΔC为负,然后调整v,C就会不断变小,最后达到极小值点。 公式(7)又可以写成向量的形式:

\begin{eqnarray} \Delta C \approx \nabla C \cdot \Delta v. \tag{9}\end{eqnarray}

根据公式(9)可知,令\begin{eqnarray} \Delta v = -\eta \nabla C, \tag{10}\end{eqnarray} 其中η\etaη是学习率。这样得到的ΔC\Delta CΔC必然为负,这就是我们想到的结果。根据这个规则不断更新,就能达到极小值。

关于学习率η\etaη

公式(7)只在一个小范围为有效,所以η\etaη不能太大。 η\etaη又不能太小,否则学习速度太慢。

关于参数

以上例子是假设v是二维向量,对于多维的情况,公式仍然适用。

变种

梯度下降法有很多变种,其中有一种更接近“物理球滚落的效果”。 作者没有说是变种的名字和过程。根据描述需要求阶导数,我所知道的就是牛顿法和拟牛顿法。 这个变种有很多优点,但有一个致使缺点,就是要求二阶导数,而求二阶导数耗时。