Skip to content

Latest commit

 

History

History
executable file
·
194 lines (128 loc) · 8.11 KB

README.md

File metadata and controls

executable file
·
194 lines (128 loc) · 8.11 KB

CH01 统计学习方法概论

[TOC]

前言

章节目录

  1. 统计学习
  2. 监督学习
    1. 基本概念
    2. 问题的形式化
  3. 统计学习三要素
    1. 模型
    2. 策略
    3. 算法
  4. 模型评估与模型选择
    1. 训练误差与测试误差
    2. 过拟合与模型选择
  5. 正则化与交叉验证
    1. 正则化
    2. 交叉验证
  6. 泛化能力
    1. 泛化误差
    2. 泛化误差上界
  7. 生成模型与判别模型
  8. 分类问题
  9. 标注问题
  10. 回归问题

导读

  • 直接看目录结构,会感觉有点乱,就层级结构来讲感觉并不整齐。可以看本章概要部分,摘录几点,希望对理解本章内容编排有帮助:

    1. 统计学习三要素对理解统计学习方法起到提纲挈领的作用
    2. 本书主要讨论监督学习
    3. 分类问题、标注问题和回归问题都是监督学习的重要问题
    4. 本书中介绍的统计学习方法包括...。这些方法是主要的分类、标注以及回归方法。他们又可归类为生成方法与判别方法。
  • 本章最后的三个部分,这三个问题可以对比着看,如果暂时没有概念,略过也可以,回头对各个算法有了感觉回头再看这里。 这三部分怎么对比,三部分都有个图来说明,仔细看下差异,本文后面会对此展开。

  • 关于损失函数,风险函数与目标函数注意体会差异

  • 后面插点从深度学习角度拿到的点

    • 关于机器学习三要素, 复旦大学邱锡鹏教授也有解读^2: 模型, 学习准则, 优化算法. 这个定义比较接近代码. 以Tensorflow为例. 通常会定义一个网络(模型), 定义Loss(学习准则), 定义优化算法(Optimizer), 然后开Session, 不停的把数据带入用Opitmizer去最小化Loss.
    • Losses, Metrics, 在Keras里面划分了两个模块, 解释是Losses是BP过程用到的, 而Metrics实际和损失函数类似, 用来评价模型的性能, 但是不参与反向传播. 从源码也能看到, Metrics里面import了很多Loss算法

实现统计学习方法的步骤

统计学习方法三要素:模型,策略,算法.

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

统计学习方法三要素

模型

模型是什么?

在监督学习过程中, 模型就是所要学习的条件概率分布或者决策函数.

注意书中的这部分描述,整理了一下到表格里:

假设空间$\cal F$ 输入空间$\cal X$ 输出空间$\cal Y$ 参数空间
决策函数 $\cal F\it ={f_{\theta} Y=f_{\theta}(x), \theta \in \bf R \it ^n}$ 变量 变量
条件概率分布 $\cal F\it ={P P_{\theta}(Y X),\theta\in \bf R \it ^n}$ 随机变量

书中描述的时候,有提到条件概率分布族,这个留一下,后面CH06有提到确认逻辑斯谛分布属于指数分布族。

策略

损失函数与风险函数

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

  1. 损失函数(loss function)或代价函数(cost function) 损失函数定义为给定输入$X$的预测值$f(X)$和真实值$Y$之间的非负实值函数, 记作$L(Y,f(X))$

  2. 风险函数(risk function)或期望损失(expected loss) 这个和模型的泛化误差的形式是一样的 $R_{exp}(f)=E_p[L(Y, f(X))]=\int_{\mathcal X\times\mathcal Y}L(y,f(x))P(x,y), {\rm d}x{\rm d}y$ 模型$f(X)$关于联合分布$P(X,Y)$的平均意义下的损失(期望损失), 但是因为$P(X,Y)$是未知的, 所以前面的用词是期望, 以及平均意义下的.

    这个表示其实就是损失的均值, 反映了对整个数据的预测效果的好坏, $P(x,y)$转换成$\frac {\nu(X=x, Y=y)}{N}$更容易直观理解, 可以参考CH09, 6.2.2节的部分描述来理解, 但是真实的数据N是无穷的.

  3. 经验风险(empirical risk)或经验损失(empirical loss) $R_{emp}(f)=\frac{1}{N}\sum^{N}_{i=1}L(y_i,f(x_i))$ 模型$f$关于训练样本集的平均损失 根据大数定律, 当样本容量N趋于无穷大时, 经验风险趋于期望风险

  4. 结构风险(structural risk) $R_{srm}(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))+\lambda J(f)$ $J(f)$为模型复杂度, $\lambda \geqslant 0$是系数, 用以权衡经验风险和模型复杂度.

常用损失函数

损失函数数值越小,模型就越好

$L(Y,f(X))$

  1. 0-1损失 $L=\begin{cases}1, Y \neq f(X) \0, Y=f(X) \end{cases}$
  2. 平方损失 $L=(Y-f(X))^2$
  3. 绝对损失 $L=|Y-f(X)|$

$L(Y,P(Y|X))$

  1. 对数损失 这里$P(Y|X)\leqslant 1$,对应的对数是负值,所以对数损失中包含一个负号,为什么不是绝对值?因为肯定是负的。 $L=-\log P(Y|X)$

ERM与SRM

经验风险最小化(ERM)与结构风险最小化(SRM)

  1. 极大似然估计是经验风险最小化的一个例子. 当模型是条件概率分布, 损失函数是对数损失函数时, 经验风险最小化等价于极大似然估计.
  2. 贝叶斯估计中的最大后验概率估计是结构风险最小化的一个例子. 当模型是条件概率分布, 损失函数是对数损失函数, 模型复杂度由模型的先验概率表示时, 结构风险最小化等价于最大后验概率估计.

算法

这章里面简单提了一下,具体可以参考CH12表格中关于学习算法的描述。

模型选择

  1. 正则化 模型选择的典型方法是正则化
  2. 交叉验证 另一种常用的模型选择方法是交叉验证
    • 简单
    • S折(K折, K-Fold)1
    • 留一法

泛化能力

  • 现实中采用最多的方法是通过测试误差来评价学习方法的泛化能力

  • 统计学习理论试图从理论上对学习方法的泛化能力进行分析

  • 学习方法的泛化能力往往是通过研究泛化误差的概率上界进行的, 简称为泛化误差上界(generalization error bound)

    这本书里面讨论的不多,在CH08里面有讨论提升方法的误差分析, 提到$AdaBoost$不需要知道下界$\gamma$。在CH02中讨论算法的收敛性的时候有提到误分类次数的上界.

注意泛化误差的定义,书中有说事实上,泛化误差就是所学习到的模型的期望风险

生成模型与判别模型

监督学习方法可分为生成方法(generative approach)与判别方法(discriminative approach)

生成方法

generative approach

  • 可以还原出联合概率分布$P(X,Y)$
  • 收敛速度快, 当样本容量增加时, 学到的模型可以更快收敛到真实模型
  • 当存在隐变量时仍可以用

判别方法

discriminative approach

  • 直接学习条件概率$P(Y|X)$或者决策函数$f(X)$
  • 直接面对预测, 往往学习准确率更高
  • 可以对数据进行各种程度的抽象, 定义特征并使用特征, 可以简化学习问题

分类问题、标注问题、回归问题

Classification, Tagging, Regression

  • 图1.4和图1.5除了分类系统和标注系统的差异外,没看到其他差异,但实际上这两幅图中对应的输入数据有差异,序列数据的$x_i = (x_i^{(1)},x_i^{(2)},\dots,x_i^{(n)})^T$对应了
  • 图1.5和图1.6,回归问题的产出为$Y=\hat f(X)$

参考

参考文献都是大部头,ESL,PRML在列

⬆ top

Footnotes

  1. ESL:7.10.1:K-Forld Cross Validation