《统计学习方法》监督学习Notes
来源:
- [《统计学习方法》书籍-第1篇 监督学习(链接缺失…)]
2024-01-16@isSeymour
第1章 统计学习及监督学习概论
1.1 统计学习
“如果一个系统能够通过执行某个过程改进它的性能,这就是学习”
——Herbert A.Simon
-
统计学习的基本假设(前提)
同类数据具有一定的统计规律性。
1.2 统计学习的分类
基本分类
监督学习 supervised learning
指从标注数据中学习预测模型的机器学习问题。
无监督学习 unsupervised learning
指从无标注数据中学习预测模型的机器学习问题。
-
本质
学习数据中的统计规律或潜在结构。
-
模型
-
预测
- zN+1=argmaxP(z∣xN+1)
- zN+1=g(xN+1)
强化学习 reinforcement learning
指智能系统在与环境的连续交互中学习最优行为策略的机器学习问题。
-
本质
学习最优的序贯决策。
-
模型
每一步 t,智能系统从环境中观测到一个状态 St 与一个奖励 rt ,采取一个动作 at。
环境根据智能系统选择的动作,决定下一步 t+1 的状态 st+1 与奖励 rt+1 。
注:目标不是短期奖励的最大化,而是长期积累奖励的最大化。
-
过程
强化学习过程中,系统不断试错 trial and error ,以达到学习最优策略的目的。
-
决策过程
强化学习的马尔可夫决策过程是状态、奖励、动作序列上的随机过程,由四元组<S,A,P,r>组成。
-
S 是有限状态的集合
-
A 是有限动作的集合
-
P 是状态转移概率函数
P(s′∣s,a)=P(st+1 =s′∣st=s,at=a)
-
r 是奖励函数
r(s,a)=E(rt+1∣st=s,at=a)
马尔可夫决策过程具有马尔可夫性:下一个状态只依赖于前一个状态与动作,由状态转移函数 P(s′∣s,a) 表示。下一个奖励依赖于前一个状态与动作,由奖励函数 r(s,a) 表示。
-
策略 π
给定状态下动作的函数 a=f(s) 或者条件概率分布 P(a∣s)。
-
价值函数(状态价值函数)
策略 π 从某一个状态 s 开始的长期积累奖励的数学期望
vπ(s)=Eπ[rt+1+γrt+2+γ2rt+3+...∣st=s]
-
动作价值函数
策略 π 从某一个状态 s 和动作 a 开始的长期积累奖励的数学期望
qπ(s,a)=Eπ[rt+1+γrt+2+γ2rt+3+...∣st=s,at=a]
-
目标
在所有可能的决策中选出价值函数最大的策略Π*
半监督学习 semi-supervised learning
指利用标注数据和未标注数据学习预测模型的机器学习问题。
主动学习 active learning
指机器不断主动给出实例让教师进行标注,然后利用标注数据学习预测模型的机器学习问题。
其他分类
按技巧分类
-
贝叶斯学习 Bayesian learning
在概率模型的学习和推理中,利用贝叶斯定理,计算在给定数据条件下模型的条件概率,即后验概率,并应用这个原理进行模型的估计,以及对数据的预测。
特点:使用模型的先验分布。
-
核方法 kernel method
使用核函数表示和学习非线性模型的一种机器学习方法,可以用于监督学习和无监督学习。
特点:不显式地定义这个映射,而是直接定义核函数,简化计算。
1.3 统计学习方法的三要素
方法 = 模型 + 策略 + 算法
模型
策略
-
从假设空间中选取最优模型。
-
损失函数 loss function
度量模型一次预测的好坏,记作 L(Y,f(X))
- 0-1损失函数
- 平方损失函数
- 绝对损失函数
- 对数损失函数
损失函数值越小,模型越好。
-
风险函数 risk function (期望损失 expected loss)
模型 f(X) 关于联合分布 P(X,Y) 的平均意义下的损失。
-
经验风险 empirical risk (经验损失 empirical loss)
Remp(f)=N1∑L(yi,f(xi))
-
期望风险Rexp(f) 是模型关于联合分布的期望损失;
经验风险Remp(f) 是模型关于训练样本集的平均损失。
根据大数定律,当样本容量 N 趋于无穷时,经验风险 Remp(f) 趋于 Rexp(f) 。
所以,一个很自然的想法是用经验风险估计期望风险。
-
但是,现实中训练样本数目有限,如此估计,常常不理想,
因此,需要对经验风险进行一定的矫正。
监督学习的两个基本策略:
-
经验风险最小化 empirical risk minimization, ERM
认为,经验风险最小的模型是最优的模型。
Rerm(f)=minN1∑L(yi,f(xi))
-
结构风险最小化 structural risk minimization, SRM
为了防止过拟合,结构风险最小化等价于正则化 reghularization 。
在经验风险上加上表示模型复杂度的正则化项 regularizer 或 罚项 penalty term。
Rsrm(f)=minN1∑L(yi,f(xi))+λJ(f)
-
例如,贝叶斯估计中的最大后验估计 maximun posterior probability estimation , MAP
就是结构风险最小化的一个例子。
-
当模型是条件概率分布、损失函数是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。
监督学习问题就变成了经验风险或结构风险函数的最优化问题。
这时,经验或结构风险函数就是最优化的目标函数。
算法
1.4 模型评估与模型选择
训练误差与测试误差
- 训练误差 training error
- 测试误差 test error
过拟合与模型选择
1.5 正则化与交叉验证
正则化 regularization
交叉验证 cross validation
- 重复使用数据,把给定数据切分,组合成为训练集与测试集,在此基础上反复进行训练、测试以及模型的选择。
1.6 泛化能力
泛化误差 generalization error
-
泛化能力
指由该方法学习到的模型对未知数据的预测能力。
-
泛化误差
所学到的模型的期望风险。
-
泛化误差上界 generalization error bound
概率上界。
-
定理1.1 (泛化误差上界)
R(f)≤R^(f)+ε(d,N,δ)其中ε(d,N,δ)=2N1(logd+logδ1)
1.7 生成模型与判别模型
生成方法
判别方法
- 特点
- 直接学习的是条件概率 P(Y∣X) 或决策函数 F(X) ,直接面对预测,准确率更高
- 可以对数据进行各种程度的抽象、定义特征并使用特征,可以简化学习问题
1.8 监督学习应用
分类问题
-
分门别类
-
X 连续,Y 离散
-
从数据中学习一个分类模型或分类决策函数,称为分类器 classifier。
-
性能指标
TP——将正类预测为正类数FN——将正类预测为负类数FP——将负类预测为正类数TN——将负类预测为负类数
-
精确率 precision
P=TP+FPTP
-
召回率 recall
R=TP+FNTP
-
F1值 是P和R的调和均值
F12=P1+R1F1=2TP+FP+FN2TP
标注问题
回归问题
第2章 感知机
2.1 感知机模型
-
输入空间
X⊆Rn
-
输出空间
Y⊆{+1,−1}
-
函数
f(x)=sign(w⋅x+b)
- 权值向量 w∈Rn
- 偏置 b∈R
- w⋅x 表示内积,sign 是符号函数
-
假设空间
函数集合{f∣f(x)=w⋅x+b}
-
几何解释
线性方程 w⋅x+b=0 对应于特征空间 Rn 的一个超平面 S,其中 w 是超平面的法向量,b 是超平面的截距。
这个超平面将特征空间划分为两个部分,两部分的点分别为正、负两类,因此称为分离超平面。
2.2 感知机学习策略
-
线性可分数据集 linearly separable data set
存在超平面 S 能够将数据集的所有实例点完全划分到超平面的两侧。
-
损失函数
误分类点到超平面的 S 的总距离
−∣∣w∣∣1xi∈M∑∣w⋅x0+b∣
不考虑∣∣w∣∣1,就得到感知机学习的损失函数
L(w,b)=−xi∈M∑∣w⋅x0+b∣
其中 M 为误分类点的集合。
-
可知
- 损失函数L(w,b) 是非负的。
- 没有误分类点,损失函数值为0;
- 误分类点越少,误分类点离超平面越近,损失函数值越小。
- 给定数据集T ,损失函数L(w,b) 是w,b 的连续可导函数。
-
学习策略
在假设空间中选取使损失函数式最小的模型参数w,b ,即感知机模型。
2.3 感知机学习算法
感知机学习问题转化为求解损失函数式的最优化问题。
最优化的方法是随机梯度下降法。
原始形式
-
输入
训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N ,学习率 η(0<η≤1)
-
输出
w,b,感知机模型f(x)=sign(w⋅x+b)
-
算法
-
选取初值 w0,b0
-
在训练集中选取数据 (xi,yi)
-
如果 yi(w⋅xi+b)≤0 ,
w←w+ηyixib←b+ηyi
-
转至(2),直至训练集中没有误分类点。
解释:
当一个实例点被误分类,即位于分离超平面的错误一侧时,即调整 w,b 的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超平面越过该分类点使其被正确分类。
对偶形式
-
输入
训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N ,学习率 η(0<η≤1)
-
输出
a,b,感知机模型f(x)=sign(j=1∑Nαjyjxj⋅x+b) ,其中α=(α1,α2,...,αN)T
-
算法
-
α←0,b←0
-
在训练集中选取数据 (xi,yi)
-
如果 yi(j=1∑Nαjyjxj⋅xi+b)≤0
αi←αi+ηb←b+ηyi
-
转至(2)直到没有误分类数据。
对偶形式中的训练实例仅以内积的形式出现,可以预先计算出来以矩阵形式存储——Gram矩阵。
G=[xi⋅xj]N×N
收敛性
-
可以证明,误分类的次数 k 是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。
k≤(γR)2
-
可以证明:
样本集线性可分的充要条件是正实例点集所构成的凸壳与负实例点集所构成的凸壳互不相交。
-
当训练集线性可分时,
感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序可能有所不同。
*2.4 示例
感知机1:原始形式
感知机2:对偶形式
第3章 k 近邻法
3.1 k 近邻算法
-
根据给定的距离度量,在训练集 T 中找出与 x 最近邻的 k 个点,涵盖这 k 个点的 x 的邻域 记作 Nk(x)
-
在 Nk(x) 中根据分类决策规则(如多数表决)决定 x 的类别 y
y=argmaxxi∈Nk(x)∑I(yi=ci)i=1,2,...,Nj=1,2,...,KI为指示函数(当yi=ci时I为1,否则I为0)
3.2 k 近邻模型
距离度量
-
相似程度
特征空间中两个实例点的距离是两个实例点相似程度的反映。
-
特征空间
n维实数向量空间 Rn
-
距离度量
Lp 距离
Lp(xi,yj)=(l=1∑n∣xi(l)−xj(l)∣p)p1
其中 p≥1
-
p=2 为 欧式距离 Euclidean distance
L2(xi,yj)=(l=1∑n∣xi(l)−xj(l)∣2)21
-
p=1 为 曼哈顿距离 Manhattan distance
L1(xi,yj)=l=1∑n∣xi(l)−xj(l)∣
-
p=∞ ,它是各个坐标距离的最大值,即
L∞(xi,yj)=maxl∣xi(l)−xj(l)∣
k 值的选择
-
k 值的选择会对 k 近邻法的结果产生重大影响。
估计误差:当 k 较小,测试结果会对近邻的实例点非常敏感,若近邻的实例点恰好是噪声,预测结果就错了。
近似误差:当 k 较大,领域较大,更多点被认为是近邻点,作为噪声的近邻点更多了。
-
k 值一般会取一个比较小的数值。
通常采用 交叉验证法 来选取最优的 k 值。
分类决策规则
-
分类决策规则
往往采用 多数表决。
即 由输入实例的 k 个邻近的训练实例中的多数类决定输入实例的类。
-
多数表决规则 majority voting rule
如果分类的损失函数为 0-1损失函数,分类函数为
f:Rn→{c1,c2,...,ck}
那么误分类率是
k1xi∈Nk(x)∑I(yi=cj)=1−k1xi∈Nk(x)∑I(yi=cj)
-
因此,要使 误分类率最小 即 经验风险最小,
就要使$ \sum \limits_{x_i \in N_k(x) } I(y_i = c_j)$ 最大,所以,多数表决规则等价于经验风险最小化。
3.3 k 近邻法的实现:kd 树
-
问题
如何对训练数据进行快速 k 近邻搜索?
这一点在特征空间的维数过大及训练数据容量大时尤其必要。
-
方法
构造平衡 kd 树
-
输入
k 维空间数据集 T={x1,x2,...,xN},其中xi=(xi(1),xi(2),...,xi(k))T,i=1,2,...,N
-
输出
kd 树
-
算法
-
开始:构造根结点(根结点对应于包含 T 的 k 维空间的超矩形区域。
-
重复:
-
直至两个子区域没有实例存在时停止。从而形成 kd 树的区域划分。
搜索 kd 树
-
输入
已构造的 kd 树,目标点 x
-
输出
x 的最近邻
-
算法
-
在 kd 树中找出包含目标点 x 的叶结点
就是从根结点出发,向下搜索到正确的叶结点即可。
-
以此叶结点为“当前最近点”
-
递归地向上回退,在每个结点进行如下操作:
-
若该结点保存的实例点比当前最近点距离目标更近,
则以该实例点为“当前最近点”。
而这个最近点一定位于该结点的一个子节点的区域中。
其实,是检测另一子结点对应的区域是否与以目标点为球心、以目标点与“当前最近点”间的距离为半径的超球体相交。
- 若相交,可能在另一子区域存在更近的点,移动到另一个子结点,递归进行最近邻搜索。
- 若不相交,向上回退。
-
当回退到根结点时,搜索结束。
最后的“当前最近点”即为 x 的最近邻点。
-
时间复杂度
O(logN)
这里N 是训练实例数。
- kd 树适合训练实例数远大于空间维数
- kd 树可以省去对大部分数据点的搜索,从而减少搜索的计算量。
*3.4 示例
构建平衡 kd 树
搜索最近邻
第4章 朴素贝叶斯法
-
朴素贝叶斯 naive Bayes
基于贝叶斯定理与特征条件独立假设的分类方法。
- 对于给定的训练数据集,
- 基于特征条件独立假设学习输入输出的联合概率分布
- 基于此模型,对给定的输入 x ,利用贝叶斯定理求出后验概率最大的输出 y。
-
实现简单,学习与预测效率都很高,很常用。
4.1 朴素贝叶斯法的学习与分类
条件独立性假设
-
见下方
学习 - 条件概率分布 - 条件独立性假设。
学习
-
假设
P(X,Y) 是 X 和 Y 的联合概率分布,训练数据集 T 由 P(X,Y) 独立同分布产生。
-
先验概率分布
P(Y=ck),k=1,2,...,K
-
条件概率分布
P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck),k=1,2,...,K
-
但是上述的条件概率分布有指数级数量的参数,其估计实际不可行。
假设 x(j) 可能取值有 Sj 个,Y 可能取值有 K 个,
那么参数个数为K∏j=1nSj
-
条件独立性假设
这是一个较强的假设,朴素贝叶斯法也由此得名。假设如下:
P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
条件独立假设等于是说,用于分类的特征在类确定的条件下都是条件独立。
这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。
-
因此,可以得到联合概率分布P(X,Y)
-
朴素贝叶斯法实际上学习到生成数据的机制,
所以属于生成模型。
分类
-
朴素贝叶斯的分类
对给定的输入 x ,通过学习到的模型计算后验概率分布
P(Y=ck∣X=x)=k∑P(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)
代入独立性假设,得到
P(Y=ck∣X=x)=k∑P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
这就是朴素贝叶斯法分类的基本公式。
-
朴素贝叶斯分类器
y=f(x)=argmaxckk∑P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
由于式子中对于所有 ck 的分母都是相同的,由此
y=f(x)=argmaxckP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
-
后验概率最大化的含义
4.2 朴素贝叶斯法的参数估计
极大似然估计
贝叶斯估计
-
使用极大似然估计可能出现所要估计的概率为0的情况。
会影响后验概率的计算结果,使分类产生偏差。
-
解决方法:
采用贝叶斯估计,在随机变量各个取值的频数上赋予一个正数 λ>0 。
Pλ(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)+Sjλi=1∑NI(xi(j)=ajl,yi=ck)+λ
-
当 λ=0 时,就是极大似然估计。
-
常取 λ=1 ,称为拉普拉斯平滑 Laplacian smoothing
-
显然对于任何 l=1,2,...,Sj,k=1,2,...,K 有
Pλ(X(j)=ajl∣Y=ck)>0l=1∑SjPλ(X(j)=ajl∣Y=ck)=1
可见,的确是一种概率分布。
-
先验概率的贝叶斯估计是
Pλ(Y=ck)=N+Kλi=1∑NI(yi=ck)+λ
算法
-
输入
-
训练数据 T={(x1,y1),(x2,y2),...,(xN,yN)} ,
其中 xi=(xi(1),xi(2),...,xi(n))T ,xi(j) 是第 i 个样本的第 j 个特征, xi(j)∈{aj1,aj2,...,ajSj} ,ajl 是第 j 个特征可能取的第 l 个值, j=1,2,...,n;l=1,2,...,Sj;yi∈{c1,c2,...,cK} 。
-
实例 x。
-
输出
实例 x 的分类。
-
算法
-
计算先验概率及条件概率
P(Y=ck)=Ni=1∑NI(yi=ck),k=1,2,...,K
P(X(j)=ajl∣Y=ck)=i=1∑NI(yi=ck)i=1∑NI(xi(j)=ajl,yi=ck)j=1,2,...,n;l=1,2,...,Sj;k=1,2,...K
-
对于给定的实例 x=(x(1),x(2),...,x(n))T ,计算
P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
-
确定实例 x 的类
y=argmaxckP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
这里算法采用的是极大似然估计,
若采用贝叶斯估计,则把(1)中的先验概率和条件概率替换成贝叶斯估计即可。
*4.3 示例
朴素贝叶斯1:极大似然估计
朴素贝叶斯2:贝叶斯估计
第5章 决策树
-
决策树 decision tree
一种基本的分类与回归方法。
5.1 决策树模型与学习
模型
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点 node 和有向边 directed edge 组成。
结点有两种类型:
- 内部结点 internal node
- 叶结点 leaf node
内部结点表示一个特征或属性,叶结点表示一个类。
if-then 规则
条件概率分布
5.2 特征选择
熵 entropy
-
表示随机变量不确定性的度量。
-
设 X 是一个取有限个值的离散随机变量,其概率分布为
P(X=xi)=pi,i=1,2,...,n
则随机变量 X 的熵定义为
H(X)=−i=1∑npilogpi
-
注:若 pi=0 ,则定义 0log0=0 。
-
通常,以 2 为底,或以自然对数 e 为底。
此时,熵的单位分别称作 比特bit 或 纳特nat 。
-
由定义可知,熵只依赖于 X 的分布,而与 X 的取值无关。
因此,也可以将 X 的熵记作 H(p) 。
-
熵越大,随机变量的不确定性就越大。
-
可知 0≤H(p)≤logn 。
条件熵 conditional entropy
-
表示已知随机变量 X 的条件下随机变量 Y 的不确定性。
-
设有随机变量 (X,Y) ,其联合概率分布为
P(X=xi,Y=yi)=pij,i=1,2,...,n;j=1,2,...,m
则条件熵定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望
H(Y∣X)=i=1∑npiH(Y∣X=xi)其中pi=P(X=xi),i=1,2,...,n
-
表示得知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度。
-
特征 A 对训练数据集 D 的信息增益 g(D,A) ,定义为集合 D 的经验熵 H(D) 与特征 A 给定条件下 D 的经验条件熵 H(D∣A) 之差,即
g(D,A)=H(D)−H(D∣A)
-
一般地,熵 H(D) 与条件熵 H(Y∣X) 之差称为互信息 mutual information。
-
决策树学习中的信息增益等价于训练数据集中类与特征的互信息。
-
经验熵 H(D)
表示对数据集 D 进行分类的不确定性。
-
经验条件熵 H(D∣A)
表示在特征 A 给定的条件下对数据集 D 进行分类的不确定性。
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别为 经验熵 empirical entropy 和 经验条件熵 empirical conditional entropy。
-
根据信息增益准则的特征选择方法
对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
算法
- 输入
- 输出
- 特征 A 对训练数据集 D 的信息增益 g(D,A)
注:下方的对数据集取绝对值符号,表示数据集的样本个数。
-
算法
-
计算数据集 D 的经验熵 H(D)
H(D)=−k=1∑K∣D∣∣Ck∣log2∣D∣∣Ck∣
-
计算特征 A 对数据集 D 的经验条件熵 H(D|A)
H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−i=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log2∣Di∣∣Dik∣
-
计算信息增益
g(D,A)=H(D)−H(D∣A)
-
校正问题
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。
使用信息增益比可以对这一问题进行校正。
-
特征 A 对训练数据集 D 的信息增益比 gR(D,A) 定义为其信息增益 g(D,A) 与训练数据集 D 关于特征 A 的值的熵 HA(D) 之比,即
gR(D,A)=HA(D)g(D,A)其中,HA(D)=−i=1∑n∣D∣∣Di∣log2∣D∣∣Di∣,n是特征A取值的个数
-
可以把 信息增益 改为 信息增益比 ,
同样算法即可。
5.3 决策树的生成
ID3算法
- 输入
- 训练数据集 D
- 特征集 A 阈值 ε
- 输出
- 算法
- 若 D 中所有实例属于同一类 Ck ,则 T 为单结点树,并将类 Ck 作为该结点的类标记,返回 T ;
- 若 $A= \emptyset $ ,则 T 为单结点树,并将 D 中实例数最大的类 Ck 作为该结点的类标记,返回 T ;
- 否则,按 “信息增益”算法,计算 A 中各特征对 D 的信息增益,选择信息增益最大的特征 Ag ;
- 如果 Ag 的信息增益小于阈值 ε ,则置 T 为单结点树,并将 D 中实例数最大的类 Ck 作为该结点的类标记,返回 T ;
- 否则,对 Ag 的每一种可能值 ai ,依 Ag=ai 将 D 分割为若干非空子集 Di ,将 Di 中实例数最大的类作为标记,构建子结点,由结点及其子节点构成构成树 T ,返回 T ;
- 对第 i 个子结点,以 Di 为训练集,以 A−{Ag} 为特征集,递归地调用步骤(1)–(5),得到子树Ti ,返回 Ti 。
C4.5算法
- 与 ID3算法一样,只是改进为使用信息增益比来选择特征。
5.4 决策树的剪枝
过于复杂的决策树
决策树生成算法递归地产生决策树,直到不能继续下去为止。
这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确——过拟合!
损失函数
-
损失函数
Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣其中,经验熵Ht(T)=−k∑NtNtklogNtNtk
把右边第一项记作
C(T)=t=1∑∣T∣NtHt(T)=−t=1∑∣T∣k=1∑KNtklogNtNtk
因此,简写为
Cα(T)=C(T)+α∣T∣
- 其中,C(T) 表示模型对训练数据的预测误差,即模型与训练数据的拟合程度
- ∣T∣ 表示模型复杂度
- 参数 α≥0 控制两者之间的影响
- α 较大:选择更简单的模型
- α 较小:选择更复杂的模型
- α=0 :只考虑训练数据的拟合程度,而不考虑模型的复杂度,此时模型很复杂。
- 当 α 确定时,选择损失函数最小的模型(损失函数最小的子树)
- 子树越大,往往与训练数据的拟合越好,但是模型复杂度越高;
- 子树越小,模型复杂度越低,但往往与训练数据的拟合不好。
-
决策树的生成
只考虑通过提高信息增益(或信息增益比)对训练数据进行更好的拟合。
学习局部的模型。
-
决策树的剪枝
通过优化损失函数并考虑减小模型复杂度。
学习整体的模型。
算法
-
输入
- 生成算法产生的整个树 T
- 参数 α
-
输出
-
算法
-
计算每个结点的经验熵。
-
递归地从树的叶结点向上回缩。
设一组叶结点回缩到其父结点之前与之后的整体树分别为 TB 和 TA ,其对应的损失函数值分别是 Cα(TB) 与 Cα(TA) ,如果
Cα(TA)≤Cα(TB)
则进行剪枝,即将父结点变为新的叶结点。
-
返回(2),直到不能继续为止,得到损失函数最小的子树 Tα 。
注意:
上式只需考虑两个树的损失函数的差,其计算可以在局部进行。
因此,本算法可以由一种动态规划的算法实现。
具体可参见 [文献10:Li H, Abe N. Generalizing case frames using a thesaurus and the MDL principle. Computatuional Linguistics, 1998, 24(2): 217-224.(无链接,请自查)]
5.5 CART 算法
CART 生成
- 构建二叉决策树
- 回归树:平方误差最小化准则
- 分类树:基尼指数 Gini index 最小化准则
回归树生成
最小二乘回归树生成算法
基尼指数 Gini index
-
基尼指数 Gini index
分类问题中,假设有 K 个类,样本点属于第 k 类的概率为 pk ,则概率分布的基尼指数定义为
Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
对于给定的样本集合 D,其基尼指数为
Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2
这里,Ck 是 D 中属于第 k 类的样本子集, K 是类的个数。
-
如果样本集合 D 根据特征 A 是否取某一值 a 被分割成 D1 和 D2 两部分,即
D1={(x,y)∈D∣A(x)=a},D2=D−D1
则在特征 A 的条件下,集合 D 的基尼指数定义为
Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
-
基尼指数 G(D) 表示集合 D 的不确定性。
基尼指数 G(D,A) 表示经 A=a 分割后集合 D 的不确定性。
-
基尼指数值越大,样本集合的不确定性越大,这一点与 熵 相似。
分类树生成
CART 剪枝
-
输入
CART 算法生成的决策树 T0
-
输出
最优决策树 Tα
-
算法
-
设 k=0,T=T0
-
设 α=+∞
-
自上而下地对各内部结点 t 计算 C(Tt) ,∣Tt∣ 以及
g(t)=∣Tt∣−1C(t)−C(Tt)α=min(α,g(t))
这里,Tt 表示以 t 为根结点的子树,C(Tt) 是对训练数据的预测误差,∣Tt∣ 是 Tt 的叶结点个数。
-
对 g(t)=α 的内部结点 t 进行剪枝,并对叶结点 t 以多数表决法决定其类,得到树 T 。
-
设 k=k+1,αk=α,Tk=T。
-
如果 Tk 不是由根结点及两个叶结点构成的树,则回到步骤(2);否则令 Tk=Tn 。
-
采用交叉验证法在子树序列 T0,T1,...,Tn 中选取最优子树 Tα。
*5.6 示例
题目
寻找最优特征
ID3 算法
CART 算法
第6章 逻辑斯谛回归与最大熵模型
6.1 逻辑斯谛回归模型
逻辑斯谛分布
-
设 X 是连续随机变量, X 服从逻辑斯谛分布是指 X 具有下列分布函数和密度函数:
F(x)=P(X≤x)=1+e−(x−μ)/γ1f(x)=F′(x)=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ其中,μ为位置参数,γ>0为形状参数。
-
函数图像见下。
-
分布函数属于逻辑斯谛函数,其图形是一条 S 形曲线 sigmoid curve。
该曲线以 (μ,21) 为中心对称,即满足
F(−x+μ)−21=−F(x+μ)+21
-
曲线在中心附近i增长速度较快,在两端增长速度较慢。
-
形状参数 γ 的值越小,曲线在中心附近增长得越快。
二项逻辑斯谛回归模型
-
二项逻辑斯谛回归模型 binomial logistic regression model
二项逻辑斯谛回归模型是如下的条件概率分布:
P(Y=1∣x)=1+exp(w⋅x+b)exp(w⋅x+b)P(Y=0∣x)=1+exp(w⋅x+b)1这里,x∈Rn是输入,Y∈{0,1}是输出,w∈Rn和b∈R是参数,w称为权值向量,b称为偏置,w⋅x为w和x的内积。
-
为了方便,可以改写如下:
w=(w(1),w(2),...,w(n),b)Tx=(x(1),x(2),...,x(n),1)T
此时,可以记为
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)P(Y=0∣x)=1+exp(w⋅x)1
-
对于逻辑斯谛回归而言,对数几率
log1−P(Y=1∣x)P(Y=1∣x)=w⋅x
因此,在逻辑斯谛回归模型中,输出 Y=1 的对数几率是输入 x 的线性函数。
-
同样,反过来,
通过逻辑斯谛回归模型定义式可以将线性函数 w⋅x 转换为概率:
P(Y=1∣x)=1+exp(w⋅x)exp(w⋅x)
-
线性函数的值越接近正无穷,概率值越接近1;
线性函数的值越接近负无穷,概率值越接近0。
模型参数估计
-
可以应用极大似然估计,求出 w 的估计值。
-
设
P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)
-
似然函数
i=1∏N[π(xi)]yi[1−π(xi)]1−yi
-
对数似然函数
L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi)]
-
对 L(w) 求极大值,得到 w 的估计值。
-
假设求出,则逻辑斯谛回归模型为
P(Y=1∣x)=1+exp(w^⋅x)exp(w^⋅x)P(Y=0∣x)=1+exp(w^⋅x)1
多项逻辑斯谛回归
-
上述是二项分类模型。
可以推广为多项逻辑斯谛回归模型 multi-nominal logistic regression model,用于多项分类。
-
设离散型随机变量 Y 的取值为 {1,2,...,K} ,那么多项逻辑斯谛回归模型是
P(Y=k∣x)=1+k=1∑K−1exp(wk⋅x)exp(wk⋅x),k=1,2,...,K−1P(Y=K∣x)=1+k=1∑K−1exp(wk⋅x)1这里,x∈Rn+1,wk∈Rn+1。
-
而参数估计方法,仍然从二项逻辑斯谛的方法推广即可。
6.2 最大熵模型
最大熵原理
-
最大熵原理
学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
即,在满足约束条件的模型集合中选取熵最大的模型。
-
假设离散随机变量 X 的概率分布是 P(X) ,则其熵是
H(P)=−x∑P(x)logP(x)
熵满足不等式 0≤H(P)≤log∣X∣ ,其中绝对值表示取值个数。
直观来看,最大熵原理认为,要选择的概率模型首先必须满足已有的事实,即约束条件。
在没有更多信息的情况下,那些不确定的部分都是“等可能的”。
要知道,等可能不容易操作,而最大熵原理通过熵的最大化来表示等可能性,从而成为一个可优化的数值指标。
最大熵模型
-
假设满足所有约束条件的模型集合为
C≡{P∈P∣EP(fi)=EP~(fi),i=1,2,...,n}
定义在条件概率分布 P(Y∣X) 上的条件熵为
H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
则模型集合 C 中条件熵 H(P) 最大的模型称为 最大熵模型。
-
最大熵模型的学习
求解最大熵模型的学习过程,可以转为约束最优化问题。
就是求解:
P∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)s.t.EP(fi)−EP~(fi)=0,i=1,2,...,ny∑P(y∣x)=1
-
具体解法可以引进拉格朗日乘子,定义拉格朗日函数,并转换为对偶问题(先证明原始问题与对偶问题的解等价),求偏导等于0,即可解出 w∗ 。
极大似然估计?
可以证明,对偶函数的极大似然估计等价于最大熵模型的极大似然估计。
6.3 模型学习的最优化算法
改进的迭代尺度法 IIS
-
最大熵模型
Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))其中,Zw(x)=y∑exp(i=1∑nwifi(x,y))
-
对数似然函数
L(w)=x,y∑P~(x,y)i=1∑nwifi(x,y)−x∑P~(x)logZw(x)
-
目标
通过极大似然估计,求出对数似然函数的极大值 w^ 。
-
改进的迭代尺度法 improved iterative scaling, IIS
一种最大熵模型学习的最优化算法。
- IIS的想法是:假设当前参数向量是 w=(w1,w2,...,wn)T ,我们希望找到一个新的参数向量 w+δ=(w1+δ1,w2+δ2,...,wn+δn)T 使得对数似然函数值增大,然后更新 w→w+δ 即可。
-
输入
- 特征函数 f1,f2,...,fn
- 经验分布 P~(X,Y)
- 模型 Pw(y∣x)
-
输出
- 最优参数值 wi∗
- 最优模型 Pw∗
-
算法
-
对所有 i∈{1,2,...,n},取初值 wi=0 。
-
对每一 i∈{1,2,...,n}
(a)令 δi 是方程
x,y∑P~(x)P(y∣x)fi(x,y)exp(δif#(x,y))=EP~(fi)其中,f#(x,y)=i=1∑nfi(x,y)
的解。
(b)更新 wi 的值: wi←wi+δi 。
-
如果不是所有的 wi 都收敛,重复步骤(2)。
关键在于步骤(a),即求解 δi 。
拟牛顿法
-
最大熵模型
Pw(y∣x)=y∑exp(i=1∑nwifi(x,y))exp(i=1∑nwifi(x,y))
-
目标函数
w∈Rnminf(w)=x∑P~(x)logy∑exp(i=1∑nwifi(x,y))−x,y∑P~(x,y)i=1∑nwifi(x,y)
-
梯度
g(w)=(∂w1∂f(w),∂w2∂f(w),...,∂wn∂f(w))T其中,∂w∂f(w)=x,y∑P~(x)Pw(y∣x)fi(x,y)−EP~(fi),i=1,2,...,n
-
输入
- 特征函数 f1,f2,...,fn
- 经验分布 P~(X,Y)
- 目标函数 f(w)
- 梯度 g(w)=∇f(w)
- 精度要求 ε
-
输出
- 最优参数值 wi∗
- 最优模型 Pw∗
-
算法
-
选定初始点 w(0) ,取 B0 为正定对称矩阵,置 k=0 ;
-
计算 gk=g(w(k)) 。若 ∣∣gk∣∣<ε ,则停止计算,得 w∗=w(k) ;否则转(3);
-
由 Bkpk=−gk 求出 pk ;
-
一维搜索:求 λk 使得
f(w(k)+λkpk)=λ≥0minf(w(k)+λpk)
-
置 w(k+1)=w(k)+λkpk ;
-
计算 gk+1=g(w(k+1)) ,若 ∣∣gk+1∣∣<ε ,则停止计算,得 w∗=w(k+1) ;否则,按下面式子求出 Bk+1 :
Bk+1=Bk+ykTδkykykT−δkTBkδkBkδkδkTBk其中,yk=gk+1−gk,δk=w(k+1)−w(k)。
-
置 k=k+1 ,转(3)。
*6.4 示例
最大熵原理说明
最大熵模型
*第7章 支持向量机
注:支持向量机SVM 被认为可能已经淘汰的算法。
因此,仅阅览书籍,并没有写 Notes。
但是本章的内容是较长的,具体参见书籍[《统计学习方法》第二版 P111 - P154(无链接)]
以下只简单解释一下支持向量机,列出本章的目录,其余参见书籍。
7.1 线性可分支持向量机与硬间隔最大化
7.2 线性支持向量机与软间隔最大化
7.3 非线性支持向量机与核函数
7.4 序列最小最优化算法
第8章 Boosting
8.1 AdaBoost 算法
-
输入
-
训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中 $x_i\in \mathcal{X} \subseteq R^n, , y_i \in \mathcal{Y} = { -1,+1} $
-
弱学习算法
-
输出
最终分类器 G(x)
-
算法流程
-
初始化训练数据的权值分布
D1=(w11,...,w1i,...,w1N),w1i=N1,i=1,2,...,N
-
对 m=1,2,...,M
(a)使用具有权值分布 Dm 的训练数据集学习,得到基本分类器
Gm(x):X→{−1,+1}
(b)计算 Gm(x) 在训练数据集上的分类误差率
em=i=1∑NP(Gm(xi)=yi)=i=1∑NwmiI(Gm(xi)=yi)
(c)计算 Gm(x) 的系数
αm=21logem1−em其中,对数为自然对数。
(d)更新训练数据集的权值分布
Dm+1=(wm+1,1,...,wm+i,i,...,wm+1,N)wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,...,N其中,Zm是规范化因子Zm=i=1∑Nwmiexp(−αmyiGm(xi))它使Dm+1成为一个概率分布。
-
构建基本分类器的线性组合
f(x)=m=1∑MαmGm(x)
得到最终分类器
G(x)=sign(f(x))=sign(m=1∑MαmGm(x))
说明
-
Gm(x) 的系数 αi 表示在Gm(x) 在最终分类器中的重要性。
当 wm≤21 时,αm≥0 ,并且 αm 随着 em 的减小而增大,
所以分类误差率越小的基本分类器在最终分类器中的作用越大。
-
更新后,误分类样本在下一轮学习中起更大的作用。
-
不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起到不同的作用,这是 AdaBoost 算法的一个特点。
-
线性组合 f(x) 实现 M 个基本分类器的加权表决。
8.2 AdaBoost 算法的训练误差分析
-
AdaBoost 最基本的性质是它能在学习过程中不断减少训练误差,即在训练数据集上的分类误差率。
-
AdaBoost 的训练误差界
AdaBoost算法最终分类器的训练误差界为N1i=1∑NI(G(xi)=yi)≤N1i∑exp(−yif(xi))=m∏Zm其中,G(x),f(x)和Zm分别由AdaBoost算法中式子给出。
-
特殊地,二类分类问题 AdaBoost 的训练误差界
m=1∏MZm其中,γm=21−em。=m=1∏M[2em(1−em)]=m=1∏M(1−4γm2)≤exp(−2m=1∑Mγm2)
-
推论
如果存在γ>0,对所有m有γm≥γ,则N1i=1∑NI(G(xi)=yi)≤exp(−2Mγ2)
-
注意
AdaBoost 算法不需要知道下界 γ 。
与早期的 Boosting 不同, AdaBoost 具有适应性,即它能适应弱分类器各自的训练误差率。
这就是它名字的由来 适应的提升,Adaptive Boosting。
8.3 AdaBoost 算法的解释
前向分步算法
-
输入
- 训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} ;
- 损失函数 L(y,f(x)) ;
- 基函数集 {b(x;γ)}
-
输出
加法模型 f(x)
-
算法流程
-
最初化 f0(x)=0 ;
-
对 m=1,2,...,M
(a)极小化损失函数
(βm,γm)=argβ,γmini=1∑NL(yi,fm−1(xi)+βb(xi;γ))
得到参数 βm,γm 。
(b)更新
fm(x)=fm−1(x)+βmb(x;γ)
-
得到加法模型
f(x)=fM(x)=m=1∑Mβmb(x;γm)
这样,前向分步算法将同时求解从 m=1 到 M 所有参数 βm,γm 的优化问题简化为
逐次求解各个 βm,γm 的优化问题。
联系 AdaBoost
8.4 提升树
提升树模型
-
Boosting 实际采用加法模型(即基函数的线性组合)与前向分步算法。
-
以决策树为基函数的 Boosting 称为提升树 boosting tree。
fM(x)=m=1∑MT(x;Θm)其中,T(x;Θm)表示决策树,Θm为决策树的参数,M为树的个数。
分类问题的提升树算法
回归问题的提升树算法
-
输入
训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)},xi∈X⊆Rn,yi∈Y⊆R
-
输出
提升树 fM(x)
-
算法流程
-
初始化 f0(x)=0 。
-
对于 m=1,2,...,M
(a)按下式计算残差
T(x;Θ)=j=1∑JcjI(x∈Rj)其中参数Θ={(R1,c1),(R2,c2),...,(RJ,cJ)}表示树的区域划分和各区域上的常数。J是回归树的复杂度,即叶结点个数。rmi=yi−fm−1(xi),i=1,2,...,N
(b)拟合残差 rmi 学习一个回归树,得到 T(x;Θm) 。
(c)更新 fm(x)=fm−1(x)+T(x;Θm) 。
-
得到回归问题提升树
fM(x)=m=1∑MT(x;Θm)
梯度提升
-
提升树当损失函数是平方损失和指数损失函数时,每一步的优化是很简单的。
-
但是对于一般损失函数而言,往往每一步优化并不那么容易。
针对这个问题,Freidman 提出了梯度提升 gradient boosting 算法。
-
梯度提升
利用最速下降法的近似方法,关键是利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树。
-
输入
- 训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)},xi∈X⊆Rn,yi∈Y⊆R
- 损失函数 L(y,f(x))
-
输出
回归树 f^(x)
-
算法流程
-
初始化
f0(x)=argcmini=1∑NL(yi,c)
-
对 m=1,2,..,M
(a)对 i=1,2,...,N 计算
rmi=−[∂f(xi)∂L(yi,f(xi))]f(x)=fm−1(x)
(b)对 rmi 拟合一个回归树,得到第 m 棵树的叶结点区域 Rmi,j=1,2,...,J 。
(c)对 j=1,2,...,J 计算
Cmi=argcminxi∈Rmj∑L(yi,fm−1(xi)+c)
(d)更新 fm(x)=fm−1(x)+j=1∑JcmjI(x∈Rmj)
-
得到回归树
f^(x)=fM(x)=m=1∑Mj=1∑JcmjI(x∈Rmj)
第2(a)步,计算损失函数的负梯度在当前模型的值,将它作为残差的估计。
- 对于平方损失函数,它就是通常所说的残差;
- 对于一般损失函数,它就是残差的近似值。
*8.5 示例
AdaBoost 算法
提升树
*第9章 EM算法及其推广
*第10章 隐马尔可夫模型
*第11章 条件随机场
本3章可以在需要使用时,再特定阅览,此处不再写 Notes。
可能另开 Notes 专门记录,关注其他 Notes。
第12章 监督学习方法总结
至此,监督学习篇章的所有内容已经结束!