统计学习是关于计算机基于数据构建概论模型并运用模型进行对数据的分析与预测的一门学科。
解释:
1.“计算机”表示统计学习以计算机为平台。
2.“基于数据”表示统计学习是数据驱动的学科,即以研究数据为目的,对于数据的选择往往重要于对于模型的选择。
3.“概率模型”的前提是假设同类数据具有一定的统计规律性,例如数据的特征可用随机变量描述,数据的统计规律可用概率分布描述。
4.模型训练完成后,往往会将其投入使用,即对于数据的“预测”。
1.得到一个有限的数据集合(训练集)。
PS:此处假设得到的数据是独立同分布产生的。
2.确定包含所有可能模型的假设空间。
PS:假设空间是指所有形式上满足模型映射关系的函数族,往往定义在特征空间中。
例如,现在要训练一个线性模型,且已知数据只有两维数特征,则模型的一般形式如下:
{ f ∣ f = ω 1 x 1 + ω 2 x 2 + b } \left\{ f|f=\omega_{1}x_{1}+\omega_{2}x_{2}+b \right\} { f∣f=ω1x1+ω2x2+b}
此时 f f f为一类拥有共同形式的函数的集合,也即为该线性模型的假设空间。
3.确定模型选择的准则,即学习的策略。
PS:这里一般指损失函数,即选取什么样的损失函数去度量模型的好坏。
4.实现求解最优模型的算法。
PS:即如何去解得最优模型的参数,这里的“解”一般指数值解,由于模型的高度复杂,很难求出解析解。常用的算法有:梯度下降,小批量梯度下降,随机梯度下降,RMSprop,Adadealta等等,具体可参考我这篇博客:优化算法集锦
5.通过学习方法选择最优模型。
PS:有时由于数值上的关系,选择足够好的次优模型也是允许的。
6.通过学习的最优模型(或足够好的次优模型)对数据进行预测或分析。
PS:即模型的使用。
按照最常规的分类方法,统计学习可以被分为:监督学习,无监督学习,强化学习,半监督学习和主动学习。
定义:指从标注的数据中学习预测模型的机器学习方法。
本质:学习从输入到输出的映射关系。
相关术语与补充说明:
1.输入空间:将输入所有可能的取值集合称为输入空间。例如现在希望训练一个模型,对于男女进行分类,且给定的特征有:升高,步长。那么输入空间即为 { 身 高 , 步 长 } \left\{身高,步长 \right\} { 身高,步长}。
2.输出空间:将输出所有可能取值集合称为输出空间。在上例中,输出空间为 { 男 , 女 } \left\{男,女\right\} { 男,女}
3.特征空间:输入通常由一个特征向量表示,特征向量存在的空间即为特征空间。每一个样本 x i x_{i} xi可以表示为:
x i = ( x i 1 , x i 2 , . . . . . . , x i n ) T x_{i}=(x_{i}^ {1},x_{i}^ {2},......,x_{i}^{n})^{T} xi=(xi1,xi2,......,xin)T
具体化来说,对于上例可表示为:
x i = ( 第 i 个 样 本 的 身 高 , 第 i 个 样 本 的 步 长 ) T x_{i}=(第i个样本的身高,第i个样本的步长)^{T} xi=(第i个样本的身高,第i个样本的步长)T
PS:输入空间与特征空间并不完全等价,当我们不对输入特征做处理时,两者往往等价,但实际中由于数据的大量冗余,往往我们会采用降维算法或是因为低维空间的线性不可分性而采用高维映射方法将数据从输入空间映射到特征空间。
4.联合概论分布:统计学习的基本前提是假设样本点 ( x , y ) (x,y) (x,y)是来自随机变量 X , Y X,Y X,Y所服从的联合概论分布 P ( X , Y ) P(X,Y) P(X,Y)的,且这些数据点认为是从该分布中独立同分布产生的。
5.假设空间:前文已经提到,这里再做一些补充。监督学习模型可以是概论模型 P ( Y ∣ X ) P(Y|X) P(Y∣X)或非概率模型 Y = f ( X ) Y=f(X) Y=f(X),与之对应也有不同的假设空间。
6.监督学习整体流程
如上图,对于监督学习,其大致有三个组成部分:学习系统,模型与预测系统。
首先,学习系统利用输入的标注数据学习,得到相应的决策函数 Y = f ( X ) Y=f(X) Y=f(X)或条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)。然后利用学习到的映射关系或条件概率分布去预测新的样本。
一个良好的模型应该使得预测值 f ( x i ) f(x_{i}) f(xi)与实际标签 y i y_{i} yi尽可能接近。
定义:指从无标注的数据中学习预测模型的机器学习问题,往往是对输入的分类(聚类),转换(降维)或概论表示(概论估计)。
本质:学习数据中的潜在结构。
降维时,所学到的模型往往是 z = g ( x ) z=g(x) z=g(x),聚类时,学到的模型往往是 z = a r g m a x P ( z ∣ x ) z=argmaxP(z|x) z=argmaxP(z∣x),概率估计时,学到的模型往往是 P ( x ∣ z ) P(x|z) P(x∣z)。
具体解释如下:
降维(或升维)时,本质是在寻找输入空间到特征空间的映射关系,故往往是一种函数形式 z = g ( x ) z=g(x) z=g(x)。
聚类时,指定簇数后,对于每个样本点,我们寻找其属于各类的概率,并以最大概率所属的类作为该样本的类,故有 z = a r g m a x P ( z ∣ x ) z=argmaxP(z|x) z=argmaxP(z∣x)形式。
概率估计时,我们往往首先得到数个样本,从而希望对模型参数进行估计。按照极大似然估计的准则,我们会选取一组能够让模型以最大概率产生该组样本的模型参数作为估计值。
定义:强化学习是指智能系统在与环境的连续互动中学习最优行为策略的机器学习问题。
流程如下:
智能体从环境中观测到一个状态 s t st st并得到一个奖励 r t rt rt,采取一个动作 a t at at。环境根据智能体所采取的动作,反馈给智能体一个状态 s t + 1 s_{t+1} st+1与一个奖励 r t + 1 r_{t+1} rt+1。
系统的的目的是长期积累奖励最大化。
概率模型:形如 P ( y ∣ x ) 或 P ( x ∣ y ) P(y|x)或P(x|y) P(y∣x)或P(x∣y)的模型,主要有:决策树,朴素贝叶斯,隐马尔科夫模型,条件随机场,概率潜在语义分析,潜在狄利克雷分配,高斯混合模型。
非概率模型:形如 y = g ( x ) y=g(x) y=g(x)的模型,主要有:感知机,支持向量机,k近邻,AdaBoost,k均值,潜在语义分析,神经网络。
特殊地:逻辑回归既可以看做概率模型,也可以看做非概率模型,原因如下:
1.条件概率最大化后得到函数。
条件概率 P ( y ∣ x ) P(y|x) P(y∣x)的输出往往是样本属于每一类的概率。如:
y 1 = 30 % y_{1}=30\% y1=30%, y 2 = 40 % y_{2}=40\% y2=40%, y 3 = 30 % y_{3}=30\% y3=30%。
而我们往往将概率最大的类归结为样本类,即:
y = a r g m a x P ( y ∣ x ) = f ( x ) y=argmaxP(y|x)=f(x) y=argmaxP(y∣x)=f(x)
2 函数归一化后得到条件概率分布。
对于逻辑回归,其形式为:
y = s i g m o i d ( z ) y=sigmoid(z) y=sigmoid(z)
z = W X + b z=WX+b z=WX+b
其中sigmoid函数是对z的归一化,最终输出值为样本属于每个类的概率。
综上,可认为逻辑回归两者皆是。
非概率模型中:
线性模型: y = f ( x ) 或 z = g ( x ) y=f(x)或z=g(x) y=f(x)或z=g(x)为线性函数时,模型为线性模型。有感知机,支持向量机,k近邻,k均值,潜在语义分析等等。
非线性模型: y = f ( x ) 或 z = g ( x ) y=f(x)或z=g(x) y=f(x)或z=g(x)为非线性函数时,模型为非线性模型,有核函数支持向量机,AdaBoost,神经网络等等。
参数化模型:**模型参数维数固定,模型可由有限维参数完全刻画。**主要有:感知机,朴素贝叶斯,逻辑回归,k均值,高斯混合模型等等。
非参数化模型:模型参数的维数不固定,随着训练数据量的增大不断加大。主要有:决策树,支持向量机,AdaBoost,k近邻,潜在语义分析,概率潜在语义分析,潜在狄利克雷分配等等。
在线学习:每次接受一个样本进行学习,例如使用随机梯度下降法。
批量学习:一次接受所有数据进行学习。
常常数据量巨大,或模式随时间变化(不满足独立同分布假设)时采用在线学习。
贝叶斯学习:利用贝叶斯定理,计算在给定数据条件下模型的条件概率(后验概率)。
模型估计时,取使得后验概率最大的参数分布作为模型参数。
相对于极大似然估计,贝叶斯估计增加了对模型参数先验概率 P ( θ ) P(\theta) P(θ)的估计,如果假设模型参数服从均匀分布且取后验概率最大,则两者等价。
核方法:使用核函数学习非线性模型的一种方法。相对于直接地定义映射函数,核函数直接定义映射后的内积,简化了计算。
统 计 学 习 方 法 = 模 型 + 策 略 + 算 法 统计学习方法=模型+策略+算法 统计学习方法=模型+策略+算法
模型:选择需要学习什么样的模型,线性或非线性,概率模型或非概率模型等等。一旦模型确定下来,与之相对应的假设空间也随之确定。
模型参数所处的空间往往称为参数空间,模型的差异来源是由于在参数空间中选取了不同的参数向量。
策略:选择以什么样的准则评价模型。
损失函数是度量模型一次预测好坏的标准,常用的损失函数如下:
损失函数越小,代表模型越好。
损失函数的期望称为风险函数:
风险函数反应平均意义下模型预测的好坏,预测的目的其实是为了最小化风险函数,但由于联合概率分布我们往往难以知晓,故我们选择了经验风险。
经验风险是模型关于训练集的平均损失,在N趋于无穷时,往往趋近于期望风险,此时有非常好的替代效果。但当样本量不大时,往往难以准确反映风险损失,为此我们引入结构风险最小化对其进行矫正。
当样本容量较小时,经验风险和风险损失往往有较大差异,容易产生过拟合现象,为此,引入正则化项,将经验风险转换为结构风险,公式如下:
其中 λ \lambda λ为正则化系数, J ( f ) J(f) J(f)为正则化向,与模型复杂程度正相关。
算法:指模型学习的具体方法,例如采用梯度下降法,Adam法等等。此时模型转换为最优化问题。
往往我们更注重测试误差,因为其代表了样本的泛化能力。
模型选择标准:假设假设空间中存在真模型,那么我们选择的模型要与真模型的参数个数相同且参数向量接近。
过拟合:在训练集上表现良好但却在新样本上表现很差的现象。往往是由于模型复杂度过高导致的。
解决方法:
1.降维
2.正则化
3.增加样本数
L1范数: ∣ ∣ ω 1 ∣ ∣ + ∣ ∣ ω 2 ∣ ∣ + . . . . . . . + ∣ ∣ ω n ∣ ∣ ||\omega_{1}||+||\omega_{2}||+.......+||\omega_{n}|| ∣∣ω1∣∣+∣∣ω2∣∣+.......+∣∣ωn∣∣
L2范数: ∣ ∣ ω 1 ∣ ∣ 2 + ∣ ∣ ω 2 ∣ ∣ 2 + . . . . . . . + ∣ ∣ ω n ∣ ∣ 2 \sqrt{||\omega_{1}||^ {2} +||\omega_{2}||^{2}+.......+||\omega_{n}|| ^{2}} ∣∣ω1∣∣2+∣∣ω2∣∣2+.......+∣∣ωn∣∣2
正则化具有如下形式:
其中 J ( f ) J(f) J(f)可以是L1范数,也可以是L2范数。
L2范数时:
补充一个奥卡姆剃刀原理:在所有可能的模型中,最简单的模型应该是我们选择的模型,这与正则化思想相符。
关于正则化详细的解释请看我这篇博客:(先留个坑)
数据不充足时,往往采用交叉验证法,基本思想是重复使用数据。
1.简单交叉验证
70%做训练集,30%做测试集,在各种条件下在训练集上训练模型并在测试集上测试,选取测试误差最小的模型。
2.S折交叉验证
随机将数据切分为S的相同大小的块,每次选其中S-1个块训练,在剩余一个块上测试模型,重复S次,求取平均误差。选取平均误差最小的模型。
3.留一交叉验证
S=N时的S折交叉验证,应用于数据极度缺乏的情况。
定义:泛化误差是指学习到的模型对未知数据的预测能力。
泛化误差实际上正是模型的期望风险。
因为期望风险无法直接求出,所以在分析模型的泛化能力时往往对其泛化误差上界做考察。
一般来说:泛化误差上界与样本容量负相关,当样本容量增加时,泛化误差上界减小。同时与假设空间大小正相关,假设空间越大(模型越复杂),则泛化误差上界越大。
定义:生成方法由数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后根据贝叶斯公式求出条件概率分布作为预测的模型。
PS:生成模型关系数据本身的特点,希望找出数据本身的内在联系。
定义:判别方法由数据直接学习决策函数或条件概率分布,作为预测的模型。
PS:判别方法更加注重给定X应该产生什么样的Y,而忽略数据本身的分布。
举一个例子或许会很快明白:
现在希望判断一只牛是奶牛还是牦牛。
生成模型方法: 首先分别学习奶牛的特征 P ( x , y 1 ) P(x,y_{1}) P(x,y1)和牦牛的特征 P ( x , y 2 ) P(x,y_{2}) P(x,y2),对于新给定的样本,从中提取特征 x x x,然后分别计算属于两类的概率,即:
P ( y 1 ∣ x ) = P ( x , y 1 ) P ( x ) P(y_{1}|x)=\frac{P(x,y_{1})}{P(x)} P(y1∣x)=P(x)P(x,y1)
P ( y 2 ∣ x ) = P ( x , y 2 ) P ( x ) P(y_{2}|x)=\frac{P(x,y_{2})}{P(x)} P(y2∣x)=P(x)P(x,y2)
比较两者,选取概率较大者为所属类。
判别模型方法: 直接从奶牛和牦牛数据中学习到一个判别函数 f ( x ) f(x) f(x),然后将样本特征输入,根据结果判断类别。
总结:生成模型关注数据本身特点,分类过程中对于每个模型都需遍历一遍。而判别式模型则关注判别界面,分类过程中只学习判别界面,是对于异类数据区分的注重。
生成模型特点:
1.可以还原数据本身分布。
2.学习速度收敛快。
3.存在隐变量(即未被考虑到的因素)时仍然可以使用。
判别模型特点:
1.准确率更高
2.更加高度抽象,有利于问题简化。
3.适用于数据复杂分布。
问题概述略
分类预测结果与实际结果的对比可有以下几种情况:
TP——将正类预测为正类
FN——将正类预测为负类
FP——将负类预测为正类
TN——将负类预测为负类
故有混淆矩阵如下:
根据上述情况,分类问题有以下几种评价指标:
准确率: A = T P + T N T P + T N + F P + F N A=\frac{TP+TN}{TP+TN+FP+FN} A=TP+TN+FP+FNTP+TN
定义为模型所有预测正确的样本占总样本的百分比。
精确率(查全率): P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
定义为模型预测为正类的所有结果中有多少是预测正确的。
召回率: R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP
定义为真正正类的样本模型有多少预测为正类。
F 1 F_{1} F1值: F 1 = 2 T P 2 T P + F P + F N F_{1}=\frac{2TP}{2TP+FP+FN} F1=2TP+FP+FN2TP
定义为精确率和召回率的调和平均值。
至于为什么要定义这些不同的指标,请参考我这篇文章:(先留个坑)
定义:输入是一个观测序列,输出是一个标记序列的复杂分类问题。
常用在NLP中,例如对一句话中的名词做标注,即为标注问题。
定义:表示输入到输出映射函数的问题。
例如对于房价的预测等等。
1.机器学习可以分为监督学习,无监督学习,强化学习等等。
2.统计学习方法三要素为:模型,策略,算法。
3.提高泛化能力减缓过拟合的方法目前有正则化和交叉验证。