📃
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. 第3章 提升神经网络的学习方法
  2. 过拟合和正则化

在当前神经网络中使用L2正则化

PreviousL2正则化Next其它问题

Last updated 5 years ago

Was this helpful?

正则化项对计算一个样本的影响

加入L2正则化项后,计算一个样本的w、b偏导的公式变为:

\begin{eqnarray} \frac{\partial C}{\partial w} & = & \frac{\partial C_0}{\partial w} + \frac{\lambda}{n} w \tag{88}\\ \frac{\partial C}{\partial b} & = & \frac{\partial C_0}{\partial b}. \tag{89}\end{eqnarray}

仍用反向传播算法计算∂C0∂w\frac{\partial C_0}{\partial w}∂w∂C0​​和∂C0∂b\frac{\partial C_0}{\partial b}∂b∂C0​​,在更新w和b时把λnw\frac{\lambda}{n} wnλ​w考虑进去。 得:

\begin{eqnarray} w & \rightarrow & \left(1-\frac{\eta \lambda}{n}\right) w -\eta \frac{\partial C_0}{\partial w}. \tag{92} \\ b & \rightarrow & b -\eta \frac{\partial C_0}{\partial b}. \tag{90}\end{eqnarray}

也就是说,w在每次更新前都要成比例地缩小(rescale)。这个rescale的步骤被称为weights decay。

正则化项对一次随机梯度计算的影响

一次随机梯度计算会从n个样本中随机选出m个进行计算。 基于这m个样本的反向传播算法结果一次性更新w和b的公式为:

\begin{eqnarray} w \rightarrow \left(1-\frac{\eta \lambda}{n}\right) w -\frac{\eta}{m} \sum_x \frac{\partial C_x}{\partial w}, \tag{93} \\ b \rightarrow b - \frac{\eta}{m} \sum_x \frac{\partial C_x}{\partial b}, \tag{94}\end{eqnarray}

注意: 公式93的第一项中的分母是n,不是m。 不管这一批随机选择了多少个样本,w的recalse的比例是一样的。

self.weights = [(1-eta*(lmbda/n))*w-(eta/len(mini_batch))*nw
                for w, nw in zip(self.weights, nabla_w)]

正则化的效果

  1. 在过拟合的场景中加入正则化:

    正则化明显抑制了过拟合现象。

  2. 在未过拟合的场景中加入正则化:

    测试样本的准确率提高。

    训练样本与测试样本的准确率之间的gap变小。

  3. 正则化的额外好处:

    非正则化时,有时会困于局部最小值点。

    加入正则化以后,不会发生这种情况,每次运行结果基本上相同。