机器学习简介

引言

机器学习是什么?

机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

主要以下两条定义:

Arthur Samuel (1959): Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed.

第一个机器学习的定义来自于Arthur Samuel。他定义机器学习为,在进行特定编程的情况下,给予计算机学习能力的领域

注:Arthur Lee Samuel (1901–1990) 教授是美国人工智能领域的先驱,他设计了一些下棋程序,可以通过不断的下棋来学习,从而达到很高的下棋水平。

Tom Mitchell (1998) : Well-posed Learning Problem: 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.

Tom Mitchell 的机器学习的定义, 对于一个垃圾邮件识别的问题,将邮件分类为垃圾邮件或非垃圾邮件是任务T,查看哪些邮件被标记为垃圾邮件哪些被标记为非垃圾邮件是经验E,正确识别的垃圾邮件或非垃圾邮件的数量或比率是评测指标P。


机器学习算法的类型

有监督学习(Supervised learning):

通过生成一个函数将输入映射为一个合适的输出(通常也称为标记,多数情况下训练集都是有人工专家标注生成的)。例如分类问题,分类器更加输入向量和输出的分类标记模拟了一个函数,对于新的输入向量,得到它的分类结果。

无监督学习(Unsupervised learning):

与有监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。

半监督学习:

介于监督学习与无监督学习之间。

强化学习(Reinforcement learning):

通过观察来学习如何做出动作,每个动作都会对环境有所影响,而环境的反馈又可以引导该学习算法。

其他的类型包括推荐系统,Transduction,Learning to learn等。

监督学习

回归分析(Regression Analysis):

回归分析,其数据集是给定一个函数和它的一些坐标点,然后通过回归分析的算法,来估计原函数的模型,求出一个最符合这些已知数据集的函数解析式。然后它就可以用来预估其它未知输出的数据了,你输入一个自变量它就会根据这个模型解析式输出一个因变量,这些自变量就是特征向量,因变量就是标签。 而且标签的值是建立在连续范围的。

分类(Classification):

其数据集,由特征向量和它们的标签组成,当你学习了这些数据之后,给你一个只知道特征向量不知道标签的数据(不同的),让你求它的标签是哪一个?其和回归的主要区别就是输出结果是离散的还是连续的。

假如说你想预测房价。
前阵子,一个学生从波特兰俄勒冈州的研究所收集了一些房价的数据。你把这些数据画
出来,看起来是这个样子:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是
千美元。那基于这组数据,假如你有一个朋友,他有一套 750 平方英尺房子,现在他希望把
房子卖掉,他想知道这房子能卖多少钱。
那么关于这个问题,机器学习算法将会怎么帮助你呢?

image

我们应用学习算法,可以在这组数据中画一条直线,或者换句话说,拟合一条直线,根
据这条线我们可以推测出,这套房子可能卖$150, 000,当然这不是唯一的算法。可能还有更
好的,比如我们不用直线拟合这些数据,用二次方程去拟合可能效果会更好。根据二次方程
的曲线,我们可以从这个点推测出,这套房子能卖接近$200, 000。稍后我们将讨论如何选择
学习算法,如何决定用直线还是二次方程来拟合。两个方案中有一个能让你朋友的房子出售
得更合理。这些都是学习算法里面很好的例子。以上就是监督学习的例子。

可以看出,监督学习指的就是我们给学习算法一个数据集。这个数据集由“正确答案”
组成。在房价的例子中,我们给了一系列房子的数据,我们给定数据集中每个样本的正确价
格,即它们实际的售价然后运用学习算法,算出更多的正确答案。比如你朋友那个新房子的
价格。用术语来讲,这叫做回归问题。我们试着推测出一个连续值的结果,即房子的价格。
一般房子的价格会记到美分,所以房价实际上是一系列离散的值,但是我们通常又把房价看
成实数,看成是标量,所以又把它看成一个连续的数值。

乳腺癌(良性,恶性)预测问题-分类(Classification): 预测离散的输出值(0, 1)

imgage

无监督学习

“Because we don’t give it the answer, it’s unsupervised learning”。

还是先来问题化地解释一下无监督学习:我们有一些问题,但是不知道答案,我们要做的无监督学习就是按照他们的性质把他们自动地分成很多组,每组的问题是具有类似性质的(比如数学问题会聚集在一组,英语问题会聚集在一组,物理……..)。
所有数据只有特征向量没有标签,但是可以发现这些数据呈现出聚群的结构,本质是一个相似的类型的会聚集在一起。把这些没有标签的数据分成一个一个组合,就是聚类(Clustering)。比如Google新闻,每天会搜集大量的新闻,然后把它们全部聚类,就会自动分成几十个不同的组(比如娱乐,科技,政治……),每个组内新闻都具有相似的内容结构。

有监督学习和无监督学习的对比,看图更形象:

image

如图表所示,这个数据集中每
条数据都已经标明是阴性或阳性,即是良性或恶性肿瘤。所以,对于监督学习里的每条数据,
我们已经清楚地知道,训练集对应的正确答案,是良性或恶性了。
在无监督学习中,我们已知的数据。看上去有点不一样,不同于监督学习的数据的样子,
即无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。所以我们已知数据
集,却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集。你能
从数据中找到某种结构吗?针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。
这是一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同
的簇。所以叫做聚类算法。事实证明,它能被用在很多地方。

例子: Google News, 基因序列分析,社会网络分析,市场切分等…

特别的例子:鸡尾酒会问题(Cocktail party problem)
我现在告诉你们另一种。我先来介绍鸡尾酒宴问题。嗯,你参加过鸡尾酒宴吧?你可以
想像下,有个宴会房间里满是人,全部坐着,都在聊天,这么多人同时在聊天,声音彼此重
叠,因为每个人都在说话,同一时间都在说话,你几乎听不到你面前那人的声音。所以,可
能在一个这样的鸡尾酒宴中的两个人,他俩同时都在说话,假设现在是在个有些小的鸡尾酒
宴中。我们放两个麦克风在房间中,因为这些麦克风在两个地方,离说话人的距离不同每个
麦克风记录下不同的声音,虽然是同样的两个说话人。听起来像是两份录音被叠加到一起,
或是被归结到一起,产生了我们现在的这些录音。另外,这个算法还会区分出两个音频资源,
这两个可以合成或合并成之前的录音,实际上,鸡尾酒算法的第一个输出结果是:
1,2,3,4,5,6,7,8,9,10,
所以,已经把英语的声音从录音中分离出来了。
第二个输出是这样:
1,2,3,4,5,6,7,8,9,10。

“ 鸡尾酒会问题”(cocktail party problem)是在计算机语音识别领域的一个问题,当前语音识别技术已经可以以较高精度识别一个人所讲的话,但是当说话的人数为两人或者多人时,语音识别率就会极大的降低,这一难题被称为鸡尾酒会问题。

image

1
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');

很惭愧,只做了些微小的工作,您的支持将鼓励我继续努力创作!