监督学习 Supervised Learning

重要前提

1. 监督学习假设数据是独立同分布产生的

2.  监督学习假设输入 X 与输出 Y 遵循联合概率分布 P(X, Y)

3. 监督学习与非监督学习的主要区别是, 在非监督学习中,类别信息是不被提前知道的,在学习的过程中使用的训练样本通常不具有标记信息

模型

监督学习的模型可以是 概率模型 或者 非概率模型。前者由条件分布P(Y|X) 表示,后者由决策函数 Y = f(X) 表示


学习策略:即“ 按照什么样的准则学习或选择最优的模型”

1. 损失函数和风险函数:损失函数度量模型 一次 预测的好坏,风险函数度量 平均 意义下模型预测的好坏。

2. 损失函数或称cost function,用来衡量预测值f(X)与真实值Y之间的差异程度,是一个非负实值函数,记作L。常用的损失函数包括0-1损失函数(二分类问题),平方损失函数(回归问题)和对数损失函数等(最大似然估计)。

3. 由于模型的输入输出 (X,Y) 是随机变量,遵循联合分布P(X,Y),所以损失函数的期望是E(L) = 。这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为 风险函数(risk function) 期望损失(expected loss)。学习的策略就是选择期望风险最小的模型。一方面,由于联合分布P(X,Y)是未知的,E(L) 不能直接计算。另一方面实际上,如果知道联合分布P(X,Y),可以从联合分布直接求出条件概率分布P(Y|X),也就不需要学习了。这样一来,监督学习就成为一个 病态问题(ill-formed problem)

4. 经验风险:给定一个训练集, 模型f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss), 记作= 。期望风险是模型关于联合分布的平均损失,经验风险是模型关于训练集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险趋于等于期望风险。所以一个很自然的想法是用经验风险估计期望风险。但是,由于现实中训练样本数目有限,甚至很小,所以用经验风险估计期望风险常常并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。

5. 经验风险最小化(empirical riskminimization,ERM)的策略认为,经验风险最小的模型是最优的模型。即按照经验风险最小化求最优模型就是求 min。当样本容量足够大时,经验风险最小化能保证有很好的学习效果。比如,极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。

当样本容量很小时,经验风险最小化学习的效果就未必很好,会产生过拟合现象。结构风险最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化。结构风险小需要经验风险与模型复杂度同时小。结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation,MAP)就是结构风险最小化的一个例子。当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。

这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。这时经验或结构风险函数是最优化的目标函数


模型评估与模型选择

我们实际需要的是在新样本上(测试集)表现的好的模型。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念。给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。防止测试集上过拟合:使测试误差最小:正则化与交叉验证。

1. 模型选择的典型方法是正则化(regularization)。正则化是在经验风险上加一个正则化项。正则化项一般是模型复杂度的单调递增函数,模型越复杂(有多个非零参数),正则化值就越大。比如,正则化项可以是模型参数向量的范数 (L1 norm: Lasso; L2 norm Ridge)。

正则化符合奥卡姆剃刀(Occam's razor)原理 (‘越平滑,越简单’)。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

2. 如果给定的样本数据充足,进行模型选择的一种简单方法是留出法,即随机地将数据集切分成三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型 (注:留出法最好多次划分训练集和验证集,取平均值)

如果数据不充足,可以采用交叉验证方法,比如k折交叉验证(更常使用p次k折交叉验证)或留一法(计算复杂度较高)。

当数据集小并且难以有效划分训练/测试集时 ,自助法(bootstap)是一个很好的解决方案


模型的性能度量

对于回归问题,常用的度量方式是均方误差: MSE =

对于分类问题:常用的度量方式有:

-Error rate/Accuracy

-Precision/Recall/P-R图/F1-score

-ROC/AUC

-代价敏感错误与代价曲线


补充:MLE 与 MAP

MLE 与 MAP是很常用的两种 参数估计方法。简单来说,MAP就是多了一个作为因子的先验概率P(θ)。MLE是把先验概率P(θ)认为等于1,即认为θ是均匀分布。

1. 对于似然函数 P(x|θ) 来说输入有两个:x表示某一个具体的数据;θ表示模型的参数。如果θ是已知的,x是变量,这个函数叫做概率函数(probability function),它描述对于不同的样本点x,其出现概率是多少。如果x是已知的,θ是变量,这个函数叫做 似然函数(likelihood function), 它描述对于不同的模型参数,出现x这个样本点的概率是多少。

比如硬币抛了10次,得到的数据 (x) 是:反正正正正反正正正反。我们想求的正面概率θ是模型参数,而抛硬币模型我们可以假设服从二项分布。那么,出现实验结果x(即反正正正正反正正正反)的似然函数是:。这是个关于θ的函数,最大似然估计就是最大化这个函数。


可以看出,在θ=0.7时,似然函数取得最大值。这样,我们已经完成了对θ的最大似然估计。即,抛10次硬币,发现7次硬币正面向上,最大似然估计认为正面向上的概率是0.7。但一些人可能会说,硬币一般都是均匀的啊! 就算你做实验发现结果是“反正正正正反正正正反”,我也不信θ=0.7。

2. 这里就包含了贝叶斯学派的思想了——要考虑先验概率。 为此,引入了最大后验概率估计。最大后验概率估计则是想求θ使P(x|θ)P(θ)最大。求得的θ不单单让似然函数大,θ自己出现的先验概率也得大 (这有点像正则化里加惩罚项的思想,不过正则化里是利用加法,而MAP里是利用乘法)。

MAP其实是在最大化P(θ|x) = , P(θ|x) 是后验概率,P(x|θ)是似然函数, P(θ)是先验概率。对于投硬币的例子来看,我们认为(”先验地知道“)θ取0.5的概率很大,取其他值的概率小一些。我们用一个高斯分布来具体描述我们掌握的这个先验知识,例如假设P(θ)为均值0.5,方差0.1的高斯函数,则P(x|θ)P(θ)的函数图像如下。此时函数取最大值时,θ取值已向左偏移,在θ=0.558时函数取得了最大值。即,用最大后验概率估计,得到θ=0.558。

最后,那要怎样才能说服一个贝叶斯派相信θ=0.7呢?你得多做点实验。如果做了1000次实验,其中700次都是正面向上,这时似然函数如下:


如果仍然假设P(θ)为均值0.5,方差0.1的高斯函数,P(x0|θ)P(θ)的函数图像如下。在θ=0.696处,P(x0|θ)P(θ)取得最大值。



References:

1. 统计学习方法. 李航

2. 详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解. nebulaf91.

你可能感兴趣的:(监督学习 Supervised Learning)