1、 1.1 引言引言机器学习致力于研究如何通过计算的手段,利用学习样本的方式来自机器学习致力于研究如何通过计算的手段,利用学习样本的方式来自动改善系统的性能。在计算机系统中,动改善系统的性能。在计算机系统中,“经验经验”通常以通常以“数据数据”的形的形式存在,因此,机器学习所研究的主要内容就是如何使计算机具有智式存在,因此,机器学习所研究的主要内容就是如何使计算机具有智能,如何使计算机自动学习隐含在数据中的特征。能,如何使计算机自动学习隐含在数据中的特征。那么这种提取隐含特征的方法就是计算机在原始数据上建立的那么这种提取隐含特征的方法就是计算机在原始数据上建立的“模型模型”(ModelModel
2、),也就是我们听说过的),也就是我们听说过的“学习算法学习算法”(Learning Learning AlgorithmAlgorithm)。)。如果说计算机科学是研究关于如果说计算机科学是研究关于“算法算法”的学问,那么类似的,可以说的学问,那么类似的,可以说机器学习是研究关于机器学习是研究关于“学习算法学习算法”的学问。的学问。样本样本 数据集数据集 特征特征 属性属性 维数维数 样本空间样本空间 特征向量特征向量 标签学习标签学习 训练训练 训练数据训练数据 训练样本训练样本 训练集训练集 假设假设 实际输出目标实际输出目标 输出预测输出预测 损失函数损失函数 代价函数代价函数 分类回归
3、分类回归 二分类二分类 多分类多分类迭代迭代 迭代次数迭代次数 测试测试 验证集验证集 测试集测试集 过拟合过拟合 欠拟合欠拟合 泛化能力泛化能力 鲁棒性鲁棒性 迁移学习迁移学习 监督学习监督学习 无监督学习无监督学习 聚类聚类 簇簇 独立同分布独立同分布 1.21.2基本术语基本术语1.3.1 1.3.1 支持向量机支持向量机支持向量机(支持向量机(Support Vector Machine,SVM)是)是监督学习中最有影响力的方法之一。不同于逻辑回归,监督学习中最有影响力的方法之一。不同于逻辑回归,SVM输出的仅仅是样本的类别而不是概率。输出的仅仅是样本的类别而不是概率。不同于传统的线性
4、回归,不同于传统的线性回归,SVM的重要创新就是核函的重要创新就是核函数(数(Kernel Function)。)。在图在图1.4中两种样本最边缘的中两种样本最边缘的判决函数值被设为判决函数值被设为+1、-1,即:,即:图图 1.41.4支持向量与划分超支持向量与划分超 平面关系平面关系 1.31.3监督学习算法监督学习算法那么这样的两个向量即被称为那么这样的两个向量即被称为“支持向量支持向量”(Support Support VectorVector),这也是支持向量机这个名字的由来。),这也是支持向量机这个名字的由来。距离两类样本的边界都最远的超平面是最优的。其实距离两类样本的边界都最远的
5、超平面是最优的。其实也就是令两个超平面之间的距离最远。两个平行直线也就是令两个超平面之间的距离最远。两个平行直线 与与 的距离为:的距离为:所以可以推导得出两个异类支持向量到超平面的距离所以可以推导得出两个异类支持向量到超平面的距离之和为:之和为:它被称为它被称为“间隔间隔”(MarginMargin)。显然,为了最大化间)。显然,为了最大化间隔我们仅需最小化隔我们仅需最小化 。那么这就是支持向量机的基本原。那么这就是支持向量机的基本原理。理。o121o2id u(t)RRCRu(t)-Ru(t)d t1.3.21.3.2决策树决策树决策树(决策树(Decision TreeDecision
6、Tree)及其变种是另一类)及其变种是另一类将输入空间分成不同的区域,每个区域有独将输入空间分成不同的区域,每个区域有独立参数的算法。立参数的算法。我们希望从训练集中学到一个判断模型用来我们希望从训练集中学到一个判断模型用来对新样本进行分类。对新样本进行分类。决策树,顾名思义就是通过树状结构的决策决策树,顾名思义就是通过树状结构的决策方式来判断一个样本的归属,这是一种很自方式来判断一个样本的归属,这是一种很自然的处理机制。然的处理机制。决策树学习基本算法的实现过程由图给出决策树学习基本算法的实现过程由图给出无监督学习算法训练含有很多特征的数据集,然后学习出这无监督学习算法训练含有很多特征的数据
7、集,然后学习出这个数据集上有用的结构性质。无监督算法只处理个数据集上有用的结构性质。无监督算法只处理“特征特征”,而,而不处理标签。不处理标签。其实,监督和无监督算法之间的区别并没有规范严格的定义,其实,监督和无监督算法之间的区别并没有规范严格的定义,通俗地说,无监督学习的大多数尝试是指从没有人为注释的样通俗地说,无监督学习的大多数尝试是指从没有人为注释的样本的分布中抽取信息。本的分布中抽取信息。一个经典的无监督学习任务是找到数据的一个经典的无监督学习任务是找到数据的“最佳最佳”表示。表示。这个这个“最佳最佳”表示一般来说,是指该表示在比本身表示的信表示一般来说,是指该表示在比本身表示的信息更
8、简单或更易访问而受到限制的情况下,尽可能地保存关于息更简单或更易访问而受到限制的情况下,尽可能地保存关于样本的更多信息。样本的更多信息。1.4无监督学习算法无监督学习算法1.4.1 1.4.1 主成分分析主成分分析主成分分析(主成分分析(Principal Component Analysis,PCAPrincipal Component Analysis,PCA)是最常用的一种降维)是最常用的一种降维方法。方法。PCAPCA学习一种比原始输入维数更低的表示。学习一种比原始输入维数更低的表示。它也学习了一种元素之间彼此没有线性相关的表示。这是学习表示中元素统它也学习了一种元素之间彼此没有线性相
9、关的表示。这是学习表示中元素统计独立标准的第一步。要实现完全独立性,表示学习算法也必须去掉变量间计独立标准的第一步。要实现完全独立性,表示学习算法也必须去掉变量间的非线性关系。这也就是我们之前所希望的,所有样本之间都是独立同分布的非线性关系。这也就是我们之前所希望的,所有样本之间都是独立同分布的。的。PCAPCA的具体实现过程如图的具体实现过程如图PCAPCA将输入高维函数投影表示成低维函数,学习将输入高维函数投影表示成低维函数,学习数据的正交线性变换。数据的正交线性变换。由于我们是想在低维空间中依旧能区分原始样由于我们是想在低维空间中依旧能区分原始样本的,因此我们希望所有样本的投影尽可能地本
10、的,因此我们希望所有样本的投影尽可能地分开。此时,则需要最大化投影点的方差(由分开。此时,则需要最大化投影点的方差(由于方差是衡量一组数据离散程度的度量)。于方差是衡量一组数据离散程度的度量)。PCAPCA这种将数据变换为元素之间彼此不相关表示这种将数据变换为元素之间彼此不相关表示的能力是的能力是PCAPCA的一个重要性质。它是消除数据中的一个重要性质。它是消除数据中未知变化因素的简单表示示例。未知变化因素的简单表示示例。在在PCAPCA中,这个消除是通过寻找输入空间的一个中,这个消除是通过寻找输入空间的一个旋转(通过协方差矩阵完成),使得最大方差旋转(通过协方差矩阵完成),使得最大方差的主坐
11、标和新表示空间的基对齐(如的主坐标和新表示空间的基对齐(如YXYX坐坐标系)。标系)。图图 1.8PCA原理示例,找到一个原理示例,找到一个新函数,使所有样本在其上的新函数,使所有样本在其上的投影尽可能分开(明显投影尽可能分开(明显A要比要比B性能更好,因为样本在性能更好,因为样本在A上的投上的投影相较于影相较于B来讲更为分散)来讲更为分散)1.4.2 k-1.4.2 k-均值聚类均值聚类k-meansk-means算法是一种简单的迭代型聚类算法,采用距离作为相似性指标,从算法是一种简单的迭代型聚类算法,采用距离作为相似性指标,从而发现给定数据集中的而发现给定数据集中的K K类,且每个类的中心
12、是根据类中所有值的均值得到,类,且每个类的中心是根据类中所有值的均值得到,每个类用聚类中心来描述。对于给定的一个包含每个类用聚类中心来描述。对于给定的一个包含 个个 维数据点的数据集维数据点的数据集X X以以及要分得的类别及要分得的类别K,K,选取欧式距离作为相似度指标,聚类目标是使得各类的聚选取欧式距离作为相似度指标,聚类目标是使得各类的聚类平方和最小,即最小化。类平方和最小,即最小化。K-meansK-means算法的步骤如下所示:算法的步骤如下所示:从从N N个样本中选取个样本中选取K K个样本作为聚类中心;个样本作为聚类中心;对剩余每个样本计算其到每个聚类中心的距离;对剩余每个样本计算
13、其到每个聚类中心的距离;重新计算各个类的质心(聚类中心),即每一个中心点更新为该类别中所重新计算各个类的质心(聚类中心),即每一个中心点更新为该类别中所有训练样本的均值;有训练样本的均值;多次迭代后,聚类中心不再变化或小于某阈值时,算法结束。多次迭代后,聚类中心不再变化或小于某阈值时,算法结束。作为一种实现人工智能的强大技术,深度学习作为一种实现人工智能的强大技术,深度学习(Deep Learning)(Deep Learning)已经在手已经在手写数字识别、维数约简、语音识别、图像理解、机器翻译、蛋白结构预测写数字识别、维数约简、语音识别、图像理解、机器翻译、蛋白结构预测和情感识别等各个方面
14、获得了广泛应用。因屡屡取得打破记录的评测结果和情感识别等各个方面获得了广泛应用。因屡屡取得打破记录的评测结果并超越其他方法,而很快受到了非常高度的关注。并超越其他方法,而很快受到了非常高度的关注。依靠硬编码的知识体系面对的困难表明,依靠硬编码的知识体系面对的困难表明,AIAI系统需要具备自己获取知识的系统需要具备自己获取知识的能力,即从原始数据中提取模式的能力。这种能力被称为机器学习能力,即从原始数据中提取模式的能力。这种能力被称为机器学习(Machine LearningMachine Learning)。)。由韦恩图表示的人工智能、机器学习和深度学习之间的关系 1.51.5 机器学习简介机
15、器学习简介机器学习的发展由建立知识体系的思想逐渐向自动学习知识的方向改变。解决这机器学习的发展由建立知识体系的思想逐渐向自动学习知识的方向改变。解决这个问题的途径之一是使用机器学习来发掘表示本身,而不仅仅把表示映射到输出。个问题的途径之一是使用机器学习来发掘表示本身,而不仅仅把表示映射到输出。这种方法我们称之为表示学习(这种方法我们称之为表示学习(Representation LearningRepresentation Learning)。)。深度学习深度学习(Deep Learning,(Deep Learning,也曾被叫作也曾被叫作Feature Learning)Feature Le
16、arning)是在人工神经网络是在人工神经网络(AritificialAritificial neural network,ANN)neural network,ANN)基础上发展而来的一种表示学习方法,也基础上发展而来的一种表示学习方法,也是一种机器学习算法。是一种机器学习算法。机器学习备受瞩目当然是由于它强大的智能数据分析能力,机器学习备受瞩目当然是由于它强大的智能数据分析能力,但机器学习研究还有另一个不可忽视的意义,即通过建立一但机器学习研究还有另一个不可忽视的意义,即通过建立一些计算模型来促进我们发现一些新的自然规律,如新型的蛋些计算模型来促进我们发现一些新的自然规律,如新型的蛋白质结
17、构等。自然科学研究的驱动力归结起来无外是人类对白质结构等。自然科学研究的驱动力归结起来无外是人类对宇宙本源、万物本质、生命本性、自我本质的好奇,从这个宇宙本源、万物本质、生命本性、自我本质的好奇,从这个意义上说,机器学习不仅在信息科学中占有重要地位,还具意义上说,机器学习不仅在信息科学中占有重要地位,还具有一定的自然科学探索色彩。有一定的自然科学探索色彩。不同类型人工智能系统的流程图如图不同类型人工智能系统的流程图如图深度学习的再次崛起,依赖于四个世界发展的基本趋势:深度学习的再次崛起,依赖于四个世界发展的基本趋势:与日俱增的数据量;与日俱增的数据量;愈发庞大的计算资源;愈发庞大的计算资源;深
18、度学习越来越高的识别精度与预测能力;深度学习越来越高的识别精度与预测能力;深度学习成功地解决越来越多的实际问题。深度学习成功地解决越来越多的实际问题。1.6 深度学习的趋势深度学习的趋势1.6.11.6.1与日俱增的数据量与日俱增的数据量幸运的事,在社会日益数字化的驱动下,我们能够获得的数据量日益增加。幸运的事,在社会日益数字化的驱动下,我们能够获得的数据量日益增加。由于计算机的愈发普及,互联网的日益发展,数据也可以更容易地被收集与由于计算机的愈发普及,互联网的日益发展,数据也可以更容易地被收集与记录,并更容易地被整理成适用于机器学习的应用数据集。大数据时代的到记录,并更容易地被整理成适用于机
19、器学习的应用数据集。大数据时代的到来,是机器学习变得更加容易。具不完全统计,截止至来,是机器学习变得更加容易。具不完全统计,截止至20162016年,监督深度学年,监督深度学习算法在每类给定约习算法在每类给定约50005000个标注样本情况下一般将达到可以接受的性能,当个标注样本情况下一般将达到可以接受的性能,当至少有至少有1000 1000 万个有标签样本的数据集用于训练时,机器学习算法将接近甚至万个有标签样本的数据集用于训练时,机器学习算法将接近甚至超越人类表现。超越人类表现。1.6.21.6.2愈发庞大的计算资源愈发庞大的计算资源考虑到深度学习庞大的计算需求和考虑到深度学习庞大的计算需求
20、和CPUCPU综合计算性能的限制,人们提出综合计算性能的限制,人们提出使用使用GPUGPU(Graphics Processing UnitGraphics Processing Unit)来解决深度学习庞大的计算问)来解决深度学习庞大的计算问题。神经网络算法通常涉及大量参数、激活值、梯度值的缓冲区,其中题。神经网络算法通常涉及大量参数、激活值、梯度值的缓冲区,其中每个值在每一次训练迭代中都要被完全更新。会超出传统计算机的高速每个值在每一次训练迭代中都要被完全更新。会超出传统计算机的高速缓存缓存(Cache)(Cache),所以内存带宽通常会成为主要瓶颈。相比,所以内存带宽通常会成为主要瓶颈。
21、相比CPUCPU,GPUGPU一个一个显著的优势是其具有极高的内存带宽。由于神经网络的训练算法通常不显著的优势是其具有极高的内存带宽。由于神经网络的训练算法通常不涉及大量的分支运算与复杂的控制指令,所以其更适合在涉及大量的分支运算与复杂的控制指令,所以其更适合在GPUGPU硬件上训硬件上训练。并且由于神经网络能够被分为多个单独的练。并且由于神经网络能够被分为多个单独的“神经元神经元”,并且独立于,并且独立于同一层内其他神经元进行处理,所以具有并行特性的同一层内其他神经元进行处理,所以具有并行特性的GPUGPU更适用于神经更适用于神经网络的计算。网络的计算。1.6.31.6.3展现出越来越高的性
22、能以及解决实际问题的潜力展现出越来越高的性能以及解决实际问题的潜力在深度网络的规模和精度有所提高的同时,它们可以解决的任务在深度网络的规模和精度有所提高的同时,它们可以解决的任务也日益复杂。(也日益复杂。(GoodfellowGoodfellow et al.,2014 et al.,2014)表明,神经网络可以处)表明,神经网络可以处理字符序列,这种序列到序列的学习似乎引领着另一个应用的颠覆理字符序列,这种序列到序列的学习似乎引领着另一个应用的颠覆性发展,即机器翻译。性发展,即机器翻译。深度学习也为其他科学做出了贡献。例如对医学图像的诊断,利深度学习也为其他科学做出了贡献。例如对医学图像的诊断,利用脑部用脑部CTCT图像对大脑疾病进行自动诊断;帮助制药公司设计新的药图像对大脑疾病进行自动诊断;帮助制药公司设计新的药物等。物等。总之,深度学习是机器学习的一种方法。受到近年来数据资源、总之,深度学习是机器学习的一种方法。受到近年来数据资源、计算资源、社会要求等多方面因素的驱动,深度学习也获得了进一计算资源、社会要求等多方面因素的驱动,深度学习也获得了进一步的发展,是一个充满了机遇与挑战的技术。步的发展,是一个充满了机遇与挑战的技术。