您的位置:首页 > 其它

机器学习笔记1——什么是机器学习

2017-01-29 13:21 267 查看
不知不觉已在机关待了4年零6月,期间仅读过一本技术著作——中国科学院微电子研究所“千人计划”学者韦亚一研究员的专著《超大规模集成电路先进光刻理论与应用》中国科学院微电子研究所“千人计划”学者韦亚一研究员的专著《超大规模集成电路先进光刻理论与应用》中国科学院微电子研究所“千人计划”学者韦亚一研究员的专著《超大规模集成电路先进光刻理论与应用》中科院微电子研究所“千人计划”学者韦亚一研究员的专著《超大规模集成电路先进光刻理论与应用》,还并非我的专业。出来混总是要还,失去的终究要补回来。近期开始潜心研读南京大学周志华教授的《机器学习》一书,当年未能考上南大的先进操作系统专业研究生甚是遗憾,便要求自己阅读此书时当如临堂听讲,并做笔记,结合自己理解把重要的内容写一写,力求不抄原文、通俗易懂。

周教授的西瓜书(书中拿西瓜作比喻,连封皮都是西瓜,被称作西瓜书)比较偏理论,我同时还结合Peter Harrington写的《Machine Learning in Action》(机器学习实战)一书,学习使用Python实现有关算法。

为了便于理解,我虚构了一个机器人,名字暂且叫做doudog吧,doudou是一条真实的雪纳瑞犬,我想给doudog编写一些学习算法,并幻想它未来能够具有“汪汪队”里狗狗们的技能。

那么,我就要带着它开始机器学习了。

一、基本概念

我先带doudog认识100位美女,doudog会对这100位美女建模,关注她们的三围、皮肤、脸型、眼睛、头发、声音以及姿态等各种特征,同时我告诉它哪些是女神,从而训练出能够识别女神的模型。以后我再带着它出去,它遇到女神就会自己识别出来,并且在这期间,我还可以纠正它的错误,逐渐提高识别精度。

在上面这个过程中,doudog能否准确识别出女神取决于三个因素,一是能够获取足够的美女特征数据;二是算法选择是否合理;三是我对女神的审美标准。

由于每个人对女神的标准不是完全一致的,因此,我们无法对这个问题建立非常精确的模型,可以100%锁定女神。现实中很多问题都是如此,为了解决这个问题,就需要用到统计学工具,找出能够被大多数人认可的女神。

既然直接给出是否女神的结论不能被所有人都接受,那我可以让doudog给出评价指数,比如女神指数60、女神指数99。就像我们小时候天气预报都是说明天有雨或晴,现在都说降水指数。

那么这个问题就从分类问题变成了回归问题,由于这两种问题都要求算法必须要知道要预测什么,因此都属于监督学习。

与之对应的是无监督学习,即数据没有类别信息,也不给定目标值。比如,把美女分成丰满、骨感两类,这叫做聚类。

因此,简单的说,机器学习的主要任务就是处理数据,把无序的数据变成对人有用的信息。

说的枯燥一点:机器学习研究“学习算法”,即通过计算手段,从经验数据中学习产生出模型,用模型改善系统性能。

说的再枯燥无味一点:假设用P来评估计算机程序在某任务类T上的性能,如果程序通过利用经验E在T中的任务上获得了性能改善,就说该程序关于T和P,对E进行了学习。

二、发展历程

1950-1970,使机器具有逻辑推理能力,代表有逻辑理论家、通用问题求解程序。同时图灵提出机器学习的可能。

1970-1980,使机器具有知识,专家系统问世。同时统计学习理论奠基。

1980-1990,机器学习成为独立学科,各种技术百家争鸣。广泛研究从样例中学习(归纳学习),主流为归纳逻辑程序设计(Inductive Logic Programming, ILP)。

1990-2000,前期神经网络连接主义学习,后期统计学习(statistical learning)。

2000-今,大红大紫的深度学习(连接主义学习第二春,多层神经网络),得益于数据大了、计算能力强了。

三、归纳学习与算法选择

归纳(induction)是从特殊到一般的泛化,从具体事实总结出一般规律,

演绎(deduction)是从一般到特殊的特化,从基础原理推导出具体情况。

归纳学习(indective learning)就是从样例中学习,得到模型。

机器学习与人学习一样,好学生可以通过书本学习举一反三、触类旁通,归纳总结出一般规律,并且可以应用到解决新的问题。

差学生只会死记硬背,超出书本的问题就不会了,这叫机械学习。

归纳学习是有偏好(inductive bias)的,有的喜欢尽可能多的匹配条件,有的喜欢尽可能少的匹配,有的更偏向某一个或几个属性的匹配。

有效的机器学习算法必有偏好,一般的原则是奥卡姆剃刀原则,即选择最简单的那个,但必须要知道真实的情况并非如此美好,任何事情都不是绝对的,比如某土豪买东西只看知名品牌,着实简单粗暴,但对于买古董这个问题,还是要苦心研究的。

这事儿还没完,还有个更逆天的定理——“没有免费的午餐”定理(No Free Lunch Theorem, NFL),即任何算法的期望性能都是一样的!

看似聪明的算法,它的期望性能和胡猜是一样的!

但NFL定理有一个非常重要的前提,即所有问题出现的机会相同,或者所有的问题同等重要。

实际上我们要解决的问题并非总是如此,我们一般只关注眼前正面临的具体问题。

比如正常工作日媳妇打电话让你回家吃饭,你肯定是回每天晚上和媳妇一起睡觉的家,而不会考虑是远在故乡的家。

“匪夷所思”的定理NFL教导我们说:解决问题要牢固树立“矛盾具有特殊性”的哲学思想,要具体问题具体分析,用不同的算法解决不同的问题,内部矛盾不能用外部矛盾的方法来处理。

对于同一问题有多种不同算法可以选择,且一般不存在最好或者最坏的算法,常用于分类的算法也可以处理回归问题。对于每种算法,都可以通过机器学习技术改进性能。因此,发现所谓最好(最合适)算法的关键是反复试错并迭代。

四、开发机器学习程序的步骤

1、收集数据

比如要首先得到100位美女的三围、皮肤、脸型、眼睛、头发、声音和姿态等数据。一般来讲,机器学习的数据可以用爬虫从网站上获取,或者使用各种传感器测得的数据,或者行业历史数据等。

2、准备输入数据

设计合理的数据格式,把收集的原始数据格式化。

3、分析输入数据

人工分析获得的数据,确认数据是否可以识别出模式、是否存在明显的异常值、有没有垃圾数据等。比如得到100位美女的数据后,首先要确认这里面是不是真的有女神,如果全是女汉子,doudog是怎么也学不会识别女神的。还要确认是不是有伪娘、人妖等异常数据。这样才能让机器学习更加有效。

4、训练算法

从格式化的数据中习得知识。比如让doudog用分类算法去学习100位美女的数据(其中标记了哪些是女神),从中归纳出女神的一般特征。

5、测试算法

测试第4步得到的知识是否有用,即doudog归纳的女神一般特征是否有效,如果结果不满意,可以重新回到第4步优化,甚至有时需要回到第1步重新开始。

6、使用算法

把机器学习算法转换为应用程序,执行实际任务,以检验是否可以在实际环境中应用。如果有问题,需要重复执行上述步骤。

五、基本术语

想真正学好机器学习,数学知识很重要,主要涉及到概率论、统计学、微积分、离散数学和线性代数等,其中概率统计非常重要,看看机器学习的发展历程就知道概率统计有多重要了。

下面是《机器学习》第一章绪论中介绍的基本术语:

1、记录(record)、示例(instance)或样本(sample):关于一个事件或对象的描述。比如一位美女的相关特征数据。

2、数据集(dataset):一组记录的集合。比如100位美女的相关特征数据。

3、属性(attribute)或特征(feature):反映事件或对象在某方面的表现或性质的事项。比如三围、皮肤、脸型等。

4、属性值(attribute value):属性的取值。比如:三围(34C:24:36)、皮肤白皙、脸型瓜子脸。

5、属性空间(attribute space)、样本空间(sample space)或输入空间:属性张成的空间。比如画出胸围、腰围、臀围三个坐标,每位美女都有一个坐标位置。

6、特征向量(feature vector):每位美女在属性空间里都对应一个坐标向量,这位美女就是一个特征向量。

7、维数(dimensionality):示例的属性的个数。用三围、皮肤、脸型共3个维度来衡量一位美女。

8、学习(learning)或训练(training):从数据中学得模型的过程。doudog看100位美女后具备识别女神能力的过程。

9、训练数据(training data):训练过程中使用的数据。100位美女的三围、皮肤、脸型等数据。

10、训练样本(training sample):训练过程中使用的数据样本。doudog看过的一位美女。

11、训练集(training set):训练样本组成的集合。doudog看的那100位美女。

12、假设(hypothesis):学得模型对应了关于数据的某种潜在的规律。doudog假设三围(34C:24:36)、皮肤白皙、脸型瓜子脸的美女都是女神。

13、真相或真实(ground-truth):潜在规律本身,学习过程就是找出或逼近真相。一般人都认为三围(34C:24:36)、皮肤白皙、脸型瓜子脸的就是女神。

14、预测(prediction):对训练集进行学习,建立一个从输入空间到输出空间的映射。doudog看了100位美女,得出三围、皮肤、脸型等数据与女神的关联规律,再遇到没见过的美女就可判断出是否是女神。

15、标记(label):关于示例结果的信息。比如是女神、不是女神。

16、样例(example):拥有标记信息的示例,有时把标记信息也看作对象本身的属性,则样例和样本是同一概念。比如:三围(34C:24:36)、皮肤白皙、脸型瓜子脸、女神。

17、标记空间(label space)或输出空间:所有标记的集合。比如{女神、女汉子}。

18、分类(classification):预测的是离散值。比如女神、女汉子。

19、回归(regression):预测的是连续值。比如女神指数99。

20、测试(testing):使用学得模型进行预测。让doudog去判断新来的美女是否是女神。

21、测试样本(testing sample):被预测的样本。让doudog判断的新来的美女。

22、聚类(clustering):将训练集中的训练样本分组。比如丰满、骨感。

23、簇(cluster):分组中的一个组。比如丰满组。

24、监督学习(supervised learning):训练数据中有标记信息。代表是分类、回归。

25、无监督学习(unsupervised learning):训练数据中没有标记信息。代表是聚类。

26、泛化(generalization)能力:学得模型适用于新样本的能力。学得模型能很好的使用“新样本”而不仅仅是训练样本。doudog不仅能在它见过的100位美女中准确识别出女神,还能在大街上准确识别没见过的,最好也能识别外国人、外星人。

六、Python

一直想对C++守身如玉,后来移情别恋了JAVA,再后来又爱上了PHP,现在不得不再纳一小妾Python。

Python最大的优点是简单,提供了许多机器学习算法必备的封装,处理非数值型数据、抓取web页面数据等非常简单,还提供了比较完善的科学函数库,可以方便计算向量、矩阵。

缺点就是运算速度不如C/C++或者java,但是Python提供了调用C代码的接口,对于重要的核心代码,可以先用Python设计和构建,应用到具体产品中时再用C代码替换。

本文为学习思考笔记,难免有错误和不准确之处,欢迎吐糟、探讨。

原创声明:“机器学习笔记”系列文章为本人(李博
blog.xzlib.com)学习《机器学习》(周志华著,清华大学出版社)一书过程中的笔记,内容均为本人结合书中讲述和自身理解所写,文章配图、视频均为本人原创,转载和引用请注明出处并不得篡改作者姓名,本人保留《中华人民共和国著作权法》赋予的所有权利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息