机器学习与Python实践
上QQ阅读APP看书,第一时间看更新

1.2 机器学习的分类

1.2.1 无监督学习、有监督学习和强化学习

机器学习按学习目标的不同可分为无监督学习、有监督学习和强化学习。我们首先介绍无监督学习和有监督学习这两类学习方法。通俗地说,有监督学习处理的是有响应变量或有标签的数据,无监督学习处理的是无响应变量或无标签的数据。有监督学习包括所有的分类方法和回归方法,如线性回归、线性判别、决策树、逻辑回归、SVM、随机森林等。无监督学习包括聚类方法(如k-means)、特征提取方法(如主成分分析)。还有一些模型和方法可以归入无监督学习,如A-priori关联学习、高斯混合模型、隐马尔可夫模型等。

学习是一个建模过程。这个过程所分析的数据可以用D=(X, Y)表示。在有监督学习中,我们将数据分为响应变量Y(又称因变量,离散的Y又叫标签)和预测变量X(又称自变量或解释变量),研究Prob(Y|X),即给定XY的条件分布。对于预测问题,很多时候我们对条件分布的均值感兴趣,建立模型Y=fX, θ)+ϵ。这里θ表示模型的未知参数或未知函数,ϵ表示误差项。模型中f的形式可以是线性的,也可以是非线性的。在线性模型中,fX, θ)=是一个线性关系。在神经网络模型中,f表示特定的非线性神经网络,θ是和神经网络相关的参数(如权重等)。本书中模型一般指数据的产生机制。有了模型之后,一般会有一个需要优化的目标函数。通常为了估计θ,可以有很多不同的估计方法或算法,选择使用其中较好的一个估计,代入f则可以得到预测模型。

在无监督学习中,数据不区分响应变量Y和预测变量X,此时我们可以将数据用X表示。我们研究与X的分布Prob(X)相关的量或特征。从这个定义出发,无监督学习包括除了前面提到的k-means、主成分分析、A-priori关联学习、高斯混合模型之外,也包括一些简单的描述性统计方法,如均值、方差、协方差、高阶矩、简单分位数、箱线图、直方图、核密度估计等。

有一大类涉及决策和环境交互影响的问题,它们不容易放到有监督学习或无监督学习的框架内研究,但可以使用强化学习解决。在强化学习中,依据环境状态做出决策的主体(决策函数)称为代理(Agent)。在时刻t,代理观察到环境状态st,并执行动作at。接着在时刻t+1,代理收到执行该动作的回报(或反馈)rt+1,并观测到环境状态st+1,然后执行动作at+1...如此下去,直到这个过程以某种方式结束。

以上过程可以用马尔可夫决策过程(Markov Decision Process,MDP)描述。马尔可夫决策过程是一个五元组(S, A, P, R, γ),其中:

(1)S是状态集,stS

(2)A是动作集,atA

(3)P是转移概率函数矩阵,0为三元函数,表示在状态st=s执行动作at=a后下一个状态为st+1=s′的概率;

(4)R是回报函数,0

(5)γ∈[0, 1]是折现因子,代表未来下一时刻单位回报在当前的价值。

学习的目标是寻求决策函数a=πs),使得执行该策略的期望累计回报最大,即:

0

强化学习是近似求解马尔可夫决策过程的算法集。在马尔可夫决策过程的转移概率函数矩阵P和回报函数R已知或者存在估计的情形下,可以使用基于bellman方程的值迭代、策略迭代等算法。如果模型未知,即转移概率函数矩阵PR只能在经验数据中获得,强化学习发展出不基于模型的多种算法,包括蒙特卡洛方法、TD方法(如Q学习、SARSA学习)以及直接优化求解策略函数π(·)的REINFORCE方法、Actor-Critic方法等。有一些方法综合了基于模型的方法和不基于模型的方法,如Dyna-Q。

需要注意的一点是,“学习”是偏模型和建模层面的概念,在建模过程中需要用到的一些通用的处理优化问题算法和估计方法以及模型结构等不需要被归到无监督学习或有监督学习中,如极大似然估计、正则化方法、EM算法、Bootstrap、神经网络结构(如CNN、RNN)等。这些方法和结构既可以用于有监督学习,也可以用于无监督学习和强化学习。

1.2.2 深度学习和浅层学习

深度学习指的是在机器学习方法中引入多个层级的非线性处理单元,每层使用前一层的输出作为输入,实现特征提取和特征转换。这些方法大部分是基于神经网络,使用不同的网络结构对应不同的学习方法,可以用于有监督学习、无监督学习和强化学习。在无监督学习中引入深度神经网络的方法称为深度无监督学习。在强化学习中引入深度神经网络的方法称为深度强化学习。读者如需要系统深入地了解深度学习,可以从古德费洛(Goodfellow)等人所著的教程《深度学习》入手,结合最新论文、开源代码和一些好的网络资料(如吴恩达在Coursera的教程)进一步学习。

与深度学习对应的概念是浅层学习,其对原始数据进行了一层函数映射。我们熟悉的很多模型和算法都属于浅层学习,如无监督学习的k均值(k-means)算法、主成分分析技术(Principal Components Analysis, PCA),有监督学习的SVM、决策树以及树的集成方法等。表1.1把各种常用的学习方法和模型按浅层学习和深度学习的概念做了简要分类。

表1.1 常用的学习方法和模型分类

0

1.2.3 统计学习

统计学习也是我们经常碰到的一个概念,有时会和机器学习混淆。这两个概念各有侧重:机器学习侧重模型的预测性能、泛化能力以及算法的性质和效率。有关机器学习的国外优秀书籍有很多,如《ML》和《PRML》等。而统计学习从数据出发,研究变量的分布和变量之间的关系。统计学习会在建模前对数据的分布或变量的关系做一些假设,并在建模过程中采用统计学的方法来检验这些假设,并进一步做统计推断。统计学习方向上国外也有一些非常优秀的书籍,如《ESL》《ISL》等。

为了进一步说明统计学习,我们明确一下两个术语的界定:模型和估计方法。对统计学来说,模型是指观测数据的产生机制,如建立线性回归模型Y=+ϵ,指的是假定观测到的样本(X, Y)是由这个机制生成的。对于模型参数的估计方法,尽管有些书中也称其为模型,但实质是某种估计方法。例如,对β的估计方法包括最小二乘、岭回归等。有时我们会看到“岭回归模型”这种说法,但在本书的术语体系中,岭回归是一种估计方法,它和最小二乘估计对应同一个模型,即观测数据的产生机制是一样的。同样的道理,对于Y=fX)+ϵ这一类模型,我们对fX)有不同的近似表示,得到了不同的估计方法,其中著名的有Kernel SVM、随机森林以及各种神经网络。

在《统计学习方法》一书中提到过统计学习的三要素,即模型、策略(目标函数)和算法。这3个要素更适合作为对机器学习的阐述。在统计学习中,我们需要根据数据特点提出一个合理的、可被证伪的模型假设,然后尽可能给出最优的估计方法,把算法作为估计方法的实现工具。统计学研究中有时候更关注的是模型中未知参数或未知函数的估计的性质,如估计的相合性、渐近正态性、有效性、稀疏性等。这些性质与使用哪种算法求解是没有关系的。例如,极大似然估计具有渐近正态和渐近有效的优良性质,这些性质与极大似然估计如何求解是相互独立的。另外,在本书第4章中我们会看到,回归模型的Lasso(L1正则)估计天然具有稀疏性,这个性质不依赖于具体的算法,使用LARS-Lasso算法或坐标下降算法都可以得到稀疏的估计。对应“机器学习”三要素,统计学习的要素可以概括为:(1)合理的模型假设(模型特指数据生成机制);(2)具有优良性质的估计方法;(3)有效的求解算法。其中,尽管估计方法一般会对应一个目标函数,如均值估计或最小二乘估计对应一个平方损失函数。但是,一个估计方法对应的目标函数不一定是唯一的。例如,本书第3章介绍的核密度估计中,同一个估计方法可以对应两个不同的目标函数。

在统计学的研究中,对一个方法的评价更侧重于这些与求解算法无关的性质,这与机器学习的侧重点是不同的。深入了解估计方法的性质能指导我们正确选择估计方法(或目标函数),有助于提高模型的各种性能(如预测精度和泛化能力),这也是统计学对于机器学习的重要价值之一。一个著名的例子就是本书第10章中介绍的AdaBoost算法。统计学家通过深入研究找到了AdaBoost算法对应的目标函数和性质,并改进了AdaBoost算法,得到GBDT等更出色的算法。