统计学习方法笔记 第一章 概论
机器学习常规流程
- 收集数据
- 准备数据
- 分析数据
- 特征提取
- 训练算法
- 测试算法
- 使用算法
1.统计学习理论
1.1统计学习特点
数据驱动,计算机为平台,构建模型为中心,预测和分析,交叉科学。
1.2 统计学习对象
数据和数据的分布,基本假设是同类的数据具有一定的统计规律性(IID)。
1.3 统计学习目的
通过训练模型完成数据的预测和分析。
1.4 统计学习的方法
- 监督学习
- 非监督学习
- 半监督学习
- 强化学习
1.5 统计学习步骤
- 得到一个有限的数据集
- 确定学习模型的集合
- 确定学习的策略
- 确定学习的算法
- 选择最优模型
- 利用最优模型进行预测
2.统计学习的分类
2.1 监督学习
监督学习是从标记好的数据集中学习预测模型的机器学习问题,本质是学习输入到输出的映射的统计规律。
2.1.1 基本概念
- 输入空间,输出空间
- 实例
- 特征空间,特征向量
- 分类问题,回归问题,标注问题
2.1.2 基本流程
2.2 无监督学习
无监督学习指从无标记的数据中学习预测模型的机器学习模型,本质是学习数据的潜在结构或统计规律。
2.3 强化学习
强化学习是指智能系统与环境的连续互动中学习最有行为策略的机器学习问题,本质是学习最优的序贯决策。
2.3.1 基本概念
- 状态,奖励,动作
- 马尔可夫决策
- 价值函数,动作价值函数
2.4 半监督学习与主动学习
- 半监督学习利用少量的标注数据和大量的未标注数据学习预测模型的问题。
- 主动学习是指机器不断的主动给出实例让教书进行标注,然后利用标注数据学习预测模型的问题。
2.5 其他分类方式
- 概率模型和非概率模型: P ( y ∣ x ) , y = f ( x ) P(y|x), y=f(x) P(y∣x),y=f(x)
- 线性模型和非线性模型
- 参数化模型和非参数模型:参数唯独是否固定。
- 在线学习和非在线学习:在线学习每次接受一个样本,进行预测,然后学习模型,批量学习是指一次接受所有的数据,学习模型,之后进行预测。
- 贝叶斯学习和核方法:利用贝叶斯原理计算后验概率 P ( θ ∣ D ) = P ( θ ) P ( D ∣ θ ) P ( D ) P(\theta|D)=\frac{P(\theta)P(D|\theta)}{P(D)} P(θ∣D)=P(D)P(θ)P(D∣θ),利用核函数将输入映射到特征空间。
3. 统计学习三要素
3.1 模型
首先考虑学习什么样的模型,模型即是需要学习的条件概率分布或决策函数。
3.2 策略
策略决定了按照什么样的准则选择最优的模型,通过损失函数度量每一次预测错误的程度,从而选择损失函数最小的模型作为最终模型。常用的损失函数包括:
- 0-1损失函数 L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))=\begin{cases} 1, & Y\neq f(X) \\[2ex] 0, & Y = f(X) \end{cases} L(Y,f(X))=⎩⎨⎧1,0,Y=f(X)Y=f(X)
- 平方损失函数 L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L(Y,f(X))=(Y-f(X))^2 L(Y,f(X))=(Y−f(X))2
- 绝对损失函数 L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L(Y,f(X))=|Y-f(X)| L(Y,f(X))=∣Y−f(X)∣
- 对数损失函数 L ( Y , P ( Y ∣ X ) ) = − log P ( Y ∣ X ) L(Y,P(Y|X))=-\log P(Y|X) L(Y,P(Y∣X))=−logP(Y∣X)
损失函数的期望是:
R e x p ( f ) = E p [ L ( Y , f ( X ) ) ] = ∫ χ × γ L ( y , f ( x ) ) P ( x , y ) d x d y R_{exp}(f)=E_p[L(Y,f(X))]=\int_{\chi\times\gamma}L(y,f(x))P(x,y)dxdy Rexp(f)=Ep[L(Y,f(X))]=∫χ×γL(y,f(x))P(x,y)dxdy
如果把损失函数当作最优化目标,那么得到的是经验风险最小化的模型,在训练集上有较好的表现,但是可能因为能获得的数据有限,所以泛化效果不好。可以通过结构风险最小化模型进行修正,结构风险被定义为:
R s r m ( f ) = 1 N ∑ i = 0 N L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}(f)={\frac 1N}\sum_{i=0}^NL(y_i,f(x_i))+\lambda J(f) Rsrm(f)=N1i=0∑NL(yi,f(xi))+λJ(f)
λ J ( f ) \lambda J(f) λJ(f)被称为正则项,通过控制 λ \lambda λ的大小可以约束模型的复杂程度,因为当求SRM的最优化时,是求解:
min f ∈ F 1 N ∑ i = 0 N L ( y i , f ( x i ) ) + λ J ( f ) \min_{f\in F}{\frac 1N}\sum_{i=0}^NL(y_i,f(x_i))+\lambda J(f) f∈FminN1i=0∑NL(yi,f(xi))+λJ(f)
f f f一般是模型参数的某一种范式,所以可以约束模型的规模。
3.3 算法
算法是指学习模型的具体计算方法,用什么样的方法来求解最优模型。通常不存在解析解,为了保证能找到全局最优解,可以使用数值计算的方法来求解。
4. 模型评估和模型选择
4.1 训练误差和测试误差
训练误差是模型关于训练数据的平均损失,测试误差是模型关于测试数据的平均损失,训练误差可以度量一个问题是否容易学习,测试误差度量给定的学习方法对于未知数据的预测能力,也叫泛化能力。
4.2 过拟合和模型选择
下面这两张图对于过拟合欠拟合有着比较好的解释:
当测试误差和训练误差收敛但是都很高,例如左上角时,为高偏差,低方差,此时模型的预测效果很差,泛化能力很差,处于欠拟合状态。此时我们需要适当的增加模型参数,减少正则项来增加模型复杂程度来更好的拟合数据。
当训练误差和测试误差有很大差距时,为高方差,低偏差,此时的模型对于训练数据拟合的较好,但是缺少泛化能力,处于过拟合状态。此时我们需要适当减少模型参数,增加正则手段来减少模型的复杂程度。
这一张图可以很好的反映bias-variance trade-off。一个模型的误差由三个部分组成。
E r r o r = B i a s 2 + V a r i a n c e + N o i c e Error=Bias^2+Variance+Noice Error=Bias2+Variance+Noice
- Noice 刻画了问题本身的复杂程度
- Variance 刻画了训练模型的稳定程度
- Bias 刻画了模型的拟合能力
Noise是不可避免的特征,主要寻找Variance和Bias之间的平衡,通过控制模型的复杂程度,来达到 V a r i a n c e Variance Variance和 B i a s Bias Bias的适中。
5. 正则化和交叉验证
5.1 正则化
正则化和交叉验证都是模型选择的方法,正则化实施的是结构风险最小化策略,在经验风险上加一个正则项来减少模型的复杂程度,正则化项一般和模型的参数某一种范式成比例,模型的参数越复杂,正则项越大。
5.2 交叉验证
交叉验证的思想是,重复使用数据,把给定的数据进行切分,将切分的数据集分为训练集和测试集,在此基础上反复进行训练,测试。
- 简单交叉验证
随机将数据分为两部分,一部分作为训练集,一部分作为测试集。 - S折交叉验证(K-fold)
随机将数据切分成S个互不相交的大小相同的集合,然后用S-1个数据作为训练数据,剩下的作为测试数据,重复S次,这样在同样的数据上可以进行S次训练测试。 - 留一交叉验证
当S折交叉验证的S=N时,即每次只留下一个测试数据。
6. 泛化能力
6.1 泛化误差
泛化误差定义:
R e x p ( f ^ ) = E P [ L ( Y , f ^ ( X ) ) ] = ∫ χ × γ L ( y , f ^ ( x ) ) P ( x , y ) d x d y R_{exp}(\hat{f})=E_P[L(Y,\hat{f}(X))]=\int_{\chi\times\gamma}L(y,\hat{f}(x))P(x,y)dxdy Rexp(f^)=EP[L(Y,f^(X))]=∫χ×γL(y,f^(x))P(x,y)dxdy
泛化误差就是所学到的模型的期望风险。
6.2 泛化误差上界
就像分析算法时间复杂度需要计算上界一样,分析泛化误差时,也需要分析泛化误差的上界。泛化误差上界具有:
- 是样本容量的函数,样本空间越大,泛化误差越低。
- 是假设空间容量的函数,假设空间越大,泛化误差越高。
对于一个二分类问题,当假设空间时有限个函数的集合时,对于任何一个函数,至少以概率 1 − δ 1-\delta 1−δ,泛化误差上界为:
R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ ) R(f)\leq\hat{R}(f)+\varepsilon(d,N,\delta) R(f)≤R^(f)+ε(d,N,δ)
ε ( d , N , δ ) = 1 2 N ( log d + log 1 δ ) \varepsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(\log d+\log \frac{1}{\delta})} ε(d,N,δ)=2N1(logd+logδ1)
第一个不等式的左端是泛化误差,右端为泛化误差上界,泛化误差上界中,第一项是训练误差,训练误差越小,泛化误差越小,第二项是关于N的单调递减函数,N越大,泛化误差上界越小,同时也是 log d \sqrt{\log{d}} logd阶函数,假设空间包含的函数越多,泛化误差越大(数据过于复杂)。
7. 生成模型和判别模型
监督学习按照模型产生的方法可以分为生成模型和判别模型两种。
-
生成模型
由生成方法,从数据中学习到联合概率分布,然后由联合概率分布求出条件概率分布做出预测的模型,因为模型给出了给定的输入如何产生输出的,所以叫生成方法。 P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(Y∣X)=P(X)P(X,Y)
特点:可以还原出联合概率分布,收敛速度快。 -
判别模型
由数据直接学习决策函数或者条件概率分布,判别模型关心决策分割面的位置。 f ( X ) f(X) f(X) P ( Y ∣ X ) P(Y|X) P(Y∣X)
特点:学习的准确率更高,简化学习过程。
8. 应用
8.1 分类问题
当监督学习的输出变量变成有限个离散型变量的时候,预测问题就是分类问题。评价分类问题的常用指标是精确率(Accurancy)和召回率(Recall),根据出现的情况可以分成四类:
- TP 正类被预测成正类
- FN 正类被预测成负类
- FP 负类被预测成正类
- TN 负类被预测成负类
由此可以将准确率定义为:
P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
召回率定义为:
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
此外比较常用的还有 F 1 F_1 F1值,是准确率和召回率的调和均值:
F 1 = 2 T P 2 T P + F P + F N F_1=\frac{2TP}{2TP+FP+FN} F1=2TP+FP+FN2TP
常用于分类的统计学习方法包括:K邻近法,感知机,朴素贝叶斯,决策树,决策列表,逻辑斯蒂回归,支持向量机,提升方法,贝叶斯网络,神经网络。
8.2 标注问题
标注问题的输入是一个观测序列,输出是一个标记序列,即标注问题的结果和输入的顺序有关。常用的统计学习方法由:隐马尔可夫模型,条件随机场
8.3 回归问题
回归模型学习的是输入变量和输出变量之间的映射函数,回归问题的学习相当于学习一个高维度的函数,回归问题常用的损失函数是平方损失函数。
9. 题目
假设:当模型是条件概率分布,当损失函数是对数损失函数时,经验风险最小化等价于极大似然估计
证明: 由i.i.d : f ( x 1 , x 2 , . . . x n ) = f ( x 1 ∣ θ ) × f ( x 2 ∣ θ ) × . . . × f ( x n ∣ θ ) f(x_1,x_2,...x_n)=f(x_1|\theta)\times f(x_2|\theta)\times...\times f(x_n|\theta) f(x1,x2,...xn)=f(x1∣θ)×f(x2∣θ)×...×f(xn∣θ)
似然定义为: L ( θ ∣ x 1 , x 2 , . . . , x n ) = f ( x 1 , x 2 , . . . , x n ∣ θ ) = ∏ i = 1 n f ( x i ∣ θ ) L(\theta|x_1,x_2,...,x_n)=f(x_1,x_2,...,x_n|\theta)=\prod_{i=1}^nf(x_i|\theta) L(θ∣x1,x2,...,xn)=f(x1,x2,...,xn∣θ)=∏i=1nf(xi∣θ)
取对数 l n L ( θ ∣ x 1 , x 2 , . . . , x n ) = ∑ i = 1 n l n f ( x i ∣ θ ) lnL(\theta|x_1,x_2,...,x_n)=\sum_{i=1}^nlnf(x_i|\theta) lnL(θ∣x1,x2,...,xn)=i=1∑nlnf(xi∣θ)
l ^ = 1 n l n L \hat{l}=\frac{1}{n}lnL l^=n1lnL
θ ^ = a r g m i n 1 n ∑ i = 1 n − l n f ( x i ∣ θ ) \hat{\theta}=argmin\frac{1}{n}\sum_{i=1}^{n}-lnf(x_i|\theta) θ^=argminn1i=1∑n−lnf(xi∣θ)
经验风险最小化公式为:
a r g m i n f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) {argmin}_{f\in{F}}\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) argminf∈FN1i=1∑NL(yi,f(xi))
当损失函数是对数损失函数时,经验风险最小化等价于极大似然估计.
10. Reference
- 李航统计学习方法第二版
- 机器学习实战
- http://datahonor.com/2017/03/03/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1%E4%B8%8E%E7%BB%8F%E9%AA%8C%E9%A3%8E%E9%99%A9%E6%9C%80%E5%B0%8F%E5%8C%96/