统计学习方法基本概念

统计学习:也称统计机器学习,是计算机基于数据构建概率统计模型,并用模型进行预测与分析的一门学科。

函数:描述客观世界变化规律的数学模型。

数据是统计学习的对象。统计学习关于数据的基本假设是同类数据具有一定的统计规律性,这是统计学习的前提。这些数据具有某种共同的性质,

并且由于具有统计规律性,因此可以用统计学习方法来加以处理。 

解释:我们拿到的训练集 $T$ 只是整个数据集的一部分,而我们关心的总体一般非常大,没有办法拿到全部的数据并训练,所以只能抽取一部分

      样本作为训练集,抽取的方法具有随机性,即简单随机抽样(每个样本被抽取的概率相同)。我们可以对样本进行统计,最终都可以得到一个

      概率分布或概率密度,但这仅是针对样本的,假如数据全体并不存在隐含的统计规律,那便不能用仅仅根据样本得出的结论来做预测,所以

      统计学习必须做一个假设:总体 $(X,Y)$ 存在一定的统计规律,具有联合概率分布

监督学习的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。

在监督学习中,将输入和输出所有可能取值的集合分别称为输入空间输出空间

每个具体的输入是一个实例,通常由特征向量表示,所有特征向量存在的空间称为特征空间

在监督学习中,将输入和输出看作是定义在输入空间和输出空间上的随机变量的取值

回归问题:输入变量与输出变量均为连续变量的预测问题。输入输出都是一个数。

分类问题:输出变量为有限个离散变量的预测问题。输入输出都是一个数。

标注问题:输入变量与输出变量均为变量序列的预测问题。输入输出都是向量。

监督学习假设输入与输出的随机变量 $X$ 和 $Y$ 遵循联合概率分布 $P(X,Y)$。训练数据与测试数据被看作是依联合概率分布 $P(X,Y)$ 独立同分布产生的。

统计学习假设数据存在一定的统计规律,$X$ 和 $Y$ 具有联合概率分布的假设就是监督学习关于数据的基本假设

预测与分析是统计学习的目的,特别是对于未知新数据进行预测与分析。

统计学习方法是基于数据构建统计模型从而对数据进行预测与分析。统计学习由监督学习非监督学习半监督学习强化学习等组成。

统计学习方法概括如下:从给定的、有限的、用于学习的训练数据集合出发,假设数据是独立同分布产生的;并且假设要学习的模型属于一种或多

种函数的集合,称为假设空间;应用于某个评价准则,从假设空间中选取一个最优的模型,使它对已知训练数据及未知测试数据在给定的评价准则

中有最优的预测。

解释:假设空间里面包含各种函数,它们是我们认为可能符合训练集特征的函数集合,比如,我们认为一个训练集可能满足一次函数,也可能满足

      二次函数,那么所有的一次函数和二次函数便构成一个假设空间,一次函数和二次函数这两种函数的复杂度是不同的,所以假设空间能够包

      含复杂度不同的模型,也可能只有一类函数一般有无穷多个。

      简言之:模型的假设空间是所有可能满足训练集规律的函数集合,一定是针对某一个训练集的。

      统计学习的大概步骤就是:确定模型->训练模型->使用模型

      1)模型:简单来说可以理解为函数;

      2)确定模型:就是说自己认为这些数据的特征符合哪类函数,如 $y = ax^{2} + bx + c$,这一步也可以叫确定模型的假设空间。

      3)训练模型:就是用已有的数据确定函数的参数,并按一定的学习策略选择最优的模型,这步完成后便得到了一个具体的模型(参数已知)

      4)使用模型:就是把新的数据代入函数求值。

      以监督学习为例,监督学习的模型有两种形式:

      1)条件概率分布

$$P_{ heta_{i}}(Y|X),i = 1,2,3,...$$

         确定模型后,再通过一些算法(如极大似然估计)得到所有参数 $ heta_{i}$ 后,怎么做预测呢?

         要预测一个输入 $X = x_{i}$ 的输出 $y_{i}$,$x_{i}$ 是已知的,可以假设一个合理的概率(使方程有解),自然就可以求出一个 $y_{i}$。

         我们想要的就是使输出概率最大的那个 $y_{i}$,最理想的就是概率为 $1$ 的时候方程有解。

      2)决策函数

$$Y = f_{ heta_{i}}(X), i = 1,2,3,...$$

         我们的目的也是求式子中的参数 $ heta_{i}$,比如拟合就是一种确定参数的方法。不同于条件概率分布,做预测的时候代入具体的 $X = x_{i}$ 直

         接就得到输出。

      那什么是评价准则呢?考虑按照什么样的准则学习或选择最优的模型。这涉及到损失函数和学习策略

      损失函数:度量模型一次预测的好坏。监督学习用损失函数(或称代价函数)来度量预测错误的程度。

      统计学习常用的损失函数有以下几种:

      1)平方损失函数

$$L(Y, f(X)) = left ( Y - f(X) ight )^{2}$$

      2)绝对值损失函数

$$L(Y, f(X)) = |; Y - f(X) ;|$$

      3)对数损失函数或对数似然损失函数

$$L(Y, P(Y;|;X)) = -log P(Y;|;X)$$

      4)0-1损失函数

$$L(Y, P(Y;|;X)) =
left{egin{matrix}
1 & ,; Y eq f(X) \
0 & ,; Y = f(X)
end{matrix} ight.$$

      风险函数:又称为期望损失或期望风险,即损失函数的期望,表达平均意义上的模型预测的好坏,记为

$$R_{exp}(f) = Eleft [ ; L(Y,f(X)) ; ight ]$$

      上面这个式子是针对总体 $X$ 的,即我们如果想要计算出期望损失,就得知道总体中所有的数据,然后算均值,换句话说,就是要知道 $(X,Y)$ 联合分布,

      但这不可能。我们只知道训练集,即部分样本,于是引入一个经验风险,也叫做经验损失,记为

$$R_{emp}(f) = frac{1}{N} sum_{i=1}^{N}Lleft ( y_{i},f(x_{i}) ight )$$

      取足够大的且合理的样本,便可以用经验风险来估计期望风险。

      结构风险:在经验风险的基础上加上表示模型复杂度的正则化项,在假设空间、损失函数以及训练集确定的情况下,结构风险的定义是:

$$R_{srm}left ( f ight ) = frac{1}{N} sum_{i=1}^{N}Lleft ( y_{i},f(x_{i}) ight ) + lambda J(f)$$

      为什么加个表示模型复杂度的项呢?这是为了防止过拟合。

      有了经验风险和结构风险这两个可以代表模型好坏的概念后,下面介绍下学习的策略。

      经验风险最小化:经验风险最小的模型是最优的模型

$$min_{f in F} frac{1}{N} sum_{i=1}^{N}Lleft ( y_{i},f(x_{i}) ight )$$

      结构风险最小化:结构风险最小的模型是最优的模型

$$min_{f in F} frac{1}{N} sum_{i=1}^{N}Lleft ( y_{i},f(x_{i}) ight ) + lambda J(f)$$

      $J(f)$ 为模型的复杂度,是定义在假设空间上的泛函。模型 $f$ 越复杂,复杂度 $J(f)$ 就越大。也就是说,复杂度表示了对复杂模型的惩罚。

      $J(f)$ 称为正则化项或罚项,一般为单调递增函数,这一项可以是模型参数向量的范数。$lambda$ 表示权重,如果值比较大,那意味着你倾向

     于选择复杂度较小的模型。

      选定了模型(假设空间),确定了学习策略,那如何计算出最优模型对应的参数呢?这便需要算法。下面举两个例子:

      1)极大似然估计:当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等于极大似然估计。这便是直接利用经验风险最小化

         的思想来确定参数。

      2)迭代:也可以来回得迭代更新参数来算出较小的损失函数值,只要准确率达到理想值即可。

当我们从假设空间得到一个最优的模型后,这个模型记作 $hat{f}$,引入两个新的概念。

1)训练误差:这个其实就是经验风险,只不过模型变成了已经选择出来的具体的函数,是结果模型在训练集上的平均损失。

$$hat{R}(f) = frac{1}{N} sum_{i=1}^{N}Lleft ( y_{i},hat{f}(x_{i}) ight )$$

2)测试误差:反映了学习方法对未知的测试数据集的预测能力(泛化能力),是结果模型在测试集上的平均损失。

$$e_{test} = frac{1}{N^{'}}sum_{i=1}^{N^{'}}L(y_{i},hat{f}(x_{i}))$$

训练误差和测试误差一般会有不同的表现。

泛化误差:就是所学到的模型的期望风险。很明显,泛化误差针对的是总体 $X$,是在任意一个测试数据样本上表现出的误差的期望值

泛化误差记为 $R(f)$。泛化误差不等于测试误差,因为测试误差依赖于测试数据集,而测试数据集是有限的,其评价结果是不可靠的,

泛化误差是理论中的值,我们并不能获取总体的全部数据。

泛化能力是机器学习的关键. 我们利用数据来训练模型, 目的不是得到最小的训练误差, 而是让模型在一般情形下表现较好。

泛化误差上界:当我们学习到一个模型,它在训练集上的经验风险能否用来体现这个模型在总体数据或测试数据集上的风险?如果不能,

那机器学习还有什么存在的意义呢?整个都是错误的,所以两者是有联系的,两者之间的差值与下面几个因素有关:

    1)$d$:假设空间的函数个数。备选模型的个数越多,用经验风险来代表期望风险效果越差。

    2)$N$:训练数据集的样本点个数,很明显样本量越大,用经验风险来代表期望风险效果越好。

以二分类问题为例,有这么一个定理:

当假设空间是有限个函数的集合,对于其中的任意一个函数 $f in F$,至少以概率 $1 - delta$,以下不等式成立:

$$R(f) leq hat{R}(f) + varepsilon(d,N,delta)$$

其中

$$varepsilon(d,N,delta) = sqrt{frac{1}{2N}left ( log d + log frac{1}{delta} ight )}$$

根据这个定理,我们不管在假设空间中选择了哪一个模型,都可以保证期望风险能被经验风险和一个小的 $varepsilon$ 项控制住。

上面这个定理是理论上的,$R(f)$ 是总体的期望风险。

证明:

   训练集含有 $N$ 个样本点,可以认为是进行了 $N$ 次简单随机抽样,每次抽样的结果记为 $(X_{i},Y_{i}),i=1,2,3,...$,则

$$hat{R}(f) = frac{1}{N}sum_{i=1}^{N}L(Y_{i},hat{f}(X_{i}))$$

   因为 $X_{i}$ 和 $X$ 同分布,所以

$$Eleft ( hat{R}(f) ight ) = frac{1}{N}sum_{i=1}^{N}Eleft ( L(Y_{i},hat{f}(X_{i})) ight ) = frac{1}{N}sum_{i=1}^{N}Eleft ( L(Y,hat{f}(X)) ight ) = Rleft ( f ight )$$

   设损失函数取值为 $0-1$ 之间,即对所有的 $i$ 有

$$Lleft ( Y_{i},f(X_{i}) ight ) in [; 0,1 ;]$$

   故

$$frac{1}{N}Lleft ( Y_{i},f(X_{i}) ight ) in [; 0,frac{1}{N} ;]$$

   于是利用霍夫丁不等式有

$$Pleft ( R(f) - hat{R}(f) geq varepsilon ight ) leq e^{-2Nvarepsilon^{2}}$$

   但是我们想要求的是事件:任意一个 $f$,其泛化误差和训练误差的差值小于 $varepsilon$

   考虑其对立事件:存在一个 $f$,其泛化误差和训练误差的差值大于 $varepsilon$。

   存在考虑的是事件的并集,解读为 $f_{1}$ 或 $f_{2}$ 或 ... 或 $f_{N}$ 使事件成立,即

$$Pleft ( igcup_{f in F}^{}R(f) - hat{R}(f) geq varepsilon ight ) leq sum_{f in F}^{} Pleft (R(f) - hat{R}(f) geq varepsilon ight ) leq d cdot e^{-2Nvarepsilon ^{2}}$$

   所以

$$Pleft ( igcap_{f in F}^{}R(f) - hat{R}(f) leq varepsilon ight ) geq 1 - sum_{f in F}^{} Pleft (R(f) - hat{R}(f) geq varepsilon ight ) geq 1- d cdot e^{-2Nvarepsilon ^{2}}$$

   即:任意一个函数 $f in F$,至少以概率 $1- d cdot e^{-2Nvarepsilon ^{2}}$,以下不等式成立:

$$R(f) leq hat{R}(f) + varepsilon(d,N,delta)$$

   其中 $delta = d cdot e^{-2Nvarepsilon ^{2}}$,可知 $varepsilon$ 是 $d,N,delta$ 的函数。

证毕

监督学习方法又可以分为生成方法判别方法。所学到的模型分别称为生成模型判别模型

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

$$P(Y|X) = frac{P(X,Y)}{P(X)}$$

之所以称为生成方法,这是因为模型表示了给定输入 $X$ 产生输出 Y 的生成关系。

注意:生成方法可以还原出联合概率分布 $P(X,Y)$。典型的生成模型有:朴素贝叶斯法、隐马尔科夫模型。至于怎么学习联合概率分布,

后面再具体学习。

判别方法:由数据直接学习决策函数 $f(X)$ 或者条件概率分布 $P(Y|X)$ 作为预测的模型(即判别模型)。判别方法关心的是对给定的输入 $X$,

应该预测什么样的输出 $Y$。典型的判别模型包括:$k$ 近邻法、感知器、决策树、逻辑回归、最大熵模型、支持向量机、提升方法、条件随机场等。

生成方法的特点:

    1)可以还原出联合概率分布 $P(X,Y)$,而判别方法不能;

    2)学习收敛速度更快

    3)存在隐变量,仍可以用生成方法学习,判别方法不能。

判别方法的特点:

    1)直接学习条件概率或决策函数;

    2)直接面对预测,往往学习的准确率更高;

    3)可以对数据进行各种程度的抽象、定义特征并使用特征,简化学习问题。

原文地址:https://www.cnblogs.com/yanghh/p/13596524.html