机器学习基础

一、统计学习三要素

统计学习方法由模型、策略、和算法构成的。下面主要以监督学习为例子。

1.1 模型

统计学习首要考虑的是学习什么样的模型。在监督学习中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含了所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型假设空间就是所有这些线性函数构成的集合。

假设空间用\(F\)表示,它可以定义为

\[F=\{f\;|\;Y=f_{\theta}(X)\;,\; \theta \in R^n\} \]

其中\(X\)\(Y\)是定义在输入空间和输出空间上的变量,参数向量为\(\theta\)。解设空间也可以定义为条件概率集合

\[F=\{P\;|\;P_{\theta}(Y|X)\;,\; \theta \in R^n\} \]

1.2 策略

有了模型的假设空间,统计学习接下来考虑的是按照什么样的准则学习或选择最优的模型。即从假设空间中选择最优的模型。监督学习问题是在假设空间中选择模型\(f\)作为决策函数。对于给定的输入\(X\)给出相应的输出\(Y\),这个输入的预测值\(f(X)\)与真实值\(Y\)可能一致也可能不一致,用一个损失函数或者代价函数来度量预测错误的程度。损失函数是\(f(X)\)\(Y\)的非负实值函数,记做\(L(Y,f(X))\)常用的损失函数有以下几种:

  • \(0-1\)损失函数

\[L(Y,f(X))=\left \{ \begin{matrix} 1 & , & Y \neq f(X) \\ 0 & , & Y = f(X) \end{matrix} \right. \]

  • 平方损失函数

\[ L(Y,f(X))=(Y-f(X))^2 \]

  • 绝对损失函数

\[ L(Y,f(X))=|Y-f(X)| \]

  • 对数损失函数或者对数似然损失函数

\[ L(Y,f(X))=-logP(Y|X) \]

损失值越小则模型越好。对于一个训练数据集

\[T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} \]

模型\(f(X)\)关于训练数据集的平均损失风险为经验风险或者经验损失,记做

\[R_{emp}=\frac{1}{N}\sum_{i=1}^N{L(y_i,f(x_i))} \]

经验风险最小化的策略认为经验风险最小的模型就是最优模型,比如极大似然估计就是经验风险最小化的一个例子,当模型是条件概率时,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。

  当样本容量很小时,经验风险最小化的学习效果未必很好,会产生“过拟合”现象。而结构风险最小化是防止过拟合提出的,它是在风险经验上添加模型复杂度的正则化项或惩罚项,表达式如下

\[R_{srm}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f) \]

其中\(J(f)\)是模型复杂度,模型越复杂\(J(f)\)就越大;反之,\(J(f)\)就越小。其中\(\lambda \geq 0\) 是惩罚系数。

1.3 算法

算法是指学习模型的具体计算方法,统计学习基于训练数据集,根据学习策略从假设空间中选择最优模型,最后需要考虑用什么样的算法来求解最优模型。

二、模型评估与模型选择

2.1 训练误差、测试误差、泛化能力

&emsp 当损失函数给定时,基于损失函数模型的训练误差测试误差就自然的成为模型评估的标准。训练误差的大小,对于给定问题是不是一个易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知测试数据的预测能力是学习中的重要概念。通常将学习方法对未知数据的预测能力称为泛化能力

  如果一味的追求提高对训练数据的预测能力,所选模型的复杂度往往会比真模型更高,这种现象称为过拟合,过拟合是指学习时选择模型包含参数过多,以至于出现这一模型对已知数据预测的很好,但对未知数据预测表现的很差。模型选择旨在避免过拟合并提高模型的预测能力。

2.2 正则化和交叉验证

2.2.1正则化

  模型选择的典型方法是正则化,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项或惩罚项,正则化一般有如下形式

\[min \quad \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f) \]

正则项可以取不同的形式,例如,回归问题中损失函数是平方损失,正则化项可以是参数向量的\(L_2\)范数

\[L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i,w)-y_i)^2+\frac{\lambda}{2}||w||^2 \]

2.2.2 交叉验证

  简单交叉验证的方法是:先随机的将数据分为两部分,一部分作为训练集,另一部分作为测试集(例如70%数据作为训练集,30%数据作为测试集),然后利用训练集在各种条件下(例如不同参数个数)训练模型,从而得到不同的模型,在测试集上评测各个模型的测试误差,选出测试误差较小的模型。其次还有\(k\)折交叉验证和留一交叉验证,略过。

三、生成模型与判别模型

监督学习的任务就是学习一个模型,应用这个模型对给定的输入预测相应的输出,这个模型一般形式为决策函数

\[Y=f(X) \]

或者条件概率分布

\[P(Y|X) \]

监督学习的方法分为生成方法和判别方法,所学到的模型分别称为生成模型判别模型

生成方法由数据学习联合概率分布\(P(X,Y)\),然后求出条件概率分布\(P(Y|X)\)作为预测的模型。即

\[P(Y|X)=\frac{P(X,Y)}{P(X)} \]

这样方法之所以成为生成方法,是因为模型表示给定输入\(X\)产生输出\(Y\)的生成关系。典型的生成模型有:朴素贝叶斯法和隐马尔可夫模型。

判别方法是由数据直接学习决策函数\(f(X)\)或者条件概率分布\(Y(Y|X)\)作为预测模型,即判别模型。判别方法关心的是对给定的输入\(X\),应该预测什么样的输出\(Y\).典型判别方法包括:\(k\)近邻、感知机、决策树、逻辑回归、最大熵模型等。

在监督学习中,生成方法和判别方法有各自的优缺点,适合于不同条件下的学习问题。生成方法特点:它可以还原出联合概率分布\(P(X,Y)\),而判别方法不能。生成方法学习收敛速度快,当样本容量增加时,学到的模型可以更快的收敛于真实模型;当存在隐变量时,乃可以使用生成方法学习,此时判别方法就不适用。

判别方法的特点:判别方法直接学习的是条件概率分布\(P(Y|X)\)或者决策函数\(f(X)\),直接面对预测,往往学习正确率更高;由于直接学习\(P(Y|X)\)\(f(X)\),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。

四、分类问题

  分类问题是监督学习的一个核心问题,在监督学习中当输出变量取有限个值时,预测问题便成为分类问题。这里主要讨论二分类问题,对于二分类问题,常用的评价指标是精确率、召回率。通常以关注的类为正类其他类为负类,分类器在测试数据集上的一侧或正确或不正确,一共有4中情况

  • $TP $   将正类预测为正类数
  • \(FN\)   将正类预测为负类
  • \(FP\)   将负类预测为正类
  • \(TN\)   将负类预测为负类

精确率定位为

\[P=\frac{TP}{TP+FP} \]

召回率定义为

\[R=\frac{TP}{TP+FN} \]

区分准确率、精确率、召回率

  • 准确率   是指给定的数据集,分类器正确分类的样本数与总样本数之比
  • 精确率   是针对预测结果而言的,它表示预测为正的样本中有多少样本是真正的正样本。那么预测为正既有两种可能了,一种是将正样本预测为正样本(\(TP\)),另一种是将负样本预测为正样本(\(FP\)),也就是

\[P=\frac{TP}{TP+FP} \]

  • 召回率   是针对预测样本而言的,它表示样本中的正例有多少被预测正确了。那么正例预测结果有两种可能了,一种是将正样本预测为正样本(\(TP\)),另一种是将正样本预测为负样本(\(FN\)),也就是

\[R=\frac{TP}{TP+FN} \]

posted @ 2017-09-25 15:57  曹孟德  阅读(257)  评论(0编辑  收藏  举报