基础概念
1. 机器学习的两大类
- 监督学习(supervised learning)
有标注数据(label),用于分类、回归 - 无监督学习(unsupervised learning)
无标注数据,用于聚类、降维等
2. 基本流程:从数据到模型预测
① 训练数据(Training Data)
包含多个示例(instance/example),每个示例由一组属性(attribute/feature)构成,如:
| 色泽 | 根蒂 | 敲声 | 好瓜 |
|---|---|---|---|
| 青绿 | 蜷缩 | 浊响 | 是 |
| 乌黑 | 蜷缩 | 浊响 | 是 |
| 青绿 | 硬挺 | 清脆 | 否 |
| 乌黑 | 稍蜷 | 沉闷 | 否 |
属性值:每一列的取值
属性空间:所有属性及其组合的空间
样本空间(输入空间):所有可能的样本向量
特征向量(feature vector):如
$ x = (\text{色泽}, \text{根蒂}, \text{敲声})
$标记(label):如“好瓜是否”
标记空间(输出空间)
② 使用学习算法(learning algorithm)训练模型
常见模型:
- 决策树(Decision Tree)
- 神经网络(Neural Network)
- 支持向量机(SVM)
- Boosting / Bagging 集成方法
- 贝叶斯网(Bayesian Network)
模型本质上对应一个 假设(hypothesis)。
③ 对新样本进行预测(testing)
示例:
输入测试样本:
$
x = (\text{浅白},\ \text{蜷缩},\ \text{浊响},\ ?)
$模型输出预测类别:
$
\hat{y} = \text{“是”}
$
3. 假设、真相与学习器
- 假设(hypothesis):模型对输入到输出的映射
- 真相(ground-truth):真实的、理想的规律
- 学习器(learner):从训练数据中学习出假设的主体(即算法或模型)
4. 假设空间(Hypothesis Space)
- 模型能够表示的所有可能假设的集合
- 例如:
一棵决策树的不同结构、不同划分方式形成其 假设空间
对某个决策树例子,假设空间包含:
- 仅使用色泽划分
- 使用色泽 → 根蒂
- 使用色泽 → 敲声
- 使用根蒂 → 敲声
- ……(各种组合)
5. 学习任务类型分类
- 分类(classification)
- 二分类(如:是否为好瓜)
- 多分类(如 10 种数字)
- 正类 / 反类概念
- 回归(regression)
输出连续值,如房价预测
6. 测试样本与泛化(Generalization)
未见样本(unseen instance)
模型训练时未出现的新数据。
未知数据分布
训练数据来自某个未知的概率分布 ( P(X, Y) )。
独立同分布(i.i.d.)假设
通常学界假设训练样本满足:
$(x_i, y_i) \sim P(X, Y) \quad \text{相互独立}$
泛化(generalization)
模型对未见样本仍能保持较好预测能力。
归纳偏好(Inductive Bias)
归纳偏好(Inductive Bias):
机器学习算法在学习过程中对“哪一类假设”更可能成立所做的偏好性假设。
也就是说,算法并不是在完全无偏无假设地从数据中得出结论,而是带着某种“偏好”来选择假设。
机器学习分类
按学习方式分类
1.1 监督学习(Supervised Learning)
数据:有输入 (x) 和标记 (y)。
任务:从训练数据学习一个从 (x \to y) 的映射。
常见任务:
- 分类(Classification)
- 回归(Regression)
示例算法:
- 决策树、随机森林
- SVM
- 逻辑回归
- 神经网络
- KNN
1.2 无监督学习(Unsupervised Learning)
数据:只有 (x),没有标签。
目标:发现数据内部结构。
常见任务:
- 聚类(Clustering):K-means、层次聚类
- 降维(Dimensionality Reduction):PCA、t-SNE
- 密度估计、异常检测
1.3 半监督学习(Semi-supervised Learning)
数据:少量标记 + 大量未标记。
任务:提高模型精度,降低标注成本。
典型方法:
- 自训练(Self-training)
- 图半监督(Graph-based)
- 伪标签(Pseudo-label)
按任务类型分类
2.1 分类(Classification)
输出为离散类别 (y \in {1,2,…,k})。
- 二分类(binary classification)
- 多分类(multi-class)
- 多标签分类(multi-label)
常见模型:逻辑回归、决策树、SVM、神经网络。
2.2 回归(Regression)
输出为连续值,如房价预测。
常见模型:线性回归、岭回归、SVR、神经网络。
2.3 聚类(Clustering)
无监督学习的典型任务。
算法:K-means、DBSCAN、GMM。
2.4 降维(Dimensionality Reduction)
目标:压缩数据维度。
算法:PCA、LDA、AutoEncoder。
专业术语
先验概率 似然概率 后验概率
贝叶斯定理:
$P(H|E) = \frac{P(E|H) \cdot P(H)}{P(E)}$
其中:
- $P(H|E)$ 是后验概率
- $P(H)$ 是先验概率
- $P(E|H)$ 是似然概率
- $P(E)$ 是证据的边缘概率(通常用于归一化,使其所有后验概率之和为 1)
先验概率 (Prior Probability) - $P(H)$
定义
- 先验概率是指在观测到任何新数据(证据 $E$)之前,我们对某个假设或参数 $H$ 的信任程度(概率)。
- 它来源于我们已有的背景知识、历史数据、经验或主观判断。
- 它是在进行实验或收集信息之前就确定的。
假设一家医院的医生想知道一名患者是否患有某种罕见疾病 $H$。
- 先验概率 $P(H)$: 根据该疾病的历史发病率,在查看该患者的任何测试结果之前,医生估计普通人群中患该疾病的概率是 $1%$。
似然概率 (Likelihood Probability) - $P(E|H)$
定义
- 似然概率是指在假设 $H$ 成立的条件下,我们观测到当前数据(证据 $E$)的概率。
- 它描述了我们当前的数据对不同假设的支持程度。
- 请注意:它不是关于假设 $H$ 的概率,而是关于数据的概率。
该患者进行了疾病检测 $E$。
- 似然概率 $P(E|H)$: 已知如果患者确实患有疾病 $H$,测试结果呈阳性(证据 $E$)的概率(即测试的灵敏度)是 $95%$。
- 这告诉我们:在“患病”这个假设下,我们看到“阳性结果”的可能性有多大。
另一个重要的似然项是:如果患者没有患病 $H’$,测试结果仍呈阳性(证据 $E$)的概率(即假阳性率),例如 $10%$。
- $P(E|H’)$ = $10%$
后验概率 (Posterior Probability) - $P(H|E)$
定义
后验概率是指在观测到新数据(证据 $E$)之后,对某个假设 $H$ 的修正后的信任程度(概率)。
它是先验概率与似然概率结合的结果。
它是我们最关心的量,代表着我们更新后的知识。
后验概率 $P(H|E)$: 在得知该患者的测试结果呈阳性 $E$ 之后,医生重新计算该患者患有疾病 $H$ 的概率。
将上面例子中的数值代入贝叶斯定理:
- $P(H) = 0.01$ (患病先验)
- $P(E|H) = 0.95$ (真阳性率/似然)
- $P(H’) = 1 - P(H) = 0.99$ (未患病先验)
- $P(E|H’) = 0.10$ (假阳性率)
证据 $P(E)$ 的概率(测试呈阳性的总概率)为:
$P(E) = P(E|H)P(H) + P(E|H’)P(H’)$
$P(E) = (0.95 \cdot 0.01) + (0.10 \cdot 0.99) = 0.0095 + 0.099 = 0.1085$
后验概率 $P(H|E)$(在阳性结果下患病的概率)为:
$P(H|E) = \frac{P(E|H) \cdot P(H)}{P(E)} = \frac{0.95 \cdot 0.01}{0.1085} \approx 0.0875$
总结:
| 概念 | 符号 | 描述 | 时间点 | 作用 |
|---|---|---|---|---|
| 先验概率 | $P(H)$ | 对假设 $H$ 的初始信任。 | 观测数据之前 | 提供了背景知识。 |
| 似然概率 | $P(E | H)$ | 观测到数据 $E$ 的可能性 | 观测数据时 |
| 后验概率 | $P(H | E)$ | 对假设 $H$ 的修正信任。 | 观测数据之后 |
$x|\theta$ 和$\theta|x$
$x|\theta$: 似然(Likelihood)或概率分布(Probability Distribution)
定义与含义
- 读作: “给定 $\theta$ 时的 $x$ 的概率” 或 “$x$ 以 $\theta$ 为条件的概率”。
- 数学表达式: $P(x|\theta)$ 或 $f(x|\theta)$。
- 角色: 它描述的是在模型参数 $\theta$ 已经确定的情况下,观测到数据 $x$ 的可能性。
- 重点: 在这个表达式中,$\theta$ 是一个已知的(或假设已知的)常量,而 $x$ 是一个随机变量。
$\theta|x$: 后验概率(Posterior Probability)
定义与含义
- 读作: “给定 $x$ 时的 $\theta$ 的概率” 或 “$\theta$ 以 $x$ 为条件的概率”。
- 数学表达式: $P(\theta|x)$ 或 $f(\theta|x)$。
- 角色: 它描述的是在已经观测到数据 $x$ 的情况下,模型参数 $\theta$ 的概率分布。
- 重点: 在这个表达式中,$x$ 是一个已知的(观测到的)常量,而 $\theta$ 被视为一个随机变量(因为它在观察到数据 $x$ 之前是不确定的)。
- 计算方法: $\theta|x$ 是通过贝叶斯定理计算得到的:
$P(\theta|x) = \frac{P(x|\theta) P(\theta)}{P(x)}$
其中:
- $P(\theta|x)$:后验概率(Posterior)— 我们想要计算的结果。
- $P(x|\theta)$:似然(Likelihood)— 即上面的 $x|\theta$。
- $P(\theta)$:先验概率(Prior)— 在观察数据 $x$ 之前,我们对 $\theta$ 的初始信念。
- $P(x)$:边缘似然(Marginal Likelihood)— 一个归一化常数。
简单来说:
- $x|\theta$:原因($\theta$)导致结果($x$)的概率。
- $\theta|x$:根据结果($x$)推断原因($\theta$)的概率。
隐变量
(一)机器学习基础算法
贝叶斯分类器
贝叶斯分类器(Bayesian Classifier)是一类基于贝叶斯公式进行分类的模型。
核心思想:
选择使后验概率最大的类别。
$y^*=\arg\max\limits_{c} P(c \mid x
这叫 MAP(最大后验概率)分类准则。
为什么需要贝叶斯分类器?
分类的本质任务是:
给定一个样本 $x$,判断它属于哪个类别 $c$。
例如:
- 邮件(垃圾 / 非垃圾)
- 图像(猫 / 狗)
- 疾病检测(阳性 / 阴性)
那么我们需要一个规则,把输入 $x$ 映射到类别 $c$。
贝叶斯分类器提供了一个 数学上最优的决策规则:
贝叶斯公式(基础)
贝叶斯分类器建立于贝叶斯公式:
$P(c|x)=\frac{P(x|c)P(c)}{P(x)}$
其中:
- $P(c)$:先验概率
- $P(x|c)$:似然(给定类别时观测到 x 的概率)
- $P(c|x)$:后验概率(看到 x 后,它属于类 c 的概率)
- $P(x)$:证据(统一归一化因子)
贝叶斯分类器的分类规则
贝叶斯分类器直接选择后验概率最大的类别:
$h(x)=\arg\max_{c} P(c|x)$
这是 理论上最优、错误率最低的分类器。
为什么这样选是最优?
因为统计决策论的证明告诉我们:
想最小化分类错误率,就应该选后验概率最大的类别(MAP 决策)。
后验概率公式化简
在分类任务中,证据 $P(x)$ 对所有类别相同,所以比较:
$
P(c|x)\propto P(x|c)P(c)
$
于是分类规则写成:
$h(x)=\arg\max_{c} P(x|c) P(c)$
分类时不必计算 $P(x)$,只需计算:$先验 × 似然$。
朴素贝叶斯分类器 (Naive Bayes)
真正的贝叶斯分类器要求我们知道 完整的条件概率 $P(x|c)$,但现实中:
- 特征多(维度高)
- 样本有限
- 很难估计完整联合概率
例如 100 维特征:
需要估计 $P(x_1,x_2,…,x_{100}|c)$,几乎不可能。
于是使用特征条件独立假设:
$P(x|c)=\prod_{i=1}^d P(x_i|c)$
于是后验概率可以表示为:
$P(c|x)\propto P(c)\prod_{i=1}^d P(x_i|c)$
- $d$: 特征维度
这就是 朴素贝叶斯分类器。
贝叶斯分类器与朴素贝叶斯分类器
| 类型 | 定义 | 是否最优? |
|---|---|---|
| 贝叶斯最优分类器 | 完全使用真实的概率分布 | ✔ 最低错误率 |
| 朴素贝叶斯分类器 | 假设特征独立,近似贝叶斯最优 | ❌ 近似最优 |
朴素贝叶斯是可实现的近似,
贝叶斯最优分类器是理论上的“理想状态”。
计算后验概率举例
要分类水果是“苹果”或“香蕉”:
假设:
- $P(\text{苹果})=0.4$
- $P(\text{香蕉})=0.6$
观察到特征 $x=$“长且黄”:
假设似然:
- $P(x|\text{苹果})=0.1$
- $P(x|\text{香蕉})=0.5$
计算:
$P(\text{苹果}|x)\propto 0.4 \times 0.1 = 0.04$
比较大小即可得出:
贝叶斯分类器的几个关键知识点
1. 公式:MAP (Maximum A Posteriori Estimation) 决策
$
h(x)=\arg\max_c P(c|x)
$
2. 后验概率展开
$
P(c|x)\propto P(x|c)P(c)
$
3. 朴素贝叶斯假设
$P(x|c)=\prod_i P(x_i|c)$
4. 平滑
避免概率为 0,要用 拉普拉斯平滑:
$P(x_i|c)=\frac{N_{i,c}+1}{N_c+|V|}$
由于如果样本中的某个特征从未出现,那么假设 $P(x|c)=\prod_i P(x_i|c)$
中,一旦某项为0,就会导致整体变0。
这会导致
整个类别的可能性被归零
完全误判
分类器崩溃
所以需要使用拉普拉斯平滑(Add-One) $P(x_i|c)=\frac{N_{i,c}+1}{N_c+|V|}$
$N_{i,c}+1$:在计数的基础上加1 $ →$ 即使出现次数为 0,仍然给它一个最小概率
$|V|$:可能的取值总数(比如词典大小、离散特征空间大小)
$N_c+|V|$:保持概率归一化(所有概率之和为 1)
Q-Learning
K-means 算法
K-means 是一种经典的 基于原型(prototype-based) 的 无监督聚类算法,通过最小化样本到聚类中心的平方距离完成聚类。
目标:
将数据集划分为 $K$ 个簇,每个簇由一个“均值向量(质心)”代表。
目标函数(优化目标)
K-means 的目标是最小化簇内误差平方和(Sum of Squared Errors,SSE):
$
J=i=1∑Kx∈Ci∑∥x−μi∥2
$
其中:
- $C_i$:第 $i$ 个簇
- $\mu_i$:第 $i$ 个簇的均值中心
- $|x - \mu_i|^2$:样本与中心的欧氏距离平方
即:
每个样本靠近某个中心 → 整体偏差最小。
K-means 算法步骤
Step 1:初始化中心点
随机选择 $K$ 个样本作为初始聚类中心。
$
\mu_1^{(0)}, \mu_2^{(0)}, \ldots, \mu_K^{(0)}
$
Step 2:样本分配(Assignment step)
对每个样本 $x$,分配到最近的中心:
$
c(x) = \arg\min_{i} |x - \mu_i|^2
$
即:
每个点“投票”给离它最近的中心。
Step 3:更新中心(Update step)
对每个簇 $C_i$,用簇内所有点的均值更新中心:
$
\mu_i = \frac{1}{|C_i|} \sum_{x \in C_i} x
$
Step 4:重复 Step 2-3 直到收敛
停止条件:
- 中心不再变化
- 或最大迭代次数达到
- 或目标函数下降不足阈值

1 | flowchart TD |
VC维
VC 维(VC Dimension) 用于衡量一个假设空间(hypothesis space)的“容量/复杂度”。
VC 维 = 假设空间能够打散(shatter)的最大样本点数。
打散(shatter): 对于样本集合中所有可能的 $2^m$中标记方法,假设空间中都能找到某个假设完全正确的分类。
例如:
若 3 个点的所有 $2^3=8$ 中标记方式,都能被某模型正确分类 -> 模型可以打散这三个点。
二维线性模型 :
对于二维线性分类器(用一条直线分类),任意 3 个不共线的点: 不论怎么标记都能用一条直线把正类 (+) 和负类 (–) 分开。因此二维线性分类器的 VC 维 ≥ 3。但对于 4 个点(例如凸四边形标正负交替),无法画一条直线分开,所以二维线性分类器 VC = 3。
VC 维的正式定义:
设假设类为 $H$。
若存在 $m$ 个样本点,使得它们被 $H$ 完全打散,那么:
$
VC(H) \ge m
$
若不存在任何 $m+1$ 个点能被打散,则:
$
VC(H) = m
$
常见模型的 VC 维
| 模型 | VC 维 | 说明 |
|---|---|---|
| 单个阈值分类器(1D) | 1 | 一条数轴上的阈值 |
| 二维感知机(线性分类器) | 3 | 可打散任意三点 |
| d 维感知机 | (d+1) | 超平面 |
| 间隔为 ρ 的线性分类器 | 与间隔相关 | 间隔越大 VC 维越小 |
| k-邻近算法(kNN) | 无限大 | 高容量模型 |
VC 维与泛化误差
VC 理论给出学习的可置信泛化界:
$R(h) \le R_{emp}(h) + \sqrt{\frac{VC(H)(\ln\frac{2m}{VC(H)}+1)+\ln\frac{4}{\delta}}{m}}$
其中:
- $R(h)$:泛化误差
- $R_{emp}(h)$:训练误差
- $m$:样本数
- $\delta$:置信度
可以理解为:
$R(h) \le R_{emp}(h) + \underbrace{\sqrt{\frac{\color{blue}{\text{模型复杂度}} + \color{green}{\text{置信项}}}{\color{red}{m}}}}_{间隔项}$
结论:
VC 维越大 → 模型容量越强 → 更容易过拟合
VC 维越小 → 模型越简单 → 泛化更好
PCA (Principal Component Analysis) 主成分分析
核心思想
PCA 是一种无监督降维方法,通过最大化投影方差来找到最重要的方向(主成分)。
换句话说:
- 找一组方向,使数据投影到这些方向上“最有变化”
- 保留信息最多
- 减少维度但不引入标签信息
目的
通过线性变换,将高维数据投影到低维空间,使投影后数据方差最大,从而保留数据最重要的信息。
数学原理:
Step 1:对数据中心化
$x_i \leftarrow x_i - \bar{x}$
Step 2:计算协方差矩阵
$S = \frac{1}{m} XX^T$
Step 3:求协方差矩阵的特征值与特征向量
$S v_i = \lambda_i v_i$
- 特征向量:主成分方向
- 特征值:方差大小
Step 4:按特征值从大到小取前 k 个方向
Step 5:进行投影(降维)
$z = V_k^T x$
本质
- 找最大方差方向
- 等价于重构误差最小化
- 属于无监督学习
- 只关注数据”分布”,不关注分类可分性
Note:
✔ 不利用分类信息
✔ 最大化投影方差
✔ 通过特征分解/奇异值分解(SVD)实现
✔ 结果是线性降维
✔ 主成分之间正交
*
Q-Learning
EM(期望最大化)算法是统计学习中求 含隐变量模型参数的极大似然估计(MLE)或最大后验估计(MAP) 的常用方法。
1 | flowchart TD |
(二)统计学习分类器
(三)线性模型与神经网络
CNN (Convolutional Neural Networks)卷积神经网络
- 神经元与感知机
神经网络的基本单元是神经元(Neuron),灵感来源于生物神经元。感知机(Perceptron)是最早的人工神经元模型,其计算方式为对输入特征进行加权求和后,再加上一个偏置值(bias),最后通过激活函数输出。其数学表达式可写作:
$y = f\left( \sum_{i=1}^{n} w_i x_i + b \right)$
$x_i$ 为输入特征向量
$w_i$ 为权重
$b$ 为偏执
$f$ 为激活函数(如$sigmoid$、$ReLU$等)
- 卷积神经网络的核心思想
卷积神经网络通过局部连接(Local receptive field) + 权值共享(weight sharing) + 池化(pooling) 来处理图像、语音等具有空间结构的信号。
CNN 架构
- 输入层(Input Layer)
- 卷积层(Convolutional Layer)
- 激活函数(Activation Function)
- 池化层 (Pooling Layer)
- 全连接层 (Fully Connected Layer)
- 输出层(Output Layer)