Skip to content

基本术语和概念学习

  • 机器学习是一种面向未来(输出)的技术,学习过程就是得到从输入到输出的预测模型。
  • 机器学习的根本目标是提升模型泛化能力,也就是应对未来未见样本的能力。前提是历史和未来来自相同分布(IID假设,即独立同分布假设)

基本术语

数据相关术语

  • 特征:属性
  • 属性值:特征的取值(离散/连续)
  • 样本维度(Dimensionality):特征个数
  • 特征张成的空间:属性空间/特征空间/输入空间
  • 标记张成的空间:标记空间/输出空间
  • 示例(Instance)/样本(Sample):一个对象的输入,不含标记
  • 样例(Example):示例+标记
  • 训练集:一组训练样例
  • 测试集:一组测试样例

任务相关术语

预测任务

根据标记取值情况:

  • 分类任务:标记为离散值
  • 回归任务:标记为连续值(如瓜的成熟度)
  • 聚类任务:标记为空值,对示例进行自动分组

根据标记的完整情况:

  • 监督学习:所有示例都有标记
  • 无监督学习:所有示例都没有标记
  • 半监督学习:少量示例有标记,大量示例没有标记
  • 噪声标记学习:有标记,但是不完全准确

概念学习

  • 最理想的机器学习技术是学习到概念(人类可学习的,可理解的)
  • 归纳学习有两类:广义的归纳学习从样例中学习,狭义的从训练数据中学习概念,后者称为概念学习。
  • 可以把学习过程看作一个在所有假设(hypothesis) 组成的空间中进行 搜索的过程,搜索目标是找到与训练集"匹配"的假设,即能够将训练集中的瓜判断正确的假设

  • 假设空间:所有假设(hypothesis)张成的集合

  • 版本空间:假设空间的子集,是和训练集一致的假设集合
  • 归纳偏好:学习过程中对某种类型假设的偏好称作归纳偏好
  • No free lunch:一个算法A如果在某些问题上比另一个算法B好,必然存在另一些问题,B比A好, 也即没有免费的午餐定理。它说明脱离具体问题,空泛地谈论"什么学习算法更好"毫无意义,因为若考虑所有潜在的问题则所有学习算法都一样好。

模型评估与选择

经验误差与过拟合

  • 错误率:错分样本的占比
  • 误差:样本真实输出与预测输出的差异

    • 训练(经验)误差:训练集的误差
    • 测试误差测试集的误差
  • 过拟合:学习器把训练样本学习的“太好”,将训练样本本身的特点当做所有样本一般性质,导致泛化性能下降。解决方法:

    • 优化目标加正则项
    • 早停(early stopping)
  • 欠拟合:对训练样本一般性质尚未学好。解决方法:

    • 决策树:拓展分支
    • 神经网络:增加训练轮数

评估方法

如果只有包含样例的数据集D,并且既要训练又要测试,那么应该对D进行适当处理,从中产生训练集S和测试集T。有如下划分方法:

留出法(hold-out)

  • 直接将数据集划分为两个互斥集合——训练集和测试集
  • 划分要尽可能保持数据分布的一致性
  • 分层采样(stratified sampling):保持类别比例一致
  • 一般若干次随机划分数据集,重复实验取平均值
  • 训练/测试样本比例:通常为2:1到4:1

交叉验证法(cross-validation)

  • 将数据集分层采样划分为k个大小相似的互斥子集
  • 每次用 k-1 个子集的并集作为训练集,余下的子集作为测试集,最终返回 k个测试结果的均值,k最常用的取值是10
  • 与留出法类似,将数据集D划分为k个子集同样存在多种划分方式,为了减小因样本划分不同而引入的差别,k折交叉验证通常随机使用不同的划分重复p次, 最终的评估结果是这p次k折交叉验证结果的均值。例如,常见的“ 10次10折交叉验证 ”

自助法(有放回采样法)

上面两种方法保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,会引入因训练样本不同导致的估计偏差。自助法用于减少训练样本规模不同造成的影响:

Info

给定包含m个样本的数据集D,每次有放回地从D中取一个样本,重复m次得到D'。一个样本m次都没被取到的概率为

\[ lim_{m\rightarrow \infty}(1-\frac{1}{m})^m \rightarrow \frac{1}{e} \approx 0.368 \]

所以初始数据集中约0.368的样本未出现在D'中。将D'作为训练集D\D'作为测试集。

  • 问题:自助法产生的数据集改变了初始数据集的分布,引入估计偏差
  • 总结:自助法在数据集小,难以划分训练/测试集很有用;可以产生多个训练集,对集成学 习有用;数据量足够,一般采用留出法和交叉验证

参数调节

在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定。

通常在验证集上确定参数,付诸于最终模型和测试

性能度量

在预测任务重,给点样例集 D = {(x1,y1),...,(xm,ym)},其中yi是示例xi的真实标记。要评估学习器f的性能,就要把学习器预测结果f(x)与真实标记y进行比较

回归任务常用的性能度量是“均方误差”(mean square error)

\(E(f;D) = \frac{1}{m}\Sigma^m_{i=1}(f(x_i)-y_i)^2\).

对于数据分布D和概率密度函数p(x),均方误差可描述为

\(E(f;D) = \int_{x~D}(f(x)-y)^2p(x)dx\).

错误率与精度

信息检索、web搜索等场景中经常需要衡量正例被预测出来的比率或者预测出来的正例中正确的比率, 此时查准率(precision)和查全率(recall)比错误率和精度更适合。

统计真实标记和预测结果的组合可以得到“混淆矩阵”

alt text

根据学习器的预测结果按正例可能性大小对样例进行排序, 并逐个把样本作为正例进行预测,则可以得到查准率-查全 率曲线,简称“P-R曲线”

alt text

平衡点是曲线上“查准率=查全率”时的取值,可用来用于度量P-R曲线 有交叉的分类器性能高低

  • F1度量:
\[ F1=\frac{2P·R}{P+R}=\frac{2\times TP}{样例总数+TP-TN} \]

比F1更一般的形式 \(F_\beta\)

\[ F_{\beta}=\frac{(1+\beta^2)\times P\times R}{(\beta^2 \times P)+R} \]

\(\beta=1\):标准F1 \(\beta>1\):偏重查全率(逃犯信息检索) \(\beta<1\):偏重查准率(商品推荐系统)

  • ROC与AUC:

类似P-R曲线,根据学习器的预测结果对样例排序,并逐个作为正例进行预测,以“假正例率(FPR)”为横轴,“真正例率(TPR)”为纵轴可得到ROC曲线;ROC全称“受试者工作特征”

$ FPR=\frac{FP}{FP+TN} $

\(TPR=\frac{TP}{TP+FN}\)

  • 绘制过程:给定 \(m^+\) 个正例和 \(m^-\) 个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0.0)标记一个点然后,将分类阈值依次设为每个样例的预测值,即依次将每个样例划分为正例。 设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为\((x,y+\frac{1}{m^+})\),若当前为反例,则对应标记点的坐标为 \((x+\frac{1}{m^-},y)\),然后用线段连接相邻点

  • 学习器的比较:一个学习器ROC曲线包住另一个,则前者性能更优。若ROC曲线交叉,根据ROC曲线下面积判断,即AUC(Area Under ROC Curve)

\[ AUC=\frac{1}{2}\Sigma^{m-1}{i=1}(x_{i+1}-x_i)(y_i + y_{i+1}) \]

AUC衡量了样本预测的排序质量

  • 代价敏感错误率与代价曲线:

现实任务中不同类型的错误所造成的后果可能不同。为了权衡 不同类型错误所造成的不同损失,为错误赋予“非均等代价”

假设检验

二项检验

T-检验

交叉验证 T-检验

偏差与方差

  • 泛化误差指一个模型在新的、从未见过的数据(即“真实世界”数据)上表现的平均误差
  • 泛化误差可分解为方差、偏差与噪声之和
  • 一般来说,偏差与方差是有冲突的,称为偏差-方差窘境
  • 在训练不足时,学习器拟合能力不强,训练数据的扰动不足以使学习器的拟合能力产生显著变化,此时偏差主导泛化错误率;
  • 随着训练程度加深,学习器拟合能力逐渐增强,方差逐渐主导泛化错误率;
  • 训练充足后,学习器的拟合能力非常强,训练数据的轻微扰动都会导致学习器的显著变化,若训练数据自身非全局特性被学到则会发生过拟合。

Comments