容量、过拟合与欠拟合
- 泛化:在先前为观测到的输入上表现良好的能力被称为泛化
误差
- 训练误差:训练集上计算得到的度量误差
- 泛化误差:新输入的误差期望
测试集
我们度量模型在训练集中分出来的测试集样本上的性能,来评估机器学习模型的泛化误差
当我们只关注训练集时,如何影响测试集上的表现
对训练集与测试集数据的收集方式做出假设
- 训练集和测试集通过数据集上被称为数据生成过程的概率分布生成
- 做出一系列独立同分布假设
- 每个数据集中的样本都是彼此相互独立的
- 训练集和测试集是同分布的
- 我们能够在单个样本的概率分布描述数据生成过程
- 相同的分布可以用来生成每一个训练样本和每一个测试样本
- 共享的潜在分布称为数据生成分布
训练误差与测试误差之间的直接联系
随机模型训练误差的期望和该模型测试误差的期望是一样的
- 假设我们从概率分布$p(x,y)$中重复采样训练集和测试集数据
- 对于某个固定的$w$(模型参数),二者误差期望一致
- 使用了相同的数据集生成过程
实际训练过程
- 采样得到训练集
- 挑选参数降低训练集误差
- 采样得到测试集
- 测试误差期望会大于或等于训练误差期望
过拟合与欠拟合
决定机器学习算法效果好坏的因素
- 降低训练误差
- 缩小训练误差和测试误差的差距
欠拟合
模型不能在训练集上获得足够低的误差
过拟合
训练误差和测试误差之间的差距过大
容量
- 通过调整模型的容量,我们可以控制模型是否偏向于过拟合或欠拟合
- 模型的容量是指其拟合各种函数的能力
- 训练算法容量的方法是选择假设空间,即学习算法可以选择为解决方案的函数集
- 当机器学习算法的容量适合于所执行任务的复杂度和所提供训练数据的数量时,算法效果通常会最佳
- 训练误差和泛化误差之间差异的上界随着模型容量增长而增长,随着训练样本的增多而下降
非参数模型
最近邻回归
- 存储了训练集中所有的$X$和$y$
- 当需要为测试点$x$分类时,模型会查询训练集中离该点最近的点,并返回相关的回归目标
$$ \widehat{y} = y_i,i = argmin||X_{i,:}-x||^2_2 $$
嵌入
将参数学习算法嵌入另一个增加参数数目的算法来创建非参数学习算法
例如:外层循环调整多项式次数,内层循环通过线性回归学习模型
没有免费午餐定理
在所有可能的数据生成分布上平均之后,每一个分类算法在未先观测的点上都有相同的错误率
机器学习研究的目标不是找一个通用的学习算法或是绝对最好的学习算法,而是理解什么样的分布于人工智能获取经验的真实世界相关。
正则化
算法的效果不仅很大程度上受影响于假设空间的函数数量,也取决于这些函数的具体形式。
正则化一个学习函数模型,我们可以给代价函数添加被称为正则化项的惩罚。
正则化是指修改学习算法,使其降低泛化误差而非训练误差
权重衰减
在线性回归中,我们可以加入权重衰减来修改线性回归的训练标准。 $$ J(w) = MSE_{train} + \lambda w^Tw $$ 带权重衰减的线性回归最小化训练集上的均方误差和正则项的和$J(w)$,其偏好于平方$L^2$范数较小的权重。
- 当$\lambda = 0$时,我们没有任何偏好
- 当$\lambda > 0$时,我们偏好范数小的权重
超参数和验证集
超参数的值不是通过机器学习算法本身学习出来的
- 超参数可能难以优化
- 若训练超参数,其总是趋向于最大可能的模型容量
数据集
- 训练集:学习参数
- 验证集:估计训练或训练后的泛化误差,更新超参数
- 测试集
k-折交叉验证算法
-
将数据集分为$k$个不重合的子集,测试误差可以估计为$k$次计算后的平均测试误差。
-
在第$i$次测试时,数据的第$i$个子集用于测试集,其他的数据用于训练集
-
Define KFoldXV(D,A,L,K):
-
Require: D 为给定数据集
-
Require:A为学习算法,输入数据集,输出学好的函数
-
Require:L为损失函数,可视为来自学好的函数$f$,将样本
-
Require:$k$为折数
for i from 1 to k do
f = A(D\D_i)
for z^(j) in D_i do
e_j = L(f,z^(j))
endfor
endfor
return e
估计、偏差和方差
点估计
点估计试图为一些感兴趣的量提供单个“最优”预测
令{$x^{(1)},..,x^{(m)}$}是m个独立同分布的数据点,点估计或统计量是这些数据的任意函数: $$ \widehat{\theta}_m = g(x^{(1)},…,x^{(m)}) $$ 该定义不要求返回一个接近真实$\theta$的值,或者值域满足要求。但是一个良好的估计量输出会接近生成训练数据的真实参数$\theta$。
函数估计
指输入和目标变量之间关系的估计的点估计。
函数估计和估计参数$\theta$是一样的,函数估计$\widehat{f}$是函数空间中的一个点估计。
偏差
$$ bias(\widehat{\theta}_m) = E(\widehat{\theta}_m) - \theta $$ 其中,期望作用在所有数据上,$\theta$是用于定义数据生成分布的$\theta$的生成值
- $bias(\widehat{\theta}_m) = 0$时,估计量无偏,$E(\widehat{\theta}_m) = \theta$
- $\lim \limits_{x \to \infty} bias(\widehat{\theta}m) = 0$时,估计量渐进无偏,$\lim \limits{x \to \infty}E(\widehat{\theta}_m) = \theta$
伯努利分布
该分布是单个二值随机变量的分布。他由单个参数$\phi\in[0,1]$控制,$\phi$给出了随机变量等于1的概率。 $$ P(x=1) = \phi \ P(x=0) = 1- \phi\ P(X=x) = \phi^x(1-\phi)^{(1-x)}\ E_x[X] = \phi\ Var_x(x) = \phi(1-\phi) $$
考虑一组从均值为$\theta$的伯努利分布的独立同分布的样本 $$ P(x^{(i)};\theta) = \theta^{x^{(i)}}(1-\theta)^{(1-x^{(i)})} $$ 这个分布参数$\theta$常用的估计量是训练样本的均值: $$ \widehat{\theta}m = \frac{1}{m}\sum{i=1}^mx^{(i)} $$ 判断这个估计量是否无偏: $$ bias(\widehat{\theta}m)= E(\widehat{\theta}m) - \theta\ = E(\frac{1}{m}\sum{i=1}^mx^{(i)})-\theta\ = \frac{1}{m}E(\sum{i=1}^mx^{(i)})-\theta\ = \frac{1}{m}\sum_{i=1}^mE(x^{(i)})-\theta\ = \frac{1}{m}\sum_{i=1}^m\sum_{i=0}^1(x^{(i)}\theta^{x^{(i)}}(1-\theta)^{1-x^{(i)}}) - \theta\ = \frac{1}{m}\sum_{i=1}^m\theta-\theta = 0 $$
高斯分布均值估计
现在考虑一组独立同分布样本服从高斯分布$p(x^{(i)}) = N(x^{(i)};\mu,\theta)$
高斯均值参数的常用估计量被称为样本均值: $$ \widehat{\mu}m = \frac{1}{m}\sum{i=1}^mx^{(i)} $$ 判断样本均值是否有偏: $$ bias(\widehat{\mu}m) = E(\frac{1}{m}\sum{i=1}^mx^{(i)}) - \mu\ = \frac{1}{m}\sum_{i=1}^mE(x^{(i)}) - \mu = 0 $$
高斯分布方差估计
- 样本方差$\widehat{\sigma}m = \frac{1}{m}\sum{i=1}^m(x^{(i)} - \widehat{\mu}_m)^2$,属于有偏估计
- $\frac{1}{m-1}\sum_{i=1}^m(x^{(i)}-\widehat{\mu}_m)$属于无偏估计
- 无偏估计显然是令人满意的,但它并不总是最好的