统计学习(statistical learning)是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科,也称为统计机器学习(statstical machine learning)。因而我们也可以说统计学习是运用一系列工具对数据进行分析建模,故它的研究对象是数据,研究目的是预测与分析。从数据出发,提取数据的特征,抽象出数据模型,发现数据中的知识,又回到数据中进行分析与预测(特别是对未知数据的预测与分析),是数据驱动的学科。将研究对象与研究目的结合起来的方法就是构建统计模型(核心内容)。统计学习总的目标是考虑学习什么样的模型和如何学习模型,以使模型能对数据进行准确的预测与分析,同时也要考虑尽可能地提高学习效率。
统计学习的方法是基于数据构建统计模型从而对数据进行预测与分析。实现统计学习方法的步骤可概率如下:
也可简化为下图:
从给定的,有限的,用于学习的训练数据出发,设计一种学习系统(算法),应用某种评价准则(evaluation criterion)在模型空间中选取一个最优的模型,使它对数据(已知数据和未知数据)在给定的评价准则下有最优的结果。这样,统计学习方法包括模型的选择准则、模型的假设空间以及模型学习的算法,称其为统计学习方法的三要素,简称为策略、模型和算法。
统计学习或机器学习是一个范围宽阔、内容繁多、应用广泛的领域,并不存在(至少现在不存在)一个统一的理论体系涵盖所有内容。从基本分类、算法等四个角度对统计学习方法分类可概括为下图:
监督学习是指从标注数据中学习预测模型的机器学习问题。标注数据表述输入输出的对应关系,预测模型对给定的输入产生相应的输出。本质是学习输入到输出的映射的统计规律。
在监督学习中有三个空间,分别是输入空间、输出空间、特征空间以及假设空间。将输入与输出所有可能取值的集合分别称为输入空间与输出空间。对于输入的每一个具体的实例,通常由特征向量表示,这时所有的特征向量存在的空间称为特征空间。模型实际上都是定义在特征空间上的,有时输入空间与特征空间为相同的空间;但有时输入空间与特征空间不为同一个空间,需要将实例从输入空间映射到特征空间上。监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示,也就是说学习的目的在于找到最好的这样的模型。模型属于由输入空间到输出空间的映射集合。这个集合就是假设空间。假设空间的确定意味着学习的范围的确定。
监督学习的任务主要有三个方面:分类,标注以及回归。
无监督学习是指从无标注数据中学习预测模型的机器学习问题。本质是学习数据中的统计规律或潜在结构。无监督学习旨在从假设空间中选出给定评价下的最优模型,模型可以实现对数据的聚类、降维或概率估计。
强化学习指智能系统在与环境的连续互动中学习最优行为策略的机器学习问题。强化学习的本质是学习最优的序贯决策。智能系统的目标不是短期奖励的最大化,而是长期累积奖励的最大化,强化学习过程中,系统不断地试错(trial and error),以达到学习最优策略的目的。
强化学习的马尔可夫决策过程是状态、奖励、动作序列上的随机过程,由五元组 < S , A , P , r , γ > < S, A, P, r,\gamma> <S,A,P,r,γ>组成
马尔可夫决策过程具有马尔科夫性,下以恶状态只依赖于前一个状态与动作,由状态转义概率函数 P ( s ′ ∣ s , a ) P(s^{'}|{s,a}) P(s′∣s,a) 表示。下一个奖励以来与前一个章台与都工作,由奖励函数 r ( s , a ) r(s,a) r(s,a) 表示。
策略 π \pi π 定义为给定状态下动作的函数 a = f ( s ) a = f(s) a=f(s) 或者条件概率分布 P ( a ∣ s ) P(a | s) P(a∣s) 。给定一个策略 π \pi π ,智能系统与画家互动的行为就已确定(或者是确定性的或者是随机性的)。
价值函数(value function)或状态价值函数(state value function)定义为策略 π \pi π 从某一个状态 s s s 开始的长期累积奖励的数学期望:
v π ( s ) = E π [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + . . . ∣ s t = s ] v_{\pi}(s)=E_{\pi}[r_{t+1}+ {\gamma}r_{t+2} + {\gamma}^2r_{t+3} + ...|s_t=s] vπ(s)=Eπ[rt+1+γrt+2+γ2rt+3+...∣st=s]
动作价值函数(action value function)定义为策略 $ \pi $ 的从某一个状态 s s s 和动作 a a a 开始的长期累积奖励的数学期望:
q π ( s , a ) = E π [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + . . . ∣ s t = s , a t = a ] q_{\pi}(s,a)=E_{\pi}[r_{t+1}+ {\gamma}r_{t+2} + {\gamma}^2r_{t+3} + ...|s_t=s,a_t=a] qπ(s,a)=Eπ[rt+1+γrt+2+γ2rt+3+...∣st=s,at=a]
强化学习的目标就是在所有可能的策略中选出价值函数最大的策略 π ∗ {\pi}^* π∗ ,而在实际学习中往往从具体的策略出发,不断优化已有策略。这里 γ \gamma γ 表示未来的奖励会有衰减。
半监督学习是指利用标注数据和未标注数据学习预测模型的机器学习问题。旨在利用未标注数据中的信息,辅助标注数据,进行监督学习,以较低的成本达到较好的学习效果。
主动学习是指机器不断主动给出实例让‘教师’进行标注,然后利用标注数据学习预测模型的机器学习问题主动学习的目标是找出对学习最优帮助的实例,以较小的标注代价,达到较好的学习效果。
这两种学习方式更接近于监督学习。
统计学习的模型可分为概率模型和非概率模型或者确定性模型(deterministic model)。在监督学习中,概率模型是生成墨西哥,非概率模型是判别模型。概率模型与非概率模型的区别在于模型的内在结构,概率模型一定可以表示未联合概率分布的形式,其中的变量表示输入、输出、隐变量甚至参数,而非概率模型不一定村咋这样的联合概率分布。
模型的表示式为线性函数,则称模型是线性函数,否则称模型为非线性模型。深度学习(deep learning)实际是复杂神经网络的学习,是复杂的非线性模型的学习。
参数化模型假设参数的维度固定,模型可以由有限维度参数完全刻画;非参数化模型假设模型参数的维度不固定或者无穷大,随着训练数据量的增加而不断增大。
根据算法可分为在线学习(online learning)和批量学习(batch learning)。在线学习是指每次接收一个样本,进行预测,之后学习模型,并不断重复该操作的机器学习。批量学习一次接受所有数据,学习模型,之后进行预测。
主要思想是,在概率模型的学习与推理中,利用贝叶斯定理,计算在给定数据条件下模型的条件概率,即厚颜概率,并应用这个原理进行模型的估计,以及对数据的预测。将模型、未观测要素及其参数用向量表示,使用模型的先验分布是贝叶斯学习的特点。
假设随机变量 D D D 表示数据,随机变量 θ \theta θ 表示模型参数。根据贝叶斯定理,后验概率 P ( θ ∣ D ) P(\theta|D) P(θ∣D) 表示为:
P ( θ ∣ D ) = P ( θ ) P ( D ∣ θ ) P D P(\theta|D)= \frac{P(\theta)P(D|\theta)}{P{D}} P(θ∣D)=PDP(θ)P(D∣θ)
其中 P ( θ ) P(\theta) P(θ) 是先验概率, P ( D ∣ θ ) P(D|\theta) P(D∣θ) 是似然函数。模型估计时,估计整个后验分布。
核方法是使用核函数表示和学习非线性模型的一种机器学习方法。有一些线性模型的学习方法基于相似度计算,更具体地,向量内积计算。把线性模型扩展到非线性模型,直接地做法是显式地定义从输入空间(低维空间)到特征空间(高维空间)地映射,在特征空间中进行内积计算。核方法地技巧在于不显式地定义这个映射,而是直接定义核函数,即映射之后再特征空间的内积,这样可以简化计算,达到同样的效果。
统计学习方法由三要素构成,可简单地表示为:
方 法 = 模 型 + 策 略 + 算 法 方法=模型+策略+算法 方法=模型+策略+算法
下面以监督学习为例进行论述,非监督学习,强化学习同样也拥有这三要素。
在监督学习过程中,模型就是索要学习地条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。假设空间用 F \bf{F} F 表示。假设空间可以定义为决策函数的集合:
F = { f ∣ Y = f ( X ) } {\bf{F}}=\{ f|Y=f(X)\} F={f∣Y=f(X)}
其中, X X X 和 Y Y Y 是定义在输入空间 x \bf{x} x 和输出空间 y \bf{y} y 上的变量,这时 F \bf{F} F 通常是由一个参数向量决定的函数族:
F = { f ∣ Y = f θ ( X ) , θ ∈ R n } {\bf{F}}=\{ f|Y=f_{\theta}(X), \theta\in{{\bf{R}}^n}\} F={f∣Y=fθ(X),θ∈Rn}
参数向量 θ \theta θ取值于 n n n 维欧式空间 R n {\bf{R}}^n Rn, 称为参数空间(parameter space)。
假设空间也可定义为条件概率的集合:
F = { P ∣ P ( Y ∣ X ) } {\bf{F}}=\{ P|P(Y|X)\} F={P∣P(Y∣X)}
其中, X X X 和 Y Y Y 是定义在输入空间 x \bf{x} x 和输出空间 y \bf{y} y 上的变量,这时 F \bf{F} F 通常是由一个参数向量决定的条件概率分布族:
F = { P ∣ P θ ( Y ∣ X ) , θ ∈ R n } {\bf{F}}=\{ P|P_{\theta}(Y|X),\theta\in{{\bf{R}}^n}\} F={P∣Pθ(Y∣X),θ∈Rn}
参数向量 θ \theta θ取值于 n n n 维欧式空间 R n {\bf{R}}^n Rn, 称为参数空间。
统计学习的目标在于从假设空间中选取最优模型。为了评价模型的优劣,引入损失函数与风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
监督学习问题在假设空间 F \bf{F} F 中选取模型 f f f 作为决策函数,对于给定的输入 X X X 由 f ( X ) f(X) f(X) 给出相应的输出 Y ^ \hat{Y} Y^, 这个输出的预测值 Y ^ \hat{Y} Y^ 与真实值 Y Y Y 的距离用一个损失函数(loss function)或代价函数(cost function)来度量。损失函数 f ( X ) f(X) f(X) 和 Y Y Y 的非负实值函数,记作 L ( Y , f ( X ) ) L(Y, f(X)) L(Y,f(X))。
统计学习常用的损失函数:
0-1 损失函数:
L ( Y , f ( X ) ) = { 1 , Y ≠ f ( x ) 0 , Y = f ( x ) L(Y, f(X))= \begin{cases} 1, & Y\not = {f(x)} \\ 0, & Y = {f(x)} \end{cases} L(Y,f(X))={1,0,Y=f(x)Y=f(x)
平方损失函数:
L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L(Y, f(X))=(Y-f(X))^2 L(Y,f(X))=(Y−f(X))2
绝对损失函数:
L ( Y , f ( X ) ) = ∣ Y − f ( X ) ∣ L(Y, f(X))= |Y-f(X)| L(Y,f(X))=∣Y−f(X)∣
对数损失函数或对数似然损失函数
L ( Y , f ( X ) ) = − l o g P ( Y ∣ X ) L(Y, f(X))= - logP(Y|X) L(Y,f(X))=−logP(Y∣X)
损失函数值越小,模型就越好。由于模型的输入输出 ( X , Y ) (X,Y) (X,Y) 是随机变量,遵循联合分布 P ( X , Y ) P(X,Y) P(X,Y), 所以损失函数的期望是
R e x p ( f ) = E p [ L ( Y , f ( X ) ) ] = ∫ x × y L ( y , f ( x ) ) P ( x , y ) d x d y R_{exp}(f)=E_p[L(Y, f(X))] = \int_{\bf{x}\times\bf{y}}L(y,f(x))P(x,y)dxdy Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy
这时理论上模型 f ( X ) f(X) f(X) 关于联合分布 P ( X , Y ) P(X,Y) P(X,Y) 的平均意义下的损失,称为风险函数或期望损失。
学习的目标就是选择期望风险最小的模型。由于联合分布 P ( X , Y ) P(X,Y) P(X,Y) 是未知的, R e x p ( f ) R_{exp}(f) Rexp(f) 不能直接计算。实际上,如果知道联合分布 P ( X , Y ) P(X,Y) P(X,Y), 可以从联合分布直接求出条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X), 就不需要学习了。这样一来,一方面根据期望风险最小学习模型要用到联合分布,另一方面联合分布又是未知的,所以监督学习就成为一个病态问题(ill-formed problem)。
给定一个训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
模型 f ( X ) f(X) f(X)关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss),记作 R e m p R_emp Remp:
R e m p = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp} = \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i)) Remp=N1i=1∑NL(yi,f(xi))
期望风险是模型关于联合分布的期望损失,经验风险是模型关于训练样本集的平均损失。根据大数定律,当样本容量 N N N 趋于无穷时,经验分享趋于期望风险。所以很自然的想法就是用经验风险估计期望风险。然而,实际中训练像本数目有限,所以这种方法并不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化
经验风险最小化的策略认为,经验风险最小的模型会使得期望风险最小化,因而是最优的模型。根据这一策略,按照经验经验风险最小化求解最优模型就是求解最优化问题:
m i n f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) min_{f\in\bf{F}}\frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i)) minf∈FN1i=1∑NL(yi,f(xi))
其中 F \bf{F} F是假设空间。
当样本容量足够大时,经验风险最小化能保证很好得学习效果,在现实中被广泛采用,例如极大似然估计(maximum likelihood estimation)。
然而,当样本容量很小时,经验风险最小化学习得效果未必会好,往往模型表达过分,产生过拟合(over-fitting)现象。
结构风险最小化是为了防止过拟合而提出来得策略,结构风险最小化等价于正则化(regularization)。结构风险在经验风险上加上表示模型复杂度的正则化项或罚项。在结社空间、损失函数以及训练数据集确定的情况下,结构风险的定义是:
R s r m ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}(f)=\frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+\lambda{J(f)} Rsrm(f)=N1i=1∑NL(yi,f(xi))+λJ(f)
其中 J ( f ) J(f) J(f) 为模型的复杂度,是定义在结构空间上的泛函,表示了对复杂模型的惩罚。 λ ≥ 0 \lambda \geq 0 λ≥0是系数。用于权衡经验风险和模型复杂度。结构风险需要经验风险与模型复杂度同时小。结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。
结构风险最小化的策略认为结构风险最小的模型是最优的模型,随意求最优模型,就是求解最优化问题:
m i n f ∈ F 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + λ J ( f ) min_{f\in\bf{F}} \frac{1}{N}\sum_{i=1}^N L(y_i,f(x_i))+\lambda{J(f)} minf∈FN1i=1∑NL(yi,f(xi))+λJ(f)
这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。
算法是指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的及算方法求解最优模型。这时,同届学习问题归结为最优化问题。统计学习的算法成为求解最优化问题的算法。
统计学习的目的是使学到的模型对已知数据以及未知数据都能有很好的预测能力。不同的学习方法会更长不同的模型。当损失函数给定时,基于损失函数的模型训练误差和测试误差成为了学习方法评价的标准。统计学习方法具体采用的损失函数未必是评估时使用的损失函数,例如加了惩罚项的损失函数。当然,让两者已知是比较理想的。训练误差的大小,对判断给定问题是不是一个容易学习的问题是有意义的,但本质不重要;测试误差反映了学习方法对未知的测试数据集的预测能力(泛化能力),是学习中的重要概念。
但如果一味提高对训练数据的预测能力,所选模型的复杂度往往会比真实模型更高,这种现象称为过拟合。过拟合是指学习时选择的模型所包含的参数过多,以至于记住训练数据的特征,出现这一模型对已知数据预测得很好,但对未知数据预测得很差的现象。
解决这一问题的方法可以是这样:首先确定模型的复杂度,然后在给定的模型复杂度下,按照经验风险最小化的策略,求解模型。
为了防止过拟合,常用的模型选择方法是正则化与交叉验证。
学习方法地泛化能力是指由该学习到地模型对未知数据地预测能力,是学习方法本质上重要的性质。
如果学到的模型是 f ^ \hat{f} f^,那么这个模型的对未知数据预测的误差即为泛化误差:
R e x p ( f ) = E p [ L ( Y , f ^ ( X ) ) ] = ∫ x × y L ( y , f ^ ( x ) ) P ( x , y ) d x d y R_{exp}(f)=E_p[L(Y, \hat{f}(X))] = \int_{\bf{x}\times\bf{y}}L(y,\hat{f}(x))P(x,y)dxdy Rexp(f)=Ep[L(Y,f^(X))]=∫x×yL(y,f^(x))P(x,y)dxdy
常采用测试误差来评价学习方法的泛化能力。但由于测试数据的有限性,这种方法有时存在一定的不可靠性。事实上,泛化误差就是所学模型的期望风险。
泛化能力的分析往往通过研究泛化误差的概率上界进行的,简称泛化误差上界。泛化误差上界的性质:是样本容量的函数,当岩本容量增加时,泛化误差上界趋于0;是假设空间容量的函数,假设空间越大,模型越难学习,泛化误差上界越大。
监督学习方法又可以分成生成方法以及判别方法,所学到的模型分别称为生成模型和判别模型。
生成方法由数据学习联合分布 P ( X , Y ) P(X,Y) P(X,Y),然后求出条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 作为预测的模型,即生成模型:
P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X) = \frac{P(X, Y)}{P(X)} P(Y∣X)=P(X)P(X,Y)
之所以称为生成方法,是应为模型表示了给定输入产生输出的生成关系。典型的生成模型由朴素贝叶斯法和隐马尔可夫模型。
判别方法由数据直接学习决策函数 f ( X ) f(X) f(X) 或条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 作为预测的模型,即判别模型。典型的判别模型包括: k k k近邻法、感知机、决策树、支持向量机等等。
生成方法的特点:可还原出联合概率分布 P ( X , Y ) P(X,Y) P(X,Y), 而判别方法不能;收敛速度更快,当样本容量增加时,可更快的收敛于真实模型;存在隐变量时,任可使用生成模型。
判别模型的特点:判别方法直接学习的是条件概率或决策函数,直接面对预测,往往学习的准确率更高;由于直接学习 f ( X ) f(X) f(X) 和 P ( Y ∣ X ) P(Y|X) P(Y∣X),可以对数据进行各种程度上的抽象、定义特征并使用特征,因此可以简化学习问题。