机器学习基础整理(第1章) - 什么是机器学习?

文章目录

  • 总体思路
  • 常见机器学习场景
  • 学习任务的分类
  • 任务
    • 分类 (Classfication)
    • 回归 (Regression)
    • 转录 (Transcription)
    • 机器翻译 (Machine Translation)
    • 结构化输出 (Structured Output)
    • 异常检测 (Anomaly Detection)
    • 合成和采样 (Synthesis and Sampling)
    • 缺失值的插补 (Imputation of Missing Values)
    • 除噪 (Denoising)
    • 密度估计或概率函数估计 (Density Estimation or Probability Function Estimation)
  • 性能 (Performance)
  • 经验 (Experience)
  • 数据表示 (Data Representation)
  • 例子: 线性回归
    • 数据表示
    • 性能衡量
  • 模型的容量,过拟合和欠拟合
  • PAC学习框架 (PAC Learning Framework)

总体思路

  • 机器学习是从数据从提取模式的自动化过程。
  • 机器学习是通过电脑编程并使用 实例数据 (example data) 或者 过去经验 (past experience) 来优化性能标准。
  • 一般来说,机器学习算法学习将 一个空间的"单元" 映射到另一个空间的"单元" 的函数。
  • 一个学习算法可以从数据中进行学习。
  • 学习算法通常包括: 优化 (optimization),损失函数 (cost function),一个模型 (model) 和一个数据集 (dataset)。
  • 模型通常定义了一些参数 (parameters),而学习就是通过训练数据 (training data) 优化这些参数的过程。
  • 模型 可以是 预测型 (predictive - 从新的或未来数据中做预测) 或 描述型 (descriptive - 从数据中得到知识或理解) 或两者结合。

什么是机器学习?
“机器学习算法通过搜索一组 可能的模型 来选择最能捕捉 数据集中描述性特征 和 目标特征 之间关系的模型(这只是故事的一部分,而现在已经有丰富的理论可以充分解释它)”

什么是学习?
“一个 被称为 从经验 E E E 中 学习关于 某类任务 T T T 和 性能度量 P P P,如果它在 T T T 中由 P P P 度量的任务的性能随着经验而提高 的计算机程序”

机器学习感兴趣的任务: “很难用 人类编写和设计的固定程序 解决的任务”
注: 学习的过程不是任务,学习只是获得执行任务能力的一种手段。

常见机器学习场景

  • 监督型学习 (Supervised Learning): 学习器 接收一组 标记的示例 (labelled example) 作为训练数据,并对所有 未见过的点 进行预测。 例如,我们在分类 (classification)、回归 (regression) 和排名 (ranking) 问题中会遇到这种情况。
  • 无监督学习 (Unsupervised Learning):学习器专门接收 未标记的数据 (unlabelled data),并对所有看不见的点进行预测。 聚类 (clustering) 和降维 (dimensionality reduction) 就是例子。
  • 半监督学习 (Semi-supervised Learning):学习器接收由 标记数据和未标记数据 组成的训练样本,并对所有看不见的点进行预测。 这通常用于 未标记数据容易获得 但 标记数据获取成本高 的情况。
  • 转导推理 (Transductive Inference):类似于半监督学习,学习者接收一个 标记的训练样本 以及一组 未标记 的测试点。 转导推理的目标是仅预测这些 特定测试点 的标签。(如: 当前具有 少量标注 的样本,使用KNN算法预测样本类别。训练样本是少量已经标注(A、B、C)的点,而其它大部分的点都是未标注的,通过已标记的点可以给这些从属于同个簇的未标记的点进行标记)
  • 在线学习 (On-line Learning):此场景涉及多轮,并且 训练和测试阶段 是混合的。 在每一轮中,学习者都会收到一个 未标记的训练点,进行预测并产生损失。 目标是最小化所有轮次的 累积损失 (cummulative loss)。
  • 强化学习 (Reinforcement Learning):训练和测试阶段 混合在一起。 学习者 通过主动与环境交互并有时也会 影响环境 来收集信息,以便为每个动作立即获得奖励。 目标是随着时间的推移 最大化奖励 (maximize the reward)。 这个学习场景与动态规划有关。
  • 主动学习 (Active Learning):学习者通过 查询oracle 从 新的项 请求标签,自适应地 或 交互式 地收集训练示例。 其目标是实现与 标准监督学习场景 相当的性能。

学习任务的分类

  • 分类 (Classification): 为每个项分配一个类别。
  • 回归 (Regression): 为每个项预测一个值。
  • 排序 (Ranking): 依据某种标准来对项进行排序,如网页搜索。
  • 聚类 (Clustering): 将项划分为同质区域 (homogeneous regions)
  • 降维 (Dimensionality reduction) 或流形学习 (manifold learning) - 将 项 的初始表示转换为这些 项 的较低维度,同时保留项的一些属性。

任务

根据机器学习系统应如何处理 示例描述 的任务。
示例 (example) 是从机器学习系统将处理的某些对象或事件中 定量测量(quantitatively measure) 的特征集合 (collection of features)。

分类 (Classfication)

任务需要 指定某些输入 属于 k 个类别中的哪一个。
从数据中学习以下形式的函数:

f : R n → { 1 , . . . , k } f: \R^n \to \{1, ..., k\} f:Rn{1,...,k}

y = f ( x ) y=f(x) y=f(x) 将分配一个类别 y y y 给 特征 x x x
函数应也能输出一个类别的概率分布 (probability dirstribution)。

回归 (Regression)

根据给定的输入 预测 数值输出。
从数据中学习以下形式的函数:

f : R n → R f: \R^n \to \R f:RnR

和分类任务不同,分类任务要求输出 是 分类数据类型。

转录 (Transcription)

需要观察某种数据的 相对非结构化的表示 (relatively unstructured representation) 并将其转录成离散的文本形式 (discrete textual form)

从数据中学习以下形式的函数:

f : R n → A k ( m ) f: \R^n \to \mathbb{A}^{k(m)} f:RnAk(m)

其中 A \mathbb{A} A 是一些语言字母,如英文等, k ( m ) k(m) k(m) 是一些可变数字,表示 字母表的可变长度并取决于应用程序,其中语音识别就是一个例子。

机器翻译 (Machine Translation)

需要将某种语言的符号(或字母)序列转换为另一种语言的符号(字母)序列。

从数据中学习以下形式的函数:

f : A x k ( n ) → A y k ( m ) f: \mathbb{A}^{k(n)}_x \to \mathbb{A}^{k(m)}_y f:Axk(n)Ayk(m)

其中 A x \mathbb{A}_x Ax 是源语言字母表 (如英语或普通话), k ( m ) k(m) k(m)是一些可变数字,其代表了字母表的可变长度, A y \mathbb{A}_y Ay 是 目标语言字母表 (如德语,法语等)。

结构化输出 (Structured Output)

此类任务包括转录和翻译

需要将输入转换为 能建模成数据结构 的输出,该数据结构包含 元素之间具有重要关系 的多个值

示例包括 提供 给定图片 或 给定视频中 正在执行的活动的文本描述。

异常检测 (Anomaly Detection)

需要筛选一组事件或对象,并将其中一些标记为不寻常或非典型 (unusal or atypical)。

异常对象属于 与其他事件或对象 非常不同的概率分布。

如何估计分布以及如何测量分布之间的距离?

合成和采样 (Synthesis and Sampling)

需要生成与 训练数据中的示例 相似的 新示例。

尽可能地让所需的输出具有指定的边界结构 (specific structure with bound)。

示例:从各种口音的书面文本中合成语音。

挑战: 给定一个嫌疑人的描述,是否能让机器生成此人的画像?

应用: 生成对抗网络 (Generative Adversarial Network - GAN)

缺失值的插补 (Imputation of Missing Values)

此任务要求在给定的示例中,提供缺失项的预测,其中 x ∈ R n x \in \R^n xRn

除噪 (Denoising)

该任务要求从 损坏带噪 的版本 x ‾ \overline{x} x 预测 干净无噪声 的示例 x x x
这与预测条件概率分布 p ( x ∣ x ‾ ) p(x|\overline{x}) p(xx) 相同。
机器学习基础整理(第1章) - 什么是机器学习?_第1张图片

密度估计或概率函数估计 (Density Estimation or Probability Function Estimation)

要求学习函数:

p m o d e l : R n → R p_{model}: \R^n \to \R pmodel:RnR

其中 p m o d e l p_{model} pmodel 是提取示例的空间中的 概率密度函数 或者 概率质量函数。

许多机器学习任务要求概率密度的估计。

性能 (Performance)

我们需要使用性能的量化方式 (quantitative measures) 来评估机器学习算法的能力。
性能的衡量方式基于不同任务,如:

  • 准确率 (Accuracy)
  • 误差率 (Error Rate)
  • 精确度 (Precision)
  • 召回率 (Recall)

必须选择能够匹配系统的期望行为 的性能度量。

经验 (Experience)

机器学习算法所接触的经验可以是 有监督的,也可以是无监督的。

  • 无监督学习算法的经验 包含 许多特征的数据集,并且需要从数据集中学习有用的属性
    本质上,给定 随机向量 x x x 的几个例子,隐式或显式地学习其概率分布 p ( x ) p(x) p(x)
  • 监督学习算法经验 包含 许多特征 以及 与每个示例相关的 标签(或目标)的数据集
    本质上,给定随机向量 x x x 和相关标签 y y y 的几个示例,学习去估计 条件分布 p ( y ∣ x ) p(y|x) p(yx) (conditional distribution)

数据表示 (Data Representation)

我们可以设计矩阵,使得 X ∈ R N × P X \in \R^{N × P} XRN×P
机器学习基础整理(第1章) - 什么是机器学习?_第2张图片
其代表了 拥有 P P P 个特征的 N N N 个示例 (或观察或样本)。
其第 i i i 个特征向量的表示如下:
机器学习基础整理(第1章) - 什么是机器学习?_第3张图片
其中 x i x_i xi 是被测量的特征值。

在示例中的 特征数量不相等 的情况下,也可以使用集合:

{ x ( 1 ) , x ( 2 ) , . . . , x ( m ) } \{x^{(1)}, x^{(2)}, ..., x^{(m)} \} {x(1),x(2),...,x(m)}

以上代表了拥有 m m m 个元素的集合,且其中元素的特征并不是数量一致的。

例子: 线性回归

数据表示

线性回归: 构建一个能输入向量 x ∈ R P x \in \R^P xRP 并 预测标量 y ∈   R y \in \ R y R 的值 的系统。

线性回归模型的输出是输入的线性函数。
机器学习基础整理(第1章) - 什么是机器学习?_第4张图片
其中 ω ∈ R P \omega \in \R^P ωRP 是参数的向量,他们决定了每个特征如何影响最终的预测,因此任务就变成了通过计算式子右侧来 预测 左边的值。

性能衡量

我们如何衡量性能 P P P ?
在回归问题中,我们将拥有以矩阵 X X X 代表的数据集。数据集被分成两部分,测试集 X ( t e s t ) X^{(test)} X(test) 和训练集 X t r a i n i n g X^{training} Xtraining。我们从 X t r a i n i n g X^{training} Xtraining中学习出模型,并在 X t e s t X^{test} Xtest 中测试性能。

在例子中,我们使用 均方误差 (mean squared error) 作为性能衡量。
机器学习基础整理(第1章) - 什么是机器学习?_第5张图片
训练的过程包含了寻找能够使 M S E t r a i n i n g MSE_{training} MSEtraining 最小 的 权重向量(weight vector) ω \omega ω
机器学习基础整理(第1章) - 什么是机器学习?_第6张图片

微分 (differentiating) 并等于0能得到:

机器学习基础整理(第1章) - 什么是机器学习?_第7张图片
上式构成了一个简单的学习算法。

更通用地,线性回归模型通常被写为:
机器学习基础整理(第1章) - 什么是机器学习?_第8张图片

模型的容量,过拟合和欠拟合

泛化性 (Generalization) 是机器学习的关键。经过训练的算法 应该能在 新的 和 之前未见过的输入 表现良好。
我们进行优化以减少训练误差,但我们 也希望 泛化误差 generalization error(测试误差 test error)低。因为这也是 对于新输入 的预期错误。
重要提示:期望 是从 我们期望系统在实践中遇到的输入分布 中得出的 不同可能输入中 得出的。
在这里插入图片描述
因为 假设 “由数据生成过程 (data generating process) 生成的独立且同分布的随机变量 (i.i.d - independent and identically distributed random variates)” 的存在, 因此上述是可能的。

决定 机器学习算法能表现如何的 因素是其能够:

  • 使得训练误差小。
  • 同时也要使训练和测试误差之间的差距小。

欠拟合 (Underfitting): 模型无法在训练集上获得足够小的训练误差。
过拟合 (Overfitting): 训练集和测试集误差之间的差距过大。
容量 (Capacity):模型拟合各种函数的能力。容量低的模型可能很难拟合数据集。例如我们用一个一次函数做线性回归,很显然,复杂分布下的数据就难以表示了。但容量高的模型则可能会导致过拟合。

通过 改变容量增加训练样本的数量 来控制 欠拟合和过拟合

  • 通过选择 假设空间 (hypothesis space)(允许学习算法选择的函数集作为可能的解决方案)来改变容量, 这相当于增加/减少特征的数量。
  • 也可以通过增加示例数据的数量来避免过拟合

从示例数据中训练的学习算法的三种权衡:

  • 拟合数据的假设复杂性(complexity of hypothesis),即假设类的容量 (capacity of the hypothesis class)。
  • 可用的训练数据数量。
  • 对新示例的泛化误差。

机器学习基础整理(第1章) - 什么是机器学习?_第9张图片
三个模型适用于通过 随机采样 x x x 生成的 合成数据 (synthetic data) 示例,并从二次方程计算 y y y 的相应值。

  • 第一张图: 拟合线性函数,但由于无法捕捉曲率,因此欠拟合。
  • 第二张图: 拟合二次函数,其很好地概括了看不见的数据,模型没有明显的欠拟合或过拟合。
  • 第三张图: 拟合 9 次多项式,模型有 过拟合 问题。曲线的奇怪结构值得注意,这是因为它试图拟合所有训练数据。

PAC学习框架 (PAC Learning Framework)

首先进行一些定义:

  • 使用 X X X 代表所有可能的示例或实例,这被称为输入空间 (input space)。
  • 使用 y y y 代表所有可能的标签或目标值,在下面的解释中,假设 y = { 0 , 1 } y = \{0, 1\} y={0,1},这代表了我们要讨论一个二元分类问题。
  • 使用 c : X → y c: X \to y c:Xy 代表一个概念 (concept),这是从 X X X y y y 的映射,我们可以将 c c c 标识为 X X X 的子集,在该子集中其值是1。
  • 讨论中,我们假设 示例 是符合 在一些 固定但未知 的分布 D D D 中 (i.i.d 独立且同分布) 的。

学习问题:
学习者考虑一组 固定可能概念 H H H,被称为 假设集 (hypothesis set),其与 C C C 不一致。他接收到一组根据分布 D D D 通过 i.i.d 抽取的 样本 S = { x 1 , . . . , x m } S=\{x_1, ..., x_m\} S={x1,...,xm} 和 标签 ( c ( x 1 ) , . . . c ( x m ) ) (c(x_1), ... c(x_m)) (c(x1),...c(xm)),其是基于某个特定目标概念 c ∈ C c \in C cC 来学习的。学习者的任务是使用 带标签的样本 S S S 来选择一个 对于概念 c c c 拥有最小泛化误差的假设 h s ∈ H h_s \in H hsH

泛化误差 (generalization error):
给定一个假设 h ∈ H h \in H hH,一个目标概念 c ∈ C c \in C cC,以及一个潜在的分布 D D D h h h 的泛化误差或风险被定义为:
在这里插入图片描述
其中, 1 ω 1_\omega 1ω 是事件 ω \omega ω 的指示函数。而 E x ∼ D \mathop{E}\limits_{x \sim D} xDE 是从 分布 D D D 中得出的对 x x x 的期望。
但由于 分布 D D D 和 概念 c c c 对于学习者都不可知,因此我们可以不衡量泛化误差,转而衡量经验误差。

经验误差 (Empirical error)
给定一个假设 h ∈ H h \in H hH,一个目标概念 c ∈ C c \in C cC,以及样本 S = ( x 1 , . . . , x m ) S = (x_1, ..., x_m) S=(x1,...,xm),则 h h h 的经验误差或风险被定义为:
机器学习基础整理(第1章) - 什么是机器学习?_第10张图片
经验误差是在样本 S S S 中的平均误差。

对于一个固定假设 h ∈ H h \in H hH,基于 i.i.d 样本 S S S 的经验误差的期望等于泛化误差:
在这里插入图片描述
PAC 学习框架提供了对训练样本大小 m m m, 训练与真实错误之间的差距, 假设空间 H H H 的复杂性以及我们对这种关系的置信度(至少 1 − δ 1 - δ 1δ)的理论限制。

PAC 即 Probably Approximately Correct,也就是 可能大概正确。

PAC学习框架:
若存在一个算法 A A A 以及一个多项式函数 p o l y ( , , , , ) poly(, , , ,) poly(,,,,) 使得任意 ϵ > 0 \epsilon \gt 0 ϵ>0 以及 δ > 0 \delta \gt 0 δ>0,且对于所有在 X X X 上的分布 D D D 以及对于任意 目标概念 c ∈ C c \in C cC,下式在任意 样本大小 m ≥ p o l y ( 1 / ϵ , 1 / δ , n , s i z e ( c ) ) m \ge poly(1/\epsilon, 1/\delta, n, size(c)) mpoly(1/ϵ,1/δ,n,size(c)) 时满足,则一个 概念类 C C C 可以被称为 PAC可学习 (PAC-learnable)。:
机器学习基础整理(第1章) - 什么是机器学习?_第11张图片
若算法 A A A 之后在 p o l y ( 1 / ϵ , 1 / δ , n , s i z e ( c ) ) poly(1/\epsilon, 1/\delta, n, size(c)) poly(1/ϵ,1/δ,n,size(c)) 的复杂度中运行,则 C C C 被认为是高效PAC可学习的 (efficiently PAC-learnable)。算法 A A A (若存在) 则被称为一个 C C C 的 PAC学习算法。

在上面的定义中, n n n 与任何元素 x ∈ X x ∈ X xX 的计算表示的成本上限 ( O ( n ) O(n) O(n)) 相关联。 同样, s i z e ( c ) size(c) size(c) c ∈ C c ∈ C cC 的计算表示的最大成本。

你可能感兴趣的:(机器学习,机器学习)