1.1 机器学习的概念:机器学习是指从有限的观测数据中学习出具有一般性的规律,并利用这些规律对未知数据进行预测的方法。机器学习可以分为监督学习,无监督学习和强化学习。
传统的机器学习主要关注于如何学习一个预测模型。一般需要首先将数据表示为一组特征(feature),然后将这些特征输入到预测模型,并输出预测结果。这类机器学习可以看作是浅层学习,其特征主要依靠人工经验或特征转换的方法来抽取。在实际任务中使用机器学习模型的步骤如下图所示:
图1.机器学习模型的使用流程
其中,1.数据预处理:去噪声,标准化;2.特征提取:从原始数据中提取有效特征,例如图像边缘和尺度不变特征变换等; 3.特征转换:特征加工,升维和降维等; 4. 预测:核心部分,学习一个函数进行预测。
在机器学习的过程中,特征工程问题十分重要,它很大程度上决定了任务的性能上限。一般来说在实际任务中,不同模型的性能的相差不多,而是前三步的处理对准确性起着关键的作用。
1.2 表示学习的概念: 将输入信息转换为有效的特征,或者更一般性的称为表示。如果有一种算法可以自动地学习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫做表示学习(Representation Learning)。
语义鸿沟问题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性,比如给出几张“猫”的照片,这些照片在像素级别上的差异性会非常大,我们理解这些照片为猫是在高层语义概念上的,如果一个预测模型直接建立在底层特征之上,则对模型的预测能力要求过高。如果可以有一个好的表示在一定程度上可以反映出数据的高层语义特征,那就可以比较容易建立出较好的机器学习模型。
在机器学习中,特征有两种常用表示方式:局部表示和分布式表示。一个比较常见的局部表示方法就是one-hot向量。这种表示方法的优势是具有较好的解释性,有利于人工归纳和总结并进行特征组合,计算效率较高。但缺点是不同特征之间的相似度为0,且特征维度扩展的成本很高。
我们可以使用神经网络来将高维的局部表示空间映射到一个非常低维的分布式表示空间。在这个低维空间中,每个特征不再是坐标轴上的点,而是分散在整个低维空间,这个过程称为嵌入。在低维的嵌入空间中,每个特征不在坐标轴上,特征之间可以计算相似度。
1.3 深度学习的概念: 为了学习一种好的表示,需要构建具有一定深度的模型,并通过学习算法来让模型自动学习出好的特征表示(从底层特征,到中层特征,再到高层特征),从而提高模型的预测准确率。所谓的“深度”就是指原始数据进行非线性特征转换的次数。深度学习是机器学习的一个子问题,主要目的是从数据中自动学习到有效的特征表示。
深度学习通过多层特征变换,将原始数据变成更高层次,更抽象的表示,这些学习到的特征可以替代人工设计的特征,避免“特征工程”。深度学习需要解决的关键问题是贡献度分配问题,即一个系统中的不同参数或者组件对其最终输出结果的影响。深度学习可以看作是一种强化学习,每个组件并不能直接得到监督信息,需要通过整个模型的最终监督信息得到。
深度学习中的误差反向传播算法可以很好的解决贡献度分配问题。超过一层的神经网络都可以看作是深度学习模型,随着模型深度的不断增加,其特征表示的能力也逐渐加强,使得后续的预测变得更加容易。
1.4 端到端学习的概念:是指在学习过程中不进行分模块或者分阶段训练,直接优化任务的总体目标,在端到端学习中,一般不需要明确地给出不同模块或阶段的功能,中间过程不需要人为干预,训练数据为“输入-输出”对的形式,此外无需提供其它额外信息。
1.5 神经网络的概念:一种模仿人脑神经系统的数学模型。在机器学习领域,神经网络是指由很多人工神经元构成的网络结构模型,这些人工神经元之间的连接强度是可学习的参数。
一个人的智力不完全由遗传决定,大部分来自于生活经验,也就是说人脑神经网络是一个具有学习能力的系统。在人脑神经网络中,每个神经元本身并不重要,重要的是神经元如何组成网络。不同神经元之间的突触有强有弱,其强度可以通过学习(训练)来不断改变,具有一定的可塑性。人脑的记忆分为两种,长期记忆和短期记忆,其中长期记忆的突触强度非常强。人脑神经元的结构如下:
人工神经网络从结构、实现机理和功能上模拟人脑神经网络,它和生物神经元类似,由多个节点(人工神经元)相互连接而成,可以用来对数据之间的复杂关系进行建模。不同节点之间的连接被赋予了不同的权重,每个权重代表了一个节点对另一个节点的影响大小。
感知器是最早的具有机器学习思想的神经网络,但其学习方法无法扩展倒多层的神经网络上。直到1980年,反向传播算法(BackPropagation, BP)才解决了多层神经网络的学习问题,称为最为流行的神经网络学习算法。
人工神经网络可以看作是一个通用的函数逼近器,理论上只要有足够的训练数据和神经元数量,人工神经网络可以逼近任意的函数。