“跟着西瓜去学习”之--绪论

写在前面的话:人工智能界有一种说法,认为机器学习是人工智能领域中最能够体现智能的一个分支,从历史来看,机器学习似乎也是人工智能中发展最为迅速的分支之一。Andrew Ng曾说机器学习将是未来人工智能的“电力”,可见机器学习的基础性和重要性。笔者本科在南京大学读的EE,出于对CS和人工智能的兴趣,上个学期有幸选到南京大学计算机与科学系机器学习与数据挖掘研究所(LAMDA)周志华老师的《机器学习》课程,但是由于时间关系,断断续续的上完了该课程,感觉好多老师讲的精髓没有好好领悟,所以这个学期旁听了周志华老师给研究生上的《高级机器学习课程》。根据周老师给大家提的机器学习方面的学习路径首先就是把他的这本西瓜书好好的看一遍,是入门比较好的方法。在重读这本书的同时,想写点读书笔记作为自己的积累和反馈,并取名叫“跟着西瓜去学习”系列,也是比较符合这本书吧~。其中相关的算法实现代码和课后习题作业我会上传至我的GitHub上,和大家一起学习交流。

基本术语

数据集(data set):数据集就是数据的集合,这里的数据是我们用来让机器学习的时间或者对象。比如我们让机器学习如何判断一个西瓜是好是坏,那么我们就需要给机器一些样本实例,告诉他们哪个是好瓜,哪个是坏瓜,这些“示例”或者“样本”组成的集合就是数据集。数据集又分为训练集和测试集。训练集是让机器用来训练的示例集合,测试集是拿来测试训练的效果好不好的示例集合。

属性(attribute)和特征(feature):反应事件或者对象在某方面的表现或者性质的事项。比如判断西瓜的好坏可以通过西瓜的“色泽”,“根蒂”,“敲声”等几个方面来判断,这些就是西瓜这个样本所具有的属性或者特征。再比如人的高矮胖瘦等也是人的属性和特征。属性张成的空间叫做“属性空间”,“样本空间”,或者“输入空间”。每一个属性都可以作为一个维度。如果一个食物拥有n个属性,那么用来描述它的便是n维空间,每一个样本都可以在这个n维空间中找到自己的坐标位置(向量),所以也把一个具体的示例叫做一个特征向量。

D = {x1,x2,....xm}表示一个包含m个示例的数据集。(注意:虽然这里的m可以用别的任何符号来代替,但是机器学习界不成文的规定默认m就是数据集里示例的个数)

xi =  {xi1;xi2;.....xid}表示每个示例是d维样本空间的一个向量,其中d为样本xi的维数。

样例(example):拥有标记信息的示例称为“样例”,一般用(xi,yi)表示第i个样例,其中yi是示例xi的标记,yi组成的集合叫做标记空间或者输出空间。比如“好瓜”,“坏瓜”就是一组标记。

分类(classification):预测的是离散值,比如要预测西瓜是好瓜,坏瓜,某个人是哪个国家的人等预测结果是有限的离散值那么就是分类问题。而分类是分类问题的特例:二分类中只有正例和反例。

回归(regression):预测的是连续值,比如西瓜的成熟度0.95,0.37,预测明天的温度是27.4,30.1等连续的值叫做回归问题。

监督学习(supervised learning):训练数据有标记信息,常见的分类和回归是属于监督学习。

无监督学习(unsupervised learning):训练数据没有标记信息,聚类是属于无监督学习。

泛化(generalization):学得的模型适用于新样本的能力称作泛化能力。泛化能力是评价一个模型学习的好不好的一个标准,因为我们学习的模型的目的是为了用来判断我们未知的事物。

假设空间

归纳(induction)与演绎(deduction)是科学推理的两大基本手段。归纳是从特殊到一般的“泛化”过程,即从具体的事实归结出一般性规律。演绎是从一般到特殊的特化过程,即从基础原理推演出具体情况。从样例中学习是属于归纳的过程,也称做“归纳学习”。

我们把学习过程看成是一个在所有假设组成的空间里进行搜索的过程,搜索目标是找到与训练集匹配的假设。假设的表示一旦确定,假设空间的规模也就确定了。但是由于我们的训练集有限,所以可能有多个假设与训练集一致,即存在一个“假设集合”,称之为“版本空间”。

版本空间的示例:

即一个训练集对应于多个假设空间。

归纳偏好

由上可以知道,如果一个训练集对应于多个假设空间,而这多个假设空间又对应于不一样的标记的话,那么这个训练集就具有奇异性,那么模型也就无法训练。就好像判断一个人是好人和坏人一样,如果让机器来判断的话,那么最终这个人一定是要么是好人要么是坏人的,不能因为从一个方面看他是好的(比如说样貌好),同时从另一个方面看他又是坏的(比如说品德坏)。所以我们要告诉机器一个偏好的归纳标准。比如说你告诉机器,一个人的人品比样貌更加重要,那么机器就会把这个样貌好品德坏的人判断为坏人。这种对某种类型假设的偏好,称作“归纳偏好”。对于不同的算法我们设置的偏好是不一样的,这个根据具体的要求具体确定。比如上面的示例,如果我们跟相信根蒂的话,那么训练集将对应于(色泽=*;根蒂=蜷缩;敲声=*)。任何一个学习算法必有其归纳偏好。

比如下面的示例图:

对于给定的数据集(黑色点),可以有很多的曲线满足这个样本,如A和B。如果我们认为相似的样本要有相似的输出,则模型可能更加偏好于平滑的曲线而不是曲折的曲线。这种归纳偏好可以看作是对假设空间启发式的选择。

奥卡姆剃刀(Occam‘s razor):"若有多个假设与观察一致,则选择最简单的那个。"如同上面的A和B两个曲线,根据奥卡姆剃刀原则,A比B更加平滑,对应的函数更加简单,所以选择A而不是选择B。当然,这里并不是讲奥卡姆剃刀是唯一可行的原则,只是这是科学研究中常用的、基本的原则。就好比上图中的A和B,我们根据奥卡姆剃刀原则选择了A,但是真实情况并不是一定是A,也有可能这个模型的真实的函数正好是B。所以这里又引出了一个著名的定理叫做“没有免费的午餐”定理(No Free Lunch Theorem,NFL)。

“没有免费的午餐”定理(No Free Lunch Theorem,NFL):对于一个学习算法A,若他在某些问题上比学习算法B好,那么必然存在另一些问题上,算法B要比算法A好。这个算法的具体证明在周老师的书上有详细的证明。这里找了一个证明截图:

但是不要以为所有的机器学习算法都跟胡乱瞎猜的算法一样(真是这样你也不会在这看我写博客了),NFL有一个重要的前提!这个前提是“所有的问题出现的机会相同,或者说所有的问题同等重要”。但是在我们实际解决问题中并不是这样的,在实际中我们解决的都是具体的问题,我们只关注我们自己试图解决的问题(如某个具体应用的任务),希望为他找到一个解决方案,至于这个方案在解决别的问题上好不好我们并不是很关注。打个比方,我们要乘坐交通工具,如果是从南京到北京,坐飞机是一个比较不错的选择,非常节省时间。所以方案“坐飞机”是对于问题“南京到北京”一个不错的解决方案。但是对于宿舍到校门口这个问题呢,显然坐飞机这个方案就不行了,但是对于我们想从南京去北京并不关心这个可行性。

NFL告诉我们的道理是让我们清楚的认识到,脱离实际问题,空谈“什么学习算法好是毫无意义的”,机器学习如此,人生也如此。

这是系列文章的第一篇,主要讲了一些基本的概念,如果觉得不错,请点个赞并关注后续的内容。

时间: 2024-10-08 17:12:42

“跟着西瓜去学习”之--绪论的相关文章

跟着杨中科学习asp.net之dom

Dom教程 使用javascript操作dom进行dhtml开发,目标:能够使用javascript操作dom实现常见的dhtml效果 Dom就是html页面的模型,将每个标签都做成为一个对象 ,javascript通过调用dom中的属性.方法就可以对网页中的文本框.层等元素进行编程控制,比如通过操作文本框的dom对象,就可以读取文本框中的值.设置文本框中的值 Dom也像winform一样,通过事件.属性.方法进行编程 Javascript→dom就是c#→.net framework. Css

跟着杨中科学习asp.net之javascript

Dom教程 使用javascript操作dom进行dhtml开发,目标:能够使用javascript操作dom实现常见的dhtml效果 Dom就是html页面的模型,将每个标签都做成为一个对象 ,javascript通过调用dom中的属性.方法就可以对网页中的文本框.层等元素进行编程控制,比如通过操作文本框的dom对象,就可以读取文本框中的值.设置文本框中的值 Dom也像winform一样,通过事件.属性.方法进行编程 Javascript→dom就是c#→.net framework. Css

WCF技术我们应该如何以正确的方式去学习掌握

一.WCF技术我该如何学习? 阿笨的回答是:作为初学者的我们,那么请跟着阿笨一起玩WCF吧,阿笨将带领大家如何以正确的姿势去掌握WCF技术.由于WCF技术知识点太多了,就纯基础概念性知识都可以单独出一本书来讲解,本次分享课程<C#面向服务编程技术WCF从入门到实战演练>开课之前,阿笨还是希望从没了解过WCF技术的童鞋们提前先了解一下WCF技术,至少要明白WCF技术的ABC三要素分别指的是什么.要不然很难跟上阿笨的课程节奏.虽然本次课程叫WCF技术从入门到实战,但是本次课程的重点还是侧重实战环节

跟着杨中科学习asp.net之html

第一节课 HTML基础加强班 l 什么是浏览器? 1. 浏览器就是接受浏览者的操作(打开一个网址.点击一个链接.点击一个按钮),然后帮浏览者去web服务器请求网页的内容(html格式返回),然后展现成人眼能够看得懂的可视化的页面的软件. l IE=浏览器?这个说法是错误的.IE是浏览器的一种,还有FireFox.Opera.Charome等,注意遨游(Maxthon).世界之窗.搜狗浏览器.360浏览器等并不是一种独立于IE的浏览器,其内核还是IE的内核,只不过是换了一个外壳而已,所以用遨游的不

《机器学习》西瓜书 第一章 绪论

机器学习绪论 基本术语 基础 模型:泛指从数据中学得的结果 数据集 data set:一组记录的集合 示例 instance/样本 sample:关于一个事件或对象的描述 属性 attribute/特征 feature:反映事件或对象在某方面的表现或性质的事项 属性值 attribute value:属性上的取值 属性空间 attribute space/样本空间 sample space:属性张成的空间即 \(n\) 个特征描述出的 \(n\) 维空间 特征向量 feature vector:

如何去学习 如何去自学

1.如何去学习? 在这之前,你需要知道,你要学的是什么?只有知道你学的是什么之后,另外需要学习计划,还有学习方法. 编辑系统形式学习方法 思维导图方式学习方法 状态模式进入的学习方法 这两者可以结合,自学的时候,进度慢的原因是不知道自己是否掌握了,为什么你玩游戏玩的那么久?是因为什么?除了兴趣意外你很快的就掌握了操作,掌握了操作也就是基础后,你就会很快的进入状态,也就是玩游戏的状态,接触一个新的游戏,你就会很快的学习简单的基本操作,然后很快的进入学习内容,也就是玩游戏. 接触新的游戏,并且开始玩

【vue】跟着老马学习vue-数据双向绑定

学习了node.js教程,只能说是有了一定的了解,之前也了解了webpack和es6的核心内容,也看过vue2.0的官网教程,并结合视频看过项目,但是理解和运用仍然存在很多问题,接下来的一段时间,跟着老马学习vue 学习链接:http://aicoder.com/vue/preview/all.html#1 vue最大的特点就在于它的双向绑定,是一个前端的双向绑定类的框架. 一说到vue我们就应该立刻想到以下几部分:1.数据双向绑定:2.列表渲染.条件渲染:3.事件处理:4.生命周期:5.组件化

编译原理学习笔记 -- 绪论1

1. 语言处理器 语言处理系统 _________ 经过预 _______ 源程序 --> |预处理器| --> 处理的 --> |编译器| --> 目标汇编程序 -------- 源程序 ------- _______ 可重定位的 ______________ --> |汇编器| --> 机器代码 --> |链接器/加载器| --> 目标机器代码 ------- -------------- ↑ 库文件/可重定位对象文件 预处理器:把源程序聚合在一起,并宏

跟着刚哥学习Spring框架--AOP(五)

AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入封装.继承.多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合.不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能.日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性.异常处理和透明的持续性也都是如此,这种散布在各