一、什么是深度学习
- 深度学习是机器学习研究中的一个新的领域,动机在于建立模拟人脑进行分析学习的神经网络,是无监督学习的一种。通过组合底层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
- 深度:深度学习的前身是人工神经网络,就是试图模仿人脑的神经元之间传递和处理信息的模式。
人工神经网络由各个层组成,输入层(输入训练数据)、隐含层(使输入数据向前传播到输出层)、输出层(输出计算结果)。“深度”没有特指,一般就是要求隐藏层很多。
人工神经网络的每一层由大量的节点组成,层与层之间有大量的连接,但是层内部的神经元一般相互独立。
深度学习的目的:利用已知的数据学习一套模型,使系统在遇见未知的数据时也能够做出预测。这就需要神经元具备以下特性:激活函数(一般是非线性函数,每个神经元通过这个函数将原有的来自其他神经元的输入做一个非线性变化,输出给下一层神经元,其非线性能力是向前传播很重要的一部分);成本函数(用来定量评估在特定输入值下,计算出来的输出结果距离这个输入值的真实值有多远,然后不断调整每一层的权重参数,使评估后的损失值变小。这就是完成了一次向后传播,损失值越小,结果就越可靠)。
神经网络算法的核心就是计算、连接、评估、纠错和训练,而深度学习的深度就在于通过不断增加中间隐藏层数和神经元数量,让神经网络变得又深又宽,让系统运行大量的数据训练它。 - 学习:学习是个体在特别情境下,由于练习或反复经验而产生的行为、能力或倾向上的比较持久的变化及其过程。
简单又普遍的一类机器学习算法就是分类。对于分类,输入的训练数据有特征、标记,在学习中就是找出特征和标记间的映射关系,通过标记来不断纠正学习中的偏差,使学习的预测效率不断提高。这种训练数据都有标记的学习称为监督学习。
无监督学习则是让计算机自己去学习怎样做一些事,因此所有数据只有特征而没有标记。有两种思路:一是在训练时不为其指定明确的分类,但是这些数据会呈现出聚群的结构,彼此相似的类型会聚集在一起。计算机把这些没有标记的数据分成一个个的组合,就是聚类。二是在成功时采用某种形式的激励制度,即强化学习。对于强化学习(一般用在游戏、下棋等需要连续决策的领域)来说,它虽然没有标记,但有一个延迟奖赏与训练相关,通过学习过程中的激励函数获得某种从状态到行动的映射。
还有半监督学习,其训练数据一部分有标记,一部分(常常远远大于有标记的)没有标记。基本规律:数据的分布必然不是完全随机的,通过结合有标记数据的局部特征,以及大量没有标记数据的整体分布,得到比较好的分类结果。 - 解决问题:深度不足会出现问题;人脑具有一个深度结构;认知过程逐层进行,逐步抽象。
二、深度学习的方法
- 学习或回忆数学知识:我们的目标是训练出一个模型,用这个模型去进行一系列的预测,而训练过程涉及的过程抽象成数学函数,首先定义一个网络结构(相当于定义一种非线性函数);接着定义一个优化目标,也就是损失函数。训练过程就是求最优解及次优解的过程。这个过程需要我们掌握基本的概率统计、高等数学、线性代数等知识。
- 掌握经典机器学习理论:支持向量机、逻辑回归、决策树、朴素贝叶斯分类器、随机森林、聚类算法、协同过滤、关联性分析、人工神经网络和BP算法、PCA、过拟合、正则化等。
- 掌握编程语言:python、numpy、pandas、sklearn等。
- 关注最新研究成果:阅读经典论文。
- 动手训练神经网络:选择一个开源的深度学习框架(越热越好),建议从计算机视觉入手,例如:用各种网络模型来训练手写数字(MNIST)及图像分类(CIFAR)的数据集。
- 深度学习感兴趣的相关领域:主要是计算机视觉(图像分类、目标检测等)、自然语言处理(语音识别、语音合成、对话系统、机器翻译、文章摘要、情感分析等)、各种预测等。
- 重复4~6。