《Machine Learning》(第一章)序章

关键词:机器学习,基本术语,假设空间,归纳偏好,机器学习用途

一、机器学习概述

机器学习是一门从数据中,经过计算得到模型(Model)的一种过程,得到的模型不仅能反应出训练数据集中所蕴含的规律,并且能够运用在训练集之外的数据上。而机器学习研究的方向,就是解决:“我们为了得到这种模型,应该采用何种算法” 的问题。

如果说,训练集是我们的生活中的 “经验”,那么模型就是我们的 “经验性解决方法” ,训练集外的数据就是生活中的 “新问题” 。

二、基本术语

在解释基本术语的同时,我们用生活中的例子 “选西瓜” 进行补充描述

西瓜选择三个示例(instance):

1.(色泽=青绿,跟蒂=蜷缩,敲声=浊响)

2.(色泽=乌黑,跟蒂=稍蜷,敲声=沉闷)

3.(色泽=浅白,跟蒂=硬挺,敲声=清脆)

数据集(Data Set):  数据集由多条记录构成,每条记录由一组键值对构成,每条记录都是一个事件或对象。形式如下:

  一条记录:(key1=value1,key2=value2,... ,keyn=valuen)

样本(sample)与示例(instance):  每一对键值对都是对事物的一个属性(attribute)及其属性值(attribute value)的描述,一个键成为一个属性或特征(feature)。这样的一条记录称为一个 “示例(instance)” 或 “样本(sample)” ,但是需要注意,有时整个数据集亦称为一个 “样本” ,因为它可看作对样本空间的一个采样;我们可以通过上下文(context)来判断 “样本” 这一概念是指单个示例(instance)还是整个数据集(Data Set)。

样本空间(sample space):  属性张成的空间称为 “属性空间(attribute space)” 、“样本空间(sample space)” 或“输入空间” ,和标记空间相对。例如,我们把西瓜的色泽,跟蒂,敲声作为三个坐标轴,则属性 张成了一个可以描述西瓜的三维空间。每个西瓜都可以在这个空间中找到自己的坐标位置。例如:(色泽=青绿,跟蒂=蜷缩,敲声=沉闷)就是一个青绿色蜷缩跟蒂的敲声沉闷的西瓜在这个三位空间中的坐标。

特征向量(feature vector):  由于空间中的每个点对应于一个坐标向量,因此我们也把一个示例称为一个 “特征向量(feature vector)” 。特征向量就是示例在属性空间中的坐标向量。

数据集的表示方法和属性:  一般地,令 D = { x1,x2,...,xn } 表示包含n个示例的数据集,每个示例示例由d个属性描述,则每个示例xi = { xi1,xi2,...,xid } 是d维样本空间X的第 i 个向量,d 称为样本 xi 的 “ 维数(dimensionality) ”。其中 xij 是第 i 个示例在第 j 个属性上的取值。

例如在“选西瓜”中,我们用(色泽,跟蒂,敲声)三个属性描述西瓜,d=3,样本维数=3,x12=“蜷缩”。

标记/标签(label):  训练样本的结果数据,如 “((色泽=青绿,跟蒂=蜷缩,敲声 =浊响),好瓜)”,好瓜就是标签,但是label有时也用作动词,因此也可用动词意义的标记来翻译。

标记空间(label space):  一般用(Xi , Yi)表示第 i 个样例,其中Yi属于Y是示例X的 “标记/标签(label)”,Y是所有标记的集合,亦称为 “标记空间(label space)”、“输出空间”。

学习(learning):  从数据中学得模型的过程称为“学习(learning)” 或 “训练(training)”。这个过程通常通过执行特定的学习算法来完成。训练过程中使用的数据称为 “训练数据(training data)” ,其中的每个样本称为一个 “训练样本(training sample)” 、“训练示例(training instance)” 或 “训练例”。训练样本组成的集合称为 “训练集(training set)”。学习得到的模型对应了关于数据的某种潜在规律,这一学得的规律称为 “假设(hypothesis)”;数据本身所具有的规律,称为 “真相”或“真实”(ground-truth)。学习的过程就是为了找出或逼近真相。学习算法在给定数据和参数空间上的实例化模型有时也被称为 “学习器”(Learner)

    辨析:“假设hypothesis” 和 “真相ground-truth”都是对数据蕴含的规律的反映,但是假设是从数据学习得到的模型,不一定是我们关注的,想要反应的真实规。而真相是数据固有的,我们期待获得的的真正的规律。

机器学习任务的分类:

1.按数据的特征分类:

如果预测的是离散值:称为“分类(classification)”任务,如果是连续值:称为“回归(regression)”任务。分类任务又可按照分成的种类数分为 “二分类(binary classification)”任务 或 “多分类(multi-classification)”任务。对于二分类任务,通常称一个类为 “正类(positive class)”,另一个为 “反类(negative class)”。

通常预测任务是希望通过对训练集 { (x1,y1),(x2,y2)...(xn,yn) } 进行学习,建立一个从输入空间到输出空间的映射。 f:x→y。对于二分类任务,通常令y={0,1}或y={-1,+1}。对于多分类任务,|y|>2;对于回归任务,y=R,R为实数集。

2.按训练数据是否有标签来分类:

如果训练数据是有标记学习,则属于 “监督学习(supervised learning)” ,如果没有标记则为 “无监督学习(unsupervised learning)”。其中,分类(classification)和回归(regression)是前者的代表,聚类则是后者的代表。

泛化能力(generalization):  学得的模型适应新样本的能力,称为 “泛化能力(generalization)”。

独立同分布:independent and identically distributed,简写作i.i.d(含义参考任意概率论教材)

过拟合:指模型过于适应训练集数据,反而和真相(ground-truth)不相符的情况。这就和生活中人们钻牛角尖很像了。

二、假设空间与版本空间

1.归纳与演绎:归纳(induction)是指从特殊到一般,从个性中提取共性的 “泛化(generalization)” 过程,演绎(deduction)是从一般到特殊的 “特化(specialization)”。“从样例中学习”当然是一种 “归纳学习(inductive learning)” 。

2.归纳学习的狭义与广义之分:狭义的归纳学习要求从训练数据中学得 “概念(concept)”,也称作 “概念学习”。概念学习对于一组概念,进行类似bool值的判断,从而通过一组概念来描述新的知识。但是 由于要学得泛化性好而且语义明确的概念十分困难,因此,现实中大多数是产生“黑箱模型”,即对于概念本身并不一定非常了解,但是只要能用于新数据的预测即可。譬如我们得到的模型可以选出好的西瓜,但是究竟色泽、跟蒂、敲声怎样的好瓜才是好瓜,对于黑箱以外的人而言是不得而知的。

3.归纳学习与假设空间:归纳学习过程可以看作做从所有的可能的假设中选择一个与训练集匹配(fit)的假设的搜索过程。假设的表示一旦确定,假设空间的大小及其规模也就确定。例如,假设空间由形如 “(色泽=?)Λ(跟蒂=?)Λ(敲声=?)”的可能取值所形成的假设组成。例如,色泽有“青绿”、“乌黑”、“浅白”这三种可能的取值;还需要考虑到也许色泽取什么值都可以,我们用通配符“*”表示这种情况。当然,还有一种极端情况是 “好瓜” 这个概念可能根本不存在,我们用Φ来表示这种情况。假如 “色泽”、 “跟蒂”、 “敲声” 分别有3,2,2种可能的取值,那么我们的假设空间大小为(3+1)*(2+1)*(2+1)+1=37.

对假设空间的搜索既可以自顶向下,也可以自底向上。自顶向下对应着从一般到特殊,而自底向上对应着从特殊到一般。在搜索的过程中不断删除不符合正例或者和反例一致的假设,最终我们就能得到学得的结果,这个结果能够对训练集中的数据进行正确的判断。

但是,在现实世界中我们常常面临很大的假设空间,因此可能存在着多个假设和训练集是一致的,即存在一个由符合训练集的数据特征的一系列假设组成的 “假设集合” ,这样的集合我们称为 “版本空间(version space)” 。

 奥卡姆剃刀原则:主张在多个符合实验结果的假设中,选择最简单的假设。这一原则在自然科学、物理学、天文学等领域中是一个广为沿用的原则。例如哥白尼坚持 “日心说” 额理由之一就是它比托勒密的地心说更简单更简单并且符合天文观测结果。

三、归纳偏好(inductive bias)与NFL定理(No Free Lunch Theorem)

归纳偏好(inductive bias):任何一种算法都需要有特定的归纳偏好(inductive bias),简称为“偏好”。因为算法必须产生一个模型,但是往往在定义什么是 “好” 上面我们很容易产生分歧,因此,对于一个给定的数据集,归纳偏好(inductive bias)的作用相当于“价值观”,而且对于可能产生多个可能的假设的数据集,归纳偏好是非常重要的,因为这可以保证每次都得到相同的结果。

NFL定理:天下没有免费的午餐定理。这个定理的内容证明了不论选择的算法多么聪明或者多么笨拙,其期望性能都是一样的。但是我们需要注意,这个定理的前提是:所有 “问题” 出现的可能性是相等的,也就是说问题的重要性是均等的。但是在现实中,我们只关心目前自己正在解决的问题,这是一个特定的具体的问题,因此不同的算法会有不同的性能。

综上,NFL定理的意义在于是我们认识到:脱离具体问题,空泛探讨 “什么学习算法更好” 毫无意义,因为定理证明了如果要考虑所以潜在的问题,则所有学习算法的期望性能都一致。在一些问题上表现优异的算法,在另一些问题上则会捉襟见肘,其他算法就会显示出各自的长处,这就是NFL定理最大的意义。

第一章就总结到这里,~好累啊,就先到这了亲~拜拜啦~有了心得在更~么么

时间: 2024-10-05 06:15:59

《Machine Learning》(第一章)序章的相关文章

Machine Learning In Action 第二章学习笔记: kNN算法

本文主要记录<Machine Learning In Action>中第二章的内容.书中以两个具体实例来介绍kNN(k nearest neighbors),分别是: 约会对象预测 手写数字识别 通过“约会对象”功能,基本能够了解到kNN算法的工作原理.“手写数字识别”与“约会对象预测”使用完全一样的算法代码,仅仅是数据集有变化. 约会对象预测 1 约会对象预测功能需求 主人公“张三”喜欢结交新朋友.“系统A”上面注册了很多类似于“张三”的用户,大家都想结交心朋友.“张三”最开始通过自己筛选的

CS281: Advanced Machine Learning 第一节

接触机器学习领域有一段时间了,跟过不少基础的课程,也看过一些入门的书籍和论文,现在想通过一门公开课系统的进入机器学习的领域,所以选择了advanced Machine Learning,这是哈佛大学的一门高级机器学习公开课,主要教材选用的是kevin Murphy Machine Learning: A Probabilistic Perspective, MIT Press 以及Christopher M. Bishop, Pattern Recognition and Machine Lea

【用Python玩Machine Learning】KNN * 序

这段时间工作太忙,很久没学习了.这两天,工作之余,偶尔在家翻翻书,权且当做休息了. 我一直是c/c++的忠实用户,尤其是c的粉丝--概念简洁.运行高效--计算机专业的人,不用c语言,不了解程序底层的运行机制和过程,那和那些外专业的只会调用接口.函数的同学有什么区别呢?不过,最近一年还是慢慢去了解.尝试python了.原因很简单,开发成本太低了.c/c++就像复杂的吸尘器.洗碗机,优点是高效,缺点是笨重,且对不同的场景要不同的适配:python就像是一块脏抹布,哪儿都能用,用完就扔,再用的时候再捡

Machine Learning Yearning - Andrew NG

链接(1~12章): https://gallery.mailchimp.com/dc3a7ef4d750c0abfc19202a3/files/Machine_Learning_Yearning_V0.5_01.pdf链接(第13章): https://gallery.mailchimp.com/dc3a7ef4d750c0abfc19202a3/files/Machine_Learning_Yearning_V0.5_02.pdf链接(第14章): https://gallery.mailc

设计模式之序章-UML类图那点事儿

设计模式之序-UML类图那点事儿 序 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书我还隐约记得,叫GoF的,书名是<Design Patterns: Elements of Reusable Object-Oriented Software>,也即<设计模式>,机械出版社的将其翻译为<设计模式-可复用面向对象软件的基础>.至于为什么叫做GoF,那时候

.Net 中的反射(序章) - Part.1

引言 反射是.Net提供给我们的一件强力武器,尽管大多数情况下我们不常用到反射,尽管我们可能也不需要精通它,但对反射的使用作以初步了解在日后的开发中或许会有所帮助. 反射是一个庞大的话题,牵扯到的知识点也很多,包括程序集.自定义特性.泛型等,想要完全掌握它非常不易.本文仅仅对反射做一个概要介绍,关于它更精深的内容,需要在实践中逐渐掌握.本文将分为下面几个部分介绍.Net中的反射: 序章,我将通过一个例子来引出反射,获得对反射的第一印象. 反射初步.Type类.反射普通类型.(修改中,近期发布..

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 序章

Asp.Net MVC4 + Oracle + EasyUI + Bootstrap 序章 -- 新建微软实例 1.  简介 为学习MVC4而写的文章,以项目开发的角度书写.循序渐进,同时也是自己学习的过程,博文编写过程中,我会参考相关专业书籍和网站,尽量编写和描述规范的编码和原理.若是过程中有错误,请各位看官不吝啬指出! 2.  博文定位 新手教程,所以适合刚刚准备学习MVC4的博友阅读.不过会讲述很多原理,个人认为,目的是学会如何操作,但是原理也同样重要.授人以鱼不如授人以渔. 3.  初次

Netty5序章之BIO NIO AIO演变

Netty5序章之BIO NIO AIO演变 Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠的网络服务器和客户端程序.Netty简化了网络程序的开发,是很多框架和公司都在使用的技术.更是面试的加分项.Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架.而BIO,NIO,AIO更是笔试中要考,面试中要问的技术.也是一个很好的加分项,加分就是加工资,你还在等什么?本章带你细细品味三者的不同! 流程图: 技术:BIO,NIO,AIO 说明:g

【玩转微信公众平台之一】序章(纯粹扯淡)

昨天是我的生日,为了庆祝这一伟大的节日,我决定写个微信公众平台开发的系列教程.看到这里有些人肯定迫不及待的要在下面的评论里写上"祝博主生日快乐"之类的祝福,其实我觉得大可不必,历经沧桑的我对这些形式的东西看轻了许多,我只想说:能不能把钱打到我的支付宝里??! ------------------------- 年初开始接触微信公众平台,那时主要是为了给我姐的服装店搞个订阅号.现在的水平也还是很一般.趁还没将所学的知识忘光,赶紧将还记得的东西写到博客里来. 公众平台是什么大家应该都懂,我

《Machine Learning》系列学习笔记之第一周

<Machine Learning>系列学习笔记 第一周 第一部分 Introduction The definition of machine learning (1)older, informal definition--Arthur Samuel--"the field of study that gives computers the ability to learn without being explicitly programmed." (2)modern d