谈到人工智能、深度学习,相信目前 IT 互联网领域的从业者应该耳熟能详的。但大家知道为什么人工智能会火起来吗?人工智能、深度学习以及机器学习之间的关系是怎样的呢?
一、为什么最近几年人工智能再次火爆?
计算能力的提升:随着计算机软硬件技术的发展,GPU 从以前的图像处理专用硬件转而到大规模高度并行单元计算的使用,并且从软件算法层面分布式 GPU 集群的使用,使得以前几个月甚至根本完成不了的模型训练任务今天都能够在很短的时间内完成;
更加优化的算法:以深度神经网络为基础的算法原理得到了进一步改进,使得深度学习算法无论是应用方向还是优化精度上都取得了质的飞跃;
大数据时代的到来:随着移动互联网的到来,以前产生互联网数据都只是 PC 端,而现在几乎人人都在使用各种 App 无时无刻不在产生着互联网数据,数据量的增加,更加促进了深度学习这种需要大量数据训练的算法的应用。以前数据量少,算法训练很容易过拟合。
二、人工智能、机器学习以及深度学习是什么样的关系?
图1 机器学习在人工智能中的地位
从上面的图中我们可以知道:人工智能的领域范围最广,深度学习领域最窄。也就是说,机器学习是人工智能的子领域,而深度学习又是机器学习的一个分支!因此我们可以看出机器学习在 AI 领域具有很重要的地位。
为什么要先学习机器学习而不是直接学习深度学习呢?我相信很多初学者应该都会有这方面的疑惑或者思维误区。正所谓“基础不牢,地动山摇”讲得就是这个道理。所以入门机器学习也要从基础知识开始。
三、机器学习的特点
机器学习的特点主要归纳为以下几点:
机器学习算法以数据和特征为基础,是数据驱动的科学;
机器学习的目标是对数据进行预测与分析;
机器学习以模型方法为中心,并利用统计学习的方法构建模型,并且利用构建好的模型对未知的数据进行预测和分类;
机器学习是以概率论、统计学、信息论、计算理论、最优化以及计算机科学等多领域交叉的学科,因此要想在机器学习上有所成绩,必须要有深厚的数学基础。
四、机器学习的对象
机器学习中最重要的概念就是特征,而特征是最后需要输入到模型中进行训练的多维数据向量,它是来自于各种不同类型的数据(如数字、文本、图像、音频、视频等)转换,这个转换的过程就是机器学习与数据挖掘领域很重要的一个步骤:“特征工程”。
五、机器学习的分类
严格意义上的机器学习算法应该分为四大类:有监督学习、无监督学习、半监督学习、强化学习。
有监督学习
有监督学习是指进行训练的数据既包含特征向量又包含类别标签信息。也就是说,在训练的时候我们是知道每个样本所示的类别或者回归算法中的结果。这样,我们算法的训练过程就会根据类标对参数进行调整,就好比学习的过程被监督了一样,而不是漫无目的的学习。因此,我们就应该知道监督的意义了:学习的过程有类标作为指导算法参数调整的过程。
无监督学习
搞清楚了有监督学习的含义,相信大家很容易明白什么叫无监督学习。相对于有监督学习,无监督学习过程中训练数据集只有每个数据实例的特征向量而没有其所属的标签结果。因此,无监督学习算法就不叫作分类,而往往都叫做聚类:“特征相似的聚集在一起”!
半监督学习
半监督学习其实是一种结合有监督学习和无监督学习的学习方式,它是近年来的研究热点,主要想解决的问题是样本很难收集或者有类标的样本很少,绝大多数的样本缺失类标值的情况。因此,半监督学习是一种介于有监督和无监督的一种折中方案。
图2 典型半监督训练过程
强化学习
所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号)。
而不是告诉强化学习系统 RLS(Reinforcement Learning System)如何去产生正确的动作。由于外部环境提供的信息很少,RLS 必须靠自身的经历进行学习。通过这种方式,RLS 在行动-评价的环境中获得知识,改进行动方案以适应环境。
六、机器学习的要素
李航老师在《统计学习方法》中将机器学习的三要素总结为:模型、策略和算法。其大致含义如下:
模型:其实就是机器学习训练的过程中所要学习的条件概率分布或者决策函数。
策略:就是使用一种什么样的评价,度量模型训练过程中的学习好坏的方法,同时根据这个方法去实施的调整模型的参数,以期望训练的模型将来对未知的数据具有最好的预测准确度。
算法:算法是指模型的具体计算方法。它基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后考虑用什么样的计算方法去求解这个最优模型。
李航老师的总结非常好,但是我个人认为应该再添加一个应该就更加完善了,那就是:特征。因为机器学习界流行的一句话:数据和特征决定了机器学习算法的上界,而模型和算法只是逼近这个上界而已。
这句话也充分说明了一个事实:无论你的机器学习算法模型的识别效果多么准确,如果没有好的特征的话,也等于白搭。换句话说,数据和特征确定了以后,算法最好能做到怎么样基本上已经确定了。此时好与坏算法的差别可能就在于谁更接近基于这个数据和特征的效果上限。
因此,我对机器学习算法要素总结为:特征、模型、策略和算法。
七、机器学习建模过程
模型的求解
假设输入特征变量记为 X,输出变量记为 Y,他们对应的具体取值分别记为 x 和 y,输入变量 X 可以是标量也可以是向量。本系列课程中除非特殊声明,否则特征向量都是列向量,因此输入实例 x 的列向量可以表示为:
x=(x(1),x(1),...,x(i),...,x(n))T
其中 x(i) 表示 x 的第 i 个特征值,因此 x 是一个具有 n 个特征值的特征向量。注意,我们将会使用另一种表示方法 xi 表示第 i 个输入实例。那么第 i 个输入实例的第 k 个特征值就表示为 x(k)i。因此,对于具有 N 个训练实例的有监督学习的训练数据集就可以表示为:
T={(x1,y1),(x2,y2),...,(xN,yN)}
有了以上的数据表示,那么对于一个机器学习算法来说,基本上的提出过程可以总结为以下步骤:
根据特征向量的数据分布提出一个合适的模型函数 y=f(x;θ) 来估计参数分布;
提出一个合适的损失函数 L(x,y) 计算对于训练数据集上的所有训练样本估计的误差损失大小:
L(x,y)=1NN∑i=1L(yi,f(xi))
使用合适的优化算法使得损失函数带有参数的 L(x,y) 的值最小化,即:
minf∈F1NN∑i=1L(yi,f(xi))
求解最优化上述函数值得到 L(yi,f(xi)) 的最小值,从而得到原函数 y=f(x;θ) 的参数值 θ的解:
θ=(θ(1),θ(2),...,θ(K))
其中参数个数 K 与模型函数 f(x;θ) 相关,与特征向量维数以及数据集个数无关。这样新的类标未知的样本 x 就可以直接输入到函数 f(x) 中就可以得到新的预测类标值 y。
八、经验风险与结构风险
实际上在真正的常见算法的实现过程中使用的原则是——结构风险最小化(Structral Risk Minimization SRM)。
经验风险最小化
使用《模型的求解》小节中的方法求解出来的最小化损失函数对应的参数 θ 就叫做经验风险最小化。该策略认为经验风险最小的模型就是最优的模型,也即:
minf∈F1NN∑i=1L(yi,f(xi))
其中 F 是假设空间。统计学中的极大似然估计(Maximum Likelihood Estimation MLE)就是经验风险最小化的一个典型的例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化与极大似然估计等价。
虽然在样本数量足够大的情况下,经验风险最小化求解出来的模型能够取得不错的预测效果,但是当训练数据集也就是样本容量比较小时,基于经验风险最小化训练出来的模型往往容易过拟合。
结构风险最小化
与经验风险最小化对应的叫做结构风险最小化。结构风险最小化是为了防止过拟合而提出来的一种策略,它与正则化等价。结构风险在经验风险的基础上加上表示模型复杂度的正则化项或者罚项。其定义如下:
Rsrm=1NN∑i=1L(yi,f(xi))+λJ(f)
其中 J(f) 为模型的复杂度,它的值应该随着模型 f 的复杂度的增加而增大,这样才能起到抑制模型复杂度的作用。 λ≥0 是系数,它的作用是起到折中经验风险和模型复杂度的。实践证明,结构风险小的模型往往队训练数据以及未知的测试数据都具有较好的预测效果。
机器学习算法的奥妙在于算法优化和调优,因此不懂得它背后的原理,遇到新问题你是没法做得出好效果的。现实工作中遇到的问题往往都是新的问题,这时候就需要你对算法有很深入的理解才能做出来了。
基于此,我写出了这门面向机器学习小白的算法必修课,这门课注重理论与实战结合,用白话的方式讲解了算法中的数学原理,并附带了完整的源代码帮助你进行实践。
领取专属 10元无门槛券
私享最新 技术干货