
2.2 机器学习
2.2.1 什么是机器学习
在讨论什么是机器学习前,我们先来讨论一下生活中常见的一种产品,如图2-3所示。这是Windows上的语音助手Cortana。为什么Cortana能够听懂人的语音?其背后的核心技术是什么?事实上,这个技术正是我们这节所要讲的机器学习,它是所有语音助手产品(苹果的Siri与谷歌的Now)能够与人进行交互的关键。

图2-3 语音助手产品
机器学习是计算机利用已有的数据(样本),得出某种规律模型(规律),并利用此模型预测未来的一种方法。从广义上来说,机器学习是一种能够赋予机器学习的能力来让它完成通过直接编程无法完成的功能的一种方法。但从实践上来看,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。
下面将机器学习的过程与人类对历史经验归纳的过程进行比较,如图 2-4所示。人在成长中积累了许多经验,将其进行“归纳”,获得了生活的一般“规律”。当遇到未知问题时,利用已知“规律”进行“推测”。机器学习中的“训练”与“预测”过程可以对应到人类的“归纳”和“推测”过程。因此,机器学习的思想仅仅是对人类在生活中学习成长的一个物理模拟。

图2-4 机器学习与人类思考的类比
2.2.2 机器学习的算法
通过 2.2.1 节我们知晓了什么是机器学习,本节我们将介绍机器学习中的一些经典算法,重点放在这些算法的内涵思想上,对数学理论与实践细节不进行展开讨论。
1.回归算法
回归算法是最为简单的机器学习算法,它有两个重要的子类:线性回归和逻辑回归。
线性回归即根据已有数据拟合出一条直线来最佳地匹配这些数据。在这个过程中,通常用到“最小二乘法”,它的核心思想是所有数据与拟合直线的距离最小,即函数极值问题。著名的“梯度下降”是函数求极值问题的常用手段,也是解决回归模型中最简单且有效的方法之一。
逻辑回归属于分类算法,线性回归处理的是数值问题(连续性问题),而逻辑回归处理的是分类问题(离散性问题)。在具体的实现上,逻辑回归只是对线性回归的计算结果加了一个Sigmoid函数,将数值结果转化为了0到1之间的概率。从直观上来说,逻辑回归就是画出了一条分类线。
2.神经网络
神经网络(人工神经网络,ANN)算法是在“深度学习”的浪潮下,目前最为强大的机器学习算法之一。
下面来看一个简单的神经网络逻辑架构,如图 2-5所示。每层的圆代表处理单元(即神经元),若干单元组成一层,若干层相互连接构成了一个网络,即神经网络。该网络分为输入层、隐藏层和输出层。输入层接收输入数据,隐藏层对数据进行处理,最后的结果被整合到输出层。

图2-5 神经网络的逻辑架构
在神经网络中,每个处理单元本质上就是一个逻辑回归模型,逻辑回归模型接收上层的输入,把模型的预测结果作为输出传输到下一层。通过这样的过程,神经网络可以完成非常复杂的非线性分类。
3.支持向量机
支持向量机(SVM)算法起始于统计学,它在机器学习中得到了广泛应用。它可以说是逻辑回归算法的强化:通过设置更严格的优化条件,结合高斯“核”函数能够获得比逻辑回归更好的分类界线。但是如果没有结合高斯“核”函数技术,则支持向量机算法最多算是一种更好的线性分类技术。
通过结合高斯“核”,SVM可以实现复杂的分类界线,从而达到更好的分类效果。“核”是一种特殊函数,最典型的特征就是可以将低维的空间映射到高维。比如在二维平面划出一个圆形分类界线会很困难,但通过“核”可以将二维空间映射到三维空间,然后使用一个线性平面就可以达到类似的效果。
4.聚类算法
前面的三种算法都是在训练数据中包含了标签,训练出的模型可以对其他未知数据预测标签。在聚类算法中,训练数据都是不含标签的,而算法的目的则是通过训练,推测出这些数据的标签。以一个二维数据为例,假设数据包含两个特征,那么就可以通过聚类算法计算数据间的距离对其进行分类,最典型的代表就是K-Means算法。
5.推荐算法
推荐算法在电商界(如亚马逊、天猫、京东)等得到了广泛的运用,主要特征就是自动向用户推荐他们最感兴趣的东西。推荐算法有两个主要的类别:
一类是基于物品内容的推荐,它是将与用户购买的内容近似的物品推荐给用户,这样做的前提是每个物品都得有若干个标签,因此才可以找出与用户购买物品类似的物品。这样推荐的好处是关联程度较大,但是由于每个物品都需要贴标签,因此工作量较大。
另一类是基于用户相似度的推荐,它是将与目标用户兴趣相同的其他用户购买的东西推荐给目标用户,例如小 A 历史上买了物品 B 和 C,经过算法分析,发现另一个与小 A近似的用户小D购买了物品E,于是将物品E推荐给小A。
6.机器学习的应用
目前机器学习在各个领域都有应用,例如语音识别、图像识别、医学诊断、证券市场分析、搜索引擎等。
(1)虚拟个人助理:Siri、小冰、度秘是现在虚拟个人助理的典型例子。个人助理在进行回复时,会综合分析信息储备和相关查询,在这个过程中机器学习是其实现这些功能的基础。
(2)交通预测:基于日常经验进行拥堵分析是生活中机器学习的典型。中央服务器通过GPS 导航记录使用者的位置和速度数据,构建当前流量的地图。而实际中配备 GPS 的汽车相对较少,机器学习可根据日常经验(样本数据)来估计可能出现拥塞的区域。
(3)社交媒体服务:个性化的订阅是机器学习在社交媒体平台的主要应用,比如 UC推荐、新闻头条等。
(4)智能客服:聊天机器人代替人工客服是机器学习的一个发展趋势。许多网站和公共服务电话上会有在线客服,在大多数情况下,都是聊天机器人代替人工客服,并且它们会随着聊天的深入变得更加人性化,这都是底层的机器学习算法所驱动的。
(5)商品推荐:购物网站的商品推荐也是机器学习的一个重要应用。当在网站购物或者浏览相关产品时,系统会自动推荐类似物品,即“投其所好”,这些精准推荐的背后也是机器学习算法。