[TOC]
- 统计学习
- 监督学习
- 基本概念
- 问题的形式化
- 统计学习三要素
- 模型
- 策略
- 算法
- 模型评估与模型选择
- 训练误差与测试误差
- 过拟合与模型选择
- 正则化与交叉验证
- 正则化
- 交叉验证
- 泛化能力
- 泛化误差
- 泛化误差上界
- 生成模型与判别模型
- 分类问题
- 标注问题
- 回归问题
-
直接看目录结构,会感觉有点乱,就层级结构来讲感觉并不整齐。可以看本章概要部分,摘录几点,希望对理解本章内容编排有帮助:
- 统计学习三要素对理解统计学习方法起到提纲挈领的作用
- 本书主要讨论监督学习
- 分类问题、标注问题和回归问题都是监督学习的重要问题
- 本书中介绍的统计学习方法包括...。这些方法是主要的分类、标注以及回归方法。他们又可归类为生成方法与判别方法。
-
本章最后的三个部分,这三个问题可以对比着看,如果暂时没有概念,略过也可以,回头对各个算法有了感觉回头再看这里。 这三部分怎么对比,三部分都有个图来说明,仔细看下差异,本文后面会对此展开。
-
关于损失函数,风险函数与目标函数注意体会差异
-
后面插点从深度学习角度拿到的点
- 关于机器学习三要素, 复旦大学邱锡鹏教授也有解读^2: 模型, 学习准则, 优化算法. 这个定义比较接近代码. 以Tensorflow为例. 通常会定义一个网络(模型), 定义Loss(学习准则), 定义优化算法(Optimizer), 然后开Session, 不停的把数据带入用Opitmizer去最小化Loss.
- Losses, Metrics, 在Keras里面划分了两个模块, 解释是Losses是BP过程用到的, 而Metrics实际和损失函数类似, 用来评价模型的性能, 但是不参与反向传播. 从源码也能看到, Metrics里面import了很多Loss算法
统计学习方法三要素:模型,策略,算法.
- 得到一个有限的训练数据集合
- 确定包含所有可能的模型的假设空间, 即学习模型的集合.
- 确定模型选择的准则, 即学习的策略
- 实现求解最优模型的算法, 即学习的算法
- 通过学习方法选择最优的模型
- 利用学习的最优模型对新数据进行预测或分析.
在监督学习过程中, 模型就是所要学习的条件概率分布或者决策函数.
注意书中的这部分描述,整理了一下到表格里:
假设空间$\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有提到确认逻辑斯谛分布属于指数分布族。
损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
-
损失函数(loss function)或代价函数(cost function) 损失函数定义为给定输入$X$的预测值$f(X)$和真实值$Y$之间的非负实值函数, 记作$L(Y,f(X))$
-
风险函数(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是无穷的. -
经验风险(empirical risk)或经验损失(empirical loss)
$R_{emp}(f)=\frac{1}{N}\sum^{N}_{i=1}L(y_i,f(x_i))$ 模型$f$关于训练样本集的平均损失 根据大数定律, 当样本容量N趋于无穷大时, 经验风险趋于期望风险 -
结构风险(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$ 是系数, 用以权衡经验风险和模型复杂度.
损失函数数值越小,模型就越好
- 0-1损失 $L=\begin{cases}1, Y \neq f(X) \0, Y=f(X) \end{cases}$
- 平方损失
$L=(Y-f(X))^2$ - 绝对损失
$L=|Y-f(X)|$
- 对数损失
这里$P(Y|X)\leqslant 1$,对应的对数是负值,所以对数损失中包含一个负号,为什么不是绝对值?因为肯定是负的。
$L=-\log P(Y|X)$
经验风险最小化(ERM)与结构风险最小化(SRM)
- 极大似然估计是经验风险最小化的一个例子. 当模型是条件概率分布, 损失函数是对数损失函数时, 经验风险最小化等价于极大似然估计.
- 贝叶斯估计中的最大后验概率估计是结构风险最小化的一个例子. 当模型是条件概率分布, 损失函数是对数损失函数, 模型复杂度由模型的先验概率表示时, 结构风险最小化等价于最大后验概率估计.
这章里面简单提了一下,具体可以参考CH12表格中关于学习算法的描述。
- 正则化 模型选择的典型方法是正则化
- 交叉验证
另一种常用的模型选择方法是交叉验证
- 简单
- 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在列