栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【深度学习】03-03-深度学习好在哪里?(选修)-李宏毅老师21&22深度学习课程笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【深度学习】03-03-深度学习好在哪里?(选修)-李宏毅老师21&22深度学习课程笔记

03-03-深度学习好在哪里?(选修)
  • 总结
  • 回顾 - 困境: ∣ H ∣ |mathcal H| ∣H∣ 选大选小都不合适
  • 是否可选择出一个好的 H mathcal H H?- 可以,深度学习, H mathcal H H小而精
  • 回顾:为什么需要隐藏层?- Piecewise Linear 近似任意函数
    • 神经网络如何得到任意曲线函数?- Piecewise Linear 近似
    • 如何用 Piecewise Linear 近似得到任意函数?- 阶梯函数叠加
    • 如何表示阶梯函数?- Sigmoid or ReLU 近似
  • 一层隐藏层就可近似任意函数,为何还需要Deeper?- 大模型大数据集低错误率
  • 既然是为了增大 H mathcal H H,为什么不能是fatter而是deeper?- 相同参数量deeper错误率更低
  • 为什么deeper比fatter错误率低?- 表示同一function,deeper参数更少
  • 为什么表示同一function deeper参数更少?- 类比说明&详细分析
    • 类比说明 - deeper参数更少
    • 详细分析 - deeper参数更少
  • 目标函数复杂程度多大时Deep效果更好? - 另外的课程有讲解
  • 结论

总结

① 隐藏层作用:使用 Piecewise Linear 近似任意函数。

② 相同参数量,deeper比fatter准确率更低。

③ 表示同一function,deeper比fatter参数更少。

④ 深度学习,可以在比较小的 H mathcal H H情况下,得到更低的损失值。

回顾 - 困境: ∣ H ∣ |mathcal H| ∣H∣ 选大选小都不合适

想要理想与现实接近,需要满足两个条件:① Larger N 大样本集;② smaller ∣ H ∣ |mathcal H| ∣H∣ 参数可选值少。

∣ H ∣ |mathcal H| ∣H∣很小时,理想的损失值大,理想与现实的损失值差距小。
∣ H ∣ |mathcal H| ∣H∣很大时,理想的损失值小,理想与现实的损失值差距大。

是否可选择出一个好的 H mathcal H H?- 可以,深度学习, H mathcal H H小而精

好的 H mathcal H H标准: ∣ H ∣ |mathcal H| ∣H∣小但是精,可以从少数参数可能值中选出使得模型损失很小的最优参数值。

回顾:为什么需要隐藏层?- Piecewise Linear 近似任意函数 神经网络如何得到任意曲线函数?- Piecewise Linear 近似

可以通过一个Hidden Layer就可以制造出所有可能的Function。如下图所示,现在要用Network找一个Function(黑色)。将图中的线分成几等分,然后将端点连接起来得到Piecewise Linear。只要绿色的线段足够多,就可以让绿色的线和黑色的线越来越接近。

如何用 Piecewise Linear 近似得到任意函数?- 阶梯函数叠加

绿色的线 = 常数项 + 一堆蓝色的Function。

piecewise linear function 可以逼近任何function,所以任何function都可以使用neural network训练得到。

如何表示阶梯函数?- Sigmoid or ReLU 近似

可以使用Sigmoid Function近似地表示蓝色阶梯形的线(Hard Sigmoid)。

每个neuron都可以制造出一条蓝色阶梯形的线,然后把它们加起来,再加上常数项,就可以产生Piecewise Linear,进而近似任意函数。

使用Sigmoid近似。

使用ReLU近似。

一层隐藏层就可近似任意函数,为何还需要Deeper?- 大模型大数据集低错误率

下图是对语音辨识性能的研究。可以发现Network越深,错误率越低。

Network越深, H mathcal H H 就会越来越大,理想的Loss会越来越低,在此情况下,若有足够多的资料量,理想与现实损失差距不会太大。

深度学习不仅需要大模型,也需要大量的训练资料。如果没有大量的训练资料,就会出现overfitting。

既然是为了增大 H mathcal H H,为什么不能是fatter而是deeper?- 相同参数量deeper错误率更低

既然是为了增大 H mathcal H H,也可以让模型横向发展,就是把模型变胖,这样也可以制造很大的模型。现在让Shallow Network和Deep Network有一样的参数,研究结果如下所示。

结论:当参数量相同时,Deep Network比Shallow Network的表现更好,错误率更低。

为什么deeper比fatter错误率低?- 表示同一function,deeper参数更少

表示同一个Function时,Deep使用的参数比Shallow使用的参数少。所以,deeper更不容易过拟合,deeper需要的训练数据更少。

为什么表示同一function deeper参数更少?- 类比说明&详细分析 类比说明 - deeper参数更少

输入是由01组成的串,如果这个串中1出现的次数是奇数,就输出0;反之,就输出1。

把XNOR排成Deep结构时,当输入的数字相同时,就输出1;反之,就输出0。(效果更好)

模块化编程的设计思想是把程序要实现的功能分模块,分别写成函数,这样就可以增加复用性,提高开发效率。

在剪窗花过程中,把纸对折多次后剪比不对折纸剪要更快、更有效率。

详细分析 - deeper参数更少

如下图所示,一层结构,两层神经元,激活函数用ReLU,输出a1后,得到x与a1的关系。

如下图所示,两层结构,因为第二层的Hidden Layer与第一层的Hidden Layer结构一样,所以a2与a1的关系跟a1与x的关系一样。因此得到a2与x的关系。

如下图所示,三层结构,与上面情况相似,因此可以得到a3与x的关系。

如下图所示,通过上述结果可以得到,假如想要得到 2 k 2^k 2k个折线段的函数,只需要Deep Network有k层,每层有2个神经元;但Shallow Network只有1层,想要得到 2 k 2^k 2k个折线段的函数就需要 2 k 2^k 2k个神经元。

因此,Deep Network参数量比较小,模型比较简单;Shallow Network参数量比较大,模型比较复杂,然而复杂的模型容易overfitting,所以,相比Deep而言Shallow需要更多更大量的训练资料。

结论:如果目标函数复杂且有规律,Deep networks 比 Shallow networks 效果更好。

目标函数复杂程度多大时Deep效果更好? - 另外的课程有讲解

即使是在函数是y=x^2的情况下,Shallow 都需要指数级的参数量,Deep Network也比Shallow Network表现得更好。

结论

深度学习,可以在比较小的 H mathcal H H情况下,得到更低的损失值。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号