💠 机器学习(machine learning)

引例:
傍晚小街路面上沁出微雨后的湿润,和煦的细风吹来,抬头看看天边的晚霞,嗯,明天又是一个好天气。走到水果摊旁,挑了个根蒂蜷缩、敲起来声音浊响的青绿西瓜,满心期待着皮薄肉厚瓢甜的爽快感。

为何引例中我们能判断出 “好天气”“好西瓜” 呢?
——因为我们有经验


上面的经验是我们人类自身完成的,计算机能帮忙吗?

机器学习 正是这样一门学科:
它致力于通过计算的手段,利用经验改善系统自身的性能

在计算机系统中,“经验” 通常以 “数据” 形式存在。因此,机器学习所研究的主要内容是:
在计算机上从数据中产生 模型(model) 的算法,即 学习算法(learning algorithm)

[Mitchell,1997] 给出了更形式化的定义:
假设用P来评估一个计算机程序在某任务类T上的性能。若一个程序通过利用经验ET中任务上获得了性能改善,则我们就说:关于TP,该程序对E进行了学习


也就是说:
经验数据 提供给 学习算法,以此产生 模型
有了 模型,在面对一个新的情况(比如新瓜)时,就能有相应的判断(比如好瓜)。

学习算法
模型
经验数据
模型
新情况
判断

💠 模型(model)

本书用“模型”泛指 从数据中学到的结果

有文献用“模型”指全局性结果(例如一棵决策树),而用“模式”指局部性结果(例如一条规则

💠 学习算法(learning algorithm)

计算机从数据中产生模型(model)算法

💠 数据

要进行机器学习要先有数据。假定收集了一批西瓜数据:

(色泽 = 青绿; 根蒂 = 蜷缩; 敲声 = 浊响),
(色泽 = 乌黑; 根蒂 = 蜷缩; 敲声 = 沉闷),
(色泽 = 浅白; 根蒂 = 硬挺; 敲声 = 清脆),
...

每对括号内是一条记录

💠 示例(instance) / 样本(sample)

每条记录是关于一个事件对象(这里指一个西瓜)的描述,称为 示例(instance)样本(sample)

💠 数据集(data set)

这组记录集合称为一个数据集

形式化地说, D = { x 1 , x 2 , . . . , x m } D =\{ x_1, x_2,..., x_m \} D={x1,x2,...,xm} 表示包含m示例数据集

💠 属性(attribute) / 特性(feature)

反映事件对象某方面表现性质的事项(例如:色泽、根蒂、敲声),称为 属性(attribute)特性(feature)

💠 属性值(attribute value)

属性的取值(例如:青绿、乌黑)称为 属性值

💠 属性空间(attribute space) / 样本空间(sample space) / 输入空间

——指属性张成的空间。

例如:
如果把 色泽、根蒂、敲声 作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间,每个西瓜都可在这个空间中找到自己的坐标位置。

💠 特征向量(feature vector)

由于空间中的每一个点对应一个坐标向量。因此也把一个示例称为一个特征向量

形式化地说,假如每个示例d个属性描述(例如西瓜数据用了3个属性),则每个示例 x i = ( x i 1 , x i 2 , . . . , x i d ) x_i=(x_{i1}, x_{i2}, ..., x_{id}) xi=(xi1,xi2,...,xid)是d维样本空间 χ \chi χ中的一个向量, x i ∈ χ x_i\in\chi xiχ。其中 x i j x_{ij} xij表示第i示例在第j属性上的取值(例如西瓜数据中 x 32 x_{32} x32硬挺)。

💠 样本的“维数”(dimensionality)

样本的属性的个数d样本的“维数”

💠 学习(learning) / 训练(training)

数据中学得模型的过程称为 学习(learning)训练(training)

这个过程通过执行某个学习算法来完成。

💠 训练数据(training data)

——训练过程中使用的数据。

💠 训练样本(training sample) / 训练示例(training instance)

——训练数据中的样本

💠 训练集(training set)

——训练样本组成的集合

💠 假设(hypothesis)

学得的模型对应了关于数据的某种潜在规律,因此亦称假设

💠 真相(ground-truth)

——潜在规律自身。

学习的过程就是为了找出或逼近真相

💠 学习器(learner)

本书有时将模型称为 “学习器”,可以看作是学习算法在给定数据参数空间上的实例化

💠 标记(label)

如果希望学得一个能帮助我们判断一个没剖开的瓜是不是“好瓜”的模型,还需要获得训练样本结果,例如:

((色泽 = 青绿; 根蒂 = 蜷缩; 敲声 = 浊响),好瓜)

这里的“好瓜”称为 “标记”

💠 样例(example)

拥有了标记信息的示例,称为样例

若将标记看作是对象本身的一部分,则样例有时也被称为示例

💠 标记空间(label space) / 输出空间

( x i , y i ) (x_i,y_i) (xi,yi)表示第i样例,其中 y i ∈ γ y_i \in \gamma yiγ x i x_i xi 的标记, γ \gamma γ 是所有标记的集合,亦称标记空间输出空间

💠 分类(classification) vs 回归(regression)

  • 若欲预测的是离散值,例如:好瓜坏瓜,此类学习任务称为分类
  • 若欲预测的是连续值,例如:0.95、0.37,此类学习任务称为回归

一般地,预测任务是希望通过学习,建立一个从 输入空间 χ \chi χ输出空间 γ \gamma γ 的映射 f : χ → γ f:\chi\rightarrow\gamma f:χγ

对于回归任务, γ ∈ R \gamma \in \mathbb{R} γR,其中 R \mathbb{R} R 为实数集。

💠 二分类(binary classification)

——对只涉及两个类别的分类任务。

通常称其中一个类为正类,另一个类为反类

此时, γ = { − 1 , + 1 } \gamma = \{-1,+1\} γ={1,+1},或 γ = { 0 , 1 } \gamma = \{0,1\} γ={0,1}

💠 多分类(multi-class classification)

——涉及多个类别的分类任务。

此时, ∣ γ ∣ > 2 |\gamma| > 2 γ>2

💠 测试(testing)

学得模型后,使用其进行预测的过程称为测试

💠 测试样本(testing sample)

被预测的样本

💠 预测标记

例如在学得 f f f 后,对测试例 x x x 可得到其预测标记 y = f ( x ) y = f(x) y=f(x)

💠 聚类(clustering)

将样本分成若干组,每组称为一个簇(cluster)

这些自动形成的可能对应一些潜在的概念划分,例如“浅色瓜”与“深色瓜”,“本地瓜”与“外地瓜”。

需要说明的是:“浅色瓜”、“本地瓜” 这样的概念我们事先是不知道的。

💠 监督学习(supervised learning) vs 无监督学习(unsupervised learning)

根据训练数据是否拥有标记信息,学习任务可大致分为两大类:

  • 监督学习。代表是 分类回归
  • 无监督学习。代表是 聚类

💠 泛化(generalization)能力

机器学习目标是使得学习的模型能很好地适用于 新样本,而不是仅仅在训练样本上做得很好。

学得的模型适用于新样本的能力,成为泛化能力

💠 分布(distribution)

尽管训练样本只是样本空间的一个很小的采样,但我们希望训练样本能很好地反映样本空间特性,否则就很难期望模型能在样本空间上都做得很好。

通常假设,样本服从一个未知的分布D

一般而言,训练样本越多,关于D的信息就越多,就越有可能通过学习获得具有强泛化能力的模型。

💠 独立同分布(independent and identically distributed,简称 i.i.d)

我们获得的每个样本都是独立地从分布D上采样获得的,即 “独立同分布”

💠 归纳(induction) 与 演绎(deduction)

归纳演绎是科学推理的两大基本手段。

  • 归纳是从特殊一般泛化过程,即从具体的事实归纳出一般的规律
  • 演绎是从一般特殊特化过程,即从基础的原理推演出具体的情况

💠 归纳学习(inductive learning)

“从样例中学习”显然是一个归纳的过程,因此亦称为归纳学习

💠 概念学习

广义的归纳学习,大体相当于从样例中学习。
狭义的归纳学习,要求从训练数据中学得概念,因此亦称为概念学习概念形成

💠 布尔概念学习

概念学习中最基本的是布尔概念学习,即对“是”或“不是”这样的可表示为0/1的概念进行学习。

💠 假设空间

训练集:

编号 色泽 根蒂 敲声 好瓜
1 青绿 蜷缩 浊响
2 乌黑 蜷缩 浊响
3 青绿 硬挺 清脆
4 乌黑 稍蜷 沉闷

我们学习的目标是:通过色泽、根蒂、敲声 这三个属性值来判断是否是 好瓜

所有假设组成的空间就是假设空间。假设的表示一旦确定,则假设空间及其规模大小也就确定。

这里,我们的假设表示为:

好 瓜 ↔ ( 色 泽 = ? ) ∧ ( 根 蒂 = ? ) ∧ ( 敲 声 = ? ) 好瓜 \leftrightarrow(色泽=?)\land(根蒂=?)\land(敲声=?) (=?)(=?)(=?)

那么分析下假设空间:

  • 对于色泽,可能有青绿、乌黑、浅白3种情况,但也可能这个属性是无所谓的,表示为*
  • 对于根蒂,可能有蜷缩、硬挺2种情况,但也可能这个属性是无所谓的,表示为*
  • 对于敲声,可能有浊响、沉闷2种情况,但也可能这个属性是无所谓的,表示为*
  • 还有一种情况是:世界上就不存在 好瓜。用表示。

因此,这个问题的假设空间的大小是:
4 × 3 × 3 + 1 = 37 4\times3\times3+1=37 4×3×3+1=37

这个问题的假设空间可以表示为:

(色泽 = * ; 根蒂 = * ; 敲声 = * )
(色泽 = 青绿 ; 根蒂 = * ; 敲声 = * )
(色泽 = 乌黑 ; 根蒂 = * ; 敲声 = * )
...
(色泽 = 青绿 ; 根蒂 = 蜷缩 ; 敲声 = * )
(色泽 = 青绿 ; 根蒂 = 硬挺 ; 敲声 = * )
...
(色泽 = 青绿 ; 根蒂 = 蜷缩 ; 敲声 = 浊响 )
(色泽 = 青绿 ; 根蒂 = 蜷缩 ; 敲声 = 沉闷 )
...

学习的过程就是在假设空间中进行搜索的过程,最终需要把假设中的?给确定下来。

💠 版本空间(version space)

现实问题面临的假设空间通常是很的,而我们的训练样本有限的。

因此,可能有多个假设与训练集一致。即存在一个与训练集一致的假设集合,称之为版本空间

例如,与当前训练集对应的版本空间就是:

(色泽 = * ; 根蒂 = 蜷缩 ; 敲声 = * )
(色泽 = * ; 根蒂 = 蜷缩 ; 敲声 = 浊响 )
(色泽 = * ; 根蒂 = * ; 敲声 = 浊响 )

💠 归纳偏好(inductive bias)

既然有多个假设都与训练集合一致,那么该采取哪一个呢?

对于一个具体的学习算法而言,它必须要产生一个模型。这时,学习算法本身的 “偏好” 就会起到关键性的作用。

例如:

  • 若我们的算法更喜欢 “尽可能特殊” 的模型,它就会选择: 好 瓜 ↔ ( 色 泽 = ∗ ) ∧ ( 根 蒂 = 蜷 缩 ) ∧ ( 敲 声 = 浊 响 ) 好瓜 \leftrightarrow(色泽=*)\land(根蒂=蜷缩)\land(敲声=浊响) (=)(=)(=)
  • 若我们的算法更喜欢 “尽可能一般” 的模型,且由于某种原因 它更“相信”根蒂,那么它就会选择: 好 瓜 ↔ ( 色 泽 = ∗ ) ∧ ( 根 蒂 = 蜷 缩 ) ∧ ( 敲 声 = ∗ ) 好瓜 \leftrightarrow(色泽=*)\land(根蒂=蜷缩)\land(敲声=*) (=)(=)(=)

机器学习算法在学习过程中对某种类型假设的偏好,称为归纳偏好,或简称为偏好

归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式“价值观”

💠 奥卡姆剃刀(Occam’s razor)

那么有没有一般性的原则来引导算法确立“正确的”偏好呢?

奥卡姆剃刀
如果有多个假设与观察一致,则选最简单的那个。
(例如,如果有多个曲线方程都满足训练集,则选择最简单的那个方程)

但是,奥卡姆剃刀并非唯一可行的原则。
还需要注意到:奥卡姆剃刀本身存在不同诠释

💠 没有免费的午餐定理(No Free Lunch Theorem,简称NFL)

NFL定理最重要的寓意是:脱离具体问题,空泛地谈“什么学习算法更好”毫无意义。因为若考虑所有潜在地问题,所有算法都一样好。要谈论算法地相对优劣,必须针对具体地学习问题。

学习算法自身的归纳偏好与问题是否相配,往往会起到决定性作用。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐