统计学习方法第一周
统计学习的主要方法特别是监督学习方法:感知机、k近邻法、朴素贝叶斯、决策树、罗吉斯特回归与最大熵模型、支持向量机、提升方法、EM算法、隐马尔科夫模型和条件随机场
R 实数系
R^n n维实数向量空间 n维欧式空间
H(x) H(Y) 熵
H(Y|X) 条件熵
I(X) 指示函数
统计学习方法 模型 策略 算法
学习: 系统通过某个进程,改进了性能就称为学习
统计学习:计算机系统通过运用数据及统计方法提高了系统性能的机器学习
统计学习 :
- 对象:数据data e.g.数字文字图像声音
- 基本假设:同类数据具有一定的统计规律性
- 同类数据:具有某种共同性质的数据
- 数据具有统计规律性,则可以用概率统计的方法来描述处理
- 用random variable 来描述数据的特征
- 用dict. 来描述数据的统计规律性
- 数据具有统计规律性,则可以用概率统计的方法来描述处理
随机现象具有偶然性也有必然性,这种必然性表现为大量观察的随机事件发生频率的稳定性.即一个随机事件发生的频率经产在某个定值附近摆动,而且试验次数越多,摆动越小,这就称为了统计规律性。
用random variable或者random vector 表示数据
data分别由离散变量,连续变量表示 本书主要离散变量
对于数据的分析及预测是通过构建概率统计模型来实现的
统计学习的方法是基于数据来构建统计模型从而对数据进行预测与分析
统计学习包括:
- 监督学习 supervised learning
- 非监督学习 unsupervised learning
- 半监督学习 semi-supervised learning
- 强化学习 reinforcement learning
- ...
本书围绕的是监督学习,在这种情况下,统计学习的方法可以概括为:从给定的有限的用于学习的training data 训练数据集合出发,假定数据是独立同分布产生的。
假定要学习的模型属于某个函数的集合,称为假设空间hypothesis space
应用某个评价标准 evaluation criterion 从假设空间选取一个最优的模型,使其对他的训练数据及未知测试数据test data 在给定评价准则下有最优的预测
最优模型的选取由算法来实现
统计学习方法
- 模型的假设空间 model
- 模型的选择的准则 strategy
- 模型学习的算法 algorithm
统计学习方法
- 得到一个给定的有限的训练数据集和
- 确定包含所有可能的模型的假设空间,即学习模型的集合
- 确定模型选择的准则,即学习的策略
- 实现求解最优模型的算法,即学习的算法
- 通过学习方法选择最优模型
- 利用学习的最优模型对数据进行预测和分析
在supervise learning监督学习中,将输入与输出的所有可能集合称为输入空间与输出空间 input space / output space
输入输出空间可以是有限元素的集合,也可以是整个欧式空间,输入与输出可以是同一个空间,也可以是不同的空间,通常来说输出空间远小于输入空间
每一个具体的输入是一个实例 instance
通常由特征向量表示 feature vector,所有特征向量存在的空间称为特征空间 feature space
特征空间的每一维对应一个特征
有的假设输入空间与i特征空间为相同的空间,则对他们不予区分
有的假设输入空间与特征空间为不同的空间,它将实例从输入空间映射为特征空间
模型的定义确定在特征空间上的。将输入与输出看作是定义在输入(特征)空间与输出空间上的随机变量的取值。
输入输出变量用大写字母表示
每个具体的输入是一个实例:
- 输入实例x的特征向量为x=(x{(1)},x,...,x{(n)})T
- x^{(i)}为x的第i个特征
- x_i多个输入变量的第i个x=(x{(1)}_i,x_i,...,x{(n)}_i)T
训练数据 由输入(特征)向量与输出向量对组成
T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}
测试数据也由相应的输入输出对组成
输入与输出对又称为样本或者样本点
上面的坐标对应着他是输出变量的第几个特征
下面的特征对应多个输入变量的第i个
输入与输出均为连续变量的预测问题称为回归问题
输出变量为有限个离散变量的预测问题称为分类问题
输入变量与输出变量均为变量序列的预测问题称为标注问题
监督学习中假定输入与输出的随机变量X和Y遵循联合概率分布P(X,Y),P(X,Y)代表着cdf,pdf,在学习过程中,假定这一联合概率分布存在,但对学习系统来说,联合概率分布的具体定义是未知的,训练数据和测试数据被看作是联合概率分布P(X,Y)独立同分布产生的,统计学习假设数据具有一定的统计规律性,X和Y具有联合概率分布的假设就是监督学习中关于数据的基本假设。
假设空间
监督学习的目的在于学习一个输入到输出的映射,这一映射是由模型来表示的
学习的目的在于找到最好的这样的模型,模型属于输入空间到输出空间映射的集合,这个集合就是假设空间hypothesis space
假设空间的确立意味着学习范围的确定,监督学习的模型可以是概率模型也可以是非概率模型,由条件概率分布P(X|Y)或者决策函数Y=f(X)表示,随着具体的学习而确定。
监督学习由训练数据得到一个模型,再由模型对测试数据来进行预测
由于在这个过程中需要训练数据集,而训练数据集往往又是人工给出的,所以称为监督学习
监督学习
- 学习 由学习系统完成
- 预测 由预测系统完成
训练数据集 T={(x_1,y_2),(x_2,y_2),...,(x_N,y_N)}
其中(x_i,y_i),i= 1,2,3,...,N 称为样本点
x_i 属于n维欧几里得向量空间,也可以称为输入的观察值或者实例
y_i 为输出变量的观测值,也称为输出
y_{N+1}=\hat{f}(x_{N+1})\
y_{N+1}=arg\ max\ \hat{P}(y_{N+1}|x_{X+1})
在学习过程中,学习系统或称学习方法通过训练数据系统中的样本(x_i,y_i)带来新的信息学习模型,对于输入x_i,一个具体模型y=f(x)可以产生一个输出f(x_i) ,而训练数据集中对应的输出变量y_i,如果模型具有良好的预测能力,训练样本输出y_i和模型输出f(x_i) 之间的差应该尽可能的少,学习系统通过不断的尝试,选取最好的模型,以便对训练数据有足够好的预测,同时对于未知的测试数据也有尽可能好的预测推广
统计学习方法 = 模型 + 策略 + 算法
统计学习方法 首先要考虑的是学习什么样的模型,在监督学习中,模型就是索要学习的条件概率分布和决策函数
假设空间用\cal F表示,假设空间可以定义为决策函数的集合\cal{F}\ = {f|Y=f(X)} ,其中大X和大Y分别是定义在输入空间\cal X和输出空间\cal Y 上的变量
这时\cal F 是一个由参数向量决定的函数族
\cal F ={f|Y=f_\theta (x),\theta\in R^n}
参数向量\theta 的取值于n维欧式空间R^n,称为参数空间
假设空间也可以定义为条件概率的集合
\cal F ={P|P(Y|X)},X,Y分别是定义在输入空间x和输出空间y上的随机变量,\cal F 通常是由一个参数向量决定的条件概率分布族F={P|P_\theta(Y|X),\theta \in R^n}
参数\theta 取值于n维欧式空间R^n ,也称为参数空间
本书称由决策函数表示的模型为非概率模型,由条件概率表示的模型称为概率模型
有了模型的假设空间,下一步将要考虑按照什么样的准则学习或选择最优的模型。统计学的目标在于从假设空间中选取最优模型
引入损失函数和风险函数,损失函数度量模型一次预测的好坏,风险函数度量平均意义下的模型预测的好坏。
监督学习的问题就是在假设空间\cal F 中选取模型f作为决策函数,对于给定的输入X,f(X)给出相应的Y ,这个输出的预测值f(x)与真实值Y可能一致也可以不一致。用一个损失函数loss function 或者代价函数 cost function 来度量预测错误的程度。损失函数是f(X)和Y的非负实值函数,记作L(Y,f(X))
0-1损失函数 0-1 loss function
L(Y,f(X))= \begin{cases}
1,Y\neq f(X)\
0,Y=f(X)
\end{cases}
平方损失函数 quadratic loss function
L(Y,f(X))=(Y-f(X))^2
绝对损失函数 absolute loss function
L(Y,f(X))=|Y-f(X)|
对数损失函数 logarithmic loss function 或者称为对数似然损失函数 log-likelihood loss function
L(Y,P(Y|X))=-log P(Y|X)
损失函数越小,模型就越好,由于模型的输入,输出(X,Y)是随机变量,遵循联合分布P(X,Y),所以损失函数的期望是
R_{exp}(f)=E_p[L(Y,f(X))]= \int_{x\times y}{L(y,f(x))P(x,y)dxdy}
这是理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数risk function 或者称为期望损失 expexcted loss
学习的目标就是选择期望风险最小的模型。由于联合分布P(X,Y)是未知的,R_{exp}(f) 不能直接计算。一方面根据期望风险最小学习模型用到联合分布,另一方面联合分布又是未知的,所有监督学习就成为一个病态问题ill-formed problem
给定一个训练集数据
T={(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}
模型f(x)关于训练数据集的平均损失称为经验风险empirical risk 或者为经验损失empirical loss 记作R_{emp}:
R_{emp}(f)=\frac{1}{N}\sum^{N}_{i=1 }{L(y_i,f(x_i))}
期望风险R_{exp}(f)是模型关于联合分布的期望损失,经验风险R_{emp}(f)是模型关于训练样本集的平均损失。
由大数定律所知,当样本容量N趋于无穷时,经验风险R_{emp}(f)趋于期望风险R_{exp}(f) ,所以一个很自然的想法是用经验风险估计期望风险。但是由于现实中的训练样本数目有限,甚至很小,所以用经验风险估计期望风险很不理想。要对经验风险进行一定的校正,这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化
在假设空间损失函数以及训练数据集给定的情况下,经验风险函数式就可以确定经验风险最小化emprical risk minimizationERM,经验风险最小化求的最优模型就是求解最优化问题
min \frac{1}{N} \sum^{N}_{i=1}{L(y_i,f(x_i))},for\ f\in \cal F
比如极大似然估计maximum likelihood estimation 就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数为对数损失函数,经验风险最小化就等价于极大似然估计
但是必须样本数量足够大才可以,当样本数量很小时,经验风险最小化函数效果就会未必很好,会产生过拟合over-fitting 现象
结构化风险最小化structure risk minimization SRM 是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化regulation 结构风险在经验风险上加上表示模型复杂度的正则化项regularizer 或罚项penalty term。在假设空间、损失函数以及训练数据确定的情况下,结构风险定义:
R_{srm}(f)=\frac{1}{N}\sum^{N}_{i=1}{L(y_i,f(x_i))} + \lambda J(f)
J(f)表示为模型的复杂度,是定义在假设空间\cal F 的泛函。模型f越复杂J(f)就越大,也就是说复杂度表示了对复杂模型的惩罚。\lambda\geq 0 是系数,用以权衡经验风险和模型复杂度,结构风险最小的模型往往对训练数据以及未知的测试数据都有较好的预测。
比如,贝叶斯估计中的最大后验概率估计 maximum posterior probability estimation MAP就是结构风险最小化的一个例子
结构风险最小化的策略就是认为结构风险最小的模型是最优的模型,所求最优模型,就是求解最优化问题:
min\ \frac{1}{N}\sum^{y_i}_{i=1}{L(y_i,f(x_i))}+\lambda J(f)\ for\ f\in\cal F
监督学习问题就变成了经验风险或结构风险函数的最优化问题,这时经验或者结构风险函数是最优化目标的最优化的目标函数。
算法是指学习模型的具体计算方法。最优化问题由显式的解析解,这个问题就比较简单,但是通常解析解不存在,就需要一个用数值计算的方法求解。如何保证全局最优解,并且使求解的过程非常地高效。就成为了一个重要的问题
在学习时防止过拟合,进行最优模型的选择,即选择适度的模型,以达到使测试误差最小的学习目的,下面介绍两种常用的选择方法:正则化与交叉验证
模型选择的典型方法使正则化regulation,正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项regularizer或罚项penalty term 。正则化项可以是模型参数向量的范数,正则化项一般具有如下形式:
min\ \frac{1}{N}\sum^{N}_{i=1}{L(y_i,f(x_i))+\lambda J(f)}
第一项是经验风险,第二项是正则化项,\lambda\geq0为调整两者之间关系的系数
正则化项可以取不同的形式,例如回归问题中,损失函数为平方损失,正则化项可以是参数向量的L_2范数
正则化项也可以是参数向量的L_1范数:
L(w)=\frac{1}{N}\sum{N}_{i=1}{(f(x_i;w)-y_i)2}+\frac{\lambda}{2}||w||_2
L(w)=\frac{1}{N}\sum{N}_{i=1}{(f(x_i;w)-y_i)2}+\frac{\lambda}{2}||w||_1
正则化的作用是选择经验风险和模型复杂度同时较小的模型
从贝叶斯估计的角度上看,正则化项对于应用于模型的先验概率,可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率
另一种选择模型的方法是交叉验证 cross validation
如果给定的样本数据充足,进行模型选择的一种简单方法是随机的将数据集切成三部分,分别为:
- 训练集training set
- 验证集 validation set
- 测试集 test set
训练集用于训练数据,验证集用于模型的选择,测试集用于对最终学习方法的评估
在学习得到的不同复杂度的模型中,选择对验证集有最小预测误差的模型,由于验证集有足够多的数据,用它对模型进行选择也是有效的。
但是在许多实际应用过程中数据是不充足的,为了选择好的模型,可以采用交叉验证的方法。交叉验证的基本想法是重复的使用数据,把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复的进行训练、测试以及模型选择。
简单交叉验证的方法是:首先随机的将已给数据分成两部分,一部分最为训练集,另一部分作为测试集(例如,70%的数据作为训练集,30%的数据为测试集),然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型,在测试集上评价各个模型的测试误差,选出测试误差最小的模型
s折交叉验证
应用s折交叉验证s-fold cross validation 方法如下:首先随机的将已给数据切分为s个互不相交的大小相同的子集;然后利用s-1个子集的数据训练模型,剩余的子集测试模型,将这一过程对可能的s种选择重复进行;最后选出s次评测中平均误差最小的模型。
留一折交叉验证
s折交叉验证的特殊情形是S=N,称为留一折交叉验证leave-one-out cross validation
这个方法往往是在数据缺乏的情况下使用。这里,N是给定数据集的容量
因为训练数据本身存在噪声,这时过拟合现象就会发生,就是说做模型选择时,不仅要考虑对已知数据的预测能力,而且还要考虑对未知数据的预测能力。
在学习时要防止过拟合,进行最优的模型选择,即选择适当复杂度的模型,以达到测试误差最小的学习目的
学习方法的泛化能力 generalization ability 指的是由该方法学习到的模型对未知数据的预测能力,现实中采用的是通过测试误差来评价学习方法的泛化能力,这种评价是依赖于测试数据集的。
如果学习到的模型是\hat{f},那么用这个模型对未知数据预测的误差即为泛化误差generalization error
R_{exp}(\hat{f})=E_p[L(Y,\hat{f}(X))]=\int_{x\times y}{L(y,\hat{f}(x)))P(x,y)dxdy}
泛化误差就是所学习到的模型的期望风险
泛化误差上届,是样本容量的函数,当样本容量增加时,泛化上界趋于0,他是假设空间容量capacity的函数,假设空间越大,模型就越难学,泛化误差上届就越大