1、什么是机器学习
卡内基梅隆大学的Tom Mitchell教授,在他的名作《机器学习》一书中,给出了他对于机器学习的定义:
对于某类任务(Task,简称T)和某项性能评价准则(Performance,简称P),如果一个计算机程序在T上,以P作为性能的度量,随着很多经验(Experience,简称E)不断自我完善,那么我们称这个计算机程序在从经验E中学习了。
比如说,对于学习围棋的程序AlphaGo,它可以通过和自己下棋获取经验,那么它的任务T就是“参与围棋对弈”;它的性能P就是用“赢得比赛的百分比”来度量。“类似地,学生的任务T就是“上课看书写作业”;它的性能P就是用“期末成绩”来度量”
因此,Mitchell教授认为,对于一个机器学习问题,我们需要明确三个特征:任务的类型,衡量任务性能提升的标准以及获取经验的来源。
2、两大机器学习算法
2.1 监督学习
监督学习(Supervised Learning),用数据挖掘大家韩家炜(Jiawei Han)老师的观点来说,监督学习基本上就是“分类(classification)”的代名词。它从有标签的训练数据中学习,然后给定某个新数据,预测它的标签(given data, predict labels)。这里的标签(label),其实就是某个事物的分类。
比如说,小时候父母告诉我们某个动物是猫、是狗或是猪,然后我们的大脑里就会形成或猫或狗或猪的印象,然后面前来了一条“新”小狗,如果你能叫出来“这是一条小狗”,那么恭喜你,你的标签分类成功!但如果你说“这是一头小猪”。这时你的监护人就会纠正你的偏差,“乖,不对呦,这是一头小狗”,这样一来二去的训练,就不断更新你的大脑认知体系,聪明如你,下次再遇到这类新的“猫、狗、猪”等,你就会天才般的给出正确“预测”分类(如图1所示)。
简单来说,监督学习的工作,就是通过有标签的数据训练,获得一个模型,然后通过构建的模型,给新数据添加上特定的标签,即在监督学习中,对于数据集中的每个样本,我们希望通过算法预测并得到“正确答案”。 其中,监督学习有两种常见的问题:回归问题和分类问题
2.1.1 回归问题
回归是指我们的目的是预测一个连续值输出,比如房价预测问题,假设我们只用一个特征来描述房子和房价之间的关系:房子的大小 size ,也就是多少平方米,对于数据集中的每个房子,我们都给出其正确的房价是多少,然后我们希望通过训练好的模型来预测其他 size 房子的房价,很显然,在这个问题中,我们希望能够得到房价和房子大小之间的映射关系,也就是函数关系,所以可以知道,房价的取值一定是在一段连续区间内,也就是说,这种问题下输出有无限种取值可能,即输出是连续的。
2.1.2 分类问题
分类是指我们的目的是预测一个离散值输出,比如判断肿瘤的良性与否,很显然,在进行预测之前,我们就可以知道输出的全部取值可能,即肿瘤是良性或者肿瘤是恶性两种情况,也就是说,这种问题下输出的取值是有限的,即输出是离散的,
事实上,整个机器学习的目标,都是使学习得到的模型,能很好地适用于“新样本”,而不是仅仅在训练样本上工作得很好。通过训练得到的模型,适用于新样本的能力,称之为“泛化(generalization)能力”。
2.2 无监督学习
无监督学习(Unsupervised Learning):与监督学习相反的是,无监督学习所处的学习环境,都是非标签的数据。韩老师接着说,无监督学习,本质上,就是“聚类(cluster)”的近义词。
简单来说,给定数据,从数据中学,能学到什么,就看数据本身具备什么特性了(given data,learn about that data)。我们常说的“物以类聚,人以群分”说的就是“无监督学习”。这里的“类”也好,“群”也罢,事先我们是不知道的。一旦我们归纳出“类”或“群”的特征,当输入一个新数据时,我们就根据它距离哪个“类”或“群”较近,就“预测”它属于哪个“类”或“群”,从而完成新数据的“分类”或“分群”功能。
简单来说,无监督学习的工作,就是通过数据集自身的分布特点,将对应的数据进行划分,从而获得一个模型,当新数据输入时,判断它属于何类。 类似于分类问题,但是二者的区别在于,在无监督学习中,我们并不知道数据原本属于何类,我们需要通过数据自身的特征来判断哪些数据可划分为一类。