深度学习导读
本文记录深度学习 1 入门笔记。代码实现框架为 PyTorch 2,教学内容参考 Karpathy 3、Dive into DeepLearning 4 等。
深度学习是什么?相较于机器学习中「手动提取特征」从而进行之后的下游任务,深度学习则直接规避了手动提取特征的人工干预,直接让模型自动提取数据特征并进行之后的下游任务,从而实现所谓「端到端」的任务范式。这里的自动提取特征也被叫做「表示学习」,具体流程如下图所示:
为什么会有深度学习?最简单的一点就是,很多特征我们根本没法定义一种表示规则来提取,比如说对于图像,怎么定义复杂的图像的特征呢?比如说对于音频,又怎么定义复杂的音频的特征呢?没办法,我们直接学特征!
神经网络是什么?就是万千模型中的一种,给定输入,得到输出,仅此而已。
为什么用神经网络进行深度学习?有了上面对深度学习定义的理解,可以发现其中最具有挑战性的特点就是,模型怎么知道什么才是好特征?什么是不好的特征?神经网络可以很好的解决这个问题。通过由浅到深的层层神经元的特征提取,深层的神经元就可以学习到更高语义的特征,并且由于不同层级的神经元可以提取到不同层级的语义特征,也可以很好地解释深度学习中特征的「贡献度分配」问题。
-
邱锡鹏. 神经网络与深度学习 [M]. 1版. 北京: 机械工业出版社, 2017. ISBN 978-7-111-64968-7. ↩