【高级机器学习】0. Machine Learning 介绍
什么是Machine Learning?
非正式的:从数据中做出预测
正式形式:构建一个统计模型,该模型是抽取数据的底层分布
当模型学得好时:
Pθ(X)≈P(X) P_θ(X) ≈ P(X)Pθ(X)≈P(X)
这意味着你的模型不仅能拟合已有数据,还捕捉到了数据生成机制。
换句话说,模型不仅知道“数据长什么样”,还知道“数据为什么会长这样”。
机器学习的组成部分
输入训练数据: S=(X1,Y1),...,(Xn,Yn)S = {(X 1 , Y 1 ), . . . , (X n , Y n )}S=(X1,Y1),...,(Xn,Yn)
输入预定义的假设类: H=h1,h2,...H = {h1, h2, ...}H=h1,h2,...
目标函数和优化方法共同构成一个映射:
A:(X✖Y)n−>HA:(X ✖ Y)^n->HA:(X✖Y)n−>H
输出的假设:hSh_ShS
整体的学习算法是一个映射:A:S∈(X✖Y)n−>hS∈HA: S ∈ (X ✖ Y)^n -> h_S ∈ HA:S∈(X✖Y)n−>hS∈H
最优分类器(Best Classifier)
-
对于一个给定的数据点 (X,Y)(X, Y)(X,Y),某个假设(分类函数) hhh 的分类误差可由 0-1 损失函数(0-1 loss function) 来衡量:
1{Y≠sign(h(X))}={0,Y=sign(h(X))1,Y≠sign(h(X)) 1_{\{Y \neq \text{sign}(h(X))\}} = \begin{cases} 0, & Y = \text{sign}(h(X)) \\\\ 1, & Y \neq \text{sign}(h(X)) \end{cases} 1{Y=sign(h(X))}=⎩⎨⎧0,1,Y=sign(h(X))Y=sign(h(X))
- 当预测正确时(Y=sign(h(X))Y = \text{sign}(h(X))Y=sign(h(X))),损失为 0
- 当预测错误时(Y≠sign(h(X))Y \neq \text{sign}(h(X))Y=sign(h(X))),损失为 1
-
最优分类器可以数学地定义为:
argminh1∣D∣∑i∈D1{Yi≠sign(h(Xi))} \arg \min_h \frac{1}{|D|} \sum_{i \in D} 1_{\{Y_i \neq \text{sign}(h(X_i))\}} arghmin∣D∣1i∈D∑1{Yi=sign(h(Xi))}
其中:
- DDD:表示任务中 所有可能数据点(all possible data points) 的索引集合;
- ∣D∣|D|∣D∣:表示集合 DDD 的大小,即样本总数;
- 1{Yi≠sign(h(Xi))}1_{\{Y_i \neq \text{sign}(h(X_i))\}}1{Yi=sign(h(Xi))}:是指示函数,当预测错误时取 1,否则取 0。
大数定律(The Law of Large Numbers)
LLN(大数定律) 描述了当我们将同一个实验重复进行大量次时,其结果的统计规律。
- 换句话说:
独立重复试验的平均结果将收敛到期望值(expected value)。
1∣D∣∑i∈D1{Yi≠sign(h(Xi))} →∣D∣→∞ E[1{Y≠sign(h(X))}] \frac{1}{|D|} \sum_{i \in D} 1_{\{Y_i \neq \text{sign}(h(X_i))\}} \;\xrightarrow[|D| \to \infty]{}\; \mathbb{E}\left[ 1_{\{Y \neq \text{sign}(h(X))\}} \right] ∣D∣1i∈D∑1{Yi=sign(h(Xi))}∣D∣→∞E[1{Y=sign(h(X))}]
最优分类器(Best Classifier)的问题
- 最优分类器可以数学地定义为:
argminh E[1{Y≠sign(h(X))}] \arg \min_h \; \mathbb{E}\left[ 1_{\{Y \neq \text{sign}(h(X))\}} \right] arghminE[1{Y=sign(h(X))}]
存在的一些问题:
-
数据分布未知
我们无法直接计算期望 E[⋅]\mathbb{E}[\cdot]E[⋅]。 -
目标函数不可微、非凸
由于 0-1 损失函数不光滑,优化困难。 -
假设空间选择问题
我们应该选择哪种形式的假设函数 hhh 来拟合数据?
目标函数(Objective Function)
-
对于一个分类任务,我们希望找到一个分类器,使得以下期望值最小:
E[1{Y≠sign(h(X))}] \mathbb{E}\left[ 1_{\{Y \neq \text{sign}(h(X))\}} \right] E[1{Y=sign(h(X))}]
-
我们并不知道数据的真实分布,但幸运的是,我们拥有一些从该分布中抽取的样本(即训练样本):
S={(X1,Y1),…,(Xn,Yn)} S = \{ (X_1, Y_1), \ldots, (X_n, Y_n) \} S={(X1,Y1),…,(Xn,Yn)}
-
根据 大数定律(Law of Large Numbers),我们可以用样本均值来近似期望:
1n∑i=1n1{Yi≠sign(h(Xi))}(unbiased estimator) \frac{1}{n} \sum_{i=1}^{n} 1_{\{Y_i \neq \text{sign}(h(X_i))\}} \quad \text{(unbiased estimator)} n1i=1∑n1{Yi=sign(h(Xi))}(unbiased estimator)
这个无偏估计量(unbiased estimator)可以用来估计:
E[1{Y≠sign(h(X))}] \mathbb{E}\left[ 1_{\{Y \neq \text{sign}(h(X))\}} \right] E[1{Y=sign(h(X))}]
总结:
由于无法直接计算真实分布下的期望误差,我们使用训练样本的平均误差来近似它。
这就是经验风险(Empirical Risk)的思想。
优化方法(Optimisation Method)
-
我们希望找到一个假设(hypothesis)hhh,
使得目标函数(objective function)最小化,即:argminh1n∑i=1n1{Yi≠sign(h(Xi))} \arg \min_h \frac{1}{n} \sum_{i=1}^{n} 1_{\{Y_i \neq \text{sign}(h(X_i))\}} arghminn1i=1∑n1{Yi=sign(h(Xi))}
-
在实际中,我们通常不会在所有可能的函数上搜索,
而是从预定义的假设空间(hypothesis class) HHH 中选择一个最优的 hhh:argminh∈H1n∑i=1n1{Yi≠sign(h(Xi))} \arg \min_{h \in H} \frac{1}{n} \sum_{i=1}^{n} 1_{\{Y_i \neq \text{sign}(h(X_i))\}} argh∈Hminn1i=1∑n1{Yi=sign(h(Xi))}
总结:
- 这个过程称为 经验风险最小化(Empirical Risk Minimization, ERM)。
- 由于 0-1 损失函数难以优化,实际中我们会使用可微的替代损失(如 hinge loss、logistic loss 等)来求解。
凸优化(Convex Optimisation)
-
从预定义的假设空间(hypothesis class) HHH 中选择一个假设 hhh,
以最小化以下目标函数:argminh∈H1n∑i=1nℓ(Xi,Yi,h) \arg \min_{h \in H} \frac{1}{n} \sum_{i=1}^{n} \ell(X_i, Y_i, h) argh∈Hminn1i=1∑nℓ(Xi,Yi,h)
其中,损失函数 ℓ\ellℓ 是用于替代 0-1 损失的 凸函数(convex surrogate loss function)。
说明:
- 由于 0-1 损失函数不连续、不可微且优化困难,
我们引入凸的替代损失函数(例如 hinge loss、logistic loss、exponential loss 等)来简化优化问题。 - 这样可以将原本离散的分类问题转化为一个可导且可高效求解的凸优化问题。
最终目标:
Find h∗=argminh∈H1n∑i=1nℓ(Xi,Yi,h)
\text{Find } h^* = \arg \min_{h \in H} \frac{1}{n} \sum_{i=1}^{n} \ell(X_i, Y_i, h)
Find h∗=argh∈Hminn1i=1∑nℓ(Xi,Yi,h)
使得模型在样本上的平均损失最小,同时具有良好的泛化能力。
输出假设 hSh_ShS
人类(Human)
- 通过 经验(Experience) 学习
- 选择一条规则(Choose a rule)
- 进行分类(Do classification)
机器(Machine)
- 从分布中获得一个 样本(A sample)
- 选择一个假设(Choose a hypothesis)
- 进行分类(Do classification)
人类与机器学习(Human vs Machine Learning)
-
人类可以通过训练来胜任一项工作,那机器呢?
→ 机器学习 (Machine Learning) 就是让机器通过数据“训练”来获得能力。 -
人类随着经验的积累,决策会变得更可靠,那机器呢?
→ 当机器获得更多数据时,它也会做出更可靠的决策。
输出假设 hSh_ShS 的泛化误差(Generalisation Error of hSh_ShS)
-
非正式定义(Informal Definition):
泛化误差是 训练误差与测试误差之间的差异。 -
形式化定义(Formal Definition): 后面再详解
-
一般规律(General Principle):
训练数据越多,模型的泛化误差通常越小。
总结:
- 人类通过经验学习规则;机器通过样本学习假设。
- 模型的目标不仅是拟合训练数据,更要在未见过的数据上保持良好表现。
- 这就是机器学习中“泛化(generalisation)”的核心思想。
