- 是关于李航的《统计学习方法》的学习笔记
- 主要是看七月在线的网课
1 统计学习及监督学习概论
1.1 基础概念
- 概念:关于计算机基于数据构建概率统计模型、并运用模型对数据进行预测与分析的一门学科。也称为统计机器学习(statistical machine learning)
- 特点:以数据为研究对象,对数据进行预测与分析
- 对象:data
结构化data:数字。 非结构化data:文字、图像、视频、音频以及它们的组合
我们处理的都是结构化data,就算是图像音频,也要抽象成结构化data
数据的基本假设是同类数据具有一定的统计规律性
- 目的:用于对数据(特别是未知数据)进行预测和分析
- 分类:Supervised learning、Unsupervised learning、Reinforcement learning
1.2 监督学习
1.2.1 步骤
1) 训练数据 training data
2) 模型 model(不唯一) ------- 假设空间 hypothesis
3) 评价准则 evaluation criterion -------- 策略 strategy
4) 算法 algorithm
5) 选择最优模型(一般不太可能直接有解析解,一般是迭代解)
6) 对新数据进行预测或分析
1.2.2 概念解释
输入实例 x i x_{i} xi的特征向量:
x i = ( x i ( 1 ) , x i ( 2 ) , ⋯ , x i ( n ) ) T x_{i}=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}} xi=(xi(1),xi(2),⋯,xi(n))T x i x_{i} xi相当于一张二维表格中的一行,比如实例为班级成绩单, x i x_{i} xi这一行即为第 i i i个同学每门科目 x i ( n ) x_{i}^{(n)} xi(n)的成绩。
这里是列向量的形式(一般ML中都默认向量为列向量),但是其实在表格中是一行,这里不要混淆了。
训练集:
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)} y y y是标记,可以理解成“是否是三好学生”。
输入变量和输出变量: 分类问题、回归问题、标注问题
联合概率分布: 假设输入、输出的随机变量X、Y遵循联合概率分布P(X,Y),对于学习系统来说,联合概率分布是未知的,训练数据和测试数据被看作是依联合概率分布P(X,Y)独立同分布产生的。
假设空间(hypothesis space): 模型的集合就是假设空间。
概率模型两种形式:条件概率分布P(Y|X), 决策函数:Y=f(X)。前者给出的结果是一种概率,后者是给出概率最大的结果。
1.3 无监督学习
数据集只有x没有y:
聚类问题:要给出聚类的标准(比如距离最短)
1.4 统计学习
1.4.1 按算法分类
- 在线学习(online learning):来了输入 x x x,马上能通过系统得到预测输出 f ^ \hat{f} f^,进而得到损失函数 l ( f ^ , y ) l(\hat{f},y) l(f^,y),然后对系统进行改进。下一个输入就是新的系统。
- 批量学习(batch learning):一次性输入拿到的批次数据集,新的批次过来了再改进。
1.4.2 按技巧分类
-
贝叶斯学习(Bayesian learning):模型估计时, 佔计整个后验概率分布 P ( θ ∣ D ) P(\theta \mid D) P(θ∣D)。如果需要给出一个模型, 通常取后后验概率最大的模型。
预测时,计算数据对后验概率分布的期望值:
P ( x ∣ D ) = ∫ P ( x ∣ θ , D ) P ( θ ∣ D ) d θ P(x \mid D)=\int P(x \mid \theta, D) P(\theta \mid D) \mathrm{d} \theta P(x∣D)=∫P(x∣θ,D)P(θ∣D)dθ这里 x x x 是新样本。
前者是点估计,后者是分布。
-
核方法(Kernel method):假设x1,x2是输入空间的任意两个实例,内积为,如果这个内积不能进行非线性学习,则使用φ函数,将输入空间中的x1,x2映射到特征空间,在这个空间做内积,可能就线性可分,然后再映射回去。
难点:1)φ函数不好找; 2)找到了也很复杂。
因此,我们换一种思路:在输入空间中定义核函数K(x1, x2),使其满足K(x1, x2) = < φ(x1), φ(x2)>,这样就转换回了原空间核函数的调用问题。
• 使用核函数表示和学习非线性模型,将线性模型学习方法扩展到非线性模型的学习
• 不显式地定义输入空间到特征空间的映射,而是直接定义核函数,即映射之后在特征空间的内积
1.4.3 统计学习三要素:方法=模型+策略+算法
(1)模型
- 决策函数的集合: F = { f ∣ Y = f ( X ) } \mathcal{F}=\left\{f \mid Y=f(X)\right\} F={f∣Y=f(X)} (假设空间)
- 参数空间: F = { f ∣ Y = f θ ( X ) , θ ∈ R n } \quad\quad\ \ \mathcal{F}=\left\{f \mid Y=f_{\theta}(X), \theta \in \mathbf{R}^{n}\right\} F={f∣Y=fθ(X),θ∈Rn} (决定 f f f的映射的参数)
- 条件概率的集合: F = { P ∣ P ( Y ∣ X ) } \mathcal{F}=\{P \mid P(Y \mid X)\} F={P∣P(Y∣X)}
- 参数空间: F = { P ∣ P θ ( Y ∣ X ) , θ ∈ R n } \quad\quad\ \ \mathcal{F}=\left\{P \mid P_{\theta}(Y \mid X), \theta \in \mathbf{R}^{n}\right\} F={P∣Pθ(Y∣X),θ∈Rn}
输入空间、输出空间、假设空间、参数空间。
(2)策略
- 损失函数:一次预测的好坏
- 风险函数:平均意义下模型预测的好坏
- 0 − 1 0-1 0−1损失函数 ( 0 − 1 0-1 0−1 loss function) L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y, f(X))= \begin{cases}1, & Y \neq f(X) \\ 0, & Y=f(X)\end{cases} L(Y,f(X))={1,0,Y=f(X)Y=f(X)
- 平方损失函数(quadratic loss function) L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L(Y, f(X))=(Y-f(X))^{2} L(Y,f(X))=(Y−f(X))2
- 绝对损失函数(absolute loss function) L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L(Y, f(X))=|Y-f(X)| L(Y,f(X))=∣Y−f(X)∣
和平方损失函数一样避免了损失值的正负问题,但绝对损失函数并不常用,因为绝对值=0处不可导。
- 对数损失函数(logarithmic loss function)或对数似然损失函数(loglikelihood loss function) L ( Y , P ( Y ∣ X ) ) = − log P ( Y ∣ X ) L(Y, P(Y \mid X))=-\log P(Y \mid X) L(Y,P(Y∣X))=−logP(Y∣X)
- 损失函数的期望 R e x p ( f ) = E p [ L ( Y , f ( X ) ) ] = ∫ x × y L ( y , f ( x ) ) P ( x , y ) d x d y R_{\mathrm{exp}}(f)=E_{p}[L(Y, f(X))]=\int_{x \times y} L(y, f(x)) P(x, y) \mathrm{d} x \mathrm{d} y Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy
- 经验风险(empirical risk), 经验损失(empirical loss) R sup ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{\text {sup }}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right) Rsup (f)=N1∑i=1NL(yi,f(xi))
策略:经验风险最小化与结构风险最小化
- 经验风险最小化最优模型
min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) \min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right) f∈FminN1i=1∑NL(yi,f(xi))当样本容量很小时, 经验风险最小化学习的效果末必很好, 会产生“过拟合 over-fitting”
- 结构风险最小化(structure risk minimization),为防止过拟合提出的策略, 等价于正则化 (regularization), 加入正则化项(regularizer),或罚项(penalty term):
R m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) R_{\mathrm{m}}(f)=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f) Rm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)结构风险是经验风险加上一个正则化项(描述当前模型复杂度,模型越复杂,正则化项越大)。我们希望等式左边尽可能小,则经验风险也要尽可能小,这样模型就会变复杂,产生过拟合,正则化项增大。
- 求最优模型就是求解最优化问题:
min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) \min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f) f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
(3)算法
- 如果最优化问题有显式的解析式,算法比较简单
- 但通常解析式不存在,就需要数值计算的方法
1.5 模型评估与模型选择
1.5.1 基础概念
- 训练误差, 训练数据集的平均损失 R ecop ( f ^ ) = 1 N ∑ i = 1 N L ( y i , f ^ ( x i ) ) R_{\text {ecop }}(\hat{f})=\frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, \hat{f}\left(x_{i}\right)\right) Recop (f^)=N1∑i=1NL(yi,f^(xi))
- 测试误差,测试数据集的平均损失 e test = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) ) e_{\text {test}}=\frac{1}{N^{\prime}} \sum_{i=1}^{N^{\prime}} L\left(y_{i}, \hat{f}\left(x_{i}\right)\right) etest=N′1∑i=1N′L(yi,f^(xi))
- 损失函数是0-1 损失时 e test = 1 N ′ ∑ i = 1 N I ( y 1 ≠ f ^ ( x i ) ) e_{\operatorname{test}}=\frac{1}{N^{\prime}} \sum_{i=1}^{N} I\left(y_{1} \neq \hat{f}\left(x_{i}\right)\right) etest=N′1∑i=1NI(y1=f^(xi))
- 测试数据集的准确率 r t e s t = 1 N ′ ∑ i = 1 N ′ I ( y i = f ^ ( x ^ i ) ) r_{\mathrm{test}}=\frac{1}{N^{\prime}} \sum_{\mathrm{i}=1}^{N^{\prime}} I\left(y_{\mathrm{i}}=\hat{f}\left(\hat{x}_{\mathrm{i}}\right)\right) rtest=N′1∑i=1N′I(yi=f^(x^i))
1.5.2 过拟合与模型选择
- 假设给定训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}
f M ( x , w ) = w 0 + w 1 x + w 2 x 2 + ⋯ + w M x M = ∑ j = 0 M w j x ′ f_{M}(x, w)=w_{0}+w_{1} x+w_{2} x^{2}+\cdots+w_{M} x^{M}=\sum_{j=0}^{M} w_{j} x^{\prime} fM(x,w)=w0+w1x+w2x2+⋯+wMxM=j=0∑Mwjx′
- 经验风险最小:
L ( w ) = 1 2 ∑ i = 1 N ( f ( x i , w ) − y i ) 2 L ( w ) = 1 2 ∑ i = 1 N ( ∑ j = 0 M w j x i ′ − y i ) 2 w j = ∑ i = 1 N x i y i ∑ i = 1 N x i j + 1 , j = 0 , 1 , 2 , ⋯ , M L(w)=\frac{1}{2} \sum_{i=1}^{N}\left(f\left(x_{i}, w\right)-y_{i}\right)^{2} \quad L(w)=\frac{1}{2} \sum_{i=1}^{N}\left(\sum_{j=0}^{M} w_{j} x_{i}^{\prime}-y_{i}\right)^{2}\quad {w_{j}=\frac{\sum_{i=1}^{N} x_{i} y_{i}}{\sum_{i=1}^{N} x_{i}^{j+1}}, j=0,1,2, \cdots, M} L(w)=21i=1∑N(f(xi,w)−yi)2L(w)=21i=1∑N(j=0∑Mwjxi′−yi)2wj=∑i=1Nxij+1∑i=1Nxiyi,j=0,1,2,⋯,M
1.6 正则化与交叉验证
1.6.1 正则化
- 正则化一般形式:
min f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) \min _{f \in \mathcal{F}} \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\lambda J(f) f∈FminN1i=1∑NL(yi,f(xi))+λJ(f)
- 回归问题中:
L ( w ) = 1 N ∑ i = 1 N ( f ( x t ; w ) − y t ) 2 + λ 2 ∥ w ∥ 2 L ( w ) = 1 N ∑ i = 1 N ( f ( x i ; w ) − y i ) 2 + λ ∥ w ∥ 1 \begin{aligned} &L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{t} ; w\right)-y_{t}\right)^{2}+\frac{\lambda}{2}\|w\|^{2} \\ &L(w)=\frac{1}{N} \sum_{i=1}^{N}\left(f\left(x_{i} ; w\right)-y_{i}\right)^{2}+\lambda\|w\|_{1} \end{aligned} L(w)=N1i=1∑N(f(xt;w)−yt)2+2λ∥w∥2L(w)=N1i=1∑N(f(xi;w)−yi)2+λ∥w∥1
1.6.2 交叉验证
• 训练集training set: 用于训练模型
• 验证集validation set: 用于模型选择
• 测试集test set: 用于最终对学习方法的评估
• 简单交叉验证
• S折交叉验证
• 留一交叉验证