基础知识
四种学习类型
- 监督学习
- 非监督学习
- 半监督学习
- 强化学习
这本书主要介绍第一类学习类型,监督学习。
统计学习三要素
未知的P(X,Y)联合概率模型产生的独立同分布的数据,统计学习基于三要素学习这些数据,并期许学习到的模型能对未知数据有较好的预测能力。
模型
能与数据相吻合的概率模型或数学模型。
评判策略
用于评判模型优劣的标准。一般由一个损失函数表示。分为两种:经验风险及结构风险。
- 经验风险:关于训练数据的平均损失。由于(由于P(X,Y)未知,所以对训练数据平等看待)(可能出现过拟合)(采用经验风险的例子:极大似然估计)
- 结构风险(正则化):在经验风险基础上在加上模型复杂度的惩罚项。(采用结构风险的例子:最大厚颜概率估计)
学习算法
通过最优化数值计算,选取(计算)出最优模型。
模型选择方法(选择合适复杂度的模型)
过拟合
一味提高对训练数据的预测能力,致使模型复杂度过高。导致对已知数据的预测能力好,对未知数据的预测能力差。
正则化及交叉验证
有两种方法选择合适的模型:正则化及交叉验证。
- 正则化(结构风险):在经验风险的损失函数中加上模型参数向量的范数,作为新的损失函数。
- 交叉验证:数据充足时,把训练数据分成训练集,验证集和测试集,分别用于训练模型,模型选择和评估模型。数据不充足时,切分数据,重复组合数据,分别用于训练,选择和评估。
泛化能力
即模型对未知数据的预测能力
泛化误差上界:样本多则小;假设空间大则大。
生成模型与判别模型
生成模型
学习P(X,Y),从而得出P(Y|X)。 收敛快(朴素贝叶斯,隐马链)
判别模型
学习y=f(x)或P(Y|X)。 准(kNN,。。。)
模型解决三种问题
分别为:分类,标注和回归。
标注:一个样本序列对应多个标签。(用于信息抽取:抽取名词短语。隐马,条件随机场)
回归:函数拟合(最小二乘)
感知器
适用于分类问题,是kNN(k近邻)与SVM(支持向量机)的基础。
模型
线性分类,判别模型
f(x) = sign( w*x+b )
w*x+b=0 对应一个超平面,这个超平面将特征空间分为两部分。w对应法向量,b对应截距。
评判策略
线性可分数据集
存在 w*x+b=0能完美划分数据集
两种策略
- 以误分类点的总数评判模型的优劣。但对w,b不能求导,不好优化。
- 以误分类点到超平面的距离之和作为评判标准。
损失函数为:
算法
误分类点驱动,使用随机梯度下降。
随机选取一个误分类点,利用其梯度值更新模型。
点
- 超平面不唯一,可增加约束,即为SVM模型。
- 实例点参与更新次数越多,意味着其离平面越近,因而对学习结果影响大。
k近邻法
适用于分类与回归。无显示的学习过程。
主要步骤有:k值的选择,距离度量及分类决策规则。
模型
根据距离将特征空间划分,新数据选取前k个距离最近的划分,并决策。
距离度量
k值的选择
k值小:近似误差小,估计误差大,模型复杂,会过拟合。
k值大:近似误差大,估计误差小,模型简单。
(近似误差:只有较近的实例才对结果起作用。估计误差:对近邻的实例非常敏感。)
决策规则
多数表决 等价于 经验风险最小。
kd树
主要问题
训练数据多,如何进行快速k近邻搜索。考虑使用特殊的存储结构存储训练数据。
构建kd树
kd树是一个二叉树,对特征空间进行划分。
循环取各个特征(深度可超过维度)
取中位数为切分点
搜索kd树
先从根节点触发,找到包含目的节点的叶节点,之后递归向上回退,寻找更近的节点。(查看矩形区域与圆是否相交)
回退到根节点结束。
性能
更适用于实例数远大于空间维数的时候。每个节点对应一个超矩形区域。
朴素贝叶斯
由训练数据的导出 P(X,Y),对输入x,取使后验概率最大的y作为输出。(生成模型)
朴素贝叶斯与贝叶斯估计是不同的概念。
模型
进而得出 P(X,Y)。
但是条件概率参数过多(每个取值对应一个概率):
因此提出条件独立性假设,简化学习:
预测
取使后验概率最大的y值作为输出
而后验概率可通过下式计算得出:
预测输出为:
进一步化简:
等价策略
等价于期望风险(概率由计算得出)最小化(0-1损失函数)
学习(极大似然估计)
用于后验概率计算。
特殊情况
有计算出的个别概率为零的情况。(致使后验概率等于零)
采用以下方法(加个因子):
决策树
- 适用于分类与回归问题。
- 是定义在特征空间,类空间上的条件概率分布。
- 具有可读性。
- 模型构建分为三个步骤:特征选取,决策树生成和决策树的修剪。
模型与学习
模型
树有节点和有向边。内部节点指代特征,叶节点指代输出类。
- 决策树将特征空间划分为互不相交的单元,并在每个单元上定义一个类的概率分布(条件概率分布)。
- 一条路径对应一个单元。
- 各个单元的条件概率偏向某一类。
学习
- 目标,构建一个决策树模型。(归纳出一组分类规则)
- 根据损失函数,从所有可能的决策树中寻找最优决策树属于NP-hard问题。
- 因此采用启发式算法:递归选择最优特征并划分集合,使得对子数据集有最好的分类。但可能出现过拟合现象,因此需要对决策树进行剪枝(子节点挤进父节点,成为新子节点)。
特征选择
选取对训练数据具有有效分类能力的特征。
以信息增益or信息增益比作为选择标准。
信息增益
熵:
熵只与变量的分布有关。
条件熵:
用于计算熵的概率可由估计得到(极大似然估计)。
信息增益(互信息):
特征A对训练数据集D的信息增益 g(D;A) 为:
决策树的生成
生成局部最优树,可由剪枝得到全局最优树。
ID3
算法:选取信息增益最大的特征作为节点特征,由该特征的不同取值建立子节点,再对子节点递归调用以上方法,构建决策树。终止条件:直到所有特征的信息增益均很小或没有特征可以选择为止。
问题:若某个特征选取的值过多,如ID号,其信息增益大。因此需要对此引入惩罚,即使用信息增益比:
C4.5
利用信息增益比选取特征。
决策树的剪枝
损失函数
|T|为叶节点个数,Nt为叶节点样本个数,H(T)为叶节点的熵。
C(T)表示模型对训练数据的预测误差,即模型与训练数据的拟合程度,|T|表示模型复杂度,参数a控制两者之间的影响。
等价于正则化的极大似然估计
方法
通过比较剪枝前后的损失函数,判断是否剪枝。
CART算法
二叉树(上述的ID3,C4.5为多叉树)
分为分类树与回归树
CART生成
递归构建二叉树,回归问题通过平均误差最小化选取最优输出;分类问题通过基尼系数选取特征和切分点。
回归树(最小二乘回归树)
含义:将特征空间划分成单元,每个单元对应一个固定输出值Cm。
采用启发式方法对空间进行划分:
分类树
基尼系数:
表示训练集D的不确定性。
- 基尼系数和熵都可以近似代表分类误差率。
- 取基尼系数最小的切分点作为最优特征和切割点。
CART剪枝
通过某项判定规则,不断地对树的内部节点进行剪枝,生成一个决策树序列,然后通过交叉验证对决策树进行测试,从而选取最优决策树。
对于内部节点 t:
剪枝前的损失函数:
剪枝后的损失函数:
使内部节点t剪枝前和剪枝后损失函数相等,得到参数a的值。
a小,则剪枝后增加的不确定度C(t)-C(Tt)=a(|T|-1)越小。所以优先选取a小的内部节点进行剪枝。
所以剪枝的原则是:不增加损失函数的前提下,选取能最有效降低决策树复杂度(a越小)的内部节点进行剪枝。
步骤:
先自下而上计算数值:
然后自上而下选取内部节点进行剪枝。
逻辑回归与最大熵模型
logistic regression/max entropy
是对数线性模型
逻辑回归
分布函数和密度函数
曲线图:
分布函数与阶跃函数(感知器)相比充分考虑所以样本的期望损失。
模型
由分布函数导出:
算法
用极大似然估计,估计模型参数w。
使似然函数最大,利用梯度下降,拟牛顿求参数。
最大熵模型
熵最大的概率模型是最好的模型(最稳定)。即基于已知信息平等对待未知信息。
均匀分布熵最大。
模型
通过估计得出
定义特征函数(符合特征能提供信息):
期许模型 P(y|x) 能学习经验信息 P~(X,Y) 的信息,即特征函数的期望值相等,并使模型的条件熵最大的模型称为最大熵模型:
算法
通过引进拉格朗日乘子,对应于多个特征函数。
利用对偶问题求解参数w。
进而可得模型:
支持向量机SVM
适用于二类分类问题。求取间隔最大的线性分类器+核方法。
核方法:将输入空间映射到特征空间(非线性)。
线性可分数据:(硬间隔最大化)
感知器目标是使误分类最少,存在多个解;SVM目标是间隔最大化,存在唯一解。
函数间隔和几何间隔
|w*x+b|表示样本点距离超平面的距离,由距离来表示分类的确信度。取确信度为y(w*x+b),此成为函数间隔。
但 w 和 b 的缩放不会改变超平面,但是会改变函数间隔的大小。使模型评判不准确。所以对 w 和 b 进行归一化的间隔即为几何间隔。
策略
优化目标:使间隔 r/|w| 取最大值;
约束:是所有样本点距离都大于 r 。
一般取 r=1,则:
等价
支持向量和间隔边界
距离超平面最近的样本点称为:支持向量
支持向量间的间隔带称为:间隔边界
超平面由(少数)支持向量确定,因此支持向量很重要。
对偶问题
原始问题:
拉格朗日函数:
经过数值运算,得:
线性不可分数据:(软间隔最大化)
某些样本点不能满足》1的约束条件。因此引入松弛变量,并对松弛变量引入惩罚。
支持向量和损失函数
支持向量由对偶问题给出。。。
对偶问题中 a>0 的样本为支持向量
软间隔最大化的另一种解释是:合页损失函数最小化。
核方法(非线性)
只有超曲面(非线性)才能分类的数据。
核方法:对输入数据作变换,使得可以使用超平面(线性)进行分类。
核函数:
将核函数应用到对偶问题中(将内积换成核函数)即为核方法。
序列最小化优化算法(SMO)
对于SVM,当样本多时,学习慢,以此引入SMO方法,加速学习。是一种启发式算法。(启发式:有线选择距离终点最近的节点,而Dijkstra优选选择离源节点最近的节点。)
SMO:在对偶问题中,取其中两个变量先优化,再持续优化两个两个的变量。(利用KKT条件选变量)一个变量选违反KKT条件最严重的(启发式?),另一个变量来由约束条件自动确定。
提升方法(Boosting)
强可学习:一个类(概念)存在一个多项式学习,是预测正确率高。弱可学习:最好的预测,其正确率仅比随机猜测略好。
提升方法:改变训练数据的概率分布(权值分布),训练出一系列分类器,将这些分类器组合构成一个强学习器。
AdaBoost算法
- 提高前一轮弱分类器中错误分类样本的权值
- 加大分类误差率小的弱分类器的权值
- AdaBoost训练误差以指数下降
对于带权值数据的学习算法:1. 通过修改弱分类器的损失函数为w*cost(x);2. 对训练样本进行bootstrap抽样,每次抽样的概率等于样本的权值。
AdaBoost对线性分类器起不到效果。
参数计算:
等价于
(算法的另一种解释:
模型:加法模型
损失函数:
学习方法:前向分布算法(每部只学习一个b(x,r))
)
提升树
采用加法模型(基函数的线性组合)与前向分步算法,当以基函数为决策树时,称为提升树。
模型
根据问题挑选损失函数。对于回归问题,相当于拟合残差以学习一个新的回归树。
梯度提升
对于一般损失函数,可以用损失函数的负梯度近似为残差值,用以拟合回归树。
EM算法及其推广
EM:期望最大(expectation max)
当观测变量包含了所有变量(可利用极大似然估计 or 贝叶斯估计);当观测变量未包含所有变量(有隐变量,采用EM算法)。
算法
由极大化 导出:
- 应用于非监督学习时,只有输入没有输出,EM算法可用于学习生成模型P(X,Y)。
- 算法迭代递增,但不一定收敛于极大值;可取多组初始值,多次训练,取最好的模型。
应用于高斯混合模型的参数估计
需要预知模型的结构?
隐马尔可夫模型
HMM
用于标注问题;是生成模型。用于语音识别,NLP,生物信息,模式识别。
基本概念
模型
是关于时序的概率模型。
用隐藏(未知)的马链产生 随机状态序列,通过观测随机状态序列,得到随机观测序列。通过随机观测序列学习模型。
数学模型
模型由以下三部分组成:
初始状态概率向量:
状态转移概率矩阵:
观测概率矩阵:
隐马的两个基本假设
- 齐次性:当前状态只与前一状态有关。
- 观测独立性:当前观测只依赖于当前状态。
应用于标注问题
给定观测序列,预测标记序列,如标记词性。
算法的三个基本问题
概率计算
直接法
计算量大
采用动态规划算法:
前向算法
前向概率:到时刻 t ,部分观测序列为 o1, o2, … , ot,且状态为 qt的概率。
算法
路径结构
后向算法
后向概率:在时刻 t 状态为 qi 条件下,从 t+1 到 T 的部分观测序列为 ot+1 , ot+2 , … , oT 的概率。
算法
路径结构
概率计算
进而可求得在时刻 t 处于状态 qi 的概率。
学习算法
监督学习
有观测数据和状态序列。
可以用极大似然估计 得出模型。
转移概率
观测概率
与转移概率类似的方法。
初始概率
人工标注的代价高
非监督学习(Baum-Welch算法)
即为隐变量的概率模型:
状态序列为隐变量 I。利用EM算法实现参数学习。
预测算法
近似算法
取每个时刻 t 最有可能出现的状态作为预测结果。
计算简单,但是不能保证预测的状态序列整体是最有可能的状态序列。
维特比算法
用动态规划求概率最大路径。
定义
算法递推
条件随机场CRF
概率无向图模型
由无向图表示联合概率分布。
模型
- 节点表示随机变量,边表示变量间的概率依赖关系。
- 节点 Y=(yi),P(Y) 表示联合概率。
- 当P(Y)满足成对、局部或全局马尔可夫性时,称为概率无向图模型或马尔可夫随机场
模型的因子分解
因子分解:把P(Y)写成若干个子联合概率的乘积。
团:两两有边连接的节点的集合,集合最大的团称为最大团。
P(Y) 可以表示为最大团变量的函数的乘积。(因子分解)
条件随机场
序列化的最大熵模型
条件随机场:在给定随机变量X下,随机变量Y的马尔可夫随机场。主要讨论线性链(序列)条件随机场。
用于标注:观测得X , 预测出标注Y。
最大团:
相邻的两个节点组成最大团。
线性链条件随机场:
线性链满足马尔可夫性:
参数化形式
t 为转移特征,s 为状态特征。通常 t,s 取值为 1或0。
简化形式
转化为向量表示:
特征向量:
特征权值:
简化形式:
矩阵形式
指定标记序列,计算其概率值。
M类似转移概率矩阵。即由特征函数及其权值表征的标注转移概率矩阵。
概率计算
用于选取最符合特征的标注序列
前向-后向算法(与隐马类似)
前向递推公式:
后向递推公式:
概率计算
期望
学习算法
通过极大化训练数据的对数似然概率来求解 参数 w。
对数似然函数,即各个样本点的条件概率p(y|x)的乘积的对数。
使用梯度下降方法。
分别对每个变量求偏导并使其等于0。得出为两个期望相等。。
带惩罚项
or
也就是说样本点中符合第 j 个特征的样本数目 应该等于 在目前模型下第 j 个特征的期望数目。(类似最大熵模型)
预测算法
给定P(Y|X)和观测序列,求使条件概率最大的序列Y,与隐马类似。
CRF和HMM
- CRF有丰富的特征函数
- CRF可以取任意权重值
HMM只考虑状态之间的邻接关系。CRF还考虑了观测序列间的关系。?
因此CRF更好
感知器 Logistic和SVM
区别:损失函数不同
- 感知器:只考虑误分类点
- logistic:考虑所有点,并大大减小离超平面较远的点的权重
- SVM:只考虑和分类最相关的少数点