第一部分 序言

第一节 引言

首先介绍了使用机器学习(Machine Learning)技术的例子,比如网页搜索结果的排布,照片的分类和筛选垃圾邮件等。

接着介绍了机器学习受欢迎的原因,即不止在人工智能领域有用,在其他的许多领域也有很大的作用。在数据挖掘领域,通过网页中大量的点击流去了解用户特征,便于更好服务;对于一些无法手动编写的程序(例如如何控制直升机起飞),可以通过机器学习,让电脑自己学会如何控制;私人订制程序,例如各种短视频app可以根据用户的喜好来推荐不同的视频。

第二节 介绍机器学习

Arthur Samuel (1959)对机器学习的定义:Field of study that gives computers the ability to learn without being explicitly programmed.(在没有明确设置的情况下,使计算机具有学习能力的研究领域)。

Arthur Samuel还编写了一个国际象棋的程序,通过不同布局的尝试和学习,训练出了一个下棋能力超过他本人的程序。

之后Tom Mitchell (1998)又对机器学习下了一个定义:A computer program is said to learn
from experience E with respect to some task T and some performance measure P, if its
performance on T, as measured by P, improves with experience E.(计算机程序从经验E中学习如何解决任务T,并对某一性能P进行度量,可以发现在拥有相关经验E后,性能P有了提升。)

用该定义对应上面下棋的例子,E对应的是不同的布局方法,T对应的是下棋这个任务,P则对应着程序的胜率。

目前存在几种不同的学习算法,最主要的两种为监督学习(Supervised learning)和无监督学习(Unsupervised learning)。

第三节 监督学习(Supervised learning)

首先通过一个例子引入,当告知同地段的一些房子的面积和售价信息,如何预测其他房子的价值。

可以先将数据标记在下图中。

吴恩达机器学习课程代码在哪下载 吴恩达机器学课程讲义_吴恩达机器学习课程代码在哪下载

 为了预测当面积为750时,房屋的价格,则需要拟合出一条合适的线段(或者曲线,选择直线还是曲线会在之后的课程讨论),线段中的横坐标对应房屋的面积,纵坐标即为价格。

(个人感觉找这个直线,可以采用高中所学的求回归方程的方法)

上图便是监督学习的一个例子,通过一系列离散的值找出一条连续的曲线。

接着举了另一个例子,即肿瘤大小与肿瘤是否为良性的关系,具体如下图所示。

吴恩达机器学习课程代码在哪下载 吴恩达机器学课程讲义_监督学习_02

上图展示了肿瘤大小和是否为良性的情况,其中是否为良性可以用0和1来表示,这个例子与上个例子明显的不同是,纵坐标只有0和1,即可以将二维坐标换成一维坐标,用不同的记号表示是否为良性。这个例子的数据也给出了正确答案(即是否为良性),我们则需要通过给出的数据来判断任意大小的肿瘤是否为良性,这实际上就是一个分类问题了。

当然分类问题中,可能不只有肿瘤大小这一个特征,还可能有多个特征等,面对多个特征时,可以采用支持向量机的算法(后期会讲解)。

由上述两个例子可以看出,监督学习主要包括两个问题,回归问题(regression problem)和分类问题(classification problem),回归问题需要通过多个离散信息构成的数据集(训练集)拟合出一个连续的曲线,该曲线可以用于判断其他情况下的结果;分类问题则是通过数据集来判断其他情况下的结果应该属于哪一类。

第四节 无监督学习 (Unsupervised learning)

首先通过以下两幅图片做一个直观的比较

吴恩达机器学习课程代码在哪下载 吴恩达机器学课程讲义_机器学习_03

吴恩达机器学习课程代码在哪下载 吴恩达机器学课程讲义_机器学习_04

左侧为监督学习的分类问题,右侧为非监督学习,两者最直观的差别为,非监督学习的数据集中没有标明“正确答案”(正确答案即人为给定的分类标准)。虽然没有正确答案,非监督学习可以判断出上图的数据有两个不同的聚集簇,并可以将数据分为不同的簇,这就是聚类算法。聚类算法比较常见的例子便是新闻网站的专题分类,把每天的新闻分成不同类型。当然它还有其他的很多应用,例如基因学中的DNA微观数据,组织大型计算机集群(把适合一起工作的计算机放在一组),社交应用的自动分组,市场客户数据分类等。

当然聚类算法只是无监督学习的一种,鸡尾酒会问题便是另一种。鸡尾酒会问题是指在宴会中有多个人同时说话,如何将每个人的声音单独提取出来。先看一个最小的宴会情况,即只有两人在说话,如下图所示。

 

吴恩达机器学习课程代码在哪下载 吴恩达机器学课程讲义_机器学习_05

 如何分离出二者的声音,老师给出了一个简单的算法,代码如下

[W,s,v] = svd((repmat(sum(x.*x,1),size(1).*x)*x');
//svd 奇异值分解函数

这个也说明了选择正确的编程软件(比如上文中采用的Octave软件),可以使你的程序更加简洁。