03 机器学习
01 机器学习基本概念
目标:
- 从原始数据中提取特征
- 学习映射函数 f
- 通过映射函数 f 将原始数据映射到语义任务空间
- 即寻找数据和任务目标之间的关系
监督学习
监督学习:
- 标注数据:学习过程的输入,由明确标记了正确输出类别或值的数据点组成
- 通过提供“真实值”来决定“学什么”
- 学习模型:从标注数据中学习模式的算法或结构
- 定义了机器将如何获得自我学习能力,即“如何学”
- 损失函数:量化了模型预测与真实标签之间的差异
- 通过提供可衡量的学习结果指标来回答“学到否”的问题
在训练过程中,映射函数 f(学习模型)的主要目标是最小化整个训练数据集上的累积“损失”。 这可以表示为:
训练数据与测试数据:
经验风险 empirical risk 与期望风险 expected risk
- 经验风险是训练集中数据产生的损失
- 期望风险是当测试集中存在无穷多数据时产生的损失
“过学习 (over-fitting)”与“欠学习 (under-fitting)”
- Over-fitting:经验风险小而期望风险大
- Under-fitting:经验风险大且期望风险大
结构风险最小化 structural risk minimization
- 经验风险最小化:仅反映了局部数据
- 期望风险最小化:无法得到全量数据
- 为了防止过拟合,在经验风险上加上表示模型复杂度的正则化项 (regulatizer) 或惩罚项 (penalty term )
在最小化经验风险与降低模型复杂度之间寻找平衡
监督学习方法
监督学习方法
- 判别方法 discriminative approach
- 判别方法直接学习判别函数
或者条件概率分布 作为预测的模型,即判别模型 - 判别模型关心在给定输入数据下,预测该数据的输出是什么
- 不考虑样本的产生模型,直接研究预测模型
- 典型判别模型包括回归模型、神经网络、支持向量机和 Ada boosting 等
- 判别方法直接学习判别函数
- 生成方法 generative approach
- 生成模型从数据中学习联合概率分布
(通过似然概率 和类概率 的乘积来求取)
- 典型方法为贝叶斯方法、隐马尔可夫链
- 联合分布概率
或似然概率 求取很困难
- 生成模型从数据中学习联合概率分布
02 回归分析
分析不同变量之间存在关系的研究叫回归分析,刻画不同变量之间关系的模型被称为回归模型
一元线性回归
回归模型参数求取:
- 记在当前参数下第
个训练样本 的预测值为 的标注值(实际值) 与预测值 之差记为 - 训练集中
个样本所产生误差总和为:
目标: 寻找一组
- 一般而言,要使函数具有最小值,可对
参数 和 分别求导,令其导数值为零,再求取参数 和 的取值
多元线性回归
多维数据特征中线性回归的问题定义如下:假设总共有
最小化均方误差函数:
为了方便,使用矩阵来表示所有的训练数据和数据标签。
其中每一个数据
均方误差函数可以表示为:
均方误差函数
因为均方误差函数
逻辑斯蒂回归/对数几率回归
线性回归一个明显的问题是对离群点非常敏感,导致模型建模不稳定,使结果有偏
逻辑斯蒂回归 (logistic regression) 就是在回归模型中引入 sigmoid 函数的一种非线性回归模型。Logistic 回归模型可如下表示:
这里
- 函数是单调递增的,其值域为 (0,1), 可用作概率值
- 对输入 z 没有取值范围限制,但当 z 大于 (小于) 一定数值后,函数输出无限逼近 1 (0), 当 z 等于 0 时,函数输出为 0.5
- z 取值在 0 附近时,函数输出值变化比较大,且是非线性变化,但 z 取值很大或很小时,函数输出值几乎不变
逻辑斯蒂回归函数的输出具有概率意义,更多用于二分类问题(y=1 表示输入数据𝒙属于正例,y=0 表示输入数据𝒙属于负例)
可用来计算输入数据
我们现在对比值
显然,可以得到
- 如果输入数据
属于正例的概率大于其属于负例的概率,即 ,则输入数据 可被判断属于正例。这一结果等价于 ,即 ,也就是 成立 - 从这里可以看出,logistic 回归本质上是一个线性模型。在预测时,可以计算线性函数
取值是否大于 0 来判断输入数据 的类别归属
03 决策树
- 非叶子节点:对分类目标某一属性的判断
- 叶子节点:分类结果
属性划分方法:
- 信息增益
- 增益率
- 基尼指数
信息增益
信息熵(entropy)是度量样本集合纯度最常用的一种指标
假设有
值越小,表示 包含的信息越确定,也称 的纯度越高 - 所有
累加起来的和为 1 - 约定:若
, 则
构建决策树时划分属性的顺序选择是重要的。性能好的决策树随着划分不断进行,决策树分支结点样本集的“纯度”会越来越高,即其所包含样本尽可能属于相同类别。
信息增益的计算:
- 通过比较样本的属性信息增益的高低来选择最佳属性(信息增益最大的属性)对原样本集进行划分,得到最大的“纯度”
- 如果划分后的不同子样本集都只存在同类样本 (类别标签一致),那么停止划分
存在的问题:若把“编号”也作为一个候选划分属性,则其信息增益一般远大于其他属性。显然,这样的决策树不具有泛化能力,无法对新样本进行有效预测
因为一个编号对应一个结果,决策树就会直接学习到编号和标签之间的结论,但这个是无意义的
增益率和基尼系数
Info 和 Gain-ratio(增益率)计算公式如下:
一个启发式:
- 先从候选划分属性中找出信息增益高于平均水平的属性
- 再从中选取增益率最高的
更简的度量指标是如下的 Gini 指数(基尼指数):
- 相对于信息熵的计算
,不用计算对数 log,计算更为简易
连续属性离散化(二分法)
第一步:假定连续属性
即把区间
第二步:采用离散属性值方法,考察这些划分点,选取最优的划分点进行样本集合的划分
其中 Gain
剪枝处理
对付“过拟合”:避免因决策分支过多,以致于把训练集自身的一些特点当做所有数据都具有的一般性质而导致的过拟合
留出法:预留一部分数据用作“验证集”以进行性能评估
- 预剪枝
- 对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点记为叶结点,其类别标记为训练样例数最多的类别
- 缺点:欠拟合风险
- 后剪枝
- 先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
- 缺点:训练开销大
多变量决策
- 决策边界:
- 单变量决策:轴平行
- 多变量决策:
- 非线性函数 (SVM)
- 单变量 V.S. 多变量
- 复杂度
- 可解释性
- 背景的
+
和−
是两类样本 - 红线 表示理想的决策边界(可能是非线性的,例如 SVM 拟合结果)
- 黑色阶梯状线 是传统决策树的单变量分割方式(横向或纵向切)
- 多变量决策的边界可能是斜的、更光滑(图中未直接画出)
04 线性区别分析 LDA
线性判别分析 (linear discriminant analysis, LDA)
也称为 Fisher 线性判别分析(fisher'sdiscriminant analysis,FDA) [Fisher 1936]
在低维空间中同一类别样本尽可能靠近,不同类别样本尽可能彼此远离
4.1 符号定义
- 样本集为
- 样本
的类别标签为 的取值范围是 ,即一共有 K 类样本
定义 X 为所有样本构成集合、
- 协方差矩阵,衡量的是原始
各个维度 之间的关联性
4.2 二分类问题
即 K = 2 的情况
在二分类问题中,训练样本归属于
- 通过一个 d 维的参数,将原始数据 x 降到一维空间
投影之后类别
- 为了使得归属于同一类别的样本数据在投影后的空间中尽可能靠近,需要最小化 s 1+s 2 取值(类内方差小)
- 为了使得归属于不同类别的样本数据在投影后空间中尽可能彼此远离,需要最大化过
取值 (类间间隔大)
同时考虑上面两点,就得到了需要最大化的目标
称为类间散度矩阵 (between-class scatter matrix),衡量两个类别均值点之间的“分离”程度,可定义如下:
则称为类内散度矩阵 (within-class scatter matrix),衡量每个类别中数据点的“分离”程度,可定义如下:
由于
对应拉格朗日函数为:
对
因为
由于对
4.3 多分类问题
假设 n 个原始高维 (d 维) 数据所构成的类别种类为 K、每个原始数据被投影映射到低维空间中的维度为 r
令投影矩阵
为第 i 类样本数据中心在低维空间的投影结果 为第 i 类样本数据协方差在低维空间的投影结果
类内散度矩阵
- 其中
- 在上式中,
是第 i 个类别中所包含样本数据的均值
类间散度矩阵
“类内方差小、类间间隔大”
逻辑上理解,每一个
将多类 LDA 映射投影方向的优化目标 J (W) 改为:
其中,
继续对 J (W) 进行变形:
显然需要使乘积式子中每个
4.4 降维步骤
- 计算数据样本集中每个类别样本的均值
- 计算类内散度矩阵
和类间散度矩阵 - 根据
来求解 所对应前 个最大特征值所对应特征向量 ,构成矩阵 - 通过矩阵
将每个样本映射到低维空间,实现特征降维
05 Ada Boosting
核心思想:对于一个复杂的分类任务,可以将其分解为若干子任务,然后将若干子任务完成方法综合,最终完成该复杂任务
5.1 计算学习理论
- 可计算:什么任务是可以计算的?图灵可停机
- 可学习:什么任务是可以被学习的、从而被学习模型来完成?
- 图片/人脸识别
- 文本主题分类
概率近似正确 (probably approximately correct, PAC)
- 如果得到完成该任务的若干“弱模型”,是否可以将这些弱模型组合起来,形成一个“强模型”,该“强模型” 产生误差很小呢? 这就是概率近似正确(PAC)要回答的问题
5.2 思路描述
核心问题:
- 在每个弱分类器学习过程中,如何改变训练数据的权重:提高在上一轮中分类错误样本的权重
- 如何将一系列弱分类器组合成强分类器:
- 通过加权多数表决方法来提高分类误差小的弱分类器的权重让其在最终分类中起到更大作用
- 同时减少分类误差大的弱分类器的权重,让其在最终分类中仅起到较小作用
给定包含 N 个标注数据的训练集合Γ,
- 初始化每个训练样本的权重
- 第 m 个弱分类器的训练:对
- 使用具有分布权重
的训练数据来学习得到第 个基分类器(弱分类器) :
- 计算
在训练数据集上的分类误差
这里:如果 , ;否则为 0
3) 计算弱分类器的权重:
$$\alpha_m = \frac{1}{2} \ln \frac{1 - err_m}{err_m}$$
权重随 减少而增大,错误率越小的弱分类器会赋予更大的权重
4) 更新训练样本数据的分布权重:, ,其中 是归一化因子以使得 为概率分布, 也就是说,在开始训练第 m+1 个弱分类器 之前,会对训练数据集中的数据权重进行调整,被错误分类的样本会被'重点关注' - 使用具有分布权重
- 以线性加权形式来组合弱分类器
: 弱分类器构造强分类器 得到强分类器
根据表 4.8 所给出的数据,要构造若干个弱分类器,然后将这些弱分类器组合为一个强分类器,完成表 4.8 所示数据的分类任务
这里定义每个弱分类器
当然,在实际中,可根据需要使用其他的弱分类器
(1) 样本权重初始化
下面用图来辅助说明算法流程。图中圆圈所代表数据点标签为-1、五角星所代表数据点标签为 1,每个形状的颜色深浅代表这些数据被当前所学习得到 (组合) 分类器给出标签预测值大小,颜色越深表示越接近标签值-1、颜色越浅表示越接近标签值 1。
(2) 分别训练 M 个基分类器 (弱分类器)
对 m = 1
- 使用具有分布权重
的训练数据来学习得到第 m=1 个基分类器 。不难看出,当阈值ε=6 时,基分类器 具有最小错误率。 分类器如下表示: - 计算
在训练数据集上的分类误差,样例 3、4 被错误分类,因此 的分类误差为 - 根据分类误差计算弱分类器
的权重: - 更新下一轮第 m=2 个分类器训练时第 i 个训练样本的权重:
, , 可得到数据样本新的权重:
- 通过加权线性组合得到当前的分类器
- 在下图中,被分类错误数据样本的形状尺寸比其它数据样本形状稍大,以表示被分类错误的样本数据权重增大。
对 m = 2
- 对于具有分布权重为
的训练数据,当阈值 时,如下表示:基分类器 具有最小的错误率。 分类器 - 分类误差
- 弱分类器
的权重 - 当进行下一轮分类器训练时,样本权重更新如下:
- 通过加权线性组合得到当前的分类器
对 m = 3
- 对于具有分布权重为
的训练样本数据,当阈值 时,基分类器 具有最小的错误率。 分类器表示如下:
-1 & x_i > -2 \ &
1 & x_i < -2 &
\end{cases}$$
- 分类误差
- 弱分类器
的权重 - 下一轮弱分类器训练时,训练数据样本的权重更新如下:
- 通过加权线性组合得到当前的分类器
- 在
的基础上,构造强分类器 。 - 这里
是符号函数,其输入值大于 0 时,符号函数输出为 1,反之为 -1。由于 在训练样本上分类错误率为 0,算法终止,得到最终的强分类器。
5.3 回看霍夫丁不等式
假设有个弱分类器 (1≤m≤M),则 M 个弱分类器线性组合所产生误差满足如下条件:
- ζ(x) 是真实分类函数、ε ∈ (0,1)
- 上式表明,如果所“组合”弱分类器越多,则学习分类误差呈指数级下降,直至为零
- 上述不等式成立有两个前提条件:
- 每个弱分类器产生的误差相互独立
- 每个弱分类器的误差率小于 50%
- 因为每个弱分类器均是在同一个训练集上产生,条件 1)难以满足。也就是说,“准确性(对分类结果而言)”和“差异性(对每个弱分类器而言)”难以同时满足
- Ada Boosting 采取了序列化学习机制,即一个分类器学习完成之后才会进行下一个分类器的学习,后一个分类器的学习受到前面分类器学习的影像。有些学习策略,如 Bagging 的集成学习方法,采用的是并行学习策略,不同分类器的学习互不影响
06 支持向量机
期望风险(即真实风险)
- 与训练样本个数和模型复杂度都有密切的关系
- 即与分类器的 VC 维有关
- 结构风险最小化:用复杂度高的模型去拟合小样本,往往会导致过拟合,因此需要给经验风险
加上一个惩罚项或者正则化项
VC 维:是对假设空间 H 复杂度的一种度量
- 一般地,在 r 维空间中,线性决策面的 VC 维为 r+1
- 当样本数 n 固定时,如果 VC 维越高,则算法模型的复杂性越高
- VC 维越大,通常推广能力越差,置信风险会变大
线性可分支持向量机
寻找一个最优的超平面,其方程为
- B 为偏置项,是一个标量,其决定了超平面与原点之间的距离
支持向量机学习算法会去寻找一个最佳超平面,使得每个类别中距离超平面最近的样本点到超平面的最小距离最大
松弛变量,软间隔与 hinge 损失函数
硬间隔:存在一个线性超平面能将不同类别样本完全隔开
软间隔:允许部分错分给定的训练样本
核函数
将线性不可分样本从原始空间映射到一个更加高维的特征空间中去,使得样本在这个特征空间中高概率线性可分
如果原始空间是有限维,那么一定存在一个高维特征空间使样本可分
常见核函数:
线性 | |
---|---|
多项式 | |
Radial basis function | $$\kappa (x_{i}, x_{j})=e^{-\frac{\left\Vert x_{i}-x_{j}\right\Vert^{2}}{2\sigma^{2}}}$$ |
Sigmoid |
07 生成学习模型
- 生成模型旨在学习“数据是如何生成的”,通过建模联合概率分布 P (X, Y) 来实现
- 生成学习方法从数据中学习联合概率分布 P (X, Y),然后求出条件概率分布 P (Y∣X) 作为预测模型,即 P (Y∣X)=P (X, Y) / P (X) 。
如果基于生成方法进行学习:
如果基于判别方法进行学习: