本文简要的介绍了一下学习机器学习模型之前需要了解的知识,内容很多,这里只是简单的介绍,想深入了解可以查阅相关的资料。
内容来源《统计学习方法》第一章
机器学习
-
机器学习从统计学的角度看,可以叫做统计机器学习
- 是基于 数据 构建 概率统计模型 从而对数据进行 预测和分析。
机器学习的对象
统计机器学习的对象是 数据。
它从数据出发,提取数据的特征,抽象出数据的模型,发现数据的知识,又回到对数据的分析与预测中去。数据的形式是多种的:数字、文字、图像、视频、音频以及它们的组合等。
统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是学习的前提,同类数据是指具有某种共同性质的数据。
机器学习的目的
统计学习用于对数据进行预测与分析,尤其是对未知数据的分析和预测。
考虑学习什么样的模型和如何学习模型,使模型能够对数据进行准确的预测和分析,同时也要考虑提高学习的效率。
机器学习的方法
统计学习是基于数据构建概率统计模型从而对数据进行分析和预测。可以分为:
- 监督学习:训练数据集中知道样本的类别(标签)。
- 非监督学习:训练数据集中不知道样本的类别(标签)。
- 半监督学习:训练数据集中一部分样本知道类别(标签),一部分样本不知道类别(标签)。
- 强化学习:输出的是一系列的动作,单个动作不重要,重要的是输出的策略。alpha go就是一个增强学习的例子。
其中监督学习又可以分为:
- 回归:输出的值是连续的值。比如预测降雨量,预测房价等。
输入变量和输出变量均为连续变量的预测问题。 - 分类:输出的值是离散的值。比如预测是否下雨,房价涨跌等。
输出变量为有限个离散变量的预测问题。 - 标注:可以认为是分类问题的推广。输入的是一个观测序列,输出的是一个标记序列或状态序列。比如:隐马尔科夫模型。
输入变量和输出变量均为变量序列的预测问题。
-
输入空间
- 输入中所有可能取值的集合称为输入空间。可以是有限元素的集合也可以是整个欧式空间。 输出空间
- 输出中所有可能取值的集合称为输出空间。可以是有限元素的集合也可以是整个欧式空间。可以和输入空间是同一个空间,也可以是不同的空间。但是一般情况输出空间远小于输入空间。 特征空间
- 每个样本由特征向量表示,所有特征向量存在的空间就是特征空间。特征空间每一维对应一个特征。有时候特征空间和输入空间是同一个空间;有时也是不同的空间,将样本从输入空间映射到特征空间。模式都是定义在特征空间上的。 假设空间
- 监督学习目的在于找到一个从输入到输出的一个映射,模型来表示这个映射。也就是说学习目的在于找到一个最好的模型,模型属于由输入空间到输出空间映射的集合,这个集合就是假设空间。
监督学习的学习方法可以概括如下:
从给定的训练数据集出发,假设数据是 独立同分布 产生的;并且假设要学习的模型属于某个函数的集合,称为假设空间;应用某个评价准则,从假设空间中选取一个最优的模型,使它对已知的训练数据和未知的测试数据在给定的评价准则下都有最优的预测;最优模型的选择由算法实现。
这段话精简的概括了统计机器学习过程。需要好好理解理解。
其中假设空间,评价准则,算法是学习的重要要素。简称:模型,策略,算法。
模型
模型是用从数据中抽取规则的方式,也是对数据进行划分的方法。不同的算法就是不同的模型。
模型的假设空间用F表示,定义为决策函数的集合 F={f∣Y=f(X)} F = \{f | Y=f(X) \} F={f∣Y=f(X)}
XXX 和 YYY 是定义在输入空间和输出空间上的变量。FFF是由一个参数向量决定的函数簇 F={f∣Y=fθ(X),θ∈Rn} F = \{ f | Y = f_\theta (X), \theta \in R^n \} F={f∣Y=fθ(X),θ∈Rn} 参数向量 θ\thetaθ取值于n维欧式空间RnR^nRn,称为参数空间。
FFF也可是条件概率的集合 F={P∣P(Y∣X)} F = \{ P | P(Y|X) \} F={P∣P(Y∣X)}
参数形式:F={P∣Pθ(Y∣X),θ∈Rn} F = \{ P | P_\theta (Y|X), \theta \in R^n \} F={P∣Pθ(Y∣X),θ∈Rn}
策略
主要的策略是:最小化损失函数和极大似然估计。
-
损失
- 模型预测的结果可能正确也可能不正确,预测结果和真实结果之间的差距就是损失。预测正确可以说是损失为0。
损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型的预测好坏。
使用损失函数或代价函数来度量预测错误的程度。
常用的损失函数:
- 0-1损失函数:
L(Y,f(X))={1, Y̸=f(X)0, Y=f(X) L(Y, f(X)) = \begin{cases} 1, \ \ \ Y \not= f(X)\\ 0, \ \ \ Y = f(X) \end{cases} L(Y,f(X))={1, Y̸=f(X)0, Y=f(X) - 平方损失函数:
L(Y,f(X))=(Y−f(X))2 L(Y, f(X)) = \left( Y-f(X) \right)^2 L(Y,f(X))=(Y−f(X))2 - 绝对损失函数:
L(Y,f(X))=∣Y−f(X)∣ L(Y, f(X)) = \left| Y-f(X) \right| L(Y,f(X))=∣Y−f(X)∣ - 对数损失函数或对数似然损失函数:
L(Y,P(Y∣X))=−logP(Y∣X) L(Y,P(Y \mid X)) = -\log P(Y \mid X ) L(Y,P(Y∣X))=−logP(Y∣X)
损失函数值越小,模型就越好。模型的输入输出是随机变量,遵循联合分布P(X,Y)P(X, Y)P(X,Y),所以损失函数的期望是:
Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy R_{exp}(f) = E_p\left[ L\left(Y, f(X)\right) \right] = \int_{x \times y} L(y, f(x))P(x, y) dxdy Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy
这是理论上模型 f(X)f(X)f(X)关于联合概率分布P(X,Y)P(X,Y)P(X,Y)平均意义下的损失称为风险函数或期望风险。
模型 f(X)f(X)f(X)关于训练数据集的平均损失称为经验风险或经验损失:
Remp(f)=1N∑i=0NL(yi,f(xi)) R_{emp}(f) = {1 \over N} \sum_{i=0}^N L\left(y_i, f(x_i)\right) Remp(f)=N1i=0∑NL(yi,f(xi))
期望风险Rexp(f)R_{exp}(f)Rexp(f)是模型关于联合分布的期望损失,经验风险Remp(f)R_{emp}(f)Remp(f)是模型关于训练样本集的平均损失,根据大数定律,当样本量N区域无穷时,经验风险趋于期望风险,所以自然的想法就是使用经验风险去估计期望风险,但是由于现实样本量有限,所以使用经验风险估计期望风险并不理想,需要对经验风险进行一定的矫正。这就是 经验风险最小化和结构风险最小化。
当样本容量足够大,经验风险最小化能保证有很好的学习效果,在现实中被广泛采纳。比如:极大似然估计就是经验风险最小化的例子。当模型是条件概率模型,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计 。
结构风险最小化
由于现实数据量有限,经验风险最小化学习不能带来很好的效果,会产生一定的过拟合现象。需要引入正则化项或者叫罚项。在假设空间、损失函数和训练数据集确定的情况下,结构风险的定义:
Rsrm(f)=1N∑i=1NL(yi,f(xi))+λJ(f) R_{srm}(f) = {1 \over N} \sum_{i=1}^N L(y_i, f(x_i))+ \lambda J(f)Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
其中J(f)J(f)J(f)为模型的复杂度,模型fff越复杂J(f)J(f)J(f)越大。λ≥0\lambda \geq 0λ≥0 是系数,用来权衡模型复杂度和经验风险。
贝叶斯估计中的最大后验概率估计就是结构风险最小化的例子。当模型是条件概率模型、损失函数是对数损失函数、模型复杂度有模型的先验概率表示时,结构风险最小化就等价于最大化后验概率。
结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以求解最优模型,就是求解最优化问题:
minf∈F 1N∑i=1NL(yi,f(xi))+λJ(f) min_{f \in F } \ {1 \over N} \sum_{i=1}^N L(y_i, f(x_i)) + \lambda J(f)minf∈F N1i=1∑NL(yi,f(xi))+λJ(f)
算法
算法就是求解策略得出来的最优化问题。
常用的方法:
- 梯度下降(梯度上升,随机梯度下降)
- 牛顿法(拟牛顿法)
- 最小二乘法???
训练误差 测试误差
假设学习到的模型是Y=f^(X)Y = \hat{f}(X)Y=f^(X),训练误差是模型关于训练数据集的平均损失:
Remp(f^)=1N∑i=1NL(yi,f^(xi)) R_{emp}(\hat{f}) = {1 \over N} \sum_{i=1}^N L(y_i, \hat{f}(x_i)) Remp(f^)=N1i=1∑NL(yi,f^(xi))
其中N是样本容量。
测试误差是模型关于测试数据集的平均损失:
etest=1N′∑i=1N′L(yi,f^(xi)) e_{test} = {1 \over N^{'} } \sum_{i=1}^{N^{'}} L(y_i, \hat{f}(x_i))etest=N′1i=1∑N′L(yi,f^(xi))
模型过拟合
原因: 是由于模型学习到了数据集的噪声数据导致的(学到了不该学习的东西)。噪声数据就是错误的数据。
现象:模型对训练数据拟合的很好,对测试数据效果很差,也就是经验损失小,测试误差大。
正则化:从贝叶斯估计的角度看,正则化对应模型的先验概率,复杂的模型有较小的先验概率,简单的模型有较大的先验概率。
防止过拟合的方法:
- 添加正则化到损失函数中。如结构风险最小化。
- 使用交叉验证:
- 简单交叉验证:整个数据集的70%做训练,30%做测试。
- S折交叉验证: 数据集平均分成S分,每次训练一个做测试其余做训练,最后选出S次评测中平均测试误差最小的模型。
泛化误差上界
证明TODO:
生成模型和判别模型
生成方法由数据学习联合概率分布P(X,Y)P(X, Y)P(X,Y),然后求出条件概率分布P(Y∣X)P(Y|X)P(Y∣X)作为预测模型,生成模型: P(Y∣X)=P(X,Y)P(X) P(Y|X) = {P(X, Y) \over P(X)} P(Y∣X)=P(X)P(X,Y)
这样的方法之所以成为生成方法,是因为模型表示了给的输入X产生输出Y的生成关系,典型的生成方法有:朴素贝叶斯和隐马尔科夫模型。
特点:P18
判别方法由数据之间学习决策函数f(X)f(X)f(X)或概率分布P(Y∣X)P(Y|X)P(Y∣X)作为模型的预测。判别方发关心的是对于给定的X,应该预测什么样的输出Y。典型的方法:k近邻、感知机、决策树。
特点:P18
分类问题的评价准则
预测↓\downarrow↓ 实际→\rightarrow→ | 正类 | 负类 |
---|---|---|
正类 | TP(正类预测为正类) | FP(负类预测为正类) |
负类 | FN(正类预测为负类) | TN(负类预测为负类) |
精确率定义:
P=TPTP+FP P = {{TP} \over {TP+FP} }P=TP+FPTP
召回率定义:
R=TPTP+FN R = {{TP} \over {TP+FN} }R=TP+FNTP
F1值是精确率和召回率的调和均值:
2F1=1P+1R {2 \over F_1} = {1 \over P} + { 1 \over R} F12=P1+R1
F1=2TP2TP+FP+FN F_1 = {2TP \over 2TP + FP + FN } F1=2TP+FP+FN2TP
AUC曲线等。