统计学习-方法论

统计学习即是基于数据构建概率统计模型并运用模型对数据进行预测与分析的一种方法, 是机器学习的一个分支.

监督学习: 从给定的有限训练数据集合出发, 假设数据是独立同分布产生的, 并且假设要学习的模型属于某个函数的集合, 称为假设空间, 应用某个评价准则, 从假设空间中选取一个最优的模型, 使它对已知训练数据及未知测试数据在给定的评价准则下有最优的预测, 最优模型的选取由算法实现. 其包括三要素模型的假设空间(模型), 模型选择的准则(策略), 模型学习的算法(算法).

监督学习步骤:

  1. 得到一个有限的训练数据集合
  2. 确定包含所有可能的模型的假设空间(模型)
  3. 确定模型的选择准则(策略)
  4. 实现求解最优模型的算法(算法)
  5. 通过学习方法选择最优模型
  6. 利用学习的最优模型对新数据进行预测或分析

在监督学习中, 将输入与输出所有可能取值的集合称为输入空间与输出空间, 二者可以是有限元素的集合, 也可以是整个欧氏空间, 可以是同一个空间, 也可不同, 通常输出空间远远小于输入空间

每个具体的输入是一个实例(instance), 通常由特征向量表示, 所有的特征向量存在的空间称为特征空间. 与输入空间可能会有一定的映射关系, 模型实际上都是定义在特征空间上的.

输入\(X\)是实例的输入\(x\)的集合, 每个实例都有一个输出\(y\)(和整个算法的输出不同), 训练数据\(T\)是实例的集合. 通常\(x\)是一个特征向量, 表示为:

\begin{align} x = (x^{(1)}, x^{(2)}, \cdots, x{(n)})T\end{align}

\(T\)用训练数据的输入和输出的数值对进行表示:

\begin{align} T = \{(x_1, y_1), (x_2, y_2), \cdots, (x_N, y_N)\} \end{align}

回归问题: 输入与输出均为连续变量的预测问题

分类问题: 输出变量为有限个离散变量的预测问题

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

联合概率分布: 监督学习假设输入与输出的随机变量\(X\)\(Y\)遵循联合概率分布\(P(X, Y)\).

假设空间: 监督学习的模型可以是概率模型或者非概率模型, 由条件概率分布\(P(X|Y)\)或决策函数\(Y = f(X)\)表示.

模型: 是所要学习的条件概率分布或者决策函数, 其假设空间\(\mathfrak{F}\)包含所有可能的条件概率分布或决策函数.

\begin{align} \mathfrak{F} = \{f|Y=f(X)\}\end{align}

通常, \(\mathfrak{F}\)是一个由参数向量\(\theta\)决定的函数族:

\begin{align} \mathfrak{F} = \{f|Y=f_{\theta}(X), \theta \in \mathbf{R}^n\}\end{align}

或者是对应的条件概率分布族:

\begin{align} \mathfrak{F} = \{P|P_{\theta}(Y|X), \theta = \mathbf{R}^n\}\end{align}

策略: 以一个既定的准则从假设空间中选择模型

损失函数: 假设空间中的决策函数\(f\)的实际输出\(f(X)\)与实际训练数据\(Y\)可能不一致, 损失函数\(L(Y, f(X))\)提示了这一不一致带来的错误程度, 其值大于或等于0. 不同的模型中, 损失函数的形式可能不一致, 比如:

  1. 0-1损失函数 \begin{align} L(Y, f(X)) = \begin{cases} 1 & \text{if } Y \neq f(X) \\ 0 & \text{if } Y = f(X)\end{cases}\end
  2. 平方损失函数 \begin{align} L(Y, f(X)) = (Y - f(X))^2\end
  3. 绝对损失函数 \begin{align} L(Y, f(X)) = \left|Y - f(X)\right|\end
  4. 对数损失函数 \begin{align} L(Y, P(Y|X)) = -\log P(Y|X)\end

无论何种损失函数, 其值越小, 意味着模型越好, 对于联合概率分布\(P(X, Y)\), 其期望称为期望损失, 为 \begin{align}R_{exp}(f) = E_P[L(Y, f(X))] = \int_{X,Y}L(y,f(x))P(x,y)dxdy\end{align}

学习的目标是选择期望风险最小的模型\(f(X)\), 但是对于未知\(P(X, Y)\), 其值无法直接计算. 给定一个训练数据集\begin{align}T=\{(x_1, y_1), \cdots, (x_N, y_N)\}\end{align}, 模型\(f(X)\)关于训练数据集的平均损失称为经验损失\(R_{emp}\), 为: \begin{align} R_{emp}(f) = \frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i)) \end{align}

期望风险是模型关于联合分布的期望损失, 经验风险是模型关于训练样本集的平均损失, 当样本容量\(N\)趋于无穷大时, 经验损失收敛于期望损失. 但是通常\(N\)不够大, 需要对经验风险进行一定的矫正, 相应的方式有: 经验风险最小化(ERM)和结构风险最小化(SRM).

ERM认为经验风险最小的模型是最优的模型, 按照这一策略, 目标转换为求解最优化问题 \begin{align} \min_{f \in \mathfrak{F}} \frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i)) \end{align}. 当样本足够大时, 此策略能保证有很好的学习效果, 比如极大似然估计等. 但是在样本容量较小时, 容易产生过过拟合问题.

SRM等价于正则化, 其目的是防止过拟合. 具体方法是在经验风险上加上表示模型复杂度的正则化项(罚项), 称为结构风险, 即: \begin{align} R_{srm}(f) = \frac{1}{N} \sum_{i=1}^N L(y_i, f(x_i)) + \lambda J(f) \end{align}. 其中\(J(f)\)为模型的复杂度, 是定义在假设空间\(\mathfrak{F}\)上的泛函, 与模型复杂度正相关. \(\lambda\)是大于0的系数. 比如贝叶斯估计中的最大执死鸡仔概率估计(MAP)等. 此时求解目标转换为\begin{align} \min_{f \in \mathfrak{F}} \frac{1}{N} \sum_{i=1}^N (L(y_i, f(x_i)) + \lambda N J(f)) \end{align}.

模型评估与模型选择

训练误差: 针对训练数据集\(T_N\)的平均损失\(R_{emp}(\hat{f})\)

测试误差: 针对测试数据集\(T_{{N}'}\)的平均损失\(e_{test}\)

测试误差小的方法具有更好的预测能力

过拟合: 如果一味追求提高对训练数据的预测能力, 所选模型的复杂度则往往会比真模型更高. 例如对于多项式拟合, 对于\(N\)个训练数据, \(f(x) = \sum_{i=0}^{N-1} a_i x^i\)可以做到0训练误差, 但是测试误差通常会很大. 通常通过正则化或者交叉验证的方法对选择的模型进行评估.

正则化与交叉验证

正则化: 即结构误差最小化, 通过引入模型复杂度的罚项来正则化模型选取方式. 其作用是选择经验风险与模型复杂度同时较小的模型.

交叉验证: 首先随机地将已给数据分为两个部分, 一部分作为训练集, 一部分作为测试集, 然后用训练集在各种条件下训练模型, 从而得到不同的模型, 在测试庥上评价各个模型的测试误差, 先出测试误差最小的模型. 应用最多的是S折交叉验证, 其方法是首先随机地将已给数据切分为S个互不相交的大小相同的子集, 然后复杂S-1个子集的数据训练模型, 利用余下的子集测试模型, 将这一过程对所有可能的S种选择重复进行, 最后先出S次评测中平均测试误差最小的模型. 其一种特殊情形是\(S=N\), 称为留一交叉验证.

泛化能力

泛化误差: 即期望风险

泛化误差上界: 是样本容量的反相关函数

以二分类问题为例: 其训练数据集为\(T_N\), 根据联合概率分布\(P(X, Y)\)独立同分布产生的, 输入\(X \in \mathbf{R}^n\), 输出\(Y \in \{-1, 1\}\), 假设空间\(\mathfrak{F} = \{f_1, f_2, \cdots, f_d\}\), 其经验风险最小化函数\begin{align} f_N = \arg \min_{f \in \mathfrak{F}} \hat{R}(f)\end{align}. 其泛化误差, 也就是期望风险存在一个概率(\(1-\delta\))上界, 有: \begin{align}R_{exp}(f) \leqslant \hat{R}(f) + \varepsilon(d, N, \delta) = \hat{R}(f) + \sqrt{\frac{1}{2N}\left(\log d + \log \frac{1}{\delta}\right)}\end{align}.

Hoeffding不等式: 设\(S_n = \sum_{i=1}^n X_i\)是独立随机变量集\(X\)的和, 对于任意\(t>0\), 有\begin{align} P(S_n - E S_n \geqslant t) &\leqslant \exp \left(\frac {-2 t2}{\sum_{i=1}n(b_i - a_i)^2}\right) \\ P(E S_n - S_n \geqslant t) &\leqslant \exp \left( \frac{-2 t2}{\sum_{i=1}n (b_i - a_i)^2}\right)\end{align}.

生成模型与判别模型

生成方法: 由数据学习联合概率分布\(P(X, Y)\), 然后求出条件概率分布\(P(Y|X)\)作为预测的模型, 即生成模型: \begin{align} P(Y|X) = \frac{P(X, Y)}{P(X)}\end{align}. 其表示了给定输入\(X\)产生输出\(Y\)的生成关系. 可以还原出联合概率分布\(P(X, Y)\), 收敛速度快, 并且可用于存在隐变量的场合.

判别方法: 由数据直接学习决策函数\(f(X)\)或者条件概率分布\(P(Y|X)\)作为预测模型. 其关心的是对给定的输入\(X\), 应该预测什么样的输出\(Y\), 而不在于二者之前的生成关系. 其准确率更高, 可以对数据进行各种程序上的抽象, 简化过程.

分类问题

输出\(Y\)是有限离散集合的预测问题, 评价模型的指标是分类准确率, 也就是采用0-1损失函数的准确率.

二分类(-1, 1)部分的评价指标是精确率与召回率, 通常以关注的类为正类, 其它类为负类, 分类器在测试数据集上的预测或正确或不正确, 有四种情况:

  • T(true)P(positive) 1 -> 1, 正确
  • F(false)N(negative) 1 -> -1, 不正确
  • FP -1 -> 1, 不正确
  • TN -1 -> -1, 正确

精确率为预测为正类的正确率: \begin{align} P=\frac{TP}{TP+FP}\end{align}

召回率为正类的预测正确率: \begin{align} R=\frac{TP}{TP+FN} \end{align}

定义精确率和召回率的调和均值 \begin{align}\frac{2}{F_1} = \frac{1}{P} + \frac{1}{R} \end{align}

标注问题

输入是一个观测序列, 输出是一个标记序列或状态序列. 目标在于学习一个模型, 使它能够对观测序列给出标记序列作为预测. 其含义为对输入的特征向量的每个元素进行标记得出一个输出向量, 也就是说, 其输入实例\(x\)和输出\(y\)的维度是一样的, 而不同的输入实例其特征向量维度不一定相同. 比如对英文句子中的单词进行词性标注. 句子是一个输入实例\(x\), 句子包含的单词是特征向量的元素\(x^{(i}}\), 输出为每个单词的词性\(y\), 其元素个数应该与单词数量相等, 或者有对应关系. 训练数据或者测试数据应该包含若干个句子. 不同的句子的单词数量不一定相同, 也就是维度不同.

回归问题

用于预测输入变量和输出变量之间的关系, 等价于函数拟合, 常用损失函数为平方损失函数, 以最小二乘法求解.

posted @ 2017-05-23 19:05  kcats  阅读(484)  评论(0)    收藏  举报