第一课 机器学习简介

1. 摘要

本课主要是对机器学习做一个简要介绍,包括机器学习的历史、分类及应用。作为系列第一篇,在这里我也按这三个内容做一些说明。

2. 机器学习的历史

最近几年伴随大数据时代火起来的机器学习实际上在半个世纪以前就已经开始有人研究了。在1959年,美国人Arthur Samuel第一次使用了“机器学习(Machine Learning)”这个术语,他编写了一个跳棋程序,该程序也被认为是第一个具有学习能力程序。

Arthur Samuel也对Machine Learning给出了一个非正式定义:在不直接针对具体问题编程的前提下,赋予计算机学习能力的一个研究领域。 1998年,Tom Mitchell对机器学习给出了一个更为现代的定义:给定一个任务T和测量方法P,如果在经验E的影响下,P对T的测量得到了提升,那么就说该程序在经验E中得到了学习。 例如上文提到的跳棋程序,任务T对应下棋,测量方法P对应着和人类棋手下棋的胜率,而经验E对应着程序不断跟自己下棋的过程。按照上面的定义,我们可以说Samuel的程序在学习下棋。

3. 机器学习的分类

3.1 监督学习(Supervised Learning)

百度给出的定义为:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。
我表示黑人问号。。。
说白了就是由人类给定一组标准答案,机器通过这些标准答案对目标任务进行一个推测

Ng教授给出了一个直观例子

这是Portland Oregon房屋面积和价格的关系图,横坐标表示房屋面积,纵坐标表示房屋价格。 图中画X的点为我们收集到的真实的数据,根据这些点我们可以做出一条直线(或曲线),若我们的房子面积为750,则我们可以预测该房子的价值为150K(或200K)。 在这个例子中有两个关键点: 1. 我们需要预先给定一组标准答案(the Right Answer) 2. 对标准答案进行回归(Regression),在这里就要求我们的预测值(房屋价格)是连续的。

第二个例子是一个分类问题(Classification Problem)
给定一组乳腺癌肿瘤体积和性质(良性or恶性)的数据,我们根据肿瘤 大学需要预测该肿瘤的性质。
因此,在这个问题中,我们的值域只有0和1,分别代表良性和恶性,继而得到下图。

当然,在真实情况中,肿瘤性质是由多种因素决定的,除了其体积大小,我们还可以增加考虑患者年龄因素。我们以X表示恶性,O表示良性,纵坐标为患者年龄,横坐标为肿瘤体积,我们会得到下图
由这组数据,我们的算法选择在图中画了一条直线。若一位新患者的年龄-肿瘤体积坐标落在了线的左下方,我们的算法则会把该肿瘤判断为良性。

再进一步,我们可以考虑由n个输入(n维)甚至无限个输入(无限维)组成的数据集,对于这些问题我们就需要更为先进的工具进行处理(后面的课程会讲到支持向量机SVM,就是专门处理这类问题的)

3.2 非监督学习(Unsupervised Learning)

在这类学习中,Ng同样是用一组案例来解释的。
第一个案例为上文中提到的癌症性质分类问题。
如果我们只给出关于肿瘤的一组特征(如肿瘤大小和病患年龄),而并不给出该肿瘤的性质,则我们得到的数据点应为如下样子。

然后我们希望算法可以自己从这组数据中总结出某种规律,进而对肿瘤进行如下划分,这样的问题我们称为 **聚类问题**。
第二个案例是用无监督学习算法去解析DNA信息。由于这个案例过于专业,在这里我也就不细说了。

第三个案例为解析照片的区块信息。
例如我们有照片原图如下

那么应用无监督学习算法,可以根据照片中的像素信息,将原图划分为一个个区块。
好,下面高潮来了。根据这些区块信息,我们可以将二次元照片还原成一个三次元的世界。
最后一个案例为鸡尾酒会问题(Cocktail Party Problem) 试想在一个嘈杂的鸡尾酒会上,各种谈话各种声音交错在一起,我们想从中分辨出某个人的谈话,用非监督学习算法就可以做到这一点。该算法的原理是,由于每个人的谈话声到各个麦克风的距离不同,则同一个人的声音传到不同麦克风的时间和音量都有微小的差别,算法可以根据这些区别,将这些声音区分开。而且,该算法的MATLAB代码只有一行
    [W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

由于是音频内容,在这里展示不能。。。也不多说了。。

3.3 增强学习(Reinforcement Learning)

增强学习通常应用于在某段时间内需做出一系列决策的情况。其关键在于设计一个 回报函数,使得系统每做出一个决定,都能根据 回报函数获得一个回报值,而整个系统的目标就是获得更高的回报值。

例如视频中提到的,编写一个程序让一个直升飞机飞起来。直升机需要做出一系列“还不错”的决策让自己飞起来。简单来说,当直升机正常飞行时, 回报函数会给出一个正的回报值,而掉下来时给出一个负值。这样经过一段时间的训练后,直升机就可以按照自己的一系列正回报值的决策来飞行了。