动手学习深度学习 引言
该系列主要记录学习李沐大神《动手学习深度学习》一书的笔记。感谢大神!
《动手学习深度学习》地址:http://zh.diveintodeeplearning.org/
应用深度学习需要
(1)搞清问题的动机和特点。
(2)理解不同类型神经网络的数学原理。
(3)在原始数据上拟合极复杂的深层模型的优化算法。
(4)有效训练模型、避免数值计算陷阱及充分利用硬件性能所需的工程技能。
(5)为解决方案挑选合适的变量(超参数)组合的经验。
近十年深度学习长足发展的原因
(1)优秀的容量控制方法
丢弃法,使得大型网络的训练不再受制于过拟合。
(2)注意力机制
解决了如何不在增加参数的情况下扩展一个系统的记忆容量和复杂度。
(3)记忆网络和神经编码器-解释器
这种多阶设计使得针对推理过程的迭代建模的方法变得可能。
(4)对抗生成网络的发明
关键创新在于将重采样部分替换成了任意的含有可微分参数的算法,这些参数将被训练到使得辨别器不再分辨真实的和生成的样本。
(5)分布式并行训练算法能力提升
(6)并行计算能力提升
(7)深度学习框架
第一代:Torch、caffe、Theano
第二代:Tensorflow、CNTK、Caffe2、Apache MXNet
第三代:命令式深度学习框架,Pytorch、MXNet
深度学习的特点
(1)机器学习
研究如何使用计算机系统利用经验改善性能。
在机器学习的众多研究方向中,表征学习关注如何自动找出表示数据的适合方式,以便更好的将输入变换为正确的输出。
(2)深度学习
它是具有多级表示的表征学习方法。
在每一级,深度学习通过简单的函数将该级的表示变换为更高级的表示。
它可以逐级表示越来越抽象的概念或者模式,他将自动找出每一级表示数据的适合方式。
它属于端到端的训练,特征提取方法被性能更强的自动优化的逐级滤波器代替。
它从含参数统计模型(数据稀缺)转向完全无参数的模型(数据充足)。
它对非最优解的包容、对非凸非线性优化的使用。