←上一篇 ↓↑ 下一篇→
1.4 正则化 回到目录 1.6 Dropout 正则化

为什么正则化有利于预防过拟合呢 (Why regularization reduces overfitting?)

为什么正则化有利于预防过拟合呢?为什么它可以减少方差问题?我们通过两个例子来直观体会一下。

左图是高偏差,右图是高方差,中间是Just Right,这几张图我们在前面课程中看到过。

现在我们来看下这个庞大的深度拟合神经网络。我知道这张图不够大,深度也不够,但你可以想象这是一个过拟合的神经网络。这是我们的代价函数 JJJ ,含有参数 www , bbb 。我们添加正则项,它可以避免数据权值矩阵过大,这就是弗罗贝尼乌斯范数,为什么压缩 L2L2L2 范数,或者弗罗贝尼乌斯范数或者参数可以减少过拟合?

直观上理解就是如果正则化 λ\lambdaλ 设置得足够大,权重矩阵 www 被设置为接近于0的值,直观理解就是把多隐藏单元的权重设为0,于是基本上消除了这些隐藏单元的许多影响。如果是这种情况,这个被大大简化了的神经网络会变成一个很小的网络,小到如同一个逻辑回归单元,可是深度却很大,它会使这个网络从过度拟合的状态更接近左图的高偏差状态。

但是 λ\lambdaλ 会存在一个中间值,于是会有一个接近“Just Right”的中间状态。

直观理解就是 λ\lambdaλ 增加到足够大, www 会接近于0,实际上是不会发生这种情况的,我们尝试消除或至少减少许多隐藏单元的影响,最终这个网络会变得更简单,这个神经网络越来越接近逻辑回归,我们直觉上认为大量隐藏单元被完全消除了,其实不然,实际上是该神经网络的所有隐藏单元依然存在,但是它们的影响变得更小了。神经网络变得更简单了,貌似这样更不容易发生过拟合,因此我不确定这个直觉经验是否有用,不过在编程中执行正则化时,你实际看到一些方差减少的结果。

我们再来直观感受一下,正则化为什么可以预防过拟合,假设我们用的是这样的双曲线激活函数。

用 g(z)g(z)g(z) 表示 tanh(z)tanh(z)tanh(z) ,那么我们发现,只要 zzz 非常小,如果 zzz 只涉及少量参数,这里我们利用了双曲正切函数的线性状态,只要 zzz 可以扩展为这样的更大值或者更小值,激活函数开始变得非线性。

现在你应该摒弃这个直觉,如果正则化参数 λλλ 很大,激活函数的参数会相对较小,因为代价函数中的参数变大了,如果 www 很小,

如果 www 很小,相对来说, zzz 也会很小。

特别是,如果 zzz 的值最终在这个范围内,都是相对较小的值, g(z)g(z)g(z) 大致呈线性,每层几乎都是线性的,和线性回归函数一样。

第一节课我们讲过,如果每层都是线性的,那么整个网络就是一个线性网络,即使是一个非常深的深层网络,因具有线性激活函数的特征,最终我们只能计算线性函数,因此,它不适用于非常复杂的决策,以及过度拟合数据集的非线性决策边界,如同我们在幻灯片中看到的过度拟合高方差的情况。

总结一下,如果正则化参数变得很大,参数 www 很小, zzz 也会相对变小,此时忽略 bbb 的影响, zzz 会相对变小,实际上, zzz 的取值范围很小,这个激活函数,也就是曲线函数 tanhtanhtanh 会相对呈线性,整个神经网络会计算离线性函数近的值,这个线性函数非常简单,并不是一个极复杂的高度非线性函数,不会发生过拟合。

大家在编程作业里实现正则化的时候,会亲眼看到这些结果,总结正则化之前,我给大家一个执行方面的小建议,在增加正则化项时,应用之前定义的代价函数 JJJ ,我们做过修改,增加了一项,目的是预防权重过大。

如果你使用的是梯度下降函数,在调试梯度下降时,其中一步就是把代价函数 JJJ 设计成这样一个函数,在调试梯度下降时,它代表梯度下降的调幅数量。可以看到,代价函数对于梯度下降的每个调幅都单调递减。如果你实施的是正则化函数,请牢记, JJJ 已经有一个全新的定义。如果你用的是原函数 JJJ ,也就是这第一个项正则化项,你可能看不到单调递减现象,为了调试梯度下降,请务必使用新定义的 JJJ 函数,它包含第二个正则化项,否则函数 JJJ 可能不会在所有调幅范围内都单调递减。

这就是 L2L2L2 正则化,它是我在训练深度学习模型时最常用的一种方法。在深度学习中,还有一种方法也用到了正则化,就是dropout正则化,我们下节课再讲。

课程PPT




←上一篇 ↓↑ 下一篇→
1.4 正则化 回到目录 1.6 Dropout 正则化

1.5 为什么正则化有利于预防过拟合-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授相关推荐

  1. 1.8 其他正则化方法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.7 理解 Dropout 回到目录 1.9 归一化输入 其他正则化方法 (Other Regularization Methods) 除了 L2L2L2 正则化和随机失活 ...

  2. 1.4 正则化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.3 机器学习基础 回到目录 1.5 为什么正则化可以减少过拟合 正则化 (Regularization) 深度学习可能存在过拟合问题--高方差,有两个解决方法,一个是正则 ...

  3. 3.5 将 Batch 拟合进神经网络-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.4 正则化网络的激活函数 回到目录 3.6 Batch Norm 为什么奏效 将 Batch 拟合进神经网络 (Fitting Batch Norm into a Neu ...

  4. 1.6 Dropout 正则化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.5 为什么正则化可以减少过拟合 回到目录 1.7 理解 Dropout Dropout 正则化 除了 L2L2L2 正则化,还有一个非常实用的正则化方法--"D ...

  5. 深度学习系列 -- 第二门课 改善深层神经网络:超参数调试、正则化以及优化(一):深度学习的实践层面(Practical aspects of Deep Learning)

    目录 一.深度学习的实践层面(Practical aspects of Deep Learning) 1 训练,验证,测试集(Train / Dev / Test sets) 2 偏差,方差(Bias ...

  6. 深度学习笔记第二门课 改善深层神经网络 第三周 超参数调试、Batch正则化和程序框架...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  7. 第七章 正则化-机器学习老师板书-斯坦福吴恩达教授

    正则化 7.1 过拟合问题 7.2 代价函数 7.3 线性回归正则化 7.4 Logistic 回归正则化 7.1 过拟合问题 7.2 代价函数 7.3 线性回归正则化 7.4 Logistic 回归 ...

  8. 2.3 利用正规化解决过拟合问题-机器学习笔记-斯坦福吴恩达教授

    利用正规化解决过拟合问题 在之前的文章中,我们认识了过拟合问题,通常,我们有如下策略来解决过拟合问题: 减少特征数,显然这只是权宜之计,因为特征意味着信息,放弃特征也就等同于丢弃信息,要知道,特征的获 ...

  9. 1.8 欠拟合和过拟合-机器学习笔记-斯坦福吴恩达教授

    欠拟合和过拟合 问题 在上一节中,我们利用多项式回归获得更加准确的拟合曲线,实现了对训练数据更好的拟合.然而,我们也发现,过渡地对训练数据拟合也会丢失信息规律.首先,引出两个概念: 欠拟合(under ...

最新文章

  1. 大数据量表中,增加一个NOT NULL的新列
  2. Python 学习笔记 (8)—— sys模块
  3. 2021的第二封拒信,来自斯坦福电气工程
  4. php 值不进行解码,无法解码PHP中的JSON值
  5. proxy跨域不生效_vue前后端端口号不同,proxytable代理跨域无效
  6. linux-关机与重启命令
  7. matlab 模糊pid mimo 对应,双关节机械手的模糊PID控制系统设计.doc
  8. 亡命逃窜(nyoj523广搜)
  9. 【转】wcf configuration
  10. mysql cmmand not found
  11. c:翻转一个长句中的每个单词
  12. 计算机网络第七版1-3
  13. 内网基础-隧道技术、内网穿透(SSH隧道、Socket隧道、跨路由扫描)
  14. 计算模型的GFLOPs和参数量 举例VGG16和DETR
  15. IT系统为什么复杂,肿么办
  16. Linux-网络管理
  17. Latex Beamer 入门教程
  18. but only one is allowed. 重复处理跨域请求
  19. 小米盒子 刷系统 参考方法
  20. oracle取最新一条数据

热门文章

  1. .Net NPOI 根据excel模板导出excel、直接生成excel
  2. 洛谷 P3157 [CQOI2011]动态逆序对 | CDQ分治
  3. Lua应用——tables应用,查找是否为保留字
  4. ———— javascript中数组常用方法总结 ————
  5. python class属性
  6. UA MATH523A 实分析3 积分理论 概念与定理整理
  7. 学习笔记——一个指针有趣的问题
  8. Windows 公共控件库研究
  9. Struts2 - 在Action类中获得HttpServletResponse对象
  10. 从安全测试开始:与杰夫•佩恩的一场面谈(译)