(N-1)$时,实对称矩阵$\mathbf{S}_w^{-1}\mathbf{S}_b$的秩至多为$N-1$,所以理论上至多能解出$N-1$个非零特征值$\lambda_{i}$及其对应的特征向量$\boldsymbol{w}_i$。但是$\mathbf{S}_w^{-1}\mathbf{S}_b$的秩是受当前训练集中的数据分布所影响的,因此并不一定为$N-1$。此外,当数据分布本身就足够理想时,即使能求解出多个$\boldsymbol{w}_i$,但是实际可能只需要求解出1个$\boldsymbol{w}_i$便可将同类样本聚集,异类样本完全分离。
当$d>(N-1)$时,实对称矩阵$\mathbf{S}_w^{-1}\mathbf{S}_b$的秩至多为$N-1$的证明过程如下:由于$\boldsymbol{\mu}=\frac{1}{N}\sum\limits_{i=1}^{N}m_i\boldsymbol{\mu}_i$,所以$\boldsymbol{\mu}_1-\boldsymbol{\mu}$一定可以由$\boldsymbol{\mu}$和$\boldsymbol{\mu}_2,...,\boldsymbol{\mu}_N$线性表示,因此矩阵$\mathbf{S}_b$中至多有$\boldsymbol{\mu}_2-\boldsymbol{\mu},...,\boldsymbol{\mu}_N-\boldsymbol{\mu}$共$N-1$个线性无关的向量,由于此时$d> (N-1)$,所以$\mathbf{S}_b$的秩$r(\mathbf{S}_b)$至多为$N-1$。同时假设矩阵$\mathbf{S}_w$满秩,即$r(\mathbf{S}_w)=r(\mathbf{S}_w^{-1})=d$,则根据矩阵秩的性质$r(\mathbf{A}\mathbf{B})\leqslant\min\{r(\mathbf{A}),r(\mathbf{B})\}$可知,$\mathbf{S}_w^{-1}\mathbf{S}_b$的秩也至多为$N-1$。
## 3.5 多分类学习
### 3.5.1 图3.5的解释
图3.5中所说的"海明距离"是指两个码对应位置不相同的个数,"欧式距离"则是指两个向量之间的欧氏距离,例如图3.5(a)中第1行的编码可以视作为向量$(-1, +1, -1, +1, +1)$,测试示例的编码则为$(-1, -1, +1, -1, +1)$,其中第2个、第3个、第4个元素不相同,所以它们的海明距离为3,欧氏距离为$\sqrt{(-1-(-1))^2+(1-(-1))^2+(-1-1)^2+(1-(-1))^2+(1-1)^2}=\sqrt{0+4+4+4+0}=2\sqrt{3}$。需要注意的是,在计算海明距离时,与"停用类"不同算作0.5,例如图3.5(b)中第2行的海明距离计算公式为$0.5+0.5+0.5+0.5=2$。
## 3.6 类别不平衡问题
对于类别不平衡问题,"西瓜书"2.3.1节中的"精度"通常无法满足该特殊任务的需求,例如"西瓜书"在本节第一段的举例:有998个反例和2个正例,若机器学习算法返回一个永远将新样本预测为反例的学习器则能达到99.8%的精度,显然虚高,因此在类别不平衡时常采用2.3节中的查准率、查全率和F1来度量学习器的性能。
## 参考文献
[1] 王燕军. 最优化基础理论与方法. 复旦大学出版社, 2011.
[2] Wikipedia contributors. Matrix calculus, 2022.
[3] 张贤达. 矩阵分析与应用. 第 2 版. 清华大学出版社, 2013.
================================================
FILE: docs/chapter4/chapter4.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=7
>
> 本章配套代码:https://github.com/datawhalechina/machine-learning-toy-code/blob/main/%E8%A5%BF%E7%93%9C%E4%B9%A6%E4%BB%A3%E7%A0%81%E5%AE%9E%E6%88%98.md
>
> 本章配套代码视频教程:https://space.bilibili.com/431850986/lists/3884942
# 第4章 决策树
本章的决策树算法背后没有复杂的数学推导,其更符合人类日常思维方式,理解起来也更为直观,其引入的数学工具也仅是为了让该算法在计算上可行,同时"西瓜书"在本章列举了大量例子,因此本章的算法会更为通俗易懂。
## 4.1 基本流程
作为本章的开篇,首先要明白决策树在做什么。正如"西瓜书"中图4.1所示的决策过程,决策树就是不断根据某属性进行划分的过程(每次决策时都是在上次决策结果的基础之上进行),即"if......elif......else......"的决策过程,最终得出一套有效的判断逻辑,便是学到的模型。但是,划分到什么时候就停止划分呢?这就是图4.2中的3个"**return**"代表的递归返回,下面解释图4.2中的3个递归返回。
首先,应该明白决策树的基本思想是根据某种原则(即图4.2第8行)每次选择一个属性作为划分依据,然后按属性的取值将数据集中的样本进行划分,例如将所有触感为"硬滑"的西瓜的分到一起,将所有触感为"软粘"的西瓜分到一起,划分完得到若干子集,接着再对各个子集按照以上流程重新选择某个属性继续递归划分,然而在划分的过程中通常会遇到以下几种特殊情况。
(1)若递归划分过程中某个子集中已经只含有某一类的样本(例如只含好瓜),那么此时划分的目的已经达到了,无需再进行递归划分,此即为递归返回的情形(1),最极端的情况就是初始数据集中的样本全是某一类的样本,那么此时决策树算法到此终止,建议尝试其他算法;
(2)递归划分时每次选择一个属性作为划分依据,并且该属性通常不能重复使用(仅针对离散属性),原因是划分后产生的各个子集在该属性上的取值相同。例如本次根据触感对西瓜样本进行划分,那么后面对划分出的子集(及子集的子集......)再次进行递归划分时不能再使用"触感",图4.2第14行的$A \backslash\{a_*\}$表示的便是从候选属性集合$A$中将当前正在使用的属性$a_*$排除。由于样本的属性个数是有限的,因此划分次数通常不超过属性个数。若所有属性均已被用作过划分依据,即$A=\varnothing$,此时子集中仍含有不同类样本(例如仍然同时含有好瓜和坏瓜),但是因已无属性可用作划分依据,此时只能少数服从多数,以此子集中样本数最多的类为标记。由于无法继续划分的直接原因是各个子集中的样本在各个属性上的取值都相同,所以即使$A\neq\varnothing$,但是当子集中的样本在属性集合$A$上取值都相同时,等价视为$A=\varnothing$,此即为递归返回的情形(2);
(3)根据某个属性进行划分时,若该属性多个属性值中的某个属性值不包含任何样本(例如未收集到),例如对当前子集以"纹理"属性来划分,"纹理"共有3种取值:清晰、稍糊、模糊,但发现当前子集中并无样本"纹理"属性取值为模糊,此时对于取值为清晰的子集和取值为稍糊的子集继续递归,而对于取值为模糊的分支,因为无样本落入,将其标记为叶结点,其类别标记为训练集$D$中样本最多的类,即把全体样本的分布作为当前结点的先验分布。其实就是一种盲猜,既然是盲猜,那么合理的做法就是根据已有数据用频率近似概率的思想假设出现频率最高的便是概率最大的。注意,此分支必须保留,因为测试时,可能会有样本落入该分支。此即为递归返回的情形(3)。
## 4.2 划分选择
本节介绍的三种划分选择方法,即信息增益、增益率、基尼指数分别对应著名的ID3、C4.5和CART三种决策树算法。
### 4.2.1 式(4.1)的解释
该式为信息论中的信息熵定义式,以下先证明$0\leqslant\operatorname{Ent}(D)\leqslant\log_{2}|\mathcal{Y}|$,然后解释其最大值和最小值所表示的含义。
已知集合$D$的信息熵的定义为
$$
\operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log_{2} p_{k}
$$
其中,$|\mathcal{Y}|$表示样本类别总数,$p_k$表示第$k$类样本所占的比例,有$0\leqslant p_k \leqslant 1,\sum_{k=1}^{n}p_k=1$。若令$|\mathcal{Y}|=n,p_k=x_k$,那么信息熵$\operatorname{Ent}(D)$就可以看作一个$n$元实值函数,即
$$
\operatorname{Ent}(D)=f(x_1,\cdots,x_n)=-\sum_{k=1}^{n} x_{k} \log_{2} x_{k}
$$
其中$0 \leqslant x_k \leqslant 1,\sum_{k=1}^{n}x_k=1$。
下面考虑求该多元函数的最值. 首先我们先来求最大值,如果不考虑约束$0
\leqslant x_k \leqslant
1$而仅考虑$\sum_{k=1}^{n}x_k=1$,则对$f(x_1,\cdots,x_n)$求最大值等价于如下最小化问题:
$$
\begin{array}{ll}{
\operatorname{min}} & {\sum\limits_{k=1}^{n} x_{k} \log_{2} x_{k} }\\
{\text { {\rm s.t.} }} & {\sum\limits_{k=1}^{n}x_k=1}
\end{array}
$$
显然,在$0 \leqslant x_k \leqslant 1$时,此问题为凸优化问题。对于凸优化问题来说,使其拉格朗日函数的一阶偏导数等于0的点即最优解。根据拉格朗日乘子法可知,该优化问题的拉格朗日函数为
$$
L(x_1,\cdots,x_n,\lambda)=\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+
\lambda\left(\sum_{k=1}^{n}x_k-1\right)
$$
其中,$\lambda$为拉格朗日乘子。对$L(x_1,\cdots,x_n,\lambda)$分别关于$x_1,\cdots,x_n,\lambda$求一阶偏导数,并令偏导数等于0可得
$$
\begin{aligned}
\dfrac{\partial L(x_1,\cdots,x_n,\lambda)}{\partial
x_1}&=\dfrac{\partial }{\partial x_1} \left[\sum_{k=1}^{n} x_{k}
\log _{2} x_{k}+\lambda
\left(\sum_{k=1}^{n}x_k-1\right)\right]=0\\
&=\log _{2} x_{1}+x_1\cdot \dfrac{1}{x_1\ln2}+\lambda=0 \\
&=\log _{2} x_{1}+\dfrac{1}{\ln2}+\lambda=0 \\
&\Rightarrow \lambda=-\log _{2} x_{1}-\dfrac{1}{\ln2}\\
\end{aligned}
$$
$$
\begin{aligned}
\dfrac{\partial L(x_1,\cdots,x_n,\lambda)}{\partial x_2}&=\dfrac{\partial }{\partial x_2}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n}x_k-1\right)\right]=0\\
&\Rightarrow \lambda=-\log _{2} x_{2}-\dfrac{1}{\ln2}\\
\cdots\\
\dfrac{\partial L(x_1,\cdots,x_n,\lambda)}{\partial x_n}&=\dfrac{\partial }{\partial x_n}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n}x_k-1\right)\right]=0\\
&\Rightarrow \lambda=-\log _{2} x_{n}-\dfrac{1}{\ln2};\\
\dfrac{\partial L(x_1,\cdots,x_n,\lambda)}{\partial \lambda}&=\dfrac{\partial }{\partial \lambda}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n}x_k-1\right)\right]=0\\
&\Rightarrow \sum_{k=1}^{n}x_k=1\\
\end{aligned}
$$
整理一下可得
$$
\left\{ \begin{array}{lr}
\lambda=-\log _{2} x_{1}-\frac{1}{\ln2}=-\log _{2} x_{2}-\frac{1}{\ln2}=\cdots=-\log _{2} x_{n}-\frac{1}{\ln2} \\
\sum\limits_{k=1}^{n}x_k=1
\end{array}\right.
$$
由以上两个方程可以解得
$$
x_1=x_2=\cdots=x_n=\dfrac{1}{n}
$$
又因为$x_k$还需满足约束$0 \leqslant x_k \leqslant 1$,显然$0\leqslant\frac{1}{n}\leqslant
1$,所以$x_1=x_2=\cdots=x_n=\frac{1}{n}$是满足所有约束的最优解,即当前最小化问题的最小值点,同时也是$f(x_1,\cdots,x_n)$的最大值点。将$x_1=x_2=\cdots=x_n=\frac{1}{n}$代入$f(x_1,\cdots,x_n)$中可得
$$
f\left(\dfrac{1}{n},\cdots,\dfrac{1}{n}\right)
=-\sum_{k=1}^{n} \dfrac{1}{n} \log _{2}
\dfrac{1}{n}=-n\cdot\dfrac{1}{n} \log _{2} \dfrac{1}{n}=\log _{2}
n
$$
所以$f(x_1,\cdots,x_n)$在满足约束$0 \leqslant x_k \leqslant 1,\sum_{k=1}^{n}x_k=1$时的最大值为$\log _{2} n$。
下面求最小值。如果不考虑约束$\sum_{k=1}^{n}x_k=1$而仅考虑$0 \leqslant x_k \leqslant 1$,则$f(x_1,\cdots,x_n)$可以看作$n$个互不相关的一元函数的和,即
$$
f(x_1,\cdots,x_n)=\sum_{k=1}^{n} g(x_k)
$$
其中,$g(x_k)=-x_{k} \log _{2} x_{k},0 \leqslant x_k \leqslant 1$。那么当$g(x_1),g(x_2),\cdots,g(x_n)$分别取到其最小值时,$f(x_1,\cdots,x_n)$也就取到了最小值,所以接下来考虑分别求$g(x_1),g(x_2),\cdots,g(x_n)$各自的最小值。
由于$g(x_1),g(x_2),\cdots,g(x_n)$的定义域和函数表达式均相同,所以只需求出$g(x_1)$的最小值也就求出了$g(x_2),\cdots,g(x_n)$的最小值。下面考虑求$g(x_1)$的最小值,首先对$g(x_1)$关于$x_1$求一阶和二阶导数,有
$$
g^{\prime}(x_1)=\dfrac{{\rm d}(-x_{1} \log _{2} x_{1})}
{{\rm d} x_1}=-\log _{2} x_{1}-x_1\cdot \dfrac{1}{x_1\ln2}=-\log
_{2} x_{1}-\dfrac{1}{\ln2}
$$
$$
g^{\prime\prime}(x_1)=\dfrac{{\rm d}\left(g^{\prime}(x_1)\right)}
{{\rm d} x_1}=\dfrac{{\rm d}\left(-\log _{2}
x_{1}-\dfrac{1}{\ln2}\right)}{{\rm d}
x_1}=-\dfrac{1}{x_{1}\ln2}
$$
显然,当$0 \leqslant x_k \leqslant
1$时$g^{\prime\prime}(x_1)=-\frac{1}{x_{1}\ln2}$恒小于0,所以$g(x_1)$是一个在其定义域范围内开口
向下的凹函数,那么其最小值必然在边界取。分别取$x_1=0$和$x_1=1$,代入$g(x_1)$可得
$$
g(0)=-0\log _{2} 0=0
$$
$$
g(1)=-1\log _{2} 1=0
$$
**(计算信息熵时约定:若$x=0$,则$x\log_2 x=0$)**
所以,$g(x_1)$的最小值为0,同理可得$g(x_2),\cdots,g(x_n)$的最小值也都为0,
即$f(x_1,\cdots, x_n)$的最小值为0。但是,此时仅考虑约束$0 \leqslant x_k \leqslant 1$,而未考虑$\sum_{k=1}^{n}x_k=1$。若考虑约束$\sum_{k=1}^{n}x_k=1$,那么$f(x_1,\cdots,x_n)$的最小值一定大于等于0。如果令某个$x_k=1$,那么根据约束$\sum_{k=1}^{n}x_k=1$可知$x_1=x_2=\cdots=x_{k-1}=x_{k+1}=\cdots=x_n=0$,将其代入$f(x_1,\cdots,x_n)$可得
$$
\begin{aligned}
&f(0,0,\cdots,0,1,0,\cdots,0)\\
=&-0 \log _{2}0-0 \log _{2}0-\cdots-0 \log _{2}0-1 \log _{2}1-0
\log _{2}0-\cdots-0 \log _{2}0=0
\end{aligned}
$$
所以$x_k=1,x_1=x_2=\cdots=x_{k-1}=x_{k+1}=\cdots=x_n=0$一定是$f(x_1,\cdots,x_n)$在满足约束$\sum_{k=1}^{n}x_k=1$和$0\leqslant x_k \leqslant 1$的条件下的最小值点,此时$f$取到最小值0。
综上可知,当$f(x_1,\cdots,x_n)$取到最大值时:$x_1=x_2=\cdots=x_n=\frac{1}{n}$,此时样本集合纯度最低;当$f(x_1,\cdots,x_n)$取到最小值时:$x_k=1,x_1=x_2=\cdots=x_{k-1}=x_{k+1}=\cdots=x_n=0$,此时样本集合纯度最高。
### 4.2.2 式(4.2)的解释
此为信息增益的定义式。在信息论中信息增益也称为"互信息",表示已知一个随机变量的信息后另一个随机变量的不确定性减少的程度。
下面给出互信息的定义,在此之前,还需要先解释一下什么是"条件熵"。条件熵表示的是在已知一个随机变量的条件下,另一个随机变量的不确定性。具体地,假设有随机变量$X$和$Y$,且它们服从以下联合概率分布
$$
P(X = x_{i},Y = y_{j}) = p_{ij},\quad i = 1,2,\cdots,n,\quad j = 1,2,\cdots,m
$$
那么在已知$X$的条件下,随机变量$Y$的条件熵为
$$
\operatorname{Ent}(Y|X) = \sum_{i=1}^np_i \operatorname{Ent}(Y|X = x_i)
$$
其中,$p_i = P(X = x_i) ,i =1,2,\cdots,n$。互信息定义为信息熵和条件熵的差,它表示的是已知一个随机变量的信息后使得另一个随机变量的不确定性减少的程度。具体地,假设有随机变量$X$和$Y$,那么在已知$X$的信息后,$Y$的不确定性减少的程度为
$$
\operatorname{I}(Y;X) = \operatorname{Ent}(Y) - \operatorname{Ent}(Y|X)
$$
此即互信息的数学定义。
所以式(4.2)可以理解为,在已知属性$a$的取值后,样本类别这个随机变量的不确定性减小的程度。若根据某个属性计算得到的信息增益越大,则说明在知道其取值后样本集的不确定性减小的程度越大,即"西瓜书"上所说的"纯度提升"越大。
### 4.2.3 式(4.4)的解释
为了理解该式的"固有值"的概念,可以将式(4.4)与式(4.1)对比理解。式(4.1)可重写为
$$
\operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_k \log _2 p_k=-\sum_{k=1}^{|\mathcal{Y}|} \frac{\left|D^k\right|}{|D|} \log _2 \frac{\left|D^k\right|}{|D|}
$$
其中$\frac{\left|D^k\right|}{|D|}=p_k$,为第$k$类样本所占的比例。与式(4.4)的表达式作一下对比
$$
\operatorname{IV}(a)=-\sum_{v=1}^V \frac{\left|D^v\right|}{|D|} \log _2 \frac{\left|D^v\right|}{|D|}
$$
其中$\frac{\left|D^v\right|}{|D|}=p_v$,为属性$a$取值为$a^v$的样本所占的比例。即式(4.1)是按样本的类别标记计算的信息熵,而式(4.4)是按样本属性的取值计算的信息熵。
### 4.2.4 式(4.5)的推导
假设数据集$D$中的样例标记种类共有三类,每类样本所占比例分别为$p_1$、$p_2$、$p_3$。现从数据集中随机抽取两个样本,两个样本类别标记正好一致的概率为
$$
p_1 p_1+p_2 p_2+p_3 p_3=\sum_{k=1}^{|\mathcal{Y}|=3} p_k^2
$$
两个样本类别标记不一致的概率为(即"基尼值")
$$
\operatorname{Gini}(D)=p_1 p_2+p_1 p_3+p_2 p_1+p_2 p_3+p_3 p_1+p_3 p_2=\sum_{k=1}^{|\mathcal{Y}|=3} \sum_{k^{\prime} \neq k} p_k p_{k^{\prime}}
$$
易证以上两式之和等于1,证明过程如下
$$
\begin{aligned}
&\sum_{k=1}^{|\mathcal{Y}|=3} p_k^2+\sum_{k=1}^{|\mathcal{Y}|=3} \sum_{k^{\prime} \neq k} p_k p_{k^{\prime}}\\
=&\left(p_1 p_1+p_2 p_2+p_3 p_3\right)+\left(p_1 p_2+p_1 p_3+p_2 p_1+p_2 p_3+p_3 p_1+p_3 p_2\right) \\
=&\left(p_1 p_1+p_1 p_2+p_1 p_3\right)+\left(p_2 p_1+p_2 p_2+p_2 p_3\right)+\left(p_3 p_1+p_3 p_2+p_3 p_3\right) \\
=&p_1\left(p_1+p_2+p_3\right)+p_2\left(p_1+p_2+p_3\right)+p_3\left(p_1+p_2+p_3\right) \\
=&p_1+p_2+p_3=1
\end{aligned}
$$
所以可进一步推得式(4.5)
$$
\operatorname{Gini}(D)=\sum_{k=1}^{|\mathcal{Y}|} \sum_{k^{\prime} \neq k} p_k p_{k^{\prime}}=1-\sum_{k=1}^{\mid \mathcal{Y |}} p_k^2
$$
从数据集中$D$任取两个样本,类别标记一致的概率越大表示其纯度越高(即大部分样本属于同一类),类别标记不一致的概率(即基尼值)越大表示纯度越低。
### 4.2.5 式(4.6)的解释
此为数据集$D$中属性$a$的基尼指数的定义,表示在属性$a$的取值已知的条件下,数据集$D$按照属性$a$的所有可能取值划分后的纯度。不过在构造CART决策树时并不会严格按照此式来选择最优划分属性,主要是因为CART决策树是一棵二叉树,如果用上式去选出最优划分属性,无法进一步选出最优划分属性的最优划分点。常用的CART决策树的构造算法如下[1]:
(1)考虑每个属性$a$的每个可能取值$v$,将数据集$D$分为$a=v$和$a\neq
v$两部分来计算基尼指数,即
$$
\operatorname{Gini\_index}(D,a) = \frac{|D^{a=v}|}{|D|}\operatorname{Gini}(D^{a=v})+\frac{|D^{a\neq v}|}{|D|}\operatorname{Gini}(D^{a\neq v})
$$
(2)选择基尼指数最小的属性及其对应取值作为最优划分属性和最优划分点;
(3)重复以上两步,直至满足停止条件。
下面以"西瓜书"中表4.2中西瓜数据集2.0为例来构造CART决策树,其中第一个最优划分属性和最优划分点的计算过程如下:以属性"色泽"为例,它有3个可能的取值:$\{\text{青绿}$,$\text{乌黑}$,$\text{浅白}\}$,
若使用该属性的属性值是否等于"青绿"对数据集$D$进行划分,则可得到2个子集,分别记为$D^1(\text{色泽}=\text{青绿}),D^2(\text{色泽}\not=\text{青绿})$。子集$D^1$包含编号$\{1,4,6,10,13,17\}$共6个样例,其中正例占$p_1=\frac{3}{6}$,反例占$p_2=\frac{3}{6}$;子集$D^2$包含编号$\{2,3,5,7,8,9,11,12,14,15,16\}$共11个样例,其中正例占$p_1=\frac{5}{11}$,反例占$p_2=\frac{6}{11}$,根据式(4.5)可计算出用"色泽=青绿"划分之后得到基尼指数为
$$
\begin{aligned}
&\operatorname{Gini\_index}(D,\text{色泽}=\text{青绿}) \\
=&\frac{6}{17}\times\left(1-\left(\frac{3}{6}\right)^2-\left(\frac{3}{6}\right)^2\right)+\frac{11}{17}\times\left(1-\left(\frac{5}{11}\right)^2-\left(\frac{6}{11}\right)^2\right)
= 0.497
\end{aligned}
$$
类似地,可以计算出不同属性取不同值的基尼指数如下:
$$
\operatorname{Gini\_index}(D,\text{色泽}=\text{乌黑})=0.456
$$
$$
\operatorname{Gini\_index}(D,\text{色泽}=\text{浅白})=0.426
$$
$$
\operatorname{Gini\_index}(D,\text{根蒂}=\text{蜷缩})=0.456
$$
$$
\operatorname{Gini\_index}(D,\text{根蒂}=\text{稍蜷})=0.496
$$
$$
\operatorname{Gini\_index}(D,\text{根蒂}=\text{硬挺})=0.439
$$
$$
\operatorname{Gini\_index}(D,\text{敲声}=\text{浊响})=0.450
$$
$$
\operatorname{Gini\_index}(D,\text{敲声}=\text{沉闷})=0.494
$$
$$
\operatorname{Gini\_index}(D,\text{敲声}=\text{清脆})=0.439
$$
$$
\operatorname{Gini\_index}(D,\text{纹理}=\text{清晰})=0.286
$$
$$
\operatorname{Gini\_index}(D,\text{纹理}=\text{稍稀})=0.437
$$
$$
\operatorname{Gini\_index}(D,\text{纹理}=\text{模糊})=0.403
$$
$$
\operatorname{Gini\_index}(D,\text{脐部}=\text{凹陷})=0.415
$$
$$
\operatorname{Gini\_index}(D,\text{脐部}=\text{稍凹})=0.497
$$
$$
\operatorname{Gini\_index}(D,\text{脐部}=\text{平坦})=0.362
$$
$$
\operatorname{Gini\_index}(D,\text{触感}=\text{硬挺})=0.494
$$
$$
\operatorname{Gini\_index}(D,\text{触感}=\text{软粘})=0.494
$$
特别地,对于属性"触感",由于它的可取值个数为2,所以其实只需计算其中一个取值的基尼指数即可。
根据上面的计算结果可知,$\operatorname{Gini\_index}(D,\text{纹理}=\text{清晰}) = 0.286$最小,所以选择属性"纹理"为最优划分属性并生成根节点,接着以"纹理=清晰"为最优划分点生成$D^1(\text{纹理}=\text{清晰})$、$D^2(\text{纹理}\not=\text{清晰})$两个子节点,对两个子节点分别重复上述步骤继续生成下一层子节点,直至满足停止条件。
以上便是CART决策树的构建过程,从构建过程可以看出,CART决策树最终构造出来的是一棵二叉树。CART除了决策树能处理分类问题以外,回归树还可以处理回归问题,下面给出CART回归树的构造算法。
假设给定数据集
$$
D = \{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),\cdots,(\boldsymbol{x}_N,y_N)\}
$$
其中$\boldsymbol{x}\in \mathbb{R}^d$为$d$维特征向量,$y\in\mathbb{R}$是连续型随机变量。这是一个标准的回归问题的数据集,若把每个属性视为坐标空间中的一个坐标轴,则$d$个属性就构成了一个$d$维的特征空间,而每个$d$维特征向量$\boldsymbol{x}$就对应了$d$维的特征空间中的一个数据点。CART回归树的目标是将特征空间划分成若干个子空间,每个子空间都有一个固定的输出值,也就是凡是落在同一个子空间内的数据点$\boldsymbol{x}_i$,
它们所对应的输出值$y_i$恒相等,且都为该子空间的输出值。
那么如何划分出若干个子空间呢?这里采用一种启发式的方法。
(1) 任意选择一个属性$a$,遍历其所有可能取值,根据下式找出属性$a$最优划分点$v^*$:
$$
v^* = \arg\min_{v}\left[\min_{c_1}\sum_{\boldsymbol {x}_i\in{R_1(a,v)}}{(y_i - c_1)}^2 + \min_{c_2}\sum_{\boldsymbol {x}_i\in{R_2(a,v)}}{(y_i - c_2)}^2 \right]
$$
其中,$R_1(a,v)=\{\boldsymbol {x}|\boldsymbol {x}\in D^{a\leqslant v}\},R_2(a,v)=\{\boldsymbol {x}|\boldsymbol {x}\in D^{a > v}\}$,$c_1$和$c_2$分别为集合$R_1(a,v)$和$R_2(a,v)$中的样本$\boldsymbol{x}_i$对应的输出值$y_i$的均值,即
$$
c_1=\operatorname{ave}(y_i | \boldsymbol{x}\in R_1(a,v))=\frac{1}{|R_1(a,v)|}\sum_{\boldsymbol {x}_i\in{R_1(a,v)}}y_i
$$
$$
c_2=\operatorname{ave}(y_i | \boldsymbol {x}\in R_2(a,v))=\frac{1}{|R_2(a,v)|}\sum_{\boldsymbol {x}_i\in{R_2(a,v)}}y_i
$$
(2) 遍历所有属性,找到最优划分属性 $a^*$ ,然后根据 $a^*$ 的最优划分点 $v^*$ 将特征空间划分为两个子空间,接着对每个子空间重复上述步骤,直至满足停止条件.这样就生成了一棵CART回归树,假设最终将特征空间划分为$M$个子空间$R_1,R_2,\cdots,R_M$,那么CART回归树的模型式可以表示为
$$
f(\boldsymbol {x}) = \sum_{m=1}^{M}c_m\mathbb{I}(\boldsymbol {x}\in{R_m})
$$
同理,其中的$c_m$表示的也是集合$R_m$中的样本$\boldsymbol{x}_i$对应的输出值$y_i$的均值。此式直观上的理解就是,对于一个给定的样本$\boldsymbol{x}_i$,首先判断其属于哪个子空间,然后将其所属的子空间对应的输出值作为该样本的预测值$y_i$。
## 4.3 剪枝处理
本节内容通俗易懂,跟着"西瓜书"中的例子动手演算即可,无需做过多解释。以下仅结合图4.5继续讨论一下图4.2中的递归返回条件。图4.5与图4.4均是基于信息增益生成的决策树,不同在于图4.4基于表4.1,而图4.5基于表4.2的训练集。
结点包含训练集"脐部"为稍凹的样本(编号6、7、15、17),当根据"根蒂"再次进行划分时不含有"根蒂"为硬挺的样本(递归返回情形(3)),而恰巧四个样本(编号6、7、15、17)含两个好瓜和两个坏瓜,因此叶结点硬挺的类别随机从类别好瓜和坏瓜中选择其一。
结点包含训练集"脐部"为稍凹且"根蒂"为稍蜷的样本(编号6、7、15),当根据"色泽"再次进行划分时不含有"色泽"为浅白的样本(递归返回情形(3)),因此叶结点浅白类别标记为好瓜(编号6、7、15样本中,前两个为好瓜,最后一个为坏瓜)。
结点包含训练集"脐部"为稍凹、"根蒂"为稍蜷、"色泽"为乌黑的样本(编号7、15),当根据"纹理"再次进行划分时不含有"纹理"为模糊的样本(递归返回情形(3)),而恰巧两个样本(编号7、15)含好瓜和坏瓜各一个,因此叶结点模糊的类别随机从类别好瓜和坏瓜中选择其一。
图4.5两次随机选择均选为好瓜,实际上表示了一种归纳偏好(参见第1章1.4节)。
## 4.4 连续与缺失值
连续与缺失值的预处理均属于特征工程的范畴。
有些分类器只能使用离散属性,当遇到连续属性时则需要特殊处理,有兴趣可以通过关键词"连续属性离散化"或者"Discretization"查阅更多处理方法。结合第11章11.2节至11.4节分别介绍的"过滤式"算法、"包裹式"算法、"嵌入式"算法的概念,若先使用某个离散化算法对连续属性离散化后再调用C4.5决策树生成算法,则是一种过滤式算法,若如4.4.1节所述,则应该属于嵌入式算法,因为并没有以学习器的预测结果准确率为评价标准,而是与决策树生成过程融为一体,因此不应该划入包裹式算法。
类似地,有些分类器不能使用含有缺失值的样本,需要进行预处理。常用的缺失值填充方法是:对于连续属性,采用该属性的均值进行填充;对于离散属性,采用属性值个数最多的样本进行填充。这实际上假设了数据集中的样本是基于独立同分布采样得到的。
特别地,一般缺失值仅指样本的属性值有缺失,若类别标记有缺失,一般会直接抛弃该样本。当然,也可以尝试根据第11章11.6节的式(11.24),在低秩假设下对数据集缺失值进行填充。
### 4.4.1 式(4.7)的解释
此式所表达的思想很简单,就是以每两个相邻取值的中点作为划分点。下面以"西瓜书"中表4.3中西瓜数据集3.0为例来说明此式的用法。对于"密度"这个连续属性,已观测到的可能取值为$\{0.243,0.245,0.343,0.360,0.403,0.437,0.481,0.556,0.593,0.608,0.634,0.639,0.657,0.666,0.697,0.719,0.774\}$共17个值,根据式(4.7)可知,此时$i$依次取1到16,那么"密度"这个属性的候选划分点集合为
$$
\begin{aligned}
T_{a} = \{&\frac{0.243+0.245}{2},\frac{0.245+0.343}{2},\frac{0.343+0.360}{2}, \frac{0.360+0.403}{2},\frac{0.403+0.437}{2},\frac{0.437+0.481}{2},\\
&\frac{0.481+0.556}{2},\frac{0.556+0.593}{2},\frac{0.593+0.608}{2},\frac{0.608+0.634}{2},\frac{0.634+0.639}{2},\frac{0.639+0.657}{2},\\
&\frac{0.657+0.666}{2},\frac{0.666+0.697}{2},
\frac{0.697+0.719}{2},\frac{0.719+0.774}{2}\}
\end{aligned}
$$
### 4.4.2 式(4.8)的解释
此式是式(4.2)用于离散化后的连续属性的版本,其中$T_a$由式(4.7)计算得来,$\lambda\in\{-,+\}$表示属性$a$的取值分别小于等于和大于候选划分点$t$时的情形,即当$\lambda=-$时有$D^{\lambda}_t=D^{a\leqslant t}_t$,当$\lambda=+$时有$D^{\lambda}_t=D^{a> t}_t$。
### 4.4.3 式(4.12)的解释
该式括号内与式(4.2)基本一样,区别在于式(4.2)中的$\frac{\left|D^v\right|}{|D|}$改为式(4.11)的$\tilde{r}_v$,在根据式(4.1)计算信息熵时第$k$类样本所占的比例改为式(4.10)的$\tilde{p}_k$;所有计算结束后再乘以式(4.9)的$\rho$。
有关式(4.9) (4.10)
(4.11)中的权重$w_{\boldsymbol{x}}$,初始化为1。以图4.9为例,在根据"纹理"进行划分时,除编号为8、10的两个样本在此属性缺失之外,其余样本根据自身在该属性上的取值分别划入稍糊、清晰、模糊三个子集,而编号为8、10的两个样本则要按比例同时划入三个子集。具体来说,稍糊子集包含样本7、9、13、14、17共5个样本,清晰子集包含样本1、2、3、4、5、6、15共7个样本,模糊子集包含样本10、11、16共3个样本,总共15个在该属性不含缺失值的样本,而此时各样本的权重$w_{\boldsymbol{x}}$初始化为1,因此编号为8、10的两个样本分到稍糊、清晰、模糊三个子集的权重分别为$\frac{5}{15}$,$\frac{7}{15}$和$\frac{3}{15}$。
## 4.5 多变量决策树
本节内容也通俗易懂,以下仅对部分图做进一步解释说明。
### 4.5.1 图(4.10)的解释
只想用该图强调一下,离散属性不可以重复使用,但连续属性是可以重复使用的。
### 4.5.2 图(4.11)的解释
对照"西瓜书"中图4.10的决策树,下面给出图4.11中的划分边界产出过程。
在下图4-1中,斜纹阴影部分表示已确定标记为坏瓜的样本,点状阴影部分表示已确定标记为好瓜的样本,空白部分表示需要进一步划分的样本。
第一次划分条件是"含糖率$\leqslant0.126?$",满足此条件的样本直接被标记为坏瓜(如图4-1(a)斜纹阴影部分所示),而不满足此条件的样本还需要进一步划分(如图4-1(a)空白部分所示)。
在第一次划分的基础上对图4-1(a)空白部分继续进行划分,第二次划分条件是"密度$\leqslant0.381?$",满足此条件的样本直接被标记为坏瓜(如图4-1(b)新增斜纹阴影部分所示),而不满足此条件的样本还需要进一步划分(如图4-1(b)空白部分所示)。
在第二次划分的基础上对图4-1(b)空白部分继续进行划分,第三次划分条件是"含糖率$\leqslant0.205?$",不满足此条件的样本直接标记为好瓜(如图4-1(c)新增点状阴影部分所示),而满足此条件的样本还需进一步划分(如图4-1(c)空白部分所示)。
在第三次划分的基础上对图4-1(c)空白部分继续进行划分,第四次划分的条件是"密度$\leqslant0.560?$",满足此条件的样本直接标记为好瓜(如图4-1(d)新增点状阴影部分所示),而不满足此条件的样本直接标记为坏瓜(如图4-1(d)新增斜纹阴影部分所示)。
经过四次划分已无空白部分,表示决策树生成完毕,从图4-1(d)中可以清晰地看出好瓜与坏瓜的分类边界。

## 参考文献
[1] 李航. 统计学习方法. 清华大学出版社, 2012.
================================================
FILE: docs/chapter5/chapter5.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=8
>
> 本章配套代码:https://github.com/datawhalechina/machine-learning-toy-code/blob/main/%E8%A5%BF%E7%93%9C%E4%B9%A6%E4%BB%A3%E7%A0%81%E5%AE%9E%E6%88%98.md
>
> 本章配套代码视频教程:https://space.bilibili.com/431850986/lists/3884942
# 第5章 神经网络
神经网络类算法可以堪称当今最主流的一类机器学习算法,其本质上和前几章讲到的线性回归、对数几率回归、决策树等算法一样均属于机器学习算法,也是被发明用来完成分类和回归等任务。不过由于神经网络类算法在如今超强算力的加持下效果表现极其出色,且从理论角度来说神经网络层堆叠得越深其效果越好,因此也单独称用深层神经网络类算法所做的机器学习为深度学习,属于机器学习的子集。
## 5.1 神经元模型
本节对神经元模型的介绍通俗易懂,在此不再赘述。
本节第2段提到"阈值"(threshold)的概念时,"西瓜书"左侧边注特意强调是"阈(yù)"而不是"阀(fá)",这是因为该字确实很容易认错,读者注意一下即可。
图5.1所示的M-P神经元模型,其中的"M-P"便是两位作者McCulloch和Pitts的首字母简写。
## 5.2 感知机与多层网络
### 5.2.1 式(5.1)和式(5.2)的推导
此式是感知机学习算法中的参数更新公式,下面依次给出感知机模型、学习策略和学习算法的具体介绍[1]:
**感知机模型**:已知感知机由两层神经元组成,故感知机模型的公式可表示为
$$
y=f\left(\sum\limits_{i=1}^{n}w_ix_i-\theta\right)=f(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}-\theta)
$$
其中,$\boldsymbol{x}\in\mathbb{R}^n$,为样本的特征向量,是感知机模型的输入;$\boldsymbol{w},\theta$是感知机模型的参数,$\boldsymbol{w}\in\mathbb{R}^n$,为权重,$\theta$为阈值。假定$f$为阶跃函数,那么感知机模型的公式可进一步表示为 **(用$\varepsilon(\cdot)$代表阶跃函数)**
$$
y=\varepsilon(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}-\theta)=\left\{\begin{array}{rcl}
1,& {\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x} -\theta\geqslant 0};\\
0,& {\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x} -\theta < 0}.\\
\end{array} \right.
$$
由于$n$维空间中的超平面方程为
$$
w_1x_1+w_2x_2+\cdots+w_nx_n+b =\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x} +b=0
$$
所以此时感知机模型公式中的$\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}-\theta$可以看作是$n$维空间中的一个超平面,将$n$维空间划分为$\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}-\theta\geqslant 0$和$\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}-\theta<0$两个子空间,落在前一个子空间的样本对应的模型输出值为1,落在后一个子空间的样本对应的模型输出值为0,如此便实现了分类功能。
**感知机学习策略**:给定一个数据集
$$
T=\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),\cdots,(\boldsymbol{x}_N,y_N)\}
$$
其中$\boldsymbol{x}_i\in\mathbb{R}^n,y_i\in\{0,1\},i=1,2,\cdots,N$。如果存在某个超平面
$$
\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}+b=0
$$
能将数据集$T$中的正样本和负样本完全正确地划分到超平面两侧,即对所有$y_i=1$的样本$\boldsymbol{x}_i$有$\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\geqslant0$,对所有$y_i=0$的样本$\boldsymbol{x}_i$有$\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b<0$,则称数据集$T$线性可分,否则称数据集$T$线性不可分。
现给定一个线性可分的数据集$T$,感知机的学习目标是求得能对数据集$T$中的正负样本完全正确划分的分离超平面
$$
\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}-\theta=0
$$
假设此时误分类样本集合为$M\subseteq T$,对任意一个误分类样本$(\boldsymbol{x},y)\in M$来说,当$\boldsymbol{w}^\mathrm{T}\boldsymbol{x}-\theta\geqslant0$时,模型输出值为$\hat{y}=1$,样本真实标记为$y=0$;反之,当$\boldsymbol{w}^\mathrm{T}\boldsymbol{x}-\theta<0$时,模型输出值为$\hat{y}=0$,样本真实标记为$y=1$。综合两种情形可知,以下公式恒成立:
$$
(\hat{y}-y)\left(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}-\theta\right)\geqslant0
$$
所以,给定数据集$T$,其损失函数可以定义为
$$
L(\boldsymbol{w},\theta)=\sum_{\boldsymbol{x}\in M}(\hat{y}-y)
\left(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}-\theta\right)
$$
显然,此损失函数是非负的。如果没有误分类点,则损失函数值为0。而且,误分类点越少,误分类点离超平面越近(超平面相关知识参见本书6.1.2节),损失函数值就越小。因此,给定数据集$T$,损失函数$L(\boldsymbol{w},\theta)$是关于$\boldsymbol{w},\theta$的连续可导函数。
**感知机学习算法**:感知机模型的学习问题可以转化为求解损失函数的最优化问题,具体地,给定数据集
$$
T=\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),\cdots,(\boldsymbol{x}_N,y_N)\}
$$
其中$\boldsymbol{x}_i \in \mathbb{R}^n,y_i \in\{0,1\}$,求参数$\boldsymbol{w},\theta$,使其为极小化损失函数的解:
$$
\min\limits_{\boldsymbol{w},\theta}L(\boldsymbol{w},\theta)=\min\limits_{\boldsymbol{w},\theta}\sum_{\boldsymbol{x_i}\in M}(\hat{y}_i-y_i)(\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-\theta)
$$
其中$M\subseteq T$为误分类样本集合。若将阈值$\theta$看作一个固定输入为$-1$的"哑节点",即
$$
-\theta=-1\cdot w_{n+1}=x_{n+1}\cdot w_{n+1}
$$
那么$\boldsymbol{w}^\mathrm{T}\boldsymbol{x}_i-\theta$可化简为
$$
\begin{aligned}
\boldsymbol{w}^\mathrm{T}\boldsymbol{x_i}-\theta&=\sum
\limits_{j=1}^n w_jx_j+x_{n+1}\cdot w_{n+1}\\
&=\sum\limits_{j=1}^{n+1}w_jx_j\\
&=\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x_i}
\end{aligned}
$$
其中$\boldsymbol{x_i} \in \mathbb{R}^{n+1},\boldsymbol{w} \in
\mathbb{R}^{n+1}$。根据该公式,可将要求解的极小化问题进一步简化为
$$
\min\limits_{\boldsymbol{w}}L(\boldsymbol{w})=\min\limits_{\boldsymbol{w}}\sum_{\boldsymbol{x_i}\in M}(\hat{y}_i-y_i)\boldsymbol{w}^\mathrm{T}\boldsymbol{x_i}
$$
假设误分类样本集合$M$固定,那么可以求得损失函数$L(\boldsymbol{w})$的梯度
$$
\nabla_{\boldsymbol{w}}L(\boldsymbol{w})=\sum_{\boldsymbol{x_i}\in M}(\hat{y}_i-y_i)\boldsymbol{x_i}
$$
感知机的学习算法具体采用的是随机梯度下降法,即在极小化过程中,不是一次使$M$中所有误分类点的梯度下降,而是一次随机选取一个误分类点并使其梯度下降。
所以权重$\boldsymbol{w}$的更新公式为
$$
\boldsymbol w \leftarrow \boldsymbol w+\Delta \boldsymbol w
$$
$$
\Delta \boldsymbol w=-\eta(\hat{y}_i-y_i)\boldsymbol x_i=\eta(y_i-\hat{y}_i)\boldsymbol x_i
$$
相应地,$\boldsymbol{w}$中的某个分量$w_i$的更新公式即式(5.2)。
实践中常用的求解方法是先随机初始化一个模型权重$\boldsymbol{w}_{0}$,此时将训练集中的样本一一代入模型便可确定误分类点集合$M$,然后从$M$中随机抽选取一个误分类点计算得到$\Delta \boldsymbol{w}$,接着按照上述权重更新公式计算得到新的权重$\boldsymbol{w}_{1}=\boldsymbol{w}_{0}+\Delta \boldsymbol{w}$,并重新确定误分类点集合,如此迭代直至误分类点集合为空,即训练样本中的样本均完全正确分类。显然,随机初始化的$\boldsymbol{w}_{0}$不同,每次选取的误分类点不同,最后都有可能导致求解出的模型不同,因此感知模型的解不唯一。
### 5.2.2 图5.5的解释
图5.5中$(0,0),(0,1),(1,0),(1,1)$这4个样本点实现"异或"计算的过程如下:
$$
(x_1,x_2)\rightarrow h_1=\varepsilon(x_1-x_2-0.5),h_2=\varepsilon(x_2-x_1-0.5)\rightarrow y=\varepsilon(h_1+h_2-0.5)
$$
以$(0,1)$为例,首先求得$h_1=\varepsilon(0-1-0.5)=0,h_2=\varepsilon(1-0-0.5)=1$,然后求得$y=\varepsilon(0+1-0.5)=1$。
## 5.3 误差逆传播算法
### 5.3.1 式(5.10)的推导
参见式(5.12)的推导
### 5.3.2 式(5.12)的推导
因为
$$
\Delta \theta_j = -\eta \cfrac{\partial E_k}{\partial \theta_j}
$$
又
$$
\begin{aligned}
\cfrac{\partial E_k}{\partial \theta_j} &= \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot\cfrac{\partial \hat{y}_j^k}{\partial \theta_j} \\
&= \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot\cfrac{\partial [f(\beta_j-\theta_j)]}{\partial \theta_j} \\
&=\cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot f^{\prime}(\beta_j-\theta_j) \times (-1) \\
&=\cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot f\left(\beta_{j}-\theta_{j}\right)\times\left[1-f\left(\beta_{j}-\theta_{j}\right)\right] \times (-1) \\
&=\cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \hat{y}_j^k\left(1-\hat{y}_j^k\right) \times (-1) \\
&=\cfrac{\partial\left[ \cfrac{1}{2} \sum\limits_{j=1}^{l}\left(\hat{y}_{j}^{k}-y_{j}^{k}\right)^{2}\right]}{\partial \hat{y}_{j}^{k}} \cdot \hat{y}_j^k\left(1-\hat{y}_j^k\right) \times (-1) \\
&=\cfrac{1}{2}\times 2(\hat{y}_j^k-y_j^k)\times 1 \cdot\hat{y}_j^k\left(1-\hat{y}_j^k\right) \times (-1) \\
&=(y_j^k-\hat{y}_j^k)\hat{y}_j^k\left(1-\hat{y}_j^k\right) \\
&= g_j
\end{aligned}
$$
所以
$$
\Delta \theta_j = -\eta \cfrac{\partial E_k}{\partial \theta_j}=-\eta g_j
$$
### 5.3.3 式(5.13)的推导
因为
$$
\Delta v_{ih} = -\eta \cfrac{\partial E_k}{\partial v_{ih}}
$$
又
$$
\begin{aligned}
\cfrac{\partial E_k}{\partial v_{ih}} &= \sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot \cfrac{\partial b_h}{\partial \alpha_h} \cdot \cfrac{\partial \alpha_h}{\partial v_{ih}} \\
&= \sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot \cfrac{\partial b_h}{\partial \alpha_h} \cdot x_i \\
&= \sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot x_i \\
&= \sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot w_{hj} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot x_i \\
&= \sum_{j=1}^{l} (-g_j) \cdot w_{hj} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot x_i \\
&= -f^{\prime}(\alpha_h-\gamma_h) \cdot \sum_{j=1}^{l} g_j \cdot w_{hj} \cdot x_i\\
&= -b_h(1-b_h) \cdot \sum_{j=1}^{l} g_j \cdot w_{hj} \cdot x_i \\
&= -e_h \cdot x_i
\end{aligned}
$$
所以
$$
\Delta v_{ih} =-\eta \cfrac{\partial E_k}{\partial v_{ih}} =\eta e_h x_i
$$
### 5.3.4 式(5.14)的推导
因为
$$
\Delta \gamma_h = -\eta \cfrac{\partial E_k}{\partial \gamma_h}
$$
又
$$
\begin{aligned}
\cfrac{\partial E_k}{\partial \gamma_h} &= \sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot \cfrac{\partial b_h}{\partial \gamma_h} \\
&= \sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot (-1) \\
&= -\sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot w_{hj} \cdot f^{\prime}(\alpha_h-\gamma_h)\\
&= -\sum_{j=1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot w_{hj} \cdot b_h(1-b_h)\\
&= \sum_{j=1}^{l}g_j\cdot w_{hj} \cdot b_h(1-b_h)\\
&=e_h
\end{aligned}
$$
所以
$$
\Delta \gamma_h=-\eta\cfrac{\partial E_k}{\partial \gamma_h} = -\eta e_h
$$
### 5.3.5 式(5.15)的推导
参见式(5.13)的推导
## 5.4 全局最小与局部极小
由图5.10可以直观理解局部极小和全局最小的概念,其余概念如模拟退火、遗传算法、启发式等,则需要查阅专业资料系统化学习。
## 5.5 其他常见神经网络
本节所提到的神经网络其实如今已不太常见,更为常见的神经网络是下一节深度学习里提到的卷积神经网络、循环神经网络等。
### 5.5.1 式(5.18)的解释
从式(5.18)可以看出,对于样本$\boldsymbol{x}$来说,RBF网络的输出为$q$个$\rho(\boldsymbol{x},\boldsymbol{c}_{i})$的线性组合。若换个角度来看这个问题,将$q$个$\rho(\boldsymbol{x},\boldsymbol{c}_{i})$当作是将$d$维向量$\boldsymbol{x}$基于式(5.19)进行特征转换后所得的$q$维特征,即$\tilde{\boldsymbol{x}}=\left(\rho(\boldsymbol{x},\boldsymbol{c}_{1});\rho(\boldsymbol{x},\boldsymbol{c}_{2});...;\rho(\boldsymbol{x},\boldsymbol{c}_{q})\right)$,则式(5.18)求线性加权系数$w_{i}$相当于求解第3.2节的线性回归$f(\tilde{\boldsymbol{x}})=\boldsymbol{w}^{\mathrm{T}}\tilde{\boldsymbol{x}}+b$,对于仅有的差别$b$来说,当然可以在式(5.18)中补加一个$b$。因此,RBF网络在确定$q$个神经元中心$\boldsymbol{c}_{i}$之后,接下来要做的就是线性回归。
### 5.5.2 式(5.20)的解释
Boltzmann机(Restricted Boltzmann
Machine,简称RBM)本质上是一个引入了隐变量的无向图模型,其能量可理解为
$$
E_{\rm graph}=E_{\rm edges}+E_{\rm nodes}
$$
其中,$E_{\rm graph}$表示图的能量,$E_{\rm edges}$表示图中边的能量,$E_{\rm nodes}$表示图中结点的能量。边能量由两连接结点的值及其权重的乘积确定,即$E_{{\rm edge}_{ij}}=-w_{ij}s_is_j$;结点能量由结点的值及其阈值的乘积确定,即$E_{{\rm node}_i}=-\theta_is_i$。图中边的能量为所有边能量之和为
$$
E_{\rm edges}=\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}E_{{\rm edge}_{ij}}=-\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}w_{ij}s_is_j
$$
图中结点的能量为所有结点能量之和
$$
E_{\rm nodes}=\sum_{i=1}^nE_{{\rm node}_i}=-\sum_{i=1}^n\theta_is_i
$$
故状态向量$\boldsymbol{s}$所对应的Boltzmann机能量
$$
E_{\rm graph}=E_{\rm edges}+E_{\rm nodes}=-\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}w_{ij}s_is_j-\sum_{i=1}^n\theta_is_i
$$
### 5.5.3 式(5.22)的解释
受限Boltzmann机仅保留显层与隐层之间的连接。显层状态向量$\boldsymbol{v}=(v_1;v_2;...;v_d)$,隐层状态向量$\boldsymbol{h}=(h_1;h_2;...;h_q)$。显层状态向量$\boldsymbol{v}$中的变量$v_i$仅与隐层状态向量$\boldsymbol{h}$有关,所以给定隐层状态向量$\boldsymbol{h}$,有$v_1,v_2,...,v_d$相互独立。
### 5.5.4 式(5.23)的解释
由式(5.22)的解释同理可得,给定显层状态向量$\boldsymbol{v}$,有$h_1,h_2,...,h_q$相互独立。
## 5.6 深度学习
"西瓜书"在本节并未对如今深度学习领域的诸多经典神经网络作展开介绍,而是从更宏观的角度详细解释了应该如何理解深度学习。因此,本书也顺着"西瓜书"的思路对深度学习相关概念作进一步说明,对深度学习的经典神经网络感兴趣的读者可查阅其他相关书籍进行系统性学习。
### 5.6.1 什么是深度学习
深度学习就是很深层的神经网络,而神经网络属于机器学习算法的范畴,因此深度学习是机器学习的子集。
### 5.6.2 深度学习的起源
深度学习中的经典神经网络以及用于训练神经网络的BP算法其实在很早就已经被提出,例如卷积神经网络[2]是在1989提出,BP算法[3]是在1986年提出,但是在当时的计算机算力水平下,其他非神经网络类算法(例如当时红极一时的支持向量机算法)的效果优于神经网络类算法,因此神经网络类算法进入瓶颈期。随着计算机算力的不断提升,以及2012年Hinton和他的学生提出了AlexNet并在ImageNet评测中以明显优于第二名的成绩夺冠后,引起了学术界和工业界的广泛关注,紧接着三位深度学习之父LeCun、Bengio和Hinton在2015年正式提出深度学习的概念,自此深度学习开始成为机器学习的主流研究方向。
### 5.6.3 怎么理解特征学习
举例来说,用非深度学习算法做西瓜分类时,首先需要人工设计西瓜的各个特征,比如根蒂、色泽等,然后将其表示为数学向量,这些过程统称为"特征工程",完成特征工程后用算法分类即可,其分类效果很大程度上取决于特征工程做得是否够好。而对于深度学习算法来说,只需将西瓜的图片表示为数学向量输入,输出层设置为想要的分类结果即可(例如二分类通常设置为对数几率回归),之前的"特征工程"交由神经网络来自动完成,即让神经网络进行"特征学习",通过在输出层约束分类结果,神经网络会自动从西瓜的图片上提取出有助于西瓜分类的特征。
因此,如果分别用对数几率回归和卷积神经网络来做西瓜分类,其算法运行流程分别是"人工特征工程$\rightarrow$对数几率回归分类"和"卷积神经网络特征学习$\rightarrow$对数几率回归分类"。
## 参考文献
[1] 李航. 统计学习方法. 清华大学出版社, 2012.
[2] Yann LeCun, Bernhard Boser, John S Denker, Donnie Henderson, Richard E Howard, Wayne Hub-
bard, and Lawrence D Jackel. Backpropagation applied to handwritten zip code recognition. Neural
computation, 1(4):541–551, 1989.
[3] David E Rumelhart, Geoffrey E Hinton, and Ronald J Williams. Learning representations by back-
propagating errors. nature, 323(6088):533–536, 1986.
================================================
FILE: docs/chapter6/chapter6.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:
>
> 支持向量机:https://www.bilibili.com/video/BV1Mh411e7VU?p=9
>
> 软间隔与支持向量回归:https://www.bilibili.com/video/BV1Mh411e7VU?p=10
>
> 本章配套代码:https://github.com/datawhalechina/machine-learning-toy-code/blob/main/%E8%A5%BF%E7%93%9C%E4%B9%A6%E4%BB%A3%E7%A0%81%E5%AE%9E%E6%88%98.md
>
> 本章配套代码视频教程:https://space.bilibili.com/431850986/lists/3884942
# 第6章 支持向量机
在深度学习流行之前,支持向量机及其核方法一直是机器学习领域中的主流算法,尤其是核方法至今都仍有相关学者在持续研究。
## 6.1 间隔与支持向量
### 6.1.1 图6.1的解释
回顾第5章5.2节的感知机模型可知,图6.1中的黑色直线均可作为感知机模型的解,因为感知机模型求解的是能将正负样本完全正确划分的超平面,因此解不唯一。而支持向量机想要求解的则是离正负样本都尽可能远且刚好位于"正中间"的划分超平面,因为这样的超平面理论上泛化性能更好。
### 6.1.2 式(6.1)的解释
$n$维空间的超平面定义为$\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+b=0$,其中$\boldsymbol{w},\boldsymbol{x}\in\mathbb{R}^{n}$,$\boldsymbol{w}=(w_1;w_2;...;w_n)$称为法向量,$b$称为位移项。超平面具有以下性质:
(1)法向量$\boldsymbol{w}$和位移项$b$确定一个唯一超平面;
(2)超平面方程不唯一,因为当等倍缩放$\boldsymbol{w}$和$b$时(假设缩放倍数为$\alpha$),所得的新超平面方程$\alpha\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+\alpha b=0$和$\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+b=0$的解完全相同,因此超平面不变,仅超平面方程有变;
(3)法向量$\boldsymbol{w}$垂直于超平面;
(4)超平面将$n$维空间切割为两半,其中法向量$\boldsymbol{w}$指向的那一半空间称为正空间,另一半称为负空间,正空间中的点$\boldsymbol{x}^{+}$代入进方程$\boldsymbol{w}^\mathrm{T}\boldsymbol{x}^{+}+b$其计算结果大于0,反之负空间中的点代入进方程其计算结果小于0;
(5)$n$维空间中的任意点$\boldsymbol{x}$到超平面的距离公式为$r=\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|}$,其中$\|\boldsymbol{w}\|$表示向量$\boldsymbol{w}$的模。
### 6.1.3 式(6.2)的推导
对于任意一点$\boldsymbol{x}_0=(x^0_1;x^0_2;...;x^0_n)$,设其在超平面$\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b=0$上的投影点为$\boldsymbol{x}_1=(x^1_1;x^1_2;...;x^1_n)$,则$\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_1+b=0$。根据超平面的性质(3)可知,此时向量$\overrightarrow{\boldsymbol{x}_1\boldsymbol{x}_0}$与法向量$\boldsymbol{w}$平行,因此
$$
|\boldsymbol{w}\cdot\overrightarrow{\boldsymbol{x}_1\boldsymbol{x}_0}|=|\|\boldsymbol{w}\|\cdot\cos\pi\cdot\|\overrightarrow{\boldsymbol{x}_1\boldsymbol{x}_0}\||=\|\boldsymbol{w}\|\cdot \|\overrightarrow{\boldsymbol{x}_1\boldsymbol{x}_0}\|=\|\boldsymbol{w}\|\cdot r
$$
又
$$
\begin{aligned}
\boldsymbol{w}\cdot\overrightarrow{\boldsymbol{x}_1\boldsymbol{x}_0}&=w_1(x^0_1-x^1_1)+w_2(x^0_2-x^1_2)+...+w_n(x^0_n-x^1_n) \\
&=w_1x^0_1+w_2x^0_2+...+w_nx^0_n-(w_1x^1_1+w_2x^1_2+...+w_nx^1_n) \\
&=\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_0-\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_1 \\
&=\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_0+b\\
\end{aligned}
$$
所以
$$
|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_0+b|=\|\boldsymbol{w}\|\cdot r
$$
$$
r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|}
$$
### 6.1.4 式(6.3)的推导
支持向量机所要求的超平面需要满足三个条件,第一个是能正确划分正负样本,第二个是要位于正负样本正中间,第三个是离正负样本都尽可能远。式(6.3)仅满足前两个条件,第三个条件由式(6.5)来满足,因此下面仅基于前两个条件来进行推导。
对于第一个条件,当超平面满足该条件时,根据超平面的性质(4)可知,若$y_i=+1$的正样本被划分到正空间(当然也可以将其划分到负空间),$y_i=-1$的负样本被划分到负空间,以下不等式成立
$$
\left\{\begin{array}{ll}
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b \geqslant 0, & y_i=+1 \\
\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b \leqslant 0, & y_i=-1
\end{array}\right.
$$
对于第二个条件,首先设离超平面最近的正样本为$\boldsymbol{x}^{+}_{*}$,离超平面最近的负样本为$\boldsymbol{x}^{-}_{*}$,由于这两样本是离超平面最近的点,所以其他样本到超平面的距离均大于等于它们,即
$$
\left\{\begin{array}{ll}
\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right|}{\|\boldsymbol{w}\|} \geqslant \frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{+}_{*}+b\right|}{\|\boldsymbol{w}\|}, & y_i=+1 \\
\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right|}{\|\boldsymbol{w}\|} \geqslant \frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{-}_{*}+b\right|}{\|\boldsymbol{w}\|}, & y_i=-1
\end{array}\right.
$$
结合第一个条件中推导出的不等式,可将上式中的绝对值符号去掉并推得
$$
\left\{\begin{array}{ll}
\frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}{\|\boldsymbol{w}\|} \geqslant \frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{+}_{*}+b}{\|\boldsymbol{w}\|}, & y_i=+1 \\
\frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}{\|\boldsymbol{w}\|} \leqslant \frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{-}_{*}+b}{\|\boldsymbol{w}\|}, & y_i=-1
\end{array}\right.
$$
基于此再考虑第二个条件,"位于正负样本正中间"等价于要求超平面到$\boldsymbol{x}^{+}_{*}$和$\boldsymbol{x}^{-}_{*}$这两点的距离相等,即
$$
\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{+}_{*}+b\right|}{\|\boldsymbol{w}\|}=\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{-}_{*}+b\right|}{\|\boldsymbol{w}\|}
$$
综上,支持向量机所要求的超平面所需要满足的条件如下
$$
\left\{\begin{array}{ll}
\frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}{\|\boldsymbol{w}\|} \geqslant \frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{+}_{*}+b}{\|\boldsymbol{w}\|}, & y_i=+1 \\
\frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}{\|\boldsymbol{w}\|} \leqslant \frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{-}_{*}+b}{\|\boldsymbol{w}\|}, & y_i=-1 \\
\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{+}_{*}+b\right|}{\|\boldsymbol{w}\|}=\frac{\left|\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{-}_{*}+b\right|}{\|\boldsymbol{w}\|}
\end{array}\right.
$$
但是根据超平面的性质(2)可知,当等倍缩放法向量$\boldsymbol{w}$和位移项$b$时,超平面不变,且上式也恒成立,因此会导致所求的超平面的参数$\boldsymbol{w}$和$b$有无穷多解。因此为了保证每个超平面的参数只有唯一解,不妨再额外施加一些约束,例如约束$\boldsymbol{x}^{+}_{*}$和$\boldsymbol{x}^{-}_{*}$代入进超平面方程后的绝对值为1,也就是令$\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{+}_{*}+b=1,\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}^{-}_{*}+b=-1$。此时支持向量机所要求的超平面所需要满足的条件变为
$$
\left\{\begin{array}{ll}
\frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}{\|\boldsymbol{w}\|} \geqslant \frac{+1}{\|\boldsymbol{w}\|}, & y_i=+1 \\
\frac{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}{\|\boldsymbol{w}\|} \leqslant \frac{-1}{\|\boldsymbol{w}\|}, & y_i=-1 \\
\end{array}\right.
$$
由于$\|\boldsymbol{w}\|$恒大于0,因此上式可进一步化简为
$$
\left\{\begin{array}{ll}
\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b \geqslant +1, & y_i=+1 \\
\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b \leqslant -1, & y_i=-1 \\
\end{array}\right.
$$
### 6.1.5 式(6.4)的推导
根据式(6.3)的推导可知,$\boldsymbol{x}^{+}_{*}$和$\boldsymbol{x}^{-}_{*}$便是"支持向量",因此支持向量到超平面的距离已经被约束为$\frac{1}{\|\boldsymbol{w}\|}$,所以两个异类支持向量到超平面的距离之和为$\frac{2}{\|\boldsymbol{w}\|}$。
### 6.1.6 式(6.5)的解释
式(6.5)是通过"最大化间隔"来保证超平面离正负样本都尽可能远,且该超平面有且仅有一个,因此可以解出唯一解。
## 6.2 对偶问题
### 6.2.1 凸优化问题
考虑一般地约束优化问题
$$
\begin{array}{ll}
{\min } & {f(\boldsymbol x)} \\
{\text {s.t.}} & {g_{i}(\boldsymbol x) \leqslant 0, \quad i=1,2,..., m} \\
{} & {h_{j}(\boldsymbol x)=0, \quad j=1,2,...,n}
\end{array}
$$
若目标函数$f(\boldsymbol x)$是凸函数,不等式约束$g_i(\boldsymbol{x})$是凸函数,等式约束$h_{j}(\boldsymbol x)$是仿射函数,则称该优化问题为凸优化问题。
由于$\frac{1}{2}\|\boldsymbol{w}\|^{2}$和$1-y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)$均是关于$\boldsymbol{w}$和$b$的凸函数,所以式(6.6)是凸优化问题。凸优化问题是最优化里比较易解的一类优化问题,因为其拥有诸多良好的数学性质和现成的数学工具,因此如果非凸优化问题能等价转化为凸优化问题,其求解难度通常也会减小。
### 6.2.2 KKT条件
考虑一般的约束优化问题
$$
\begin{array}{ll}
{\min } & {f(\boldsymbol x)} \\
{\text {s.t.}} & {g_{i}(\boldsymbol x) \leqslant 0, \quad i=1,2,..., m} \\
{} & {h_{j}(\boldsymbol x)=0, \quad j=1,2,...,n}
\end{array}
$$
若$f(\boldsymbol x),g_i(\boldsymbol x),h_j(\boldsymbol
x)$的一阶偏导连续,$\boldsymbol x^*$是优化问题的局部解,$\boldsymbol \mu=(\mu_1;\mu_2;...;\mu_m),\boldsymbol \lambda=(\lambda_1;\lambda_2;...;\lambda_n)$为拉格朗日乘子向量,$L(\boldsymbol x,\boldsymbol \mu,\boldsymbol \lambda)=f(\boldsymbol x)+\sum_{i=1}^{m}\mu_i g_i(\boldsymbol x)+\sum_{j=1}^{n}\lambda_j h_j(\boldsymbol x)$为拉格朗日函数,且该优化问题满足任何一个特定的约束限制条件,则一定存在$\boldsymbol \mu^*=(\mu_1^*;
\mu_2^*;...; \mu_m^*), \boldsymbol \lambda^*=(\lambda_1^*;
\lambda_2^*;...; \lambda_n^*)$,使得:
\(1\)
$\nabla_{\boldsymbol x} L(\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^* )=\nabla f(\boldsymbol x^*)+\sum_{i=1}^{m}\mu_i^* \nabla g_i(\boldsymbol x^*)+\sum_{j=1}^{n}\lambda_j^* \nabla h_j(\boldsymbol x^*)=0$;
\(2\) $h_j(\boldsymbol x^*)=0, \quad j=1,2,...,n$;
\(3\) $g_i(\boldsymbol x^*) \leqslant 0, \quad i=1,2,..., m$;
\(4\) $\mu_i^* \geqslant 0, \quad i=1,2,..., m$;
\(5\) $\mu_i^* g_i(\boldsymbol x^*)=0, \quad i=1,2,..., m$。
以上5条便是Karush--Kuhn--Tucker
Conditions(简称KKT条件)。KKT条件是局部解的必要条件,也就是说只要该优化问题满足任何一个特定的约束限制条件,局部解就一定会满足以上5个条件。常用的约束限制条件可查阅维基百科"Karush--Kuhn--Tucker
Conditions"词条以及查阅参考文献[1]的第4.2.2节,若对KKT条件的数学证明感兴趣可查阅参考文献[1]的第4.2.1节。
### 6.2.3 拉格朗日对偶函数
考虑一般地约束优化问题
$$
\begin{array}{ll}
{\min } & {f(\boldsymbol x)} \\
{\text {s.t.}} & {g_{i}(\boldsymbol x) \leqslant 0, \quad i=1,2,..., m} \\
{} & {h_{j}(\boldsymbol x)=0, \quad j=1,2,...,n}
\end{array}
$$
设上述优化问题的定义域为$D=\operatorname{dom} \ f \cap \bigcap\limits_{i=1}^{m}\operatorname{dom} \ g_i \cap \bigcap\limits_{j=1}^{n}\operatorname{dom} \ h_j$,可行集为$\tilde{D}=\{\boldsymbol x|\boldsymbol x\in D,g_i(\boldsymbol x) \leqslant 0,h_j(\boldsymbol x) = 0\}$(显然$\tilde{D}$是$D$的子集),最优值为$p^*=\min\{f(\tilde{\boldsymbol x})\},\tilde{\boldsymbol x}\in\tilde{D}$。上述优化问题的拉格朗日函数定义为
$$
L(\boldsymbol x,\boldsymbol \mu,\boldsymbol \lambda)=f(\boldsymbol x)+\sum_{i=1}^{m}\mu_i g_i(\boldsymbol x)+\sum_{j=1}^{n}\lambda_j h_j(\boldsymbol x)
$$
其中$\boldsymbol \mu=(\mu_1;\mu_2;...;\mu_m),\boldsymbol \lambda=(\lambda_1;\lambda_2;...;\lambda_n)$为拉格朗日乘子向量。相应地拉格朗日对偶函数$\Gamma (\boldsymbol \mu,\boldsymbol \lambda)$(简称对偶函数)定义为$L(\boldsymbol x,\boldsymbol \mu,\boldsymbol \lambda)$关于$\boldsymbol x$的下确界,即
$$
\Gamma (\boldsymbol \mu,\boldsymbol \lambda)=\mathop{\inf}\limits_{\boldsymbol x\in D}L(\boldsymbol x,\boldsymbol \mu,\boldsymbol \lambda)=\mathop{\inf}\limits_{\boldsymbol x\in D} \left( f(\boldsymbol x)+\sum_{i=1}^{m}\mu_i g_i(\boldsymbol x)+\sum_{j=1}^{n}\lambda_j h_j(\boldsymbol x) \right)
$$
对偶函数有如下性质:
(1)无论上述优化问题是否为凸优化问题,其对偶函数$\Gamma (\boldsymbol \mu,\boldsymbol \lambda)$恒为凹函数,详细证明可查阅参考文献[2]的第5.1.2和3.2.3节;
(2)当$\boldsymbol{\mu} \succeq 0$时($\boldsymbol{\mu} \succeq 0$表示$\boldsymbol{\mu}$的分量均为非负),$\Gamma (\boldsymbol \mu,\boldsymbol \lambda)$构成了上述优化问题最优值$p^*$的下界,即
$$
\Gamma (\boldsymbol \mu,\boldsymbol \lambda)\leqslant p^*
$$
其推导过程如下:
设$\tilde{\boldsymbol x}\in\tilde{D}$是优化问题的可行点,则$g_i(\tilde{\boldsymbol x})\leqslant 0,h_j(\tilde{\boldsymbol x})=0$,因此,当$\boldsymbol \mu \succeq 0$时,$\mu_i g_i(\tilde{\boldsymbol x})\leqslant 0,\lambda_j h_j(\tilde{\boldsymbol x})=0$恒成立,所以
$$
\sum_{i=1}^{m}\mu_i g_i(\tilde{\boldsymbol x})+\sum_{j=1}^{n}\lambda_j h_j(\tilde{\boldsymbol x}) \leqslant 0
$$
根据上述不等式可以推得
$$
L(\tilde{\boldsymbol x},\boldsymbol \mu,\boldsymbol \lambda)=f(\tilde{\boldsymbol x})+\sum_{i=1}^{m}\mu_i g_i(\tilde{\boldsymbol x})+\sum_{j=1}^{n}\lambda_j h_j(\tilde{\boldsymbol x}) \leqslant f(\tilde{\boldsymbol x})
$$
又
$$
\Gamma (\boldsymbol \mu,\boldsymbol \lambda)=\mathop{\inf}\limits_{\boldsymbol x\in D}L(\boldsymbol x,\boldsymbol \mu,\boldsymbol \lambda) \leqslant L(\tilde{\boldsymbol x},\boldsymbol \mu,\boldsymbol \lambda)
$$
所以
$$
\Gamma (\boldsymbol \mu,\boldsymbol \lambda) \leqslant L(\tilde{\boldsymbol x},\boldsymbol \mu,\boldsymbol \lambda) \leqslant f(\tilde{\boldsymbol x})
$$
进一步地
$$
\Gamma (\boldsymbol \mu,\boldsymbol \lambda) \leqslant \min\{f(\tilde{\boldsymbol x})\}=p^*
$$
### 6.2.4 拉格朗日对偶问题
在$\boldsymbol \mu \succeq 0$的约束下求对偶函数最大值的优化问题称为拉格朗日对偶问题(简称对偶问题)
$$
\begin{array}{ll}
{\max } & {\Gamma (\boldsymbol \mu,\boldsymbol \lambda)} \\
{\text {s.t.}} & {\boldsymbol \mu \succeq 0}
\end{array}
$$
上一节的优化问题称为主问题或原问题。
设对偶问题的最优值为$d^*=\max \{\Gamma (\boldsymbol \mu,\boldsymbol \lambda)\},\boldsymbol \mu \succeq 0$,根据对偶函数的性质(2)可知$d^* \leqslant p^*$,此时称为"弱对偶性"成立,若$d^* = p^*$,则称为"强对偶性"成立。由此可以看出,当主问题较难求解时,如果强对偶性成立,则可以通过求解对偶问题来间接求解主问题。由于约束条件$\boldsymbol \mu \succeq 0$是凸集,且根据对偶函数的性质(1)可知$\Gamma (\boldsymbol \mu,\boldsymbol \lambda)$恒为凹函数,其加个负号即为凸函数,所以无论主问题是否为凸优化问题,对偶问题恒为凸优化问题。
一般情况下,强对偶性并不成立,只有当主问题满足特定的约束限制条件(不同于KKT条件中的约束限制条件)时,强对偶性才成立,常见的有"Slater条件"。Slater条件指出,当主问题是凸优化问题,且存在一点$\boldsymbol x\in\operatorname{relint}D$能使得所有等式约束成立,除仿射函数以外的不等式约束严格成立,则强对偶性成立。由于式(6.6)是凸优化问题,且不等式约束均为仿射函数,所以式(6.6)强对偶性成立。
对于凸优化问题,还可以通过KKT条件来间接推导出强对偶性,并同时求解出主问题和对偶问题的最优解。具体地,若主问题为凸优化问题,目标函数$f(\boldsymbol x)$和约束函数$g_{i}(\boldsymbol x),h_{j}(\boldsymbol x)$的一阶偏导连续,主问题满足KKT条件中任何一个特定的约束限制条件,则满足KKT条件的点$\boldsymbol{x}^{*}$和$(\boldsymbol{\mu}^{*},\boldsymbol{\lambda}^{*})$分别是主问题和对偶问题的最优解,且此时强对偶性成立。下面给出具体的推导过程。
设$\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^*$是任意满足KKT条件的点,即
$$
\left\{\begin{array}{ll}
\nabla_{\boldsymbol x} L(\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^* )=\nabla f(\boldsymbol x^*)+\sum_{i=1}^{m}\mu_i^* \nabla g_i(\boldsymbol x^*)+\sum_{j=1}^{n}\lambda_j^* \nabla h_j(\boldsymbol x^*)=0 \\
h_j(\boldsymbol x^*)=0, \quad j=1,2,...,n\\
g_i(\boldsymbol x^*) \leqslant 0, \quad i=1,2,..., m\\
\mu_i^* \geqslant 0, \quad i=1,2,..., m\\
\mu_i^* g_i(\boldsymbol x^*)=0, \quad i=1,2,..., m
\end{array}\right.
$$
由于主问题是凸优化问题,所以$f(\boldsymbol{x})$和$g_i(\boldsymbol{x})$是凸函数,$h_j(\boldsymbol{x})$是仿射函数,又因为此时$\mu_i^* \geqslant 0$,所以$L(\boldsymbol x,\boldsymbol \mu^*,\boldsymbol \lambda^*)$是关于$\boldsymbol{x}$的凸函数。根据$\nabla_{\boldsymbol x} L(\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^* )=0$可知,此时$\boldsymbol{x}^{*}$是$L(\boldsymbol x,\boldsymbol \mu^*,\boldsymbol \lambda^*)$的极值点,而凸函数的极值点也是最值点,所以$\boldsymbol{x}^{*}$是最小值点,因此可以进一步推得
$$
\begin{aligned}
L(\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^* )&=\min\{L(\boldsymbol x,\boldsymbol \mu^*,\boldsymbol \lambda^*)\} \\
&=\mathop{\inf}_{\boldsymbol x\in D} \left( f(\boldsymbol x)+\sum_{i=1}^{m}\mu_i^* g_i(\boldsymbol x)+\sum_{j=1}^{n}\lambda_j^* h_j(\boldsymbol x) \right)\\
&=\Gamma(\boldsymbol \mu^*,\boldsymbol \lambda^*) \\
&=f(\boldsymbol x^*)+\sum_{i=1}^{m}\mu_i^* g_i(\boldsymbol x^*)+\sum_{j=1}^{n}\lambda_j^* h_j(\boldsymbol x^*)\\
&=f(\boldsymbol x^*)
\end{aligned}
$$
其中第二个等式是根据下确界函数的性质推得,第三个等式是根据对偶函数的定义推得,第四个等式是$L(\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^* )$的展开形式,最后一个等式是因为$\mu_i^* g_i(\boldsymbol x^*)=0,h_j(\boldsymbol x^*)=0$。
由于$\boldsymbol{x}^{*}$和$(\boldsymbol{\mu}^{*},\boldsymbol{\lambda}^{*})$仅是满足KKT条件的点,并不一定是$f(\boldsymbol x)$和$\Gamma(\boldsymbol \mu,\boldsymbol \lambda)$的最值点,所以$f(\boldsymbol x^*)\geqslant p^*\geqslant d^{*}\geqslant\Gamma(\boldsymbol \mu^*,\boldsymbol \lambda^*)$,但是上式又推得$f(\boldsymbol x^*)=\Gamma(\boldsymbol \mu^*,\boldsymbol \lambda^*)$,所以$p^{*}=d^{*}$,因此推得强对偶性成立,且$\boldsymbol{x}^{*}$和$(\boldsymbol{\mu}^{*},\boldsymbol{\lambda}^{*})$分别是主问题和对偶问题的最优解。
Slater条件恰巧也是KKT条件中特定的约束限制条件之一,所以式(6.6)不仅强对偶性成立,而且可以通过求解满足KKT条件的点来求解出最优解。
KKT条件除了可以作为凸优化问题强对偶性成立的充分条件以外,其实对于任意优化问题(并不一定是凸优化问题),若其强对偶性成立,KKT条件也是主问题和对偶问题最优解的必要条件,而且此时并不要求主问题满足KKT条件中任何一个特定的约束限制条件。下面同样给出具体的推导过程。
设主问题的最优解为$\boldsymbol{x}^{*}$,对偶问题的最优解为$(\boldsymbol{\mu}^{*},\boldsymbol{\lambda}^{*})$,目标函数$f(\boldsymbol x)$和约束函数$g_{i}(\boldsymbol x),h_{j}(\boldsymbol x)$的一阶偏导连续,当强对偶性成立时,可以推得
$$
\begin{aligned}
f(\boldsymbol x^*)&=\Gamma(\boldsymbol \mu^*,\boldsymbol \lambda^*)\\
&= \mathop{\inf}_{\boldsymbol x\in D} L(\boldsymbol x,\boldsymbol \mu^*,\boldsymbol \lambda^*) \\
&=\mathop{\inf}_{\boldsymbol x\in D} \left( f(\boldsymbol x)+\sum_{i=1}^{m}\mu_i^* g_i(\boldsymbol x)+\sum_{j=1}^{n}\lambda_j^* h_j(\boldsymbol x) \right) \\
&\leqslant f(\boldsymbol x^*)+\sum_{i=1}^{m}\mu_i^* g_i(\boldsymbol x^*)+\sum_{j=1}^{n}\lambda_j^* h_j(\boldsymbol x^*) \\
&\leqslant f(\boldsymbol x^*)
\end{aligned}
$$
其中,第一个等式是因为强对偶性成立时$p^{*}=d^{*}$,第二和第三个等式是对偶函数的定义,第四个不等式是根据下确界的性质推得,最后一个不等式成立是因为$\mu_i^*\geqslant 0,g_i(\boldsymbol x^*)\leqslant 0,h_j(\boldsymbol x^*)=0$。
由于$f(\boldsymbol x^*)=f(\boldsymbol x^*)$,所以上式中的不等式均可化为等式。第四个不等式可化为等式,说明$L(\boldsymbol x,\boldsymbol \mu^*,\boldsymbol \lambda^*)$在$\boldsymbol x^*$处取得最小值,所以根据极值的性质可知在$\boldsymbol x^*$处一阶导$\nabla_{\boldsymbol x} L(\boldsymbol x^* ,\boldsymbol \mu^* ,\boldsymbol \lambda^*)=0$。最后一个不等式可化为等式,说明$\mu_i^* g_i(\boldsymbol x^*)=0$。此时再结合主问题和对偶问题原有的约束条件$\mu_i^*\geqslant 0,g_i(\boldsymbol x^*)\leqslant 0,h_j(\boldsymbol x^*)=0$便凑齐了KKT条件。
### 6.2.5 式(6.9)和式(6.10)的推导
$$
\begin{aligned}
L(\boldsymbol{w},b,\boldsymbol{\alpha}) &= \frac{1}{2}\|\boldsymbol{w}\|^2+\sum_{i=1}^m\alpha_i(1-y_i(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b)) \\
& =\frac{1}{2}\|\boldsymbol{w}\|^2+\sum_{i=1}^m(\alpha_i-\alpha_iy_i \boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i-\alpha_iy_ib)\\
& =\frac{1}{2}\boldsymbol{w}^{\mathrm{T}}\boldsymbol{w}+\sum_{i=1}^m\alpha_i -\sum_{i=1}^m\alpha_iy_i\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i-\sum_{i=1}^m\alpha_iy_ib
\end{aligned}
$$
对$\boldsymbol{w}$和$b$分别求偏导数并令其为零
$$
\frac {\partial L}{\partial \boldsymbol{w}}=\frac{1}{2}\times2\times\boldsymbol{w} + 0 - \sum_{i=1}^{m}\alpha_iy_i \boldsymbol{x}_i-0= 0 \Longrightarrow \boldsymbol{w}=\sum_{i=1}^{m}\alpha_iy_i \boldsymbol{x}_i
$$
$$
\frac {\partial L}{\partial b}=0+0-0-\sum_{i=1}^{m}\alpha_iy_i=0 \Longrightarrow \sum_{i=1}^{m}\alpha_iy_i=0
$$
### 6.2.6 式(6.11)的推导
因为$\alpha_{i}\geqslant0$,且$\frac{1}{2}\|\boldsymbol{w}\|^{2}$和$1-y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)$均是关于$\boldsymbol{w}$和$b$的凸函数,所以式(6.8)也是关于$\boldsymbol{w}$和$b$的凸函数。根据凸函数的性质可知,其极值点就是最值点,所以一阶导为零的点就是最小值点,因此将式(6.9)和式(6.10)代入式(6.8)后即可得式(6.8)的最小值(等价于下确界),再根据对偶问题的定义加上约束$\alpha_{i}\geqslant 0$,就得到了式(6.6)的对偶问题。由于式(6.10)也是$\alpha{i}$必须满足的条件,且不含有$\boldsymbol{w}$和$b$,因此也需要纳入对偶问题的约束条件。根据以上思路进行推导的过程如下:
$$
\begin{aligned}
\inf_{\boldsymbol{w},b} L(\boldsymbol{w},b,\boldsymbol{\alpha}) &=\frac{1}{2}\boldsymbol{w}^{\mathrm{T}}\boldsymbol{w}+\sum_{i=1}^m\alpha_i -\sum_{i=1}^m\alpha_iy_i\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i-\sum_{i=1}^m\alpha_iy_ib \\
&=\frac {1}{2}\boldsymbol{w}^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i-\boldsymbol{w}^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i+\sum _{i=1}^m\alpha_
i -b\sum _{i=1}^m\alpha_iy_i \\
& = -\frac {1}{2}\boldsymbol{w}^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i+\sum _{i=1}^m\alpha_i -b\sum _{i=1}^m\alpha_iy_i \\
&= -\frac {1}{2}\boldsymbol{w}^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i+\sum _{i=1}^m\alpha_i \\
&=-\frac {1}{2}(\sum_{i=1}^{m}\alpha_iy_i\boldsymbol{x}_i)^{\mathrm{T}}(\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i)+\sum _{i=1}^m\alpha_i \\
&=-\frac {1}{2}\sum_{i=1}^{m}\alpha_iy_i\boldsymbol{x}_i^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i+\sum _{i=1}^m\alpha_i \\
&=\sum _{i=1}^m\alpha_i-\frac {1}{2}\sum_{i=1 }^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j
\end{aligned}
$$
所以
$$
\max_{\boldsymbol{\alpha}}\inf_{\boldsymbol{w},b} L(\boldsymbol{w},b,\boldsymbol{\alpha})=\max_{\boldsymbol{\alpha}} \sum_{i=1}^m\alpha_i - \frac{1}{2}\sum_{i = 1}^m\sum_{j=1}^m\alpha_i \alpha_j y_iy_j\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j
$$
最后将$\alpha_{i}\geqslant 0$和式(6.10)作为约束条件即可得式(6.11)。
式(6.6)之所以要转化为式(6.11)来求解,其主要有以下两点理由:
(1)式(6.6)中的未知数是$\boldsymbol{w}$和$b$,式(6.11)中的未知数是$\boldsymbol{\alpha}$,$\boldsymbol{w}$的维度$d$对应样本特征个数,$\boldsymbol{\alpha}$的维度$m$对应训练样本个数,通常$m\ll d$,所以求解式(6.11)更高效,反之求解式(6.6)更高效;
(2)式(6.11)中有样本内积$\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j$这一项,后续可以很自然地引入核函数,进而使得支持向量机也能对在原始特征空间线性不可分的数据进行分类。
### 6.2.7 式(6.13)的解释
因为式(6.6)满足Slater条件,所以强对偶性成立,进而最优解满足KKT条件。
## 6.3 核函数
### 6.3.1 式(6.22)的解释
此即核函数的定义,即核函数可以分解成两个向量的内积。要想了解某个核函数是如何将原始特征空间映射到更高维的特征空间的,只需要分解为两个表达形式完全一样的向量内积即可。
## 6.4 软间隔与正则化
### 6.4.1 式(6.35)的推导
令
$$
\max \left(0,1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)\right)=\xi_{i}
$$
显然$\xi_i\geq 0$,且当$1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_{i}+b\right)>0$时有
$$
1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)=\xi_i
$$
当$1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_{i}+b\right)\leq 0$时有
$$
\xi_i = 0
$$
综上可得
$$
1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)\leqslant\xi_i\Rightarrow y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1-\xi_{i}
$$
### 6.4.2 式(6.37)和式(6.38)的推导
类比式(6.9)和式(6.10)的推导
### 6.4.3 式(6.39)的推导
式(6.36)关于$\xi_i$求偏导数并令其为零
$$
\frac{\partial L}{\partial \xi_i}=0+C \times 1 - \alpha_i \times 1-\mu_i
\times 1 =0\Rightarrow C=\alpha_i +\mu_i
$$
### 6.4.4 式(6.40)的推导
将式(6.37)、式(6.38)和(6.39)代入式(6.36)可以得到式(6.35)的对偶问题,有
$$
\begin{aligned}
&\frac{1}{2}\left\|\boldsymbol{w}\right\|^2+C\sum_{i=1}^m \xi_i+\sum_{i=1}^m\alpha_i\left(1-\xi_i-y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)\right)-\sum_{i=1}^m\mu_i \xi_i \\
=&\frac{1}{2}\left\|\boldsymbol{w}\right\|^2+\sum_{i=1}^m\alpha_i
\left(1-y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)\right)+C\sum_{i=1}^m \xi_i-\sum_{i=1}^m \alpha_i \xi_i-\sum_{i=1}^m\mu_i \xi_i \\
=&-\frac {1}{2}\sum_{i=1}^{m}\alpha_iy_i\boldsymbol{x}_i^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i+\sum _{i=1}^m\alpha_i +\sum_{i=1}^m C\xi_i-\sum_{i=1}^m \alpha_i \xi_i-\sum_{i=1}^m\mu_i \xi_i \\
=&-\frac {1}{2}\sum_{i=1}^{m}\alpha_iy_i\boldsymbol{x}_i^{\mathrm{T}}\sum _{i=1}^m\alpha_iy_i\boldsymbol{x}_i+\sum _{i=1}^m\alpha_i +\sum_{i=1}^m (C-\alpha_i-\mu_i)\xi_i \\
=&\sum _{i=1}^m\alpha_i-\frac {1}{2}\sum_{i=1 }^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j\\
=&\min_{\boldsymbol{w},b,\boldsymbol{\xi}}L(\boldsymbol{w},b,\boldsymbol{\alpha},\boldsymbol{\xi},\boldsymbol{\mu})
\end{aligned}
$$
所以
$$
\begin{aligned}
\max_{\boldsymbol{\alpha},\boldsymbol{\mu}}\min_{\boldsymbol{w},b,\boldsymbol{\xi}}L(\boldsymbol{w},b,\boldsymbol{\alpha},\boldsymbol{\xi},\boldsymbol{\mu})&=\max_{\boldsymbol{\alpha},\boldsymbol{\mu}}\quad\sum_{i=1}^m\alpha_i-\frac {1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}
\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j \\
&=\max_{\boldsymbol{\alpha}}\quad\sum _{i=1}^m\alpha_i-\frac
{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j
\end{aligned}
$$
又因为 $\alpha_i \geq 0$,$\mu_i \geq 0$,
$C = \alpha_i+\mu_i$,消去$\mu_i$可得等价约束条件
$$
0 \leqslant\alpha_i \leqslant C, \quad i=1,2,...,m
$$
### 6.4.5 对数几率回归与支持向量机的关系
在"西瓜书"本节的倒数第二段开头,其讨论了对数几率回归与支持向量机的关系,提到"如果使用对率损失函数$\ell_{\log}$来替代式(6.29)中的$0/1$损失函数,则几乎就得到了对率回归模型(3.27)",但式(6.29)与式(3.27)形式上相差甚远。为了更清晰的说明对数几率回归与软间隔支持向量机的关系,以下先对式(3.27)的形式进行变化。
将$\boldsymbol{\beta}=(\boldsymbol{w};b)$和$\hat{\boldsymbol{x}}=(\boldsymbol{x};1)$代入式(3.27)可得
$$
\begin{aligned}
\ell(\boldsymbol{w}, b) & =\sum_{i=1}^m\left(-y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)+\ln \left(1+e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}\right)\right) \\
& =\sum_{i=1}^m\left(\ln \frac{1}{e^{y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)}}+\ln \left(1+e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}\right)\right) \\
& =\sum_{i=1}^m \ln \frac{1+e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}}{e^{y_i\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)}} \\
& =\left\{\begin{array}{cl}
\sum_{i=1}^m \ln \left(1+e^{-\left(\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b\right)}\right),&\quad y_i=1 \\
\sum_{i=1}^m \ln \left(1+e^{\boldsymbol{w}^{\mathrm{T}}\boldsymbol{x}_i+b}\right),&\quad y_i=0
\end{array}\right.
\end{aligned}
$$
上式中正例和反例分别用$y_i=1$和$y_i=0$表示,这是对数几率回归常用的方式,而在支持向量机中正例和反例习惯用$y_i=+1$和$y_i=-1$表示。实际上,若上式也换用$y_i=+1$和$y_i=-1$分别表示正例和反例,则上式可改写为
$$
\begin{aligned}
\ell(\boldsymbol{w}, b) & =\left\{\begin{array}{cl}
\sum_{i=1}^m \ln \left(1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)}\right),&\quad y_i=+1 \\
\sum_{i=1}^m \ln \left(1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b}\right),&\quad y_i=-1
\end{array}\right. \\
&=\sum_{i=1}^m \ln \left(1+e^{-y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)}\right) \\
\end{aligned}
$$
此时上式的求和项正是式(6.33)所表述的对率损失。
### 6.4.6 式(6.41)的解释
参见式(6.13)的解释
## 6.5 支持向量回归
### 6.5.1 式(6.43)的解释
相比于线性回归用一条线来拟合训练样本,支持向量回归而是采用一个以$f(\boldsymbol x)=\boldsymbol{w}^\mathrm{T}\boldsymbol{x}+b$为中心,宽度为$2\epsilon$的间隔带,来拟合训练样本。
落在带子上的样本不计算损失(类比线性回归在线上的点预测误差为0),不在带子上的则以偏离带子的距离作为损失(类比线性回归的均方误差),然后以最小化损失的方式迫使间隔带从样本最密集的地方穿过,进而达到拟合训练样本的目的。因此支持向量回归的优化问题可以写为
$$
\min _{\boldsymbol{w}, b} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m} \ell_{\epsilon}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)
$$
其中$\ell_{\epsilon}(z)$为"$\epsilon$不敏感损失函数"(类比线性回归的均方误差损失)
$$
\ell_{\epsilon}(z)=\left\{\begin{array}{cc}{0,} & {\text { if }|z| \leqslant \epsilon} \\ {|z|-\epsilon,} & {\text { if }|z| > \epsilon}\end{array}\right.
$$
$\frac{1}{2}\|\boldsymbol{w}\|^{2}$为L2正则项,此处引入正则项除了起正则化本身的作用外,也是为了和软间隔支持向量机的优化目标保持形式上的一致,这样就可以导出对偶问题引入核函数,$C$为用来调节损失权重的正则化常数。
### 6.5.2 式(6.45)的推导
同软间隔支持向量机,引入松弛变量$\xi_i$,令
$$
\ell_{\epsilon}\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}\right)=\xi_i
$$
显然$\xi_i\geqslant 0$,并且当$|f\left(\boldsymbol{x}_{i}\right)-y_{i}|\leqslant\epsilon$时,$\xi_i=0$,当$|f\left(\boldsymbol{x}_{i}\right)-y_{i}|>\epsilon$时,$\xi_i=|f\left(\boldsymbol{x}_{i}\right)-y_{i}|-\epsilon$,所以
$$
|f\left(\boldsymbol{x}_{i}\right)-y_{i}|-\epsilon\leqslant\xi_i
$$
$$
|f\left(\boldsymbol{x}_{i}\right)-y_{i}|\leqslant\epsilon+\xi_i
$$
$$
-\epsilon-\xi_i\leqslant f\left(\boldsymbol{x}_{i}\right)-y_{i}\leqslant\epsilon+\xi_i
$$
因此支持向量回归的优化问题可以化为
$$
\min _{\boldsymbol{w}, b, \xi_{i}} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m}\xi_{i}
$$
$$
\begin{array}{ll}{\text { s.t. }} & {-\epsilon-\xi_i\leqslant f\left(\boldsymbol{x}_{i}\right)-y_{i}\leqslant\epsilon+\xi_i} \\ {} & {\xi_{i} \geqslant 0, i=1,2, \ldots, m}\end{array}
$$
如果考虑两边采用不同的松弛程度,则有
$$
\min _{\boldsymbol{w}, b, \xi_{i}, \hat{\xi}_{i}} \frac{1}{2}\|\boldsymbol{w}\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}+\hat{\xi}_{i}\right)
$$
$$
\begin{array}{ll}{\text { s.t. }} & {-\epsilon-\hat{\xi}_i\leqslant f\left(\boldsymbol{x}_{i}\right)-y_{i}\leqslant\epsilon+\xi_i} \\ {} & {\xi_{i} \geqslant 0, \hat{\xi}_{i} \geqslant 0, i=1,2, \ldots, m}\end{array}
$$
### 6.5.3 式(6.52)的推导
将式(6.45)的约束条件全部恒等变形为小于等于0的形式可得
$$
\left\{\begin{array}{l}
{f\left(\boldsymbol{x}_{i}\right)-y_{i}-\epsilon-\xi_{i} \leq 0 } \\
{y_{i}-f\left(\boldsymbol{x}_{i}\right)-\epsilon-\hat{\xi}_{i} \leq 0 } \\
{-\xi_{i} \leq 0} \\
{-\hat{\xi}_{i} \leq 0}
\end{array}\right.
$$
由于以上四个约束条件的拉格朗日乘子分别为$\alpha_i,\hat{\alpha}_i,\mu_i,\hat{\mu}_i$,所以其对应的KKT条件为
$$
\left\{\begin{array}{l}
{\alpha_i\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}-\epsilon-\xi_{i} \right) = 0 } \\
{\hat{\alpha}_i\left(y_{i}-f\left(\boldsymbol{x}_{i}\right)-\epsilon-\hat{\xi}_{i} \right) = 0 } \\
{-\mu_i\xi_{i} = 0 \Rightarrow \mu_i\xi_{i} = 0 } \\
{-\hat{\mu}_i \hat{\xi}_{i} = 0 \Rightarrow \hat{\mu}_i
\hat{\xi}_{i} = 0}
\end{array}\right.
$$
又由式(6.49)和式(6.50)有
$$
\left\{\begin{aligned}
\mu_i=C-\alpha_i\\
\hat{\mu}_i=C-\hat{\alpha}_i
\end{aligned}\right.
$$
所以上述KKT条件可以进一步变形为
$$
\left\{\begin{array}{l}
{\alpha_i\left(f\left(\boldsymbol{x}_{i}\right)-y_{i}-\epsilon-\xi_{i} \right) = 0 } \\
{\hat{\alpha}_i\left(y_{i}-f\left(\boldsymbol{x}_{i}\right)-\epsilon-\hat{\xi}_{i} \right) = 0 } \\
{(C-\alpha_i)\xi_{i} = 0 } \\
{(C-\hat{\alpha}_i) \hat{\xi}_{i} = 0 }
\end{array}\right.
$$
又因为样本$(\boldsymbol{x}_i,y_i)$只可能处在间隔带的某一侧,即约束条件$f\left(\boldsymbol{x}_{i}\right)-y_{i}-\epsilon-\xi_{i}=0$和$y_{i}-f\left(\boldsymbol{x}_{i}\right)-\epsilon-\hat{\xi}_{i}=0$不可能同时成立,所以$\alpha_i$和$\hat{\alpha}_i$中至少有一个为0,即$\alpha_i\hat{\alpha}_i=0$。
在此基础上再进一步分析可知,如果$\alpha_i=0$,则根据约束$(C-\alpha_i)\xi_{i} = 0$可知此时$\xi_i=0$。同理,如果$\hat{\alpha}_i=0$,则根据约束$(C-\hat{\alpha}_i)\hat{\xi}_{i} =
0$可知此时$\hat{\xi}_i=0$。所以$\xi_i$和$\hat{\xi}_i$中也是至少有一个为0,即$\xi_{i}\hat{\xi}_{i}=0$。将$\alpha_i\hat{\alpha}_i=0,\xi_{i}\hat{\xi}_{i}=0$整合进上述KKT条件中即可得到式(6.52)。
## 6.6 核方法
### 6.6.1 式(6.57)和式(6.58)的解释
式(6.24)是式(6.20)的解;式(6.56)是式(6.43)的解。对应到表示定理式(6.57)当中,式(6.20)和式(6.43)均为$\Omega\left(\|h\|_{\mathbb{H}}\right)=\frac{1}{2}\|\boldsymbol{w}\|^2$,式(6.20)的$\ell\left(h(\boldsymbol{x}_1),h(\boldsymbol{x}_2),...,h(\boldsymbol{x}_m)\right)=0$,而式(6.43)的$\ell\left(h(\boldsymbol{x}_1),h(\boldsymbol{x}_2),...,h(\boldsymbol{x}_m)\right)=C\sum_{i=1}^{m}\ell_{\epsilon}(f(\boldsymbol{x}_i)-y_i)$,均满足式(6.57)的要求,式(6.20)和式(6.43)的解均为$\kappa(\boldsymbol{x},\boldsymbol{x}_i)$的线性组合,即式(6.58)。
### 6.6.2 式(6.65)的推导
由表示定理可知,此时二分类KLDA最终求得的投影直线方程总可以写成如下形式:
$$
h(\boldsymbol{x})=\sum_{i=1}^{m} \alpha_{i} \kappa\left(\boldsymbol{x}, \boldsymbol{x}_{i}\right)
$$
又因为直线方程的固定形式为
$$
h(\boldsymbol{x})=\boldsymbol{w}^{\mathrm{T}}\phi(\boldsymbol{x})
$$
所以
$$
\boldsymbol{w}^{\mathrm{T}}\phi(\boldsymbol{x})=\sum_{i=1}^{m} \alpha_{i} \kappa\left(\boldsymbol{x}, \boldsymbol{x}_{i}\right)
$$
将$\kappa\left(\boldsymbol{x},
\boldsymbol{x}_{i}\right)=\phi(\boldsymbol{x})^{\mathrm{T}}\phi(\boldsymbol{x}_i)$代入可得
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}}\phi(\boldsymbol{x})&=\sum_{i=1}^{m} \alpha_{i}
\phi(\boldsymbol{x})^{\mathrm{T}}\phi(\boldsymbol{x}_i)\\
&=\phi(\boldsymbol{x})^{\mathrm{T}}\cdot\sum_{i=1}^{m} \alpha_{i}
\phi(\boldsymbol{x}_i)
\end{aligned}
$$
由于$\boldsymbol{w}^{\mathrm{T}}\phi(\boldsymbol{x})$的计算结果为标量,而标量的转置等于其本身,所以
$$
\boldsymbol{w}^{\mathrm{T}}\phi(\boldsymbol{x})=
\left(\boldsymbol{w}^{\mathrm{T}}\phi(\boldsymbol{x})\right)^{\mathrm{T}}
=\phi(\boldsymbol{x})^{\mathrm{T}}\boldsymbol{w}
=\phi(\boldsymbol{x})^{\mathrm{T}}\sum_{i=1}^{m} \alpha_{i}
\phi(\boldsymbol{x}_i)
$$
即
$$
\boldsymbol{w}=\sum_{i=1}^{m} \alpha_{i} \phi(\boldsymbol{x}_i)
$$
### 6.6.3 式(6.66)和式(6.67)的解释
为了详细地说明此式的计算原理,下面首先举例说明,然后再在例子的基础上延展出其一般形式。
假设此时仅有4个样本,其中第1和第3个样本的标记为0,第2和第4个样本的标记为1,那么此时有
$$
m=4
$$
$$
m_0=2,m_1=2
$$
$$
X_0=\{\boldsymbol{x}_1,\boldsymbol{x}_3\},X_1=\{\boldsymbol{x}_2,\boldsymbol{x}_4\}
$$
$$
\mathbf{K}=\left[ \begin{array}{cccc}
\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_1\right) & \kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_2\right) & \kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_3\right) & \kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_4\right)\\
\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_1\right) & \kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_2\right) & \kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_3\right) & \kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_4\right)\\
\kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_1\right) & \kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_2\right) & \kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_3\right) & \kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_4\right)\\
\kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_1\right) & \kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_2\right) & \kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_3\right) & \kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_4\right)\\
\end{array} \right]\in \mathbb{R}^{4\times 4}
$$
$$
\mathbf{1}_{0}=\left[ \begin{array}{c}
1\\
0\\
1\\
0\\
\end{array} \right]\in \mathbb{R}^{4\times 1}
$$
$$
\mathbf{1}_{1}=\left[ \begin{array}{c}
0\\
1\\
0\\
1\\
\end{array} \right]\in \mathbb{R}^{4\times 1}
$$
所以
$$
\hat{\boldsymbol{\mu}}_{0}=\frac{1}{m_{0}} \mathbf{K} \mathbf{1}_{0}=\frac{1}{2}\left[ \begin{array}{c}
\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_1\right)+\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_3\right)\\
\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_1\right)+\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_3\right)\\
\kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_1\right)+\kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_3\right)\\
\kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_1\right)+\kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_3\right)\\
\end{array} \right]\in \mathbb{R}^{4\times 1}
$$
$$
\hat{\boldsymbol{\mu}}_{1}=\frac{1}{m_{1}} \mathbf{K} \mathbf{1}_{1}=\frac{1}{2}\left[ \begin{array}{c}
\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_2\right)+\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}_4\right)\\
\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_2\right)+\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}_4\right)\\
\kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_2\right)+\kappa\left(\boldsymbol{x}_3, \boldsymbol{x}_4\right)\\
\kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_2\right)+\kappa\left(\boldsymbol{x}_4, \boldsymbol{x}_4\right)\\
\end{array} \right]\in \mathbb{R}^{4\times 1}
$$
根据此结果易得$\hat{\boldsymbol{\mu}}_{0},\hat{\boldsymbol{\mu}}_{1}$的一般形式为
$$
\hat{\boldsymbol{\mu}}_{0}=\frac{1}{m_{0}} \mathbf{K} \mathbf{1}_{0}=\frac{1}{m_{0}}\left[ \begin{array}{c}
\sum_{\boldsymbol{x} \in X_{0}}\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}\right)\\
\sum_{\boldsymbol{x} \in X_{0}}\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}\right)\\
\vdots\\
\sum_{\boldsymbol{x} \in X_{0}}\kappa\left(\boldsymbol{x}_m, \boldsymbol{x}\right)\\
\end{array} \right]\in \mathbb{R}^{m\times 1}
$$
$$
\hat{\boldsymbol{\mu}}_{1}=\frac{1}{m_{1}} \mathbf{K} \mathbf{1}_{1}=\frac{1}{m_{1}}\left[ \begin{array}{c}
\sum_{\boldsymbol{x} \in X_{1}}\kappa\left(\boldsymbol{x}_1, \boldsymbol{x}\right)\\
\sum_{\boldsymbol{x} \in X_{1}}\kappa\left(\boldsymbol{x}_2, \boldsymbol{x}\right)\\
\vdots\\
\sum_{\boldsymbol{x} \in X_{1}}\kappa\left(\boldsymbol{x}_m, \boldsymbol{x}\right)\\
\end{array} \right]\in \mathbb{R}^{m\times 1}
$$
### 6.6.4 式(6.70)的推导
此式是将式(6.65)代入式(6.60)后推得而来的,下面给出详细地推导过程。
首先将式(6.65)代入式(6.60)的分子可得
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}^{\phi} \boldsymbol{w}&=\left(\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)\right)^{\mathrm{T}}\cdot\mathbf{S}_{b}^{\phi}\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
&=\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\cdot\mathbf{S}_{b}^{\phi}\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
\end{aligned}
$$
其中
$$
\begin{aligned}
\mathbf{S}_{b}^{\phi} &=\left(\boldsymbol{\mu}_{1}^{\phi}-\boldsymbol{\mu}_{0}^{\phi}\right)\left(\boldsymbol{\mu}_{1}^{\phi}-\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}} \\
&=\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\right)\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\right)^{\mathrm{T}} \\
&=\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\right)\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})^{\mathrm{T}}-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})^{\mathrm{T}}\right) \\
\end{aligned}
$$
将其代入上式可得
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}^{\phi} \boldsymbol{w}=&\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\cdot\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\right)\cdot\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})^{\mathrm{T}}-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})^{\mathrm{T}}\right)\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
=&\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}}\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}} \phi(\boldsymbol{x})-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\phi(\boldsymbol{x})\right)\\
&\cdot\left(\frac{1}{m_{1}} \sum_{\boldsymbol{x} \in X_{1}} \sum_{i=1}^{m} \alpha_{i} \phi(\boldsymbol{x})^{\mathrm{T}}\phi\left(\boldsymbol{x}_{i}\right)-\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \sum_{i=1}^{m} \alpha_{i} \phi(\boldsymbol{x})^{\mathrm{T}}\phi\left(\boldsymbol{x}_{i}\right)\right) \\
\end{aligned}
$$
由于$\kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)=\phi(\boldsymbol{x}_i)^{\mathrm{T}}\phi(\boldsymbol{x})$为标量,所以其转置等于本身,即$\kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)=\phi(\boldsymbol{x}_i)^{\mathrm{T}}\phi(\boldsymbol{x})=\left(\phi(\boldsymbol{x}_i)^{\mathrm{T}}\phi(\boldsymbol{x})\right)^{\mathrm{T}}=\phi(\boldsymbol{x})^{\mathrm{T}}\phi(\boldsymbol{x}_i)=\kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)^{\mathrm{T}}$,将其代入上式可得
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}^{\phi} \boldsymbol{w}=&\left(\frac{1}{m_{1}} \sum_{i=1}^{m}\sum_{\boldsymbol{x} \in X_{1}}\alpha_{i} \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)-\frac{1}{m_{0}} \sum_{i=1}^{m} \sum_{\boldsymbol{x} \in X_{0}} \alpha_{i} \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)\right)\\
&\cdot\left(\frac{1}{m_{1}} \sum_{i=1}^{m}\sum_{\boldsymbol{x} \in X_{1}} \alpha_{i} \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)-\frac{1}{m_{0}}\sum_{i=1}^{m} \sum_{\boldsymbol{x} \in X_{0}} \alpha_{i} \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)\right)
\end{aligned}
$$
设$\boldsymbol{\alpha}=(\alpha_1;\alpha_2;...;\alpha_m)^{\mathrm{T}}\in \mathbb{R}^{m\times 1}$,同时结合式(6.66)的解释可得到$\hat{\boldsymbol{\mu}}_{0},\hat{\boldsymbol{\mu}}_{1}$的一般形式,上式可以化简为
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}^{\phi} \boldsymbol{w}&=\left(\boldsymbol{\alpha}^{\mathrm{T}}\hat{\boldsymbol{\mu}}_{1}-\boldsymbol{\alpha}^{\mathrm{T}}\hat{\boldsymbol{\mu}}_{0}\right)\cdot\left(\hat{\boldsymbol{\mu}}_{1}^{\mathrm{T}}\boldsymbol{\alpha}-\hat{\boldsymbol{\mu}}_{0}^{\mathrm{T}}\boldsymbol{\alpha}\right)\\
&=\boldsymbol{\alpha}^{\mathrm{T}}\cdot\left(\hat{\boldsymbol{\mu}}_{1}-\hat{\boldsymbol{\mu}}_{0}\right)\cdot\left(\hat{\boldsymbol{\mu}}_{1}^{\mathrm{T}}-\hat{\boldsymbol{\mu}}_{0}^{\mathrm{T}}\right)\cdot\boldsymbol{\alpha}\\
&=\boldsymbol{\alpha}^{\mathrm{T}}\cdot\left(\hat{\boldsymbol{\mu}}_{1}-\hat{\boldsymbol{\mu}}_{0}\right)\cdot\left(\hat{\boldsymbol{\mu}}_{1}-\hat{\boldsymbol{\mu}}_{0}\right)^{\mathrm{T}}\cdot\boldsymbol{\alpha}\\
&=\boldsymbol{\alpha}^{\mathrm{T}} \mathbf{M} \boldsymbol{\alpha}\\
\end{aligned}
$$
以上便是式(6.70)分子部分的推导,下面继续推导式(6.70)的分母部分。将式(6.65)代入式(6.60)的分母可得:
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}^{\phi} \boldsymbol{w}&=\left(\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)\right)^{\mathrm{T}}\cdot\mathbf{S}_{w}^{\phi}\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
&=\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\cdot\mathbf{S}_{w}^{\phi}\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
\end{aligned}
$$
其中
$$
\begin{aligned}
\mathbf{S}_{w}^{\phi}&=\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\left(\phi(\boldsymbol{x})-\boldsymbol{\mu}_{i}^{\phi}\right)\left(\phi(\boldsymbol{x})-\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}} \\
&=\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\left(\phi(\boldsymbol{x})-\boldsymbol{\mu}_{i}^{\phi}\right)\left(\phi(\boldsymbol{x})^{\mathrm{T}}-\left(\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}}\right) \\
&=\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\left(\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}-\phi(\boldsymbol{x})\left(\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}}-\boldsymbol{\mu}_{i}^{\phi}\phi(\boldsymbol{x})^{\mathrm{T}}+\boldsymbol{\mu}_{i}^{\phi}\left(\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}}\right) \\
&=\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}-\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\phi(\boldsymbol{x})\left(\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}}-\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\boldsymbol{\mu}_{i}^{\phi}\phi(\boldsymbol{x})^{\mathrm{T}}+\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}}\boldsymbol{\mu}_{i}^{\phi}\left(\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}} \\
\end{aligned}
$$
由于
$$
\begin{aligned}
\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}} \phi(\boldsymbol{x})\left(\boldsymbol{\mu}_{i}^{\phi}\right)^{\mathrm{T}} &=\sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}} \\
&=m_{0} \boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}+m_{1} \boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}
\end{aligned}
$$
且
$$
\begin{aligned}
\sum_{i=0}^{1} \sum_{\boldsymbol{x} \in X_{i}} \boldsymbol{\mu}_{i}^{\phi} \phi(\boldsymbol{x})^{\mathrm{T}} &=\sum_{i=0}^{1} \boldsymbol{\mu}_{i}^{\phi} \sum_{\boldsymbol{x} \in X_{i}} \phi(\boldsymbol{x})^{\mathrm{T}} \\ &=\boldsymbol{\mu}_{0}^{\phi} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})^{\mathrm{T}}+\boldsymbol{\mu}_{1}^{\phi} \sum_{\boldsymbol{x} \in X_{1}} \phi(\boldsymbol{x})^{\mathrm{T}} \\ &=m_{0} \boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}+m_{1} \boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}
\end{aligned}
$$
所以
$$
\begin{aligned}
\mathbf{S}_{w}^{\phi}&=\sum_{\boldsymbol{x} \in D}\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}-2\left[m_0\boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}+m_1\boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}\right]+m_0 \boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}+m_1 \boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}} \\
&=\sum_{\boldsymbol{x} \in D}\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}-m_0\boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}-m_1\boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}\\
\end{aligned}
$$
再将此式代回$\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}^{\phi} \boldsymbol{w}$可得
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}^{\phi} \boldsymbol{w}=&\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\cdot\mathbf{S}_{w}^{\phi}\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
=&\sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\cdot\left(\sum_{\boldsymbol{x} \in D}\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}-m_0\boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}-m_1\boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}\right)\cdot \sum_{i=1}^{m} \alpha_{i} \phi\left(\boldsymbol{x}_{i}\right) \\
=&\sum_{i=1}^{m}\sum_{j=1}^{m}\sum_{\boldsymbol{x} \in D}\alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}\alpha_{j} \phi\left(\boldsymbol{x}_{j}\right)-\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}m_0\boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}\alpha_{j} \phi\left(\boldsymbol{x}_{j}\right)\\
&-\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}m_1\boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}\alpha_{j} \phi\left(\boldsymbol{x}_{j}\right) \\
\end{aligned}
$$
其中,第1项
$$
\begin{aligned}
\sum_{i=1}^{m}\sum_{j=1}^{m}\sum_{\boldsymbol{x} \in D}\alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\phi(\boldsymbol{x})\phi(\boldsymbol{x})^{\mathrm{T}}\alpha_{j} \phi\left(\boldsymbol{x}_{j}\right)&=\sum_{i=1}^{m}\sum_{j=1}^{m}\sum_{\boldsymbol{x} \in D}\alpha_{i} \alpha_{j}\kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)\kappa\left(\boldsymbol{x}_j, \boldsymbol{x}\right)\\
&=\boldsymbol{\alpha}^{\mathrm{T}} \mathbf{K} \mathbf{K}^{\mathrm{T}} \boldsymbol{\alpha}
\end{aligned}
$$
第2项
$$
\begin{aligned}
\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}m_0\boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}}\alpha_{j} \phi\left(\boldsymbol{x}_{j}\right)&=m_0\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\boldsymbol{\mu}_{0}^{\phi}\left(\boldsymbol{\mu}_{0}^{\phi}\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right)\\
&=m_0\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}\phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\left[\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\right]\left[\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})\right]^{\mathrm{T}} \phi\left(\boldsymbol{x}_{j}\right)\\
&=m_0\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}\left[\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}\phi(\boldsymbol{x})\right]\left[\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \phi(\boldsymbol{x})^{\mathrm{T}}\phi\left(\boldsymbol{x}_{j}\right)\right] \\
&=m_0\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}\left[\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}\right)\right]\left[\frac{1}{m_{0}} \sum_{\boldsymbol{x} \in X_{0}} \kappa\left(\boldsymbol{x}_j, \boldsymbol{x}\right)\right] \\
&=m_0\boldsymbol{\alpha}^{\mathrm{T}} \hat{\boldsymbol{\mu}}_{0} \hat{\boldsymbol{\mu}}_{0}^{\mathrm{T}} \boldsymbol{\alpha}
\end{aligned}
$$
同理,有第3项
$$
\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i} \phi\left(\boldsymbol{x}_{i}\right)^{\mathrm{T}}m_1\boldsymbol{\mu}_{1}^{\phi}\left(\boldsymbol{\mu}_{1}^{\phi}\right)^{\mathrm{T}}\alpha_{j} \phi\left(\boldsymbol{x}_{j}\right)=m_1\boldsymbol{\alpha}^{\mathrm{T}} \hat{\boldsymbol{\mu}}_{1} \hat{\boldsymbol{\mu}}_{1}^{\mathrm{T}} \boldsymbol{\alpha}
$$
将上述三项的化简结果代回再将此式代回$\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}^{\phi} \boldsymbol{w}$可得
$$
\begin{aligned}
\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}^{\phi} \boldsymbol{w}&=\boldsymbol{\alpha}^{\mathrm{T}} \mathbf{K} \mathbf{K}^{\mathrm{T}} \boldsymbol{\alpha}-m_0\boldsymbol{\alpha}^{\mathrm{T}} \hat{\boldsymbol{\mu}}_{0} \hat{\boldsymbol{\mu}}_{0}^{\mathrm{T}} \boldsymbol{\alpha}-m_1\boldsymbol{\alpha}^{\mathrm{T}} \hat{\boldsymbol{\mu}}_{1} \hat{\boldsymbol{\mu}}_{1}^{\mathrm{T}} \boldsymbol{\alpha}\\
&=\boldsymbol{\alpha}^{\mathrm{T}} \cdot\left(\mathbf{K} \mathbf{K}^{\mathrm{T}} -m_0\hat{\boldsymbol{\mu}}_{0} \hat{\boldsymbol{\mu}}_{0}^{\mathrm{T}} -m_1\hat{\boldsymbol{\mu}}_{1} \hat{\boldsymbol{\mu}}_{1}^{\mathrm{T}} \right)\cdot\boldsymbol{\alpha}\\
&=\boldsymbol{\alpha}^{\mathrm{T}} \cdot\left(\mathbf{K} \mathbf{K}^{\mathrm{T}}-\sum_{i=0}^{1} m_{i} \hat{\boldsymbol{\mu}}_{i} \hat{\boldsymbol{\mu}}_{i}^{\mathrm{T}} \right)\cdot\boldsymbol{\alpha}\\
&=\boldsymbol{\alpha}^{\mathrm{T}} \mathbf{N}\boldsymbol{\alpha}\\
\end{aligned}
$$
### 6.6.5 核对数几率回归
将"对数几率回归与支持向量机的关系"中最后得到的对数几率回归重写为如下形式
$$
\min_{\boldsymbol{w}, b} \frac{1}{m} \sum_{i=1}^m \log \left(1+e^{-y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)}\right)+\frac{\lambda}{2 m}\|\boldsymbol{w}\|^2
$$
其中$\lambda$是用来调整正则项权重的正则化常数。假设$\boldsymbol{z}_i=\phi(\boldsymbol{x}_i)$是由原始空间经核函数映射到高维空间的特征向量,则
$$
\min_{\boldsymbol{w}, b} \frac{1}{m} \sum_{i=1}^m \log \left(1+e^{-y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{z}_i+b\right)}\right)+\frac{\lambda}{2 m}\|\boldsymbol{w}\|^2
$$
注意,以上两式中的$\boldsymbol{w}$维度是不同的,其分别与$\boldsymbol{x}_i$和$\boldsymbol{z}_i$的维度一致。根据表示定理,上式的解可以写为
$$
\boldsymbol{w}=\sum_{j=1}^{m}\alpha_j\boldsymbol{z}_j
$$
将$\boldsymbol{w}$代入对数几率回归可得
$$
\min _{\boldsymbol{w}, b} \frac{1}{m} \sum_{i=1}^m \log \left(1+e^{-y_i\left(\sum_{j=1}^m \alpha_j \boldsymbol{z}_j^{\mathrm{T}} \boldsymbol{z}_i+b\right)}\right)+\frac{\lambda}{2 m} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j \boldsymbol{z}_i^{\mathrm{T}} \boldsymbol{z}_j
$$
用核函数$\kappa\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)=\boldsymbol{z}_i^{\mathrm{T}} \boldsymbol{z}_j=\phi\left(\boldsymbol{x}_i\right)^{\mathrm{T}} \phi\left(\boldsymbol{x}_j\right)$替换上式中的内积运算
$$
\min _{\boldsymbol{w}, b} \frac{1}{m} \sum_{i=1}^m \log \left(1+e^{-y_i\left(\sum_{j=1}^m \alpha_j \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)+b\right)}\right)+\frac{\lambda}{2 m} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j \kappa\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)
$$
解出$\boldsymbol{\alpha}=(\alpha_1,\alpha_2,...,\alpha_m)$和$b$后,即可得$f(\boldsymbol{x})=\sum_{i=1}^{m}\alpha_i\kappa(\boldsymbol{x},\boldsymbol{x}_i)+b$。
## 参考文献
[1] 王燕军. 最优化基础理论与方法. 复旦大学出版社, 2011.
[2] 王书宁. 凸优化. 清华大学出版社, 2013.
================================================
FILE: docs/chapter7/chapter7.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=11
# 第7章 贝叶斯分类器
本章是从概率框架下的贝叶斯视角给出机器学习问题的建模方法,不同于前几章着重于算法具体实现,本章的理论性会更强。朴素贝叶斯算法常用于文本分类,例如用于广告邮件检测,贝叶斯网和EM算法均属于概率图模型的范畴,因此可合并至第14章一起学习。
## 7.1 贝叶斯决策论
### 7.1.1 式(7.5)的推导
由式(7.1)和式(7.4)可得
$$
R(c_i|\boldsymbol x)=1*P(c_1|\boldsymbol x)+...+1*P(c_{i-1}|\boldsymbol x)+0*P(c_i|\boldsymbol x)+1*P(c_{i+1}|\boldsymbol x)+...+1*P(c_N|\boldsymbol x)
$$
又$\sum_{j=1}^{N}P(c_j|\boldsymbol x)=1$,则
$$
R(c_i|\boldsymbol x)=1-P(c_i|\boldsymbol x)
$$
此即式(7.5)。
### 7.1.2 式(7.6)的推导
将式(7.5)代入式(7.3)即可推得此式
### 7.1.3 判别式模型与生成式模型
对于判别式模型来说,就是在已知$\boldsymbol{x}$的条件下判别其类别标记$c$,即求后验概率$P(c|\boldsymbol{x})$,前几章介绍的模型都属于判别式模型的范畴,尤其是对数几率回归最为直接明了,式(3.23)和式(3.24)直接就是后验概率的形式。
对于生成式模型来说,理解起来比较抽象,但是可通过思考以下两个问题来理解。
(1)对于数据集来说,其中的样本是如何生成的?通常假设数据集中的样本服从独立同分布,即每个样本都是按照联合概率分布$P(\boldsymbol{x},c)$采样而得,也可以描述为根据$P(\boldsymbol{x},c)$生成的。
(2)若已知样本$\boldsymbol{x}$和联合概率分布$P(\boldsymbol{x},c)$,如何预测类别呢?若样本$\boldsymbol{x}$和联合概率分布$P(\boldsymbol{x},c)$已知,则可以分别求出$\boldsymbol{x}$属于各个类别的概率,即$P(\boldsymbol{x},c_1),P(\boldsymbol{x},c_2),...,P(\boldsymbol{x},c_N)$,然后选择概率最大的类别作为样本$\boldsymbol{x}$的预测结果。
因此,之所以称为"生成式"模型,是因为所求的概率$P(\boldsymbol{x},c)$是生成样本$\boldsymbol{x}$的概率。
## 7.2 极大似然估计
### 7.2.1 式(7.12)和(7.13)的推导
根据式(7.11)和式(7.10)可知参数求解式为
$$
\begin{aligned}
\hat{\boldsymbol{\theta}}_{c}&=\underset{\boldsymbol{\theta}_{c}}{\arg \max } LL\left(\boldsymbol{\theta}_{c}\right) \\
&=\underset{\boldsymbol{\theta}_{c}}{\arg \min } -LL\left(\boldsymbol{\theta}_{c}\right) \\
&= \underset{\boldsymbol{\theta}_{c}}{\arg \min }-\sum_{\boldsymbol{x} \in D_{c}} \log P\left(\boldsymbol{x} | \boldsymbol{\theta}_{c}\right)
\end{aligned}
$$
由"西瓜书"上下文可知,此时假设概率密度函数$p(\boldsymbol{x} | c) \sim \mathcal{N}\left(\boldsymbol{\mu}_{c}, \boldsymbol{\sigma}_{c}^{2}\right)$,其等价于假设
$$
P\left(\boldsymbol{x} | \boldsymbol{\theta}_{c}\right)=P\left(\boldsymbol{x} | \boldsymbol{\mu}_{c}, \boldsymbol{\sigma}_{c}^{2}\right)=\frac{1}{\sqrt{(2 \pi)^{d}|\boldsymbol{\Sigma}_c|}} \exp \left(-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_c)\right)
$$
其中,$d$表示$\boldsymbol{x}$的维数,$\boldsymbol{\Sigma}_c=\boldsymbol{\sigma}_{c}^{2}$为对称正定协方差矩阵,$|\boldsymbol{\Sigma}_c|$表示$\boldsymbol{\Sigma}_c$的行列式。将其代入参数求解式可得
$$
\begin{aligned}
(\hat{\boldsymbol{\mu}}_{c}, \hat{\boldsymbol{\Sigma}}_{c})&= \underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }-\sum_{\boldsymbol{x} \in D_{c}} \log\left[\frac{1}{\sqrt{(2 \pi)^{d}|\boldsymbol{\Sigma}_c|}} \exp \left(-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_c)\right)\right] \\
&= \underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }-\sum_{\boldsymbol{x} \in D_{c}} \left[-\frac{d}{2}\log(2 \pi)-\frac{1}{2}\log|\boldsymbol{\Sigma}_c|-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_c)\right] \\
&= \underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }\sum_{\boldsymbol{x} \in D_{c}} \left[\frac{d}{2}\log(2 \pi)+\frac{1}{2}\log|\boldsymbol{\Sigma}_c|+\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_c)\right] \\
&= \underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }\sum_{\boldsymbol{x} \in D_{c}} \left[\frac{1}{2}\log|\boldsymbol{\Sigma}_c|+\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_c)\right] \\
\end{aligned}
$$
假设此时数据集$D_c$中的样本个数为$n$,即$|D_c|=n$,则上式可以改写为
$$
\begin{aligned}
(\hat{\boldsymbol{\mu}}_{c}, \hat{\boldsymbol{\Sigma}}_{c})&=\underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }\sum_{i=1}^{n} \left[\frac{1}{2}\log|\boldsymbol{\Sigma}_c|+\frac{1}{2}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}_{i}-\boldsymbol{\mu}_c)\right]\\
&=\underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }\frac{n}{2}\log|\boldsymbol{\Sigma}_c|+\sum_{i=1}^{n}\frac{1}{2}(\boldsymbol{x}_i-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}_c)\\
\end{aligned}
$$
为了便于分别求解$\hat{\boldsymbol{\mu}}_{c}$和$\hat{\boldsymbol{\Sigma}}_{c}$,在这里我们根据式$\boldsymbol{x}^{\mathrm{T}}\mathbf{A}\boldsymbol{x}=\operatorname{tr}(\mathbf{A}\boldsymbol{x}\boldsymbol{x}^{\mathrm{T}}),\bar{\boldsymbol{x}}=\frac{1}{n}\sum_{i=1}^{n}\boldsymbol{x}_i$将上式中的最后一项作如下恒等变形:
$$
\begin{aligned}
&\sum_{i=1}^{n}\frac{1}{2}(\boldsymbol{x}_i-\boldsymbol{\mu}_c)^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{x}_i-\boldsymbol{\mu}_c)\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\boldsymbol{\mu}_c)(\boldsymbol{x}_i-\boldsymbol{\mu}_c)^{\mathrm{T}}\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}\left(\boldsymbol{x}_i\boldsymbol{x}_i^{\mathrm{T}}-\boldsymbol{x}_i\boldsymbol{\mu}_c^{\mathrm{T}}-\boldsymbol{\mu}_c\boldsymbol{x}_i^{\mathrm{T}}+\boldsymbol{\mu}_c\boldsymbol{\mu}_c^{\mathrm{T}}\right)\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\left(\sum_{i=1}^{n}\boldsymbol{x}_i\boldsymbol{x}_i^{\mathrm{T}}-n\bar{\boldsymbol{x}}\boldsymbol{\mu}_c^{\mathrm{T}}-n\boldsymbol{\mu}_c\bar{\boldsymbol{x}}^{\mathrm{T}}+n\boldsymbol{\mu}_c\boldsymbol{\mu}_c^{\mathrm{T}}\right)\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\left(\sum_{i=1}^{n}\boldsymbol{x}_i\boldsymbol{x}_i^{\mathrm{T}}-2n\bar{\boldsymbol{x}}\boldsymbol{\mu}_c^{\mathrm{T}}+n\boldsymbol{\mu}_c\boldsymbol{\mu}_c^{\mathrm{T}}+2n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathrm{T}}-2n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathrm{T}}\right)\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\left(\left(\sum_{i=1}^{n}\boldsymbol{x}_i\boldsymbol{x}_i^{\mathrm{T}}-2n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathrm{T}}+n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathrm{T}}\right)+\left(n\boldsymbol{\mu}_c\boldsymbol{\mu}_c^{\mathrm{T}}-2n\bar{\boldsymbol{x}}\boldsymbol{\mu}_c^{\mathrm{T}}+n\bar{\boldsymbol{x}}\bar{\boldsymbol{x}}^{\mathrm{T}}\right)\right)\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\left(\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}+\sum_{i=1}^{n}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})^{\mathrm{T}}\right)\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]+\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]+\frac{1}{2}\operatorname{tr}\left[n\cdot\boldsymbol{\Sigma}_c^{-1}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]+\frac{n}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]\\
=&\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_c^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]+\frac{n}{2}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})
\end{aligned}
$$
所以
$$
(\hat{\boldsymbol{\mu}}_{c}, \hat{\boldsymbol{\Sigma}}_{c})=\underset{(\boldsymbol{\mu}_{c},\boldsymbol{\Sigma}_c)}{\arg \min }\frac{n}{2}\log|\boldsymbol{\Sigma}_c|+\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_{c}^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]+\frac{n}{2}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})^{\mathrm{T}} \boldsymbol{\Sigma}_c^{-1}(\boldsymbol{\mu}_c-\bar{\boldsymbol{x}})
$$
观察上式可知,由于此时$\boldsymbol{\Sigma}_c^{-1}$和$\boldsymbol{\Sigma}_c$一样均为正定矩阵,所以当$\boldsymbol{\mu}_c-\bar{\boldsymbol{x}}\neq\boldsymbol{0}$时,上式最后一项为正定二次型。根据正定二次型的性质可知,此时上式最后一项的取值仅与$\boldsymbol{\mu}_c-\bar{\boldsymbol{x}}$相关,并有当且仅当$\boldsymbol{\mu}_c-\bar{\boldsymbol{x}}=\boldsymbol{0}$时,上式最后一项取最小值0,此时可以解得
$$
\hat{\boldsymbol{\mu}}_{c}=\bar{\boldsymbol{x}}=\frac{1}{n}\sum_{i=1}^{n}\boldsymbol{x}_i
$$
将求解出来的$\hat{\boldsymbol{\mu}}_{c}$代回参数求解式可得新的参数求解式,有
$$
\hat{\boldsymbol{\Sigma}}_{c}=\underset{\boldsymbol{\Sigma}_c}{\arg \min }\frac{n}{2}\log|\boldsymbol{\Sigma}_c|+\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}_{c}^{-1}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}\right]
$$
此时的参数求解式是仅与$\boldsymbol{\Sigma}_c$相关的函数。
为了求解$\hat{\boldsymbol{\Sigma}}_{c}$,在这里我们不加证明地给出一个引理:设$\mathbf{B}$为$p$阶正定矩阵,$n>0$为实数,在对所有$p$阶正定矩阵$\boldsymbol{\Sigma}$有
$$
\frac{n}{2}\log|\boldsymbol{\Sigma}|+\frac{1}{2}\operatorname{tr}\left[\boldsymbol{\Sigma}^{-1}\mathbf{B}\right]\geq\frac{n}{2}\log|\mathbf{B}|+\frac{pn}{2}(1-\log n)
$$
当且仅当$\boldsymbol{\Sigma}=\frac{1}{n}\mathbf{B}$时等号成立。**(引理的证明可搜索张伟平老师的"多元正态分布参数的估计和数据的清洁与变换"课件)**
根据此引理可知,当且仅当$\boldsymbol{\Sigma}_c=\frac{1}{n}\sum_{i=1}^{n}(\boldsymbol{x}_i-\bar{\boldsymbol{x}})(\boldsymbol{x}_i-\bar{\boldsymbol{x}})^{\mathrm{T}}$
时,上述参数求解式中$\arg \min$后面的式子取到最小值,那么此时的$\boldsymbol{\Sigma}_c$即我们想要求解的$\hat{\boldsymbol{\Sigma}}_{c}$。
## 7.3 朴素贝叶斯分类器
### 7.3.1 式(7.16)和式(7.17)的解释
该式是基于大数定律的频率近似概率的思路,而该思路的本质仍然是极大似然估计,下面举例说明。以掷硬币为例,假设投掷硬币5次,结果依次是正面、正面、反面、正面、反面,试基于此观察结果估计硬币正面朝上的概率。
设硬币正面朝上的概率为$\theta$,其服从伯努利分布,因此反面朝上的概率为$1-\theta$,同时设每次投掷结果相互独立,即独立同分布,则似然为
$$
\begin{aligned}
L(\theta)&=\theta\cdot\theta\cdot(1-\theta)\cdot\theta\cdot(1-\theta)\\
&=\theta^{3}(1-\theta)^2
\end{aligned}
$$
对数似然为
$$
LL(\theta)=\ln L(\theta)=3\ln\theta+2\ln (1-\theta)
$$
易证$LL(\theta)$是关于$\theta$的凹函数,因此对其求一阶导并令导数等于零即可求出最大值点,具体地
$$
\begin{aligned}
\frac{\partial LL(\theta)}{\partial\theta}&=\frac{\partial\left(3\ln\theta+2\ln (1-\theta)\right)}{\partial\theta}\\
&=\frac{3}{\theta}-\frac{2}{1-\theta}\\
&=\frac{3-5\theta}{\theta(1-\theta)}
\end{aligned}
$$
令上式等于0可解得$\theta=\frac{3}{5}$,显然$\frac{3}{5}$也是正面出现的频率。
### 7.3.2 式(7.18)的解释
该式所表示的正态分布并不一定是标准正态分布,因此$p(x_i|c)$的取值并不一定在$(0,1)$之间,但是仍然不妨碍其用作"概率",因为根据朴素贝叶斯的算法原理可知,只需$p(x_i|c)$的值仅仅是用来比大小,因此只关心相对值而不关心绝对值。
### 7.3.3 贝叶斯估计
贝叶斯学派视角下的一类点估计法称为贝叶斯估计[1],常用的贝叶斯估计有最大后验估计(Maximum
A Posteriori
Estimation,简称MAP)、后验中位数估计和后验期望值估计这3种参数估计方法,下面给出这3种方法的具体定义。
设总体的概率质量函数(若总体的分布为连续型时则改为概率密度函数,此处以离散型为例)
为$P(x|\theta)$,从该总体中抽取出的$n$个独立同分布的样本构成样本集
$D=\{x_1,x_2,\cdots,x_n\}$,则根据贝叶斯式可得,在给定样本集$D$的条件下,$\theta$的条件概率为
$$
P(\theta|D)=\frac{P(D|\theta)P(\theta)}{P(D)}=\frac{P(D|\theta)P(\theta)}
{\sum_{\theta}P(D|\theta)P(\theta)}
$$
其中$P(D|\theta)$为似然函数,由于样本集$D$中的样本是独立同分布的,所以似然函数可以进一步展开,有
$$
P(\theta|D)=\frac{P(D|\theta)P(\theta)}
{\sum_{\theta}P(D|\theta)P(\theta)}=\frac{\prod_{i=1}^{n}P(x_i|\theta)
P(\theta)}{\sum_{\theta}\prod_{i=1}^{n}P(x_i|\theta)P(\theta)}
$$
根据贝叶斯学派的观点,此条件概率代表了我们在已知样本集$D$后对$\theta$产生的新的认识,它综合了我们对$\theta$主观预设的先验概率$P(\theta)$和样本集$D$带来的信息,通常称其为$\theta$的后验概率。
贝叶斯学派认为,在得到$P(\theta|D)$以后,对参数$\theta$的任何统计推断,都只能基于$P(\theta|D)$。至于具体如何去使用它,可以结合某种准则一起去进行,统计学家也有一定的自由度。
对于点估计来说,
求使得$P(\theta|D)$达到最大值的$\hat{\theta}_{\mathrm{MAP}}$作为$\theta$的估计称为最大后验估计,求$P(\theta|D)$的中位数$\hat{\theta}_{\mathrm{Median}}$作为$\theta$的估计称为后验中位数估计,求$P(\theta|D)$的期望值(均值)$\hat{\theta}_{\mathrm{
Mean}}$作为$\theta$的估计称为后验期望值估计。
### 7.3.4 Categorical分布
Categorical分布又称为广义伯努利分布,是将伯努利分布中的随机变量可取值个数由两个泛化为多个得到的分布。具体地,设离散型随机变量$X$共有$k$种可能的取值$\{x_1,x_2,\cdots,x_k\}$,且$X$取到每个值的概率分别为$P(X=x_1)=\theta_1,P(X=x_2)=\theta_2,\cdots,P(X=x_k)=\theta_k$,则称随机变量$X$服从参数为$\theta_1,\theta_2,\cdots,\theta_k$的Categorical分布,其概率质量函数为
$$
P(X=x_i)=p(x_i)=\theta_i
$$
### 7.3.5 Dirichlet分布
类似于Categorical分布是伯努利分布的泛化形式,Dirichlet分布是Beta分布的泛化形式。对于一个$k$维随机变量$\boldsymbol{x}=(x_1,x_2,\cdots,x_k)\in
\mathbb{R}^{k}$,其中$x_i(i=1,2,\cdots,k)$满足$0\leqslant x_i
\leqslant
1,\sum_{i=1}^{k}x_i=1$,若$\boldsymbol{x}$服从参数为$\boldsymbol{\alpha}=(\alpha_1,\alpha_2,\cdots,\alpha_k)\in
\mathbb{R}^{k}$的Dirichlet分布,则其概率密度函数为
$$
p(\boldsymbol{x};\boldsymbol{\alpha})=\frac{\Gamma \left(\sum _{i=1}^{k}\alpha _{i}\right)}
{\prod _{i=1}^{k}\Gamma (\alpha _{i})}\prod
_{i=1}^{k}x_{i}^{\alpha _{i}-1}
$$
其中$\Gamma (z)=\int
_{0}^{\infty }x^{z-1}e^{-x}{\rm
d}x$为Gamma函数,当$\boldsymbol{\alpha}=(1,1,\cdots,1)$时,Dirichlet分布等价于均匀分布。
### 7.3.6 式(7.19)和式(7.20)的推导
从贝叶斯估计的角度来说,拉普拉斯修正就等价于先验概率为Dirichlet分布的后验期望值估计。为了接下来的叙述方便,我们重新定义一下相关数学符号。
设有包含$m$个独立同分布样本的训练集$D$,$D$中可能的类别数为$k$,其类别的具体取值范围为$\{c_1,c_2,...,c_k\}$。若令随机变量$C$表示样本所属的类别,且$C$取到每个值的概率分别为$P(C=c_1)=\theta_1,P(C=c_2)=\theta_2,...,P(C=c_k)=\theta_k$,那么显然$C$服从参数为$\boldsymbol{\theta}=(\theta_1,\theta_2,...,\theta_k)\in\mathbb{R}^{k}$的Categorical分布,其概率质量函数为
$$
P(C=c_i)=P(c_i)=\theta_i
$$
其中$P(c_i)=\theta_i$就是式(7.9)所要求解的$\hat{P}(c)$,下面我们用贝叶斯估计中的后验期望值估计来估计$\theta_i$。根据贝叶斯估计的原理可知,在进行参数估计之前,需要先主观预设一个先验概率$P(\boldsymbol{\theta})$,通常为了方便计算后验概率$P(\boldsymbol{\theta}|D)$,我们会用似然函数$P(D|\boldsymbol{\theta})$的共轭先验作为我们的先验概率。显然,此时的似然函数$P(D|\boldsymbol{\theta})$是一个基于Categorical分布的似然函数,而Categorical分布的共轭先验为Dirichlet分布,所以只需要预设先验概率$P(\boldsymbol{\theta})$为Dirichlet分布,然后使用后验期望值估计就能估计出$\theta_i$。
具体地,记$D$中样本类别取值为$c_i$的样本个数为$y_i$,则似然函数$P(D|\boldsymbol{\theta})$可展开为
$$
P(D|\boldsymbol{\theta})=\theta_1^{y_1}...\theta_k^{y_k}=\prod_{i=1}^{k}\theta_i^{y_i}
$$
则有后验概率
$$
\begin{aligned}
P(\boldsymbol{\theta}|D)&=\frac{P(D|\boldsymbol{\theta})P(\boldsymbol{\theta})}{P(D)}\\
&=\frac{P(D|\boldsymbol{\theta})P(\boldsymbol{\theta})}{\sum_{\boldsymbol{\theta}}
P(D|\boldsymbol{\theta})P(\boldsymbol{\theta})}\\
&=\frac{\prod_{i=1}^{k}\theta_i^{y_i}\cdot
P(\boldsymbol{\theta})}{\sum_{\boldsymbol{\theta}}\left[\prod_{i=1}^{k}\theta_i^{y_i}\cdot
P(\boldsymbol{\theta})\right]}
\end{aligned}
$$
假设此时先验概率$P(\boldsymbol{\theta})$是参数为$\boldsymbol{\alpha}=(\alpha_1,\alpha_2,...,\alpha_k)\in\mathbb{R}^{k}$的Dirichlet分布,则$P(\boldsymbol{\theta})$可写为
$$
P(\boldsymbol{\boldsymbol{\theta}};\boldsymbol{\alpha})=\frac{\Gamma \left(\sum_{i=1}^{k}\alpha_{i}\right)}{\prod_{i=1}^{k}\Gamma (\alpha_{i})}\prod_{i=1}^{k}\theta_{i}^{\alpha_{i}-1}
$$
将其代入$P(D|\boldsymbol{\theta})$可得
$$
\begin{aligned}
P(\boldsymbol{\theta}|D)&=\dfrac{\prod_{i=1}^{k}\theta_i^{y_i}
\cdot P(\boldsymbol{\theta})}{\sum_{\boldsymbol{\theta}}
\left[\prod_{i=1}^{k}\theta_i^{y_i}\cdot
P(\boldsymbol{\theta})\right]} \\
&=\dfrac{\prod_{i=1}^{k}\theta_i^{y_i}\cdot \dfrac{\Gamma
\left(\sum _{i=1}^{k}\alpha _{i}\right)} {\prod _{i=1}^{k}\Gamma
(\alpha _{i})}\prod _{i=1}^{k} \theta_{i}^{\alpha
_{i}-1}}{\sum_{\boldsymbol{\theta}}\left[\prod_{i=1}^{k}\theta_i^{y_i}
\cdot \dfrac{\Gamma \left(\sum _{i=1}^{k}\alpha _{i}\right)}{\prod
_{i=1}^{k}
\Gamma (\alpha _{i})}\prod _{i=1}^{k}\theta_{i}^{\alpha _{i}-1}\right]}
\\
&=\dfrac{\prod_{i=1}^{k}\theta_i^{y_i}\cdot \dfrac{\Gamma
\left(\sum _{i=1}^{k}\alpha _{i}\right)} {\prod _{i=1}^{k}\Gamma
(\alpha _{i})}\prod _{i=1}^{k}\theta_{i}^{\alpha _{i}-1}}
{\sum_{\boldsymbol{\theta}}\left[\prod_{i=1}^{k}\theta_i^{y_i}\cdot
\prod _{i=1}^{k}\theta_{i}^{\alpha _{i}-1}\right]\cdot
\dfrac{\Gamma \left(\sum _{i=1}^{k}\alpha _{i}\right)}{\prod
_{i=1}^{k}\Gamma (\alpha _{i})}} \\
&=\dfrac{\prod_{i=1}^{k}\theta_i^{y_i}\cdot \prod
_{i=1}^{k}\theta_{i}^{\alpha _{i}-1}}
{\sum_{\boldsymbol{\theta}}\left[\prod_{i=1}^{k}\theta_i^{y_i}\cdot
\prod _{i=1}^{k}\theta_{i}^{\alpha _{i}-1}\right]} \\
&=\dfrac{\prod_{i=1}^{k}\theta_i^{\alpha_{i}+y_i-1}}{\sum_{\boldsymbol{\theta}}
\left[\prod_{i=1}^{k}\theta_i^{\alpha_{i}+y_i-1}\right]}
\end{aligned}
$$
此时若设$\boldsymbol{\alpha}+\boldsymbol{y}=(\alpha_1+y_1,\alpha_2+y_2,...,\alpha_k+y_k)\in
\mathbb{R}^{k}$,则根据Dirichlet分布的定义可知
$$
\begin{aligned}
P(\boldsymbol{\theta};\boldsymbol{\alpha}+\boldsymbol{y})&=
\dfrac{\Gamma \left(\sum _{i=1}^{k}(\alpha_{i}+y_i)\right)}{\prod _{i=1}^{k}\Gamma (\alpha_{i}+y_i)}\prod _{i=1}^{k}\theta_{i}^{\alpha_{i}+y_i-1} \\
\sum_{\boldsymbol{\theta}}P(\boldsymbol{\theta};\boldsymbol{\alpha}+\boldsymbol{y})&=\sum_{\boldsymbol{\theta}}\frac{\Gamma
\left(\sum _{i=1}^{k}(\alpha_{i}+y_i)\right)}{\prod
_{i=1}^{k}\Gamma (\alpha_{i}+y_i)}\prod
_{i=1}^{k}\theta_{i}^{\alpha_{i}+y_i-1}\\
1&=\sum_{\boldsymbol{\theta}}\frac{\Gamma \left(\sum
_{i=1}^{k}(\alpha_{i}+y_i)\right)}{\prod _{i=1}^{k}\Gamma
(\alpha_{i}+y_i)}\prod _{i=1}^{k}\theta_{i}^{\alpha_{i}+y_i-1}
\\
1&=\frac{\Gamma \left(\sum
_{i=1}^{k}(\alpha_{i}+y_i)\right)}{\prod _{i=1}^{k}\Gamma
(\alpha_{i}+y_i)}\sum_{\boldsymbol{\theta}}\left[\prod
_{i=1}^{k}\theta_{i}^{\alpha_{i}+y_i-1}\right] \\
\frac{1}{\sum_{\boldsymbol{\theta}}\left[\prod _{i=1}^{k}\theta_{i}^{\alpha_{i}+y_i-1}\right]}&=\frac{\Gamma \left(\sum _{i=1}^{k}(\alpha_{i}+y_i)\right)}{\prod _{i=1}^{k}\Gamma (\alpha_{i}+y_i)} \\
\end{aligned}
$$
将此结论代入$P(D|\boldsymbol{\theta})$可得
$$
\begin{aligned}
P(\boldsymbol{\theta}|D)&=\frac{\prod_{i=1}^{k}\theta_i^{\alpha_{i}+y_i-1}}{\sum_{\boldsymbol{\theta}}\left[\prod_{i=1}^{k}\theta_i^{\alpha_{i}+y_i-1}\right]}\\
&=\frac{\Gamma \left(\sum _{i=1}^{k}(\alpha_{i}+y_i)\right)}{\prod
_{i=1}^{k}\Gamma
(\alpha_{i}+y_i)}\prod _{i=1}^{k}\theta_{i}^{\alpha _{i}+y_i-1} \\
&=P(\boldsymbol{\theta};\boldsymbol{\alpha}+\boldsymbol{y})
\end{aligned}
$$
综上可知,对于服从Categorical分布的$\boldsymbol{\theta}$来说,假设其先验概率$P(\boldsymbol{\theta})$是参数为$\boldsymbol{\alpha}$的Dirichlet分布时,得到的后验概率$P(\boldsymbol{\theta}|D)$是参数为$\boldsymbol{\alpha}+\boldsymbol{y}$的Dirichlet分布,通常我们称这种先验概率分布和后验概率分布形式相同的这对分布为共轭分布。在推得后验概率$P(\boldsymbol{\theta}|D)$的具体形式以后,根据后验期望值估计可得$\theta_i$的估计值为
$$
\begin{aligned}
\theta_i&=\mathbb E_{P(\boldsymbol{\theta}|D)}[\theta_i]\\
&=\mathbb E_{P(\boldsymbol{\theta};\boldsymbol{\alpha}+\boldsymbol{y})}[\theta_i]\\
&=\frac{\alpha_i+y_i}{\sum_{j=1}^k(\alpha_j+y_j)}\\
&=\frac{\alpha_i+y_i}{\sum_{j=1}^k\alpha_j+\sum_{j=1}^ky_j}\\
&=\frac{\alpha_i+y_i}{\sum_{j=1}^k\alpha_j+m}\\
\end{aligned}
$$
显然,式(7.9)是当$\boldsymbol{\alpha}=(1,1,...,1)$时推得的具体结果,此时等价于我们主观预设的先验概率$P(\boldsymbol{\theta})$服从均匀分布,此即拉普拉斯修正。同理,当我们调整$\boldsymbol{\alpha}$的取值后,即可推得其他数据平滑的公式。
## 7.4 半朴素贝叶斯分类器
### 7.4.1 式(7.21)的解释
在朴素贝叶斯中求解$P(x_i|c)$时,先挑出类别为$c$的样本,若是离散属性则按大数定律估计$P(x_i|c)$,若是连续属性则求这些样本的均值和方差,接着按正态分布估计$P(x_i|c)$。现在估计$P(x_i|c,pa_i)$,则是先挑出类别为$c$且属性$x_i$所依赖的属性为$pa_i$的样本,剩下步骤与估计$P(x_i|c)$时相同。
### 7.4.2 式(7.22)的解释
该式写为如下形式可能更容易理解:
$$
I(x_i,x_j|y)=\sum_{n=1}^{N}P(x_i,x_j|c_n)\log\frac{P(x_i,x_j|c_n)}{P(x_i|c_n)P(x_j|c_n)}
$$
其中$i,j=1,2,...,d$且$i\neq j$,$N$为类别个数。该式共可得到$\frac{d(d-1)}{2}$个$I(x_i,x_j|y)$,即每对$(x_i,x_j)$均有一个条件互信息$I(x_i,x_j|y)$。
### 7.4.3 式(7.23)的推导
基于贝叶斯定理,式(7.8)将联合概率$P(\boldsymbol{x},c)$写为等价形式$P(\boldsymbol{x}|c)P(c)$,实际上,也可将向量$\boldsymbol{x}$拆开,把$P(\boldsymbol{x},c)$写为$P(x_1,x_2,...,x_d,c)$形式,然后利用概率公式$P(A,B)=P(A|B)P(B)$对其恒等变形
$$
\begin{aligned}
P(\boldsymbol{x}, c) & =P\left(x_1, x_2, \ldots, x_d, c\right) \\
& =P\left(x_1, x_2, \ldots, x_d \mid c\right) P(c) \\
& =P\left(x_1, \ldots, x_{i-1}, x_{i+1}, \ldots, x_d \mid c, x_i\right) P\left(c, x_i\right)
\end{aligned}
$$
类似式(7.14)采用属性条件独立性假设,则
$$
P(x_1,...,x_{i-1},x_{i+1},...,x_d|c,x_i)=\prod_{j=1\\j\neq i}^{d}P(x_j|c,x_i)
$$
根据式(7.25)可知,当$j=i$时,$|D_{c,x_i}|=|D_{c,x_i,x_j}|$,若不考虑平滑项,则此时$P(x_j|c,x_i)=1$,因此在上式的连乘项中可放开$j\neq i$的约束,即
$$
P(x_1,...,x_{i-1},x_{i+1},...,x_d|c,x_i)=\prod_{j=1}^{d}P(x_j|c,x_i)
$$
综上可得:
$$
\begin{aligned}
P(c|\boldsymbol{x})&=\frac{P(\boldsymbol{x},c)}{P(\boldsymbol{x})}\\
&=\frac{P\left(c, x_i\right)P\left(x_1, \ldots, x_{i-1}, x_{i+1}, \ldots, x_d \mid c, x_i\right)}{P(\boldsymbol{x})}\\
&\propto P\left(c, x_i\right)P\left(x_1, \ldots, x_{i-1}, x_{i+1}, \ldots, x_d \mid c, x_i\right) \\
&=P\left(c, x_i\right)\prod_{j=1}^{d}P(x_j|c,x_i)
\end{aligned}
$$
上式是将属性$x_i$作为超父属性的,AODE尝试将每个属性作为超父来构建SPODE,然后将那些具有足够训练数据支撑的SPODE集成起来作为最终结果。具体来说,对于总共$d$个属性来说,共有$d$个不同的上式,集成直接求和即可,因为对于不同的类别标记$c$均有$d$个不同的上式,至于如何满足"足够训练数据支撑的SPODE"这个条件,注意式(7.24)和式(7.25)均使用到了$|D_{c,x_i}|$和$|D_{c,x_i,x_j}|$,若集合$D_{x_i}$中样本数量过少,则$|D_{c,x_i}|$和$|D_{c,x_i,x_j}|$将会更小,因此在式(7.23)中要求集合$D_{x_i}$中样本数量不少于$m^{\prime}$。
### 7.4.4 式(7.24)和式(7.25)的推导
类比式(7.19)和式(7.20)的推导。
## 7.5 贝叶斯网
### 7.5.1 式(7.27)的解释
在这里补充一下同父结构和顺序结构的推导。同父结构:在给定父节点$x_1$的条件下$x_3,x_4$独立
$$
\begin{aligned}
P(x_3,x_4|x_1)&=\frac{P(x_1,x_3,x_4)}{P(x_1)} \\
&=\frac{P(x_1)P(x_3|x_1)P(x_4|x_1)}{P(x_1)} \\
&=P(x_3|x_1)P(x_4|x_1) \\
\end{aligned}
$$
顺序结构:在给定节点$x$的条件下$y,z$独立
$$
\begin{aligned}
P(y,z|x)&=\frac{P(x,y,z)}{P(x)} \\
&=\frac{P(z)P(x|z)P(y|x)}{P(x)} \\
&=\frac{P(z,x)P(y|x)}{P(x)} \\
&=P(z|x)P(y|x) \\
\end{aligned}
$$
## 7.6 EM算法
"西瓜书"中仅给出了EM算法的运算步骤,其原理并未展开讲解,下面补充EM算法的推导原理,以及所用到的相关数学知识。
### 7.6.1 Jensen不等式
若$f$是凸函数,则下式恒成立
$$
f\left(t x_1 + (1-t)x_2\right)\leqslant tf(x_1)+(1-t)f(x_2)
$$
其中$t\in [0,1]$,若将$x$推广到$n$个时同样成立,即
$$
f(t_1 x_1 + t_2x_2+...+t_nx_n)\leqslant t_1f(x_1)+t_2f(x_2)+...+t_nf(t_n)
$$
其中$t_1,t_2,...,t_n\in[0,1],\sum_{i=1}^{n}t_i=1$。此不等式在概率论中通常以如下形式出现
$$
\varphi(\mathbb{E}[X])\leqslant \mathbb{E}[\varphi(X)]
$$
其中$X$是随机变量,$\varphi$为凸函数,$\mathbb{E}[X]$为随机变量$X$的期望。显然,若$f$和$\varphi$是凹函数,则上述不等式中的$\leqslant$换成$\geqslant$也恒成立。
### 7.6.2 EM算法的推导
假设现有一批独立同分布的样本$\{x_1,x_2,...,x_m\}$,它们是由某个含有隐变量的概率分布$p(x,z;\theta)$生成,现尝试用极大似然估计法估计此概率分布的参数。为了便于讨论,此处假设$z$为离散型随机变量,则对数似然函数为
$$
\begin{aligned}
LL(\theta) &=\sum_{i=1}^{m} \ln p(x_i; \theta) \\
&=\sum_{i=1}^{m} \ln \sum_{z_i} p(x_i, z_i; \theta)
\end{aligned}
$$
显然,此时$LL(\theta)$里含有未知的隐变量$z$以及求和项的对数,相比于不含隐变量的对数似然函数,显然该似然函数的极大值点较难求解,而EM算法则给出了一种迭代的方法来完成对$LL(\theta)$的极大化。
下面给出两种推导方法,一个是出自李航老师的《统计学习方法》[2],一个是出自吴恩达老师的CS229,两种推导方式虽然形式上有差异,但最终的$Q$函数相等,接下来先讲述两种推导方法,最后会给出$Q$函数是相等的证明。
首先给出《统计学习方法》中的推导方法,设$X=\{x_1,x_2,...,x_m\},Z=\{z_1,z_2,...,z_m\}$,则对数似然函数可以改写为
$$
\begin{aligned}
LL(\theta)&=\ln P(X\vert \theta)\\
&=\ln \sum_Z P(X,Z\vert\theta)\\
&=\ln \left(\sum_Z P(X\vert Z,\theta)P(Z\vert \theta)\right)
\end{aligned}
$$
EM算法采用的是通过迭代逐步近似极大化$L(\theta)$:假设第$t$次迭代时$\theta$的估计值是$\theta^{(t)}$,我们希望第$t+1$次迭代时的$\theta$能使$LL(\theta)$增大,即$LL(\theta)>LL(\theta^{(t)})$。为此,考虑两者的差
$$
\begin{aligned}
LL(\theta)-LL(\theta^{(t)})&=\ln \left(\sum_Z P(X\vert Z,\theta)P(Z\vert \theta)\right)-\ln P(X\vert\theta^{(t)}) \\
&=\ln \left(\sum_Z P(Z\vert X,\theta^{(t)}) \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})}\right)-\ln P(X\vert\theta^{(t)})
\end{aligned}
$$
由上述Jensen不等式可得
$$
\begin{aligned}
LL(\theta)-LL(\theta^{(t)})
&\geqslant \sum_Z P(Z\vert X,\theta^{(t)})\ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})}-\ln P(X\vert\theta^{(t)}) \\
&= \sum_Z P(Z\vert X,\theta^{(t)})\ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})}-1\cdot \ln P(X\vert\theta^{(t)}) \\
&= \sum_Z P(Z\vert X,\theta^{(t)})\ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})}-\sum_Z P(Z\vert X,\theta^{(t)})\cdot \ln P(X\vert\theta^{(t)}) \\
&=\sum_Z P(Z\vert X,\theta^{(t)}) \left( \ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})} - \ln P(X\vert\theta^{(t)}) \right)\\
&= \sum_Z P(Z\vert X,\theta^{(t)})\ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})P(X\vert\theta^{(t)})}
\end{aligned}
$$
令
$$
B(\theta,\theta^{(t)})=LL(\theta^{(t)})+\sum_Z P(Z\vert X,\theta^{(t)})\ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})P(X\vert\theta^{(t)})}
$$
则
$$
LL(\theta)\geqslant B(\theta,\theta^{(t)})
$$
即$B(\theta,\theta^{(t)})$是$LL(\theta)$的下界,此时若设$\theta^{(t+1)}$能使得$B(\theta,\theta^{(t)})$达到极大,即
$$
B(\theta^{(t+1)},\theta^{(t)}) \geqslant B(\theta,\theta^{(t)})
$$
由于$LL(\theta^{(t)})=B(\theta^{(t)},\theta^{(t)})$,那么可以进一步推得
$$
LL(\theta^{(t+1)})\geqslant B(\theta^{(t+1)},\theta^{(t)})\geqslant B(\theta^{(t)},\theta^{(t)})=LL(\theta^{(t)})
$$
$$
LL(\theta^{(t+1)})\geqslant LL(\theta^{(t)})
$$
因此,任何能使得$B(\theta,\theta^{(t)})$增大的$\theta$,也可以使得$LL(\theta)$增大,于是问题就转化为了求解能使得$B(\theta,\theta^{(t)})$达到极大的$\theta^{(t+1)}$,即
$$
\begin{aligned}
\theta^{(t+1)}&=\mathop{\arg\max}_{\theta}B(\theta,\theta^{(t)}) \\
&=\mathop{\arg\max}_{\theta}\left( LL(\theta^{(t)})+\sum_Z P(Z\vert X,\theta^{(t)})\ln \cfrac{P(X\vert Z,\theta)P(Z\vert \theta)}{P(Z\vert X,\theta^{(t)})P(X\vert\theta^{(t)})}\right)
\end{aligned}
$$
略去对$\theta$极大化而言是常数的项
$$
\begin{aligned}
\theta^{(t+1)}&=\mathop{\arg\max}_{\theta}\left(\sum_Z P(Z\vert X,\theta^{(t)})\ln\left( P(X\vert Z,\theta)P(Z\vert \theta)\right)\right) \\
&=\mathop{\arg\max}_{\theta}\left(\sum_Z P(Z\vert X,\theta^{(t)})\ln P(X,Z\vert \theta)\right) \\
&=\mathop{\arg\max}_{\theta}Q(\theta,\theta^{(t)})
\end{aligned}
$$
到此即完成了EM算法的一次迭代,求出的$\theta^{(t+1)}$作为下一次迭代的初始$\theta^{(t)}$。综上,EM算法的"E步"和"M步"可总结为以下两步。
E步:计算完全数据的对数似然函数$\ln P(X,Z\vert \theta)$关于在给定观测数据$X$和当前参数$\theta^{(t)}$下对未观测数据$Z$的条件概率分布$P(Z\vert X,\theta^{(t)})$的期望$Q(\theta,\theta^{(t)})$:
$$
Q(\theta,\theta^{(t)})=\mathbb{E}_Z[\ln P(X,Z\vert \theta)\vert X,\theta^{(t)}]=\sum_Z P(Z\vert X,\theta^{(t)})\ln P(X,Z\vert \theta)
$$
M步:求使得$Q(\theta,\theta^{(t)})$达到极大的$\theta^{(t+1)}$。
接下来给出CS229中的推导方法,设$z_i$的概率质量函数为$Q_i(z_i)$,则$LL(\theta)$可以作如下恒等变形
$$
\begin{aligned}
LL(\theta) &=\sum_{i=1}^{m} \ln p(x_i; \theta) \\
&=\sum_{i=1}^{m} \ln \sum_{z_i} p(x_i, z_i; \theta) \\
&=\sum_{i=1}^{m} \ln \sum_{z_i} Q_i(z_i)\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)} \\
\end{aligned}
$$
其中$\sum_{z_i} Q_i(z_i)\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}$可以看做是对$\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}$关于$z_i$求期望,即
$$
\sum_{z_i} Q_i(z_i)\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}=\mathbb{E}_{z_i}\left[\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}\right]
$$
由Jensen不等式可得
$$
\ln\left(\mathbb{E}_{z_i}\left[\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}\right]\right)\geqslant \mathbb{E}_{z_i}\left[\ln\left(\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}\right)\right]
$$
$$
\ln\sum_{z_i} Q_i(z_i)\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}\geqslant \sum_{z_i} Q_i(z_i)\ln\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}
$$
将此式代入$LL(\theta)$可得
$$
\begin{aligned}
LL(\theta) &=\sum_{i=1}^{m} \ln \sum_{z_i} Q_i(z_i)\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}\geqslant \sum_{i=1}^{m}\sum_{z_i} Q_i(z_i)\ln\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)} \quad \textcircled{1}
\end{aligned}
$$
若令$B(\theta)=\sum\limits_{i=1}^{m}\sum\limits_{z_i} Q_i(z_i)\ln\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}$,则此时$B(\theta)$为$LL(\theta)$的下界函数,那么这个下界函数所能构成的最优下界是多少?即$B(\theta)$的最大值是多少?显然,$B(\theta)$是$LL(\theta)$的下界函数,反过来$LL(\theta)$是其上界函数,所以如果能使得$B(\theta)=LL(\theta)$,则此时的$B(\theta)$就取到了最大值。根据Jensen不等式的性质可知,如果能使得$\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}$恒等于某个常量$c$,大于等于号便可以取到等号。因此,只需任意选取满足$\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}=c$的$Q_i(z_i)$就能使得$B(\theta)$达到最大值。由于$Q_i(z_i)$是$z_i$的概率质量函数,所以$Q_i(z_i)$同时也满足约束$0\leqslant Q_i(z_i)\leqslant 1,\sum_{z_i} Q_i(z_i)=1$,结合$Q_i(z_i)$的所有约束可以推得
$$
\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}=c
$$
$$
p(x_i, z_i; \theta)=c\cdot Q_i(z_i)
$$
$$
\sum_{z_i}p(x_i, z_i; \theta)=c\cdot \sum_{z_i}Q_i(z_i)
$$
$$
\sum_{z_i}p(x_i, z_i; \theta)=c
$$
$$
\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)}=\sum_{z_i}p(x_i, z_i; \theta)
$$
$$
Q_i(z_i)=\cfrac{p(x_i, z_i; \theta)}{\sum\limits_{z_i}p(x_i, z_i; \theta)}=\cfrac{p(x_i, z_i; \theta)}{p(x_i; \theta)}=p(z_i|x_i; \theta)
$$
所以,当且仅当$Q_i(z_i)=p(z_i|x_i; \theta)$时$B(\theta)$取到最大值,将$Q_i(z_i)=p(z_i|x_i; \theta)$代回$LL(\theta)$和$B(\theta)$可以推得
$$
\begin{aligned}
LL(\theta) &=\sum_{i=1}^{m} \ln \sum_{z_i} Q_i(z_i)\cfrac{p(x_i, z_i; \theta)}{Q_i(z_i)} & \quad \textcircled{2}\\
&=\sum_{i=1}^{m} \ln \sum_{z_i}p(z_i|x_i; \theta)\cfrac{p(x_i, z_i; \theta)}{p(z_i|x_i; \theta)} & \quad \textcircled{3}\\
&=\sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i; \theta)\ln\cfrac{p(x_i, z_i; \theta)}{p(z_i|x_i; \theta)} & \quad \textcircled{4}\\
&=\max\{B(\theta)\} & \quad \textcircled{5} \\
\end{aligned}
$$
其中式$\textcircled{4}$是式$\textcircled{1}$中不等式取等号时的情形。由以上推导可知,此时对数似然函数$LL(\theta)$等价于其下界函数的最大值$\max\{B(\theta)\}$,所以要想极大化$LL(\theta)$可以通过极大化$\max\{B(\theta)\}$来间接极大化$LL(\theta)$,因此,下面考虑如何极大化$\max\{B(\theta)\}$。假设已知第$t$次迭代的参数为$\theta^{(t)}$,而第$t+1$次迭代的参数$\theta^{(t+1)}$可通过如下方式求得
$$
\begin{aligned}
\theta^{(t+1)}&=\arg\max_{\theta}\max\{B(\theta)\} & \quad \textcircled{6}\\
&=\arg\max_{\theta}\sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i;\theta^{(t)})\ln\cfrac{p(x_i, z_i; \theta)}{p(z_i|x_i; \theta^{(t)})} & \quad \textcircled{7}\\
&=\arg\max_{\theta}\sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i;\theta^{(t)})\ln p(x_i, z_i; \theta) & \quad \textcircled{8}
\end{aligned}
$$
此时将$\theta^{(t+1)}$代入$LL(\theta)$可推得
$$
\begin{aligned}
LL(\theta^{(t+1)}) &=\max\{B(\theta^{(t+1)})\} &\quad\textcircled{9} \\
&=\sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i; \theta^{(t+1)})\ln\cfrac{p(x_i, z_i; \theta^{(t+1)})}{p(z_i|x_i; \theta^{(t+1)})} &\quad\textcircled{10}\\
&\geqslant \sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i; \theta^{(t)})\ln\cfrac{p(x_i, z_i; \theta^{(t+1)})}{p(z_i|x_i; \theta^{(t)})} &\quad\textcircled{11}\\
&\geqslant \sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i; \theta^{(t)})\ln\cfrac{p(x_i, z_i; \theta^{(t)})}{p(z_i|x_i; \theta^{(t)})} &\quad\textcircled{12}\\
&=\max\{B(\theta^{(t)})\} &\quad\textcircled{13} \\
&=LL(\theta^{(t)})&\quad\textcircled{14}
\end{aligned}
$$
其中,式$\textcircled{9}$和式$\textcircled{10}$分别由式$\textcircled{5}$和式$\textcircled{4}$推得,式$\textcircled{11}$由式$\textcircled{1}$推得,式$\textcircled{12}$由式$\textcircled{7}$推得,式$\textcircled{13}$和式$\textcircled{14}$由式$\textcircled{2}$至式$\textcircled{5}$推得。此时若令
$$
Q(\theta,\theta^{(t)})=\sum_{i=1}^{m}\sum_{z_i} p(z_i|x_i; \theta^{(t)})\ln p(x_i, z_i; \theta)
$$
由式$\textcircled{9}$至式$\textcircled{14}$可知,凡是能使得$Q(\theta,\theta^{(t)})$达到极大的$\theta^{(t+1)}$一定能使得$LL(\theta^{(t+1)})\geqslant LL(\theta^{(t)})$。综上,EM算法的"E步"和"M步"可总结为以下两步。
E步:令$Q_i(z_i)=p(z_i|x_i; \theta)$并写出$Q(\theta,\theta^{(t)})$;
M步:求使得$Q(\theta,\theta^{(t)})$到达极大的$\theta^{(t+1)}$。
以上便是EM算法的两种推导方法,下面证明两种推导方法中的$Q$函数相等。
$$
\begin{aligned} Q(\theta|\theta^{(t)})&=\sum_Z P(Z|X,\theta^{(t)})\ln P(X,Z|\theta) \\
&=\sum_{z_1,z_2,...,z_m}\left\{\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\ln\left[ \prod_{i=1}^m P(x_i,z_i|\theta) \right] \right\} \\
&=\sum_{z_1,z_2,...,z_m}\left\{\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\left[ \sum_{i=1}^m\ln P(x_i,z_i|\theta) \right] \right\} \\
&=\sum_{z_1,z_2,...,z_m}\left\{\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\left[\ln P(x_1,z_1|\theta) + \ln P(x_2,z_2|\theta) +...+ \ln P(x_m,z_m|\theta)\right] \right\} \\
&=\sum_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right]+...+\sum_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_m,z_m|\theta) \right] \\
\end{aligned}
$$
其中$\sum\limits_{z_1,z_2,...,z_m}\left[\prod\limits_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right]$可作如下恒等变形:
$$
\begin{aligned}
&\sum\limits_{z_1,z_2,...,z_m}\left[\prod\limits_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right] \\
=&\sum\limits_{z_1,z_2,...,z_m}\left[\prod_{i=2}^mP(z_i|x_i,\theta^{(t)})\cdot P(z_1|x_1,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right] \\
=&\sum_{z_1}\sum\limits_{z_2,...,z_m}\left[\prod_{i=2}^mP(z_i|x_i,\theta^{(t)})\cdot P(z_1|x_1,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right] \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta) \sum\limits_{z_2,...,z_m}\left[\prod_{i=2}^mP(z_i|x_i,\theta^{(t)}) \right] \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta)\sum\limits_{z_2,...,z_m}\left[\prod_{i=3}^mP(z_i|x_i,\theta^{(t)})\cdot P(z_2|x_2,\theta^{(t)}) \right] \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta) \left\{\sum\limits_{z_2}\sum\limits_{z_3,...,z_m}\left[\prod_{i=3}^mP(z_i|x_i,\theta^{(t)})\cdot P(z_2|x_2,\theta^{(t)}) \right]\right\} \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta) \left\{\sum_{z_2}P(z_2|x_2,\theta^{(t)}) \sum\limits_{z_3,...,z_m}\left[\prod_{i=3}^mP(z_i|x_i,\theta^{(t)})\right]\right\} \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta) \left\{\sum_{z_2}P(z_2|x_2,\theta^{(t)})\times\sum_{z_3}P(z_3|x_3,\theta^{(t)})\times...\times\sum_{z_m}P(z_m|x_m,\theta^{(t)})\right\} \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta)\times \left\{1\times1\times...\times1\right\} \\
=&\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta) \\
\end{aligned}
$$
所以
$$
\sum\limits_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right]=\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta)
$$
同理可得
$$
\begin{aligned}
\sum\limits_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_2,z_2|\theta) \right] &=\sum_{z_2}P(z_2|x_2,\theta^{(t)})\ln P(x_2,z_2|\theta) \\
&\vdots\\
\sum\limits_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_m,z_m|\theta) \right] &=\sum_{z_m}P(z_m|x_m,\theta^{(t)})\ln P(x_m,z_m|\theta)
\end{aligned}
$$
将上式代入$Q(\theta|\theta^{(t)})$可得
$$
\begin{aligned}
Q(\theta|\theta^{(t)})&=\sum_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_1,z_1|\theta) \right]+...+\sum_{z_1,z_2,...,z_m}\left[\prod_{i=1}^mP(z_i|x_i,\theta^{(t)})\cdot\ln P(x_m,z_m|\theta) \right] \\
&=\sum_{z_1}P(z_1|x_1,\theta^{(t)})\ln P(x_1,z_1|\theta) +...+\sum_{z_m}P(z_m|x_m,\theta^{(t)})\ln P(x_m,z_m|\theta) \\
&=\sum_{i=1}^m\sum_{z_i}P(z_i|x_i,\theta^{(t)})\ln P(x_i,z_i|\theta)\\
\end{aligned}
$$
## 参考文献
[1] 陈希孺. 概率论与数理统计. 中国科学技术大学出版社, 2009.
[2] 李航. 统计学习方法. 清华大学出版社, 2012.
================================================
FILE: docs/chapter8/chapter8.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:
>
> https://www.bilibili.com/video/BV1Mh411e7VU?p=12
>
> https://www.bilibili.com/video/BV1Mh411e7VU?p=13
# 第8章 集成学习
集成学习(ensemble
learning)描述的是组合多个基础的学习器(模型)的结果以达到更加鲁棒、效果更好的学习器。在"西瓜书"作者周志华教授的谷歌学术主页的top引用文章(图8-1)中,很大一部分都和集成学习有关。

在引用次数前10的文章中,第1名"Top 10 algorithms in data
mining"是在ICDM'06中投票选出的数据挖掘十大算法,每个提名算法均由业内专家代表去阐述,然后进行投票,其中最终得票排名第7位的"Adaboost"即由周志华教授作为代表进行阐述;第2名"Isolation
forest"是通过集成学习的技术用来做异常检测。第3名的"Ensemble Methods:
Foundations and
Algorithms"则是周志华教授所著的集成学习专著。第6名"Ensembing neural
networks: many could be better than
all"催生了基于优化的集成修剪(ensemble pruning)技术;第7名的"Exploratory
undersampling for class-imbalance
learning"是以集成学习技术解决类别不平衡问题。
毫不夸张的说,周志华教授在集成学习领域深耕了很多年,是绝对的权威。而集成学习也是经受了时间考验的非常有效的算法,常常被各位竞赛同学作为涨点提分的致胜法宝。下面,让我们一起认真享受"西瓜书"作者最拿手的集成学习章节吧。
## 8.1 个体与集成
基学习器(base
learner)的概念在论文中经常出现,可留意一下;另外,本节提到的投票法有两种,除了本节的多数投票(majority
voting),还有概率投票(probability
voting),这两点在8.4节中均会提及,即硬投票和软投票。
### 8.1.1 式(8.1)的解释
$h_{i}(\boldsymbol{x})$是编号为$i$的基分类器给$x$的预测标记,$f(\boldsymbol{x})$是$x$的真实标记,它们之间不一致的概率记为$\epsilon$。
### 8.1.2 式(8.2)的解释
注意到当前仅针对二分类问题 $y \in\{-1,+1\}$, 即预测标记
$h_i(\boldsymbol{x}) \in\{-1,+1\}$
。各个基分类器$h_i$的分类结果求和之后结果的正、负或0,代表投票法产生的结果,即"少数服从多数",符号函数$\operatorname{sign}$,将正数变成1,负数变成-1,0仍然是0,所以$H(\boldsymbol{x})$是由投票法产生的分类结果。
### 8.1.3 式(8.3)的推导
由基分类器相互独立,假设随机变量$X$为$T$个基分类器分类正确的次数,因此随机变量$\mathrm{X}$服从二项分布:$\mathrm{X} \sim \mathcal{B}(\mathrm{T}, 1-\mathrm{\epsilon})$,设$x_i$为每一个分类器分类正确的次数,则$x_i\sim \mathcal{B}(1, 1-\mathrm{\epsilon})(i=1,2,3,...,\mathrm{T})$,那么有
$$
\begin{aligned}
\mathrm{X}&=\sum_{i=1}^{\mathrm{T}} x_i\\
\mathbb{E}(X)&=\sum_{i=1}^{\mathrm{T}}\mathbb{E}(x_i)=(1-\epsilon)T
\end{aligned}
$$
证明过程如下:
$$
\begin{aligned} P(H(x) \neq f(x))=& P(X \leq\lfloor T / 2\rfloor) \\ & \leqslant P(X \leq T / 2)
\\ & =P\left[X-(1-\epsilon) T \leqslant \frac{T}{2}-(1-\epsilon) T\right]
\\ & =P\left[X-
(1-\epsilon) T \leqslant -\frac{T}{2}\left(1-2\epsilon\right)]\right]
\\ &=P\left[\sum_{i=1}^{\mathrm{T}} x_i-
\sum_{i=1}^{\mathrm{T}}\mathbb{E}(x_i) \leqslant -\frac{T}{2}\left(1-2\epsilon\right)]\right]
\\ &=P\left[\frac{1}{\mathrm{T}}\sum_{i=1}^{\mathrm{T}} x_i-\frac{1}{\mathrm{T}}
\sum_{i=1}^{\mathrm{T}}\mathbb{E}(x_i) \leqslant -\frac{1}{2}\left(1-2\epsilon\right)]\right]
\end{aligned}
$$
根据Hoeffding不等式知
$$
P\left(\frac{1}{m} \sum_{i=1}^{m} x_{i}-\frac{1}{m} \sum_{i=1}^{m} \mathbb{E}\left(x_{i}\right) \leqslant -\delta\right) \leqslant \exp \left(-2 m \delta^{2}\right)
$$
令$\delta=\frac {(1-2\epsilon)}{2},m=T$得
$$
\begin{aligned} P(H(\boldsymbol{x}) \neq f(\boldsymbol{x})) &=\sum_{k=0}^{\lfloor T / 2\rfloor} \left( \begin{array}{c}{T} \\ {k}\end{array}\right)(1-\epsilon)^{k} \epsilon^{T-k} \\ & \leqslant \exp \left(-\frac{1}{2} T(1-2 \epsilon)^{2}\right) \end{aligned}
$$
## 8.2 Boosting
注意8.1节最后一段提到:根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法。
本节Boosting为前者的代表,Adaboost又是Boosting族算法的代表。
### 8.2.1 式(8.4)的解释
这个式子是集成学习的加性模型,加性模型不采用梯度下降的思想,而是$H(\boldsymbol{x})=\sum_{t=1}^{T-1} \alpha_{t} h_{t}(\boldsymbol{x})+\alpha_{T}h_{T}(\boldsymbol{x})$,共迭代$T$次,每次更新求解一个理论上最优的$h_T$和$\alpha_T$。**($h_T$和$\alpha_T$的定义参见式(8.18)和式(8.11))**
### 8.2.2 式(8.5)的解释
先考虑指数损失函数$e^{-f(x) H(x)}$的含义 **(参见"西瓜书"图6.5)**:$f$为真实函数,对于样本$x$来说,$f(\boldsymbol{x}) \in\{+1,-1\}$只能取$+1$和$-1$,而$H(\boldsymbol{x})$是一个实数。
当$H(\boldsymbol{x})$的符号与$f(x)$一致时,$f(\boldsymbol{x}) H(\boldsymbol{x})>0$,因此$e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}=e^{-|H(\boldsymbol{x})|}<1$,且$|H(\boldsymbol{x})|$越大指数损失函数$e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}$越小。这很合理:此时$|H(\boldsymbol{x})|$越大意味着分类器本身对预测结果的信心越大,损失应该越小;若$|H(\boldsymbol{x})|$在零附近,虽然预测正确,但表示分类器本身对预测结果信心很小,损失应该较大;
当$H(\boldsymbol{x})$的符号与$f(\boldsymbol{x})$不一致时,$f(\boldsymbol{x}) H(\boldsymbol{x})<0$,因此$e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}=e^{|H(\boldsymbol{x})|}>1$,且$| H(\boldsymbol{x}) |$越大指数损失函数越大。这很合理:此时$| H(\boldsymbol{x}) |$越大意味着分类器本身对预测结果的信心越大,但预测结果是错的,因此损失应该越大;若$| H(\boldsymbol{x}) |$在零附近,虽然预测错误,但表示分类器本身对预测结果信心很小,虽然错了,损失应该较小。
再解释符号$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}[\cdot]$的含义:$\mathcal{D}$为概率分布,可简单理解为在数据集$D$中进行一次随机抽样,每个样本被取到的概率;$\mathbb{E}[\cdot]$为经典的期望,则综合起来$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}[\cdot]$表示在概率分布$\mathcal{D}$上的期望,可简单理解为对数据集$D$以概率$\mathcal{D}$进行加权后的期望。
综上所述, 若数据集 $D$ 中样本 $\boldsymbol{x}$ 的权值分布为
$\mathcal{D}(\boldsymbol{x})$, 则式(8.5)可写为:
$$
\begin{aligned}
\ell_{\exp }(H \mid \mathcal{D}) & =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}\right] \\
& =\sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H(\boldsymbol{x})} \\
& =\sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x})\left(e^{-H(\boldsymbol{x})} \mathbb{I}(f(\boldsymbol{x})=1)+e^{H(\boldsymbol{x})} \mathbb{I}(f(\boldsymbol{x})=-1)\right)
\end{aligned}
$$
特别地, 若针对任意样本 $\boldsymbol{x}$, 若分布
$\mathcal{D}(\boldsymbol{x})=\frac{1}{|D|}$, 其中 $|D|$ 为数据集 $D$
样本个数, 则
$$
\ell_{\exp }(H \mid \mathcal{D})=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}\right]=\frac{1}{|D|} \sum_{\boldsymbol{x} \in D} e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}
$$
而这就是在求传统平均值。
### 8.2.3 式(8.6)的推导
由式(8.5)中对于符号$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}[\cdot]$的解释可知
$$
\begin{aligned}
\ell_{\exp }(H | \mathcal{D}) &=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}\right] \\
&=\sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H(\boldsymbol{x})} \\
&=\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_{i}\right)\left(e^{-H\left(\boldsymbol{x}_{i}\right)} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=1\right)+e^{H\left(\boldsymbol{x}_{i}\right)} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=-1\right)\right)\\
&=\sum_{i=1}^{|D|} \left(e^{-H\left(\boldsymbol{x}_{i}\right)} \mathcal{D}\left(\boldsymbol{x}_{i}\right)\mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=1\right)+e^{H\left(\boldsymbol{x}_{i}\right)} \mathcal{D}\left(\boldsymbol{x}_{i}\right)\mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=-1\right)\right)\\
&=\sum_{i=1}^{|D|} \left(e^{-H\left(\boldsymbol{x}_{i}\right)} P\left(f\left(\boldsymbol{x}_{i}\right)=1 \mid \boldsymbol{x}_{i}\right)+e^{H\left(\boldsymbol{x}_{i}\right)} P\left(f\left(\boldsymbol{x}_{i}\right)=-1 \mid \boldsymbol{x}_{i}\right)\right)
\end{aligned}
$$
其中$\mathcal{D}\left(\boldsymbol{x}_{i}\right)\mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=1\right)=P\left(f\left(\boldsymbol{x}_{i}\right)=1 \mid \boldsymbol{x}_{i}\right)$可以这样理解:
$\mathcal{D}(x_i)$表示在数据集$D$中进行一次随机抽样,样本$x_i$被取到的概率,$\mathcal{D}\left(\boldsymbol{x}_{i}\right)\mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=1\right)$表示在数据集$D$中进行一次随机抽样,使得$f(x_i)=1$的样本$x_i$被抽到的概率,即为$P\left(f\left(\boldsymbol{x}_{i}\right)=1 \mid \boldsymbol{x}_{i}\right)$。
当对$H(x_i)$求导时,求和号中只有含$x_i$项不为0,由求导公式
$$
\frac{\partial e^{-H(\boldsymbol{x})}}{\partial H(\boldsymbol{x})}=-e^{-H(\boldsymbol{x})}\qquad \frac{\partial e^{H(\boldsymbol{x})}}{\partial H(\boldsymbol{x})}=e^{H(\boldsymbol{x})}
$$
有
$$
\frac{\partial \ell_{\exp }(H | \mathcal{D})}{\partial H(\boldsymbol{x})}=-e^{-H(\boldsymbol{x})} P(f(\boldsymbol{x})=1 | \boldsymbol{x})+e^{H(\boldsymbol{x})} P(f(\boldsymbol{x})=-1 | \boldsymbol{x})
$$
### 8.2.4 式(8.7)的推导
令式(8.6)等于零:
$$
\quad-e^{-H(\boldsymbol{x})} P(f(\boldsymbol{x})=1 \mid \boldsymbol{x})+e^{H(\boldsymbol{x})} P(f(\boldsymbol{x})=-1 \mid \boldsymbol{x})=0
$$
移项:
$$
\quad e^{H(\boldsymbol{x})} P(f(\boldsymbol{x})=-1 \mid \boldsymbol{x})=e^{-H(\boldsymbol{x})} P(f(\boldsymbol{x})=1 \mid \boldsymbol{x})
$$
两边同乘
$\frac{e^{H(\boldsymbol{x})}}{P(f(\boldsymbol{x})=-1 \mid \boldsymbol{x})}$:
$$
\quad e^{2 H(\boldsymbol{x})}=\frac{P(f(\boldsymbol{x})=1 \mid \boldsymbol{x})}{P(f(\boldsymbol{x})=-1 \mid \boldsymbol{x})}
$$
取 $\ln (\cdot)$:
$$
\quad 2 H(\boldsymbol{x})=\ln \frac{P(f(\boldsymbol{x})=1 \mid \boldsymbol{x})}{P(f(\boldsymbol{x})=-1 \mid \boldsymbol{x})}
$$
两边同乘 $\frac{1}{2}$ 即得式(8.7)。
### 8.2.5 式(8.8)的推导
$$
\begin{aligned}
\operatorname{sign}(H(\boldsymbol{x}))&=\operatorname{sign}\left(\frac{1}{2} \ln \frac{P(f(x)=1 | \boldsymbol{x})}{P(f(x)=-1 | \boldsymbol{x})}\right)
\\ & =\left\{\begin{array}{ll}{1,} & {P(f(x)=1 | \boldsymbol{x})>P(f(x)=-1 | \boldsymbol{x})} \\ {-1,} & {P(f(x)=1 | \boldsymbol{x})0$, 求解 $h_t(\boldsymbol{x})$;
得到 $h_t(\boldsymbol{x})$ 后再求 $\alpha_{t^{\circ}}$。
在原始论文的第346页,对式(8.12)的推导如图8-2所示,可以发现原文献中保留了参数 $c$
(即 $\alpha$ )。当然, 对于任意 $\alpha>0$, 并不影响推导结果。

如果暂且不管以上的差异,我们按照作者的思路推导的话,将$H_{t}(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})+h_{t}(\boldsymbol{x})$带入公式(8.5)即可,因为理想的$h_t$可以纠正$H_{t-1}$的全部错误,所以这里指定$h_t$其权重系数$\alpha_t$为1。如果权重系数$\alpha_t$是个常数的话,对后续结果也没有影响。
### 8.2.10 式(8.13)的推导
由$e^x$的二阶泰勒展开为$1+x+\frac{x^2}{2}+o(x^2)$得:
$$
\begin{aligned}
\ell_{\exp }\left(H_{t-1}+h_{t} | \mathcal{D}\right) &=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} e^{-f(\boldsymbol{x}) h_{t}(\boldsymbol{x})}\right]
\\ & \simeq \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\left(1-f(\boldsymbol{x}) h_{t}(\boldsymbol{x})+\frac{f^{2}(\boldsymbol{x}) h_{t}^{2}(\boldsymbol{x})}{2}\right)\right]
\end{aligned}
$$
因为$f(\boldsymbol{x})$与$h_t(\boldsymbol{x})$取值都为1或-1,所以$f^2(\boldsymbol{x})=h_t^2(\boldsymbol{x})=1$,所以得:
$$
\ell_{\exp }\left(H_{t-1}+h_{t} | \mathcal{D}\right)= \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\left(1-f(\boldsymbol{x}) h_{t}(\boldsymbol{x})+\frac{1}{2}\right)\right]
$$
实际上,此处保留一阶泰勒展开项即可,后面提到的Gradient
Boosting理论框架就是只使用了一阶泰勒展开;当然二阶项为常数,也并不影响推导结果,原文献[1]中也保留了二阶项。
### 8.2.11 式(8.14)的推导
$$
\begin{aligned}
h_{t}(\boldsymbol{x})&=\underset{h}{\arg \min } \ell_{\exp }\left(H_{t-1}+h | \mathcal{D}\right)&\textcircled{1}\\
&=\underset{h}{\arg \min } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\left(1-f(\boldsymbol{x}) h(\boldsymbol{x})+\frac{1}{2}\right)\right]&\textcircled{2}\\
&=\underset{h}{\arg \max } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right]&\textcircled{3}\\
&=\underset{h}{\arg \max } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\frac{e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]} f(\boldsymbol{x}) h(\boldsymbol{x})\right]&\textcircled{4}
\end{aligned}
$$
理想的$h_t(\boldsymbol{x})$是使得$H_{t}(\boldsymbol{x})$的指数损失函数取得最小值时的$h_t(\boldsymbol{x})$,该式将此转化成某个期望的最大值,其中:
$\textcircled{2}$是将式(8.13)代入;
$\textcircled{3}$是因为
$$
\begin{aligned}
& \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\left(1-f(\boldsymbol{x}) h(\boldsymbol{x})+\frac{1}{2}\right)\right] \\
= & \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\frac{3}{2} e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}-e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right] \\
= & \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\frac{3}{2} e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]-\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right]
\end{aligned}
$$
本式自变量为 $h(\boldsymbol{x})$, 而
$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\frac{3}{2} e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]$
与 $h(\boldsymbol{x})$ 无关, 也就是一个常数,因此只需最小大化第二项
$$
-\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right]
$$
将负号去掉, 原最小化问题变为最大化问题;
$\textcircled{4}$是因为
$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]$
是与自变量 $h(\boldsymbol{x})$ 无关的正常数 (因为指数函
数与原问题等价,例如 $\arg \max _x\left(1-x^2\right)$ 与
$\arg \max _x 2\left(1-x^2\right)$ 的结果均为 $\left.x=0\right)$。
### 8.2.12 式(8.16)的推导
首先解释下符号$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}$的含义,注意在本章中有两个符号$D$和$\mathcal{D}$,其中$D$表示数据集,而$\mathcal{D}$表示数据集$D$的样本分布,可以理解为在数据集$D$上进行一次随机采样,样本$x$被抽到的概率是$\mathcal{D}(x)$,那么符号$\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}$表示的是在概率分布$\mathcal{D}$上的期望,可以简单地理解为对数据及$D$以概率$\mathcal{D}$加权之后的期望,因此有:
$$
\mathbb{E}(g(\boldsymbol{x}))=\sum_{i=1}^{|D|}f(\boldsymbol{x}_i)g(\boldsymbol{x}_i)
$$
故可得
$$
\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H(\boldsymbol{x})}\right]=\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_{i}\right) e^{-f\left(\boldsymbol{x}_{i}\right) H\left(\boldsymbol{x}_{i}\right)}
$$
由式(8.15)可知
$$
\mathcal{D}_{t}\left(\boldsymbol{x}_{i}\right)=\mathcal{D}\left(\boldsymbol{x}_{i}\right) \frac{e^{-f\left(\boldsymbol{x}_{i}\right) H_{t-1}\left(\boldsymbol{x}_{i}\right)}}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]}
$$
所以式(8.16)可以表示为
$$
\begin{aligned} & \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\frac{e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]} f(\boldsymbol{x}) h(\boldsymbol{x})\right] \\=& \sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_{i}\right) \frac{e^{-f\left(\boldsymbol{x}_{i}\right) H_{t-1}\left(\boldsymbol{x}_{i}\right)}}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x}) }] \right.}f(x_i)h(x_i) \\=& \sum_{i=1}^{|D|} \mathcal{D}_{t}\left(\boldsymbol{x}_{i}\right) f\left(\boldsymbol{x}_{i}\right) h\left(\boldsymbol{x}_{i}\right) \\=& \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_{t}}[f(\boldsymbol{x}) h(\boldsymbol{x})] \end{aligned}
$$
### 8.2.13 式(8.17)的推导
当$f(\boldsymbol{x})=h(\boldsymbol{x})$时,$\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))=0$,$f(\boldsymbol{x}) h(\boldsymbol{x})=1$,$1-2\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))=1$;
当$f(\boldsymbol{x})\neq h(\boldsymbol{x})$时,$\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))=1$,$f(\boldsymbol{x}) h(\boldsymbol{x})=-1$,$1-2\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))=-1$。
综上,左右两式相等。
### 8.2.14 式(8.18)的推导
本式基于式(8.17)的恒等关系,由式(8.16)推导而来。
$$
\begin{aligned} \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}[f(\boldsymbol{x}) h(\boldsymbol{x})] & =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}[1-2 \mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))] \\ & =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}[1]-2 \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}[\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))] \\ & =1-2 \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}[\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))]\end{aligned}
$$
类似于式(8.14)的第3个和第4个等号,由式(8.16)的结果开始推导:
$$
\begin{aligned}
h_{t}(\boldsymbol{x}) &=\arg \max _{h} \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_{t}}[f(\boldsymbol{x}) h(\boldsymbol{x})] \\
&=\arg \max _{h}\left(1-2 \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_{t}}[\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))]\right) \\
&=\underset{h}{\arg \max }\left(-2 \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_{t}}[\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))]\right) \\
&=\arg \min \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_{t}}[\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))]
\end{aligned}
$$
此式表示理想的 $h_t(\boldsymbol{x})$ 在分布 $\mathcal{D}_t$
下最小化分类误差, 因此有"西瓜书"图 8.3第 3 行
$h_t(\boldsymbol{x})=\mathfrak{L}\left(D, \mathcal{D}_t\right)$,
即分类器 $h_t(\boldsymbol{x})$ 可以基于分布 $\mathcal{D}_t$ 从数据集 $D$
中训练而得, 而我们在训练分类器时, 一般来说最小化的损失函数就是分类误差。
### 8.2.15 式(8.19)的推导
$$
\begin{aligned}
\mathcal{D}_{t+1}(\boldsymbol{x}) &=\frac{\mathcal{D}(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H_{t}(\boldsymbol{x})}}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t}(\boldsymbol{x})}\right]} \\
&=\frac{\mathcal{D}(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} e^{-f(\boldsymbol{x}) \alpha_{t} h_{t}(\boldsymbol{x})}}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t}(\boldsymbol{x})}\right]} \\
&=\mathcal{D}_{t}(\boldsymbol{x}) \cdot e^{-f(\boldsymbol{x}) \alpha_{t} h_{t}(\boldsymbol{x})} \frac{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t}(\boldsymbol{x})}\right]}
\end{aligned}
$$
第 1 个等号是将式(8.15)中的 $t$ 换为 $t+1$ (同时 $t-1$ 换为 $t)$;
第 2 个等号是将
$H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})+\alpha_t h_t(\boldsymbol{x})$
代入分子即可;
第 3 个等号是乘以
$\frac{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]}{\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\right]}$
后, 凑出式(8.15)的 $\mathcal{D}_t(\boldsymbol{x})$ 表达式, 以符号
$\mathcal{D}_t(\boldsymbol{x})$ 替 换即得。到此之后, 得到
$\mathcal{D}_{t+1}(\boldsymbol{x})$ 与 $\mathcal{D}_t(\boldsymbol{x})$
的关系, 但为了确保 $\mathcal{D}_{t+1}(\boldsymbol{x})$ 是一个分布, 需要
对得到的 $\mathcal{D}_{t+1}(\boldsymbol{x})$ 进行规范化,
即"西瓜书"图8.3第 7 行的 $Z_t$ 。式(8.19)第 3 行最后一个分式将在规
范化过程被吸收。
boosting算法是根据调整后的样本再去训练下一个基分类器,这就是"重赋权法"的样本分布的调整公式。
### 8.2.16 AdaBoost的个人推导
西瓜书中对AdaBoost的推导和原论文[1]上有些地方有差异,综合原论文和一些参考资料,这里给出一版更易于理解的推导,亦可参见我们的视频教程。
AdaBoost 的目标是学得 $T$ 个 $h_t(\boldsymbol{x})$ 和相应的 $T$ 个
$\alpha_t$, 得到式(8.4)的 $H(\boldsymbol{x})$, 使式(8.5)指数 损失函数
$\ell_{\exp }(H \mid \mathcal{D})$ 最小, 这就是求解所谓的
"加性模型"。特别强调一下, 分类器 $h_t(\boldsymbol{x})$
如何得到及其相应的权重 $\alpha_t$ 等于多少都是需要求解的
$\left(h_t(\boldsymbol{x})=\mathfrak{L}\left(D, \mathcal{D}_t\right)\right.$,
即基于分布 $\mathcal{D}_t$ 从数据集 $D$ 中经过最小化训练误差训练出分类器
$h_t$, 也就是式(8.18), $\alpha_t$ 参见式(8.11)。
"通常这是一个复杂的优化问题(同时学得 $T$ 个 $h_t(\boldsymbol{x})$
和相应的 $T$ 个 $\alpha_t$ 很困难)。前向分
步算法求解这一优化问题的想法是:因为学习的是加法模型, 如果能够从前向后,
每一步只 学习一个基函数 $h_t(\boldsymbol{x})$ 及其系数 $\alpha_t$,
逐步逼近最小化指数损失函数 $\ell_{\exp }(H \mid \mathcal{D})$,
那么就可以简化优化的复杂度。" **(摘自李航 《统计学习方法》[2] 第 144
页,略有改动)**
因此, AdaBoost 每轮迭代只需要得到一个基分类器和其投票权重, 设第 $t$
轮迭代需得到 基分类器 $h_t(\boldsymbol{x})$, 对应的投票权重为
$\alpha_t$, 则集成分类器
$H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})+\alpha_t h_t(\boldsymbol{x})$,
其中 $H_0(\boldsymbol{x})=0$ 。为表达式简洁, 常常将
$h_t(\boldsymbol{x})$ 简写为 $h_t, H_t(\boldsymbol{x})$ 简写为 $H_t$
。则第 $t$
轮实际为如下优化问题(本节式(8.4)到式(8.8)已经证明了指数损失函数是分类任务原本
$0 / 1$ 损失函数的 一致替代损失函数):
$$
\left(\alpha_t, h_t\right)=\underset{\alpha, h}{\arg \min } \ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)
$$
表示每轮得到的基分类器 $h_t(\boldsymbol{x})$ 和对应的权重 $\alpha_t$
是最小化集成分类器 $H_t=H_{t-1}+\alpha_t h_t$ 在 数据集 $D$
上、样本权值分布为 $\mathcal{D}$ (即初始化样本权值分布, 也就是
$\mathcal{D}_1$ ) 时的指数损失函数
$\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)$
的结果。这就是前向分步算法求解加性模型的思路。
根据式(8.5)将指数损失函数表达式代入, 则
$$
\begin{aligned}
\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right) & =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x})\left(H_{t-1}(\boldsymbol{x})+\alpha h(\boldsymbol{x})\right)}\right] \\
& =\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right)\left(H_{t-1}\left(\boldsymbol{x}_i\right)+\alpha h\left(\boldsymbol{x}_i\right)\right)} \\
& =\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)} e^{-f\left(\boldsymbol{x}_i\right) \alpha h\left(\boldsymbol{x}_i\right)} \\
& =\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)}\left(e^{-\alpha} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right)=h\left(\boldsymbol{x}_i\right)\right)+e^\alpha \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right)
\end{aligned}
$$
上式推导中, 由于 $f\left(\boldsymbol{x}_i\right)$ 和
$h\left(\boldsymbol{x}_i\right)$ 均只能取 $-1,+1$ 两个值, 因此当
$f\left(\boldsymbol{x}_i\right)=h\left(\boldsymbol{x}_i\right)$ 时,
$f\left(\boldsymbol{x}_i\right) h\left(\boldsymbol{x}_i\right)=1$, 当
$f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)$ 时,
$f\left(\boldsymbol{x}_i\right) h\left(\boldsymbol{x}_i\right)=-1$
。另外, $f\left(\boldsymbol{x}_i\right)$ 和
$h\left(\boldsymbol{x}_i\right)$ 要么相 等, 要么不相等,
二者只能有一个为真, 因此以下等式恒成立:
$$
\mathbb{I}\left(f\left(\boldsymbol{x}_i\right)=h\left(\boldsymbol{x}_i\right)\right)+\mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)=1
$$
所以
$$
\begin{aligned}
& e^{-\alpha} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right)=h\left(\boldsymbol{x}_i\right)\right)+e^\alpha \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right) \\
= & e^{-\alpha} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right)=h\left(\boldsymbol{x}_i\right)\right)+e^{-\alpha} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)-e^{-\alpha} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)+e^\alpha \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right) \\
= & e^{-\alpha}\left(\mathbb{I}\left(f\left(\boldsymbol{x}_i\right)=h\left(\boldsymbol{x}_i\right)\right)+\mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right)+\left(e^\alpha-e^{-\alpha}\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right) \\
= & e^{-\alpha}+\left(e^\alpha-e^{-\alpha}\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)
\end{aligned}
$$
将此结果代入
$\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)$, 得 **(注:
以下表达式后面求解权重 $\alpha_t$
时仍会使用)**
$$
\begin{aligned}
\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right) & =\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)}\left(e^{-\alpha}+\left(e^\alpha-e^{-\alpha}\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right) \\
& =\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)} e^{-\alpha}+\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)}\left(e^\alpha-e^{-\alpha}\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right) \\
& =e^{-\alpha} \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)+\left(e^\alpha-e^{-\alpha}\right) \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)
\end{aligned}
$$
外面; 第一项
$e^{-\alpha} \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)$
与 $h(\boldsymbol{x})$ 无关, 因此对于任意 $\alpha>0$, 使
$\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)$ 最小的
$h(\boldsymbol{x})$ 只需要使第二项最小即可, 即
$$
h_t=\underset{h}{\arg \min }\left(e^\alpha-e^{-\alpha}\right) \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)
$$
对于任意 $\alpha>0$, 有 $e^\alpha-e^{-\alpha}>0$, 所以上式中与
$h(\boldsymbol{x})$ 无关的正系数可以省略:
$$
h_t=\underset{h}{\arg \min } \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)
$$
此即式(8.18)另一种表达形式。注意, 为了确保
$\mathcal{D}_t^{\prime}(\boldsymbol{x})$ 是一个分布, 需要对其进行规范化,
即
$\mathcal{D}_t(\boldsymbol{x})=\frac{\mathcal{D}_t^{\prime}(\boldsymbol{x})}{Z_t}$,
然而规范化因子
$Z_t=\sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)$
为常数, 并不影响最小化的求解。 正是基于此结论, AdaBoost 通过
$h_t=\mathfrak{L}\left(D, \mathcal{D}_t\right.$ )得到第 $t$
轮的基分类器。 **("西瓜书"图 8.3 的第 3
行)**
$$
\begin{aligned}
\mathcal{D}_{t+1}\left(\boldsymbol{x}_i\right) & =\mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_t\left(\boldsymbol{x}_i\right)} \\
& =\mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right)\left(H_{t-1}\left(\boldsymbol{x}_i\right)+\alpha_t h_t\left(\boldsymbol{x}_i\right)\right)} \\
& =\mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)} e^{-f\left(\boldsymbol{x}_i\right) \alpha_t h_t\left(\boldsymbol{x}_i\right)} \\
& =\mathcal{D}_t\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) \alpha_t h_t\left(\boldsymbol{x}_i\right)}
\end{aligned}
$$
此即类似式(8.19)的分布权重更新公式。
现在只差权重 $\alpha_t$ 表达式待求。对指数损失函数
$\ell_{\exp }\left(H_{t-1}+\alpha h_t \mid \mathcal{D}\right)$ 求导, 得
$$
\begin{aligned}
\frac{\partial \ell_{\exp }\left(H_{t-1}+\alpha h_t \mid \mathcal{D}\right)}{\partial \alpha} & =\frac{\partial\left(e^{-\alpha} \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)+\left(e^\alpha-e^{-\alpha}\right) \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right)}{\partial \alpha} \\
& =-e^{-\alpha} \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)+\left(e^\alpha+e^{-\alpha}\right) \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)
\end{aligned}
$$
令导数等于零, 得
$$
\begin{aligned}
\frac{e^{-\alpha}}{e^\alpha+e^{-\alpha}} & =\frac{\sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)}{\sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)}=\sum_{i=1}^{|D|} \frac{\mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)}{Z_t} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right) \\
& =\sum_{i=1}^{|D|} \mathcal{D}_t\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}\left[\mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right] \\
& =\epsilon_t
\end{aligned}
$$
对上述等式化简, 得
$$
\begin{aligned}
\frac{e^{-\alpha}}{e^\alpha+e^{-\alpha}}=\frac{1}{e^{2 \alpha}+1} & \Rightarrow e^{2 \alpha}+1=\frac{1}{\epsilon_t} \Rightarrow e^{2 \alpha}=\frac{1-\epsilon_t}{\epsilon_t} \Rightarrow 2 \alpha=\ln \left(\frac{1-\epsilon_t}{\epsilon_t}\right) \\
& \Rightarrow \alpha_t=\frac{1}{2} \ln \left(\frac{1-\epsilon_t}{\epsilon_t}\right)
\end{aligned}
$$
即式(8.11)。 从该式可以发现, 当 $\epsilon_t=1$ 时,
$\alpha_t \rightarrow \infty$, 此时集成分类器将由基分类器 $h_t$ 决定,
而这很可能是由于过拟合产生的结果, 例如不前枝决策树, 如果一直分下去,
一般情况下总 能得到在训练集上分类误差很小甚至为 0 的分类器,
但这并没有什么意义。所以一般在 AdaBoost 中使用弱分类器, 如决策树桩
(即单层决策树)。
另外, 由以上指数损失函数
$\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)$
的推导可以发现
$$
\begin{aligned}
\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right) & =\sum_{i=1}^{|D|} \mathcal{D}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) H_{t-1}\left(\boldsymbol{x}_i\right)} e^{-f\left(\boldsymbol{x}_i\right) \alpha h\left(\boldsymbol{x}_i\right)} \\
& =\sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) \alpha h\left(\boldsymbol{x}_i\right)}
\end{aligned}
$$
这与指数损失函数
$\ell_{\exp }\left(\alpha_t h_t \mid \mathcal{D}_t\right)$
的表达式基本一致:
$$
\begin{aligned}
\ell_{\exp }\left(\alpha_t h_t \mid \mathcal{D}_t\right) & =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}\left[e^{-f(\boldsymbol{x}) \alpha_t h_t(\boldsymbol{x})}\right] \\
& =\sum_{i=1}^{|D|} \mathcal{D}_t\left(\boldsymbol{x}_i\right) e^{-f\left(\boldsymbol{x}_i\right) \alpha_t h_t\left(\boldsymbol{x}_t\right)}
\end{aligned}
$$
而 $\mathcal{D}_t^{\prime}(\boldsymbol{x})$
的规范化过程并不影响对
$\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)$
求最小化操作, 因此最小化式(8.9) 等价于最小化
$\ell_{\exp }\left(H_{t-1}+\alpha h \mid \mathcal{D}\right)$,
这就是式(8.9)的来历,故并无问题。
到此为止, 就逐一完成了"西瓜书"图8.3中第 3 行的 $h_t$ 的训练
(并计算训练误差)、第 6 行的权 重 $\alpha_t$ 计算公式以及第 7 行的分布
$\mathcal{D}_t$ 更新公式来历的理论推导。
### 8.2.17 进一步理解权重更新公式
Adaboost原始文献[1]第 12 页(pdf显示第348页)有如下推论,如图8-3所示:

即
$P_{\boldsymbol{x} \sim \mathcal{D}_t}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)=0.5$
。用通俗的话来说就是, $h_{t-1}$ 在数据集 $D$ 上、 分布为 $\mathcal{D}_t$
时 的分类误差为 $0.5$, 即相当于随机猜测 (最糟糕的二分类器是分类误差为
$0.5$, 当二分类器分 类误差为 1 时相当于分类误差为 0 ,
因为将预测结果反过来用就是了)。而 $h_t$ 由式(8.18)得到
$$
h_t=\underset{h}{\arg \min } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}[\mathbb{I}(f(\boldsymbol{x}) \neq h(\boldsymbol{x}))]=\underset{h}{\arg \min } P_{\boldsymbol{x} \sim \mathcal{D}_t}(h(\boldsymbol{x}) \neq f(\boldsymbol{x}))
$$
即 $h_t$ 是在数据集 $D$ 上、分布为 $\mathcal{D}_t$
时分类误差最小的分类器, 因此在数据集 $D$ 上、分布为 $\mathcal{D}_t$ 时,
$h_t$ 是最好的分类器, 而 $h_{t-1}$ 是最差的分类器,
故二者差别最大。"西瓜书"第8.1节的图8.2形象的说 明了 "集成个体应
'好而不同'", 此时可以说 $h_{t-1}$ 和 $h_t$ 非常 "不同"。证明如下:
对于 $h_{t-1}$ 来说, 分类误差 $\epsilon_{t-1}$ 为
$$
\begin{aligned}
\epsilon_{t-1} & =P_{\boldsymbol{x} \sim \mathcal{D}_{t-1}}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_{t-1}}\left[\mathbb{I}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)\right] \\
& =\sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right) \\
& =\frac{\sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)}{\sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}(\boldsymbol{x})=f(\boldsymbol{x})\right)+\sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)}
\end{aligned}
$$
在第 $t$ 轮, 根据分布更新公式(8.19)或"西瓜书"图8.3第7行
(规范化因子 $Z_{t-1}$ 为常量):
$$
\mathcal{D}_t=\frac{\mathcal{D}_{t-1}}{Z_{t-1}} e^{-f(\boldsymbol{x}) \alpha_{t-1} h_{t-1}(\boldsymbol{x})}
$$
其中根据式(8.11), 第 $t-1$ 轮的权重
$$
\alpha_{t-1}=\frac{1}{2} \ln \frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}=\ln \sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}}
$$
代入 $\mathcal{D}_t$ 的表达式, 则
$$
\mathcal{D}_t= \begin{cases}\frac{\mathcal{D}_{t-1}}{Z_{t-1}} \cdot \sqrt{\frac{\epsilon_{t-1}}{1-\epsilon_{t-1}}} & \text {, if } h_{t-1}(\boldsymbol{x})=f(\boldsymbol{x}) \\ \frac{\mathcal{D}_{t-1}}{Z_{t-1}} \cdot \sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} & \text {, if } h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\end{cases}
$$
那么 $h_{t-1}$ 在数据集 $D$ 上、分布为 $\mathcal{D}_t$ 时的分类误差
$P_{\boldsymbol{x} \sim \mathcal{D}_t}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right.$
)为 (注意, 下式 第二行的分母等于 1, 因为
$\mathbb{I}\left(h_{t-1}(\boldsymbol{x})=f(\boldsymbol{x})\right)+\mathbb{I}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)=1$
)
$$
\begin{aligned}
& P_{\boldsymbol{x} \sim \mathcal{D}_t}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}\left[\mathbb{I}\left(h_{t-1}(\boldsymbol{x}) \neq f(\boldsymbol{x})\right)\right] \\
& =\frac{\sum_{i=1}^{|D|} \mathcal{D}_t\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right) \neq f\left(\boldsymbol{x}_i\right)\right)}{\sum_{i=1}^{|D|} \mathcal{D}_t\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right)=f\left(\boldsymbol{x}_i\right)\right)+\sum_{i=1}^{|D|} \mathcal{D}_t\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right) \neq f\left(\boldsymbol{x}_i\right)\right)} \\
& =\frac{\sum_{i=1}^{|D|} \frac{\mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right)}{Z_{t-1}} \cdot \sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right) \neq f\left(\boldsymbol{x}_i\right)\right)}{\sum_{i=1}^{|D|} \frac{\mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right)}{Z_{t-1}} \cdot \sqrt{\frac{\epsilon_{t-1}}{1-\epsilon_{t-1}}} \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right)=f\left(\boldsymbol{x}_i\right)\right)+\sum_{i=1}^{|D|} \frac{\mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right)}{Z_{t-1}} \cdot \sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right) \neq f\left(\boldsymbol{x}_i\right)\right)} \\
& =\frac{\sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} \cdot \sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right) \neq f\left(\boldsymbol{x}_i\right)\right)}{\sqrt{\frac{\epsilon_{t-1}}{1-\epsilon_{t-1}}} \cdot \sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right)=f\left(\boldsymbol{x}_i\right)\right)+\sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} \cdot \sum_{i=1}^{|D|} \mathcal{D}_{t-1}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(h_{t-1}\left(\boldsymbol{x}_i\right) \neq f\left(\boldsymbol{x}_i\right)\right)} \\
& =\frac{\sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} \cdot \epsilon_{t-1}}{\sqrt{\frac{\epsilon_{t-1}}{1-\epsilon_{t-1}}} \cdot\left(1-\epsilon_{t-1}\right)+\sqrt{\frac{1-\epsilon_{t-1}}{\epsilon_{t-1}}} \cdot \epsilon_{t-1}}=\frac{1}{2} \\
&
\end{aligned}
$$
### 8.2.18 能够接受带权样本的基学习算法
在Adaboost算法的推导过程中,我们发现能够接受并利用带权样本的算法才能很好的嵌入到Adaboost的框架中作为基学习器。因此这里举一些能够接受带权样本的基学习算法的例子,分别是SVM和基于随机梯度下降(SGD)的对率回归:
其实原理很简单: 对于 SVM 来说, 针对"西瓜书" P130
页的优化目标式(6.29)来说, 第二项为损失项, 此时每个样本的损失
$\ell_{0 / 1}\left(y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)-1\right)$
直接相加, 即样本权值分布为
$\mathcal{D}\left(\boldsymbol{x}_i\right)=\frac{1}{m}$, 其中 $m$
为数据集 $D$ 样本个数; 若样本权值更新为
$\mathcal{D}_t\left(\boldsymbol{x}_i\right)$, 则此时损失求和项应该变为
$$
\sum_{i=1}^m m \mathcal{D}_t\left(\boldsymbol{x}_i\right) \cdot \ell_{0 / 1}\left(y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)-1\right)
$$
若将 $\mathcal{D}\left(\boldsymbol{x}_i\right)=\frac{1}{m}$ 替换
$\mathcal{D}_t\left(\boldsymbol{x}_i\right)$, 则就是每个样本的损失
$\ell_{0 / 1}\left(y_i\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_i+b\right)-1\right)$
直接相加。 如此更改后, 最后推导结果影响的是式(6.39), 将由
$C=\alpha_i+\mu_i$ 变为
$$
C \cdot m \mathcal{D}_t\left(\boldsymbol{x}_i\right)=\alpha_i+\mu_i
$$
进而由 $\alpha_i, \mu_i \geq 0$ 导出
$0 \leq \alpha_i \leq C \cdot m \mathcal{D}_t\left(\boldsymbol{x}_i\right)$
。
对于基于随机梯度下降(SGD)的对率回归, 每次随机选择一个样本进行梯度下降,
总体 上的期望损失即为式(3.27), 此时每个样本被选到的概率相同, 相当于
$\mathcal{D}\left(\boldsymbol{x}_i\right)=\frac{1}{m}$ 。若样本
权值更新为 $\mathcal{D}_t\left(\boldsymbol{x}_i\right)$, 则类似于
$\mathrm{SVM}$, 针对式 (3.27) 只需要给第 $i$ 项乘以
$m \mathcal{D}_t\left(\boldsymbol{x}_i\right)$ 即可,
相当于每次随机梯度下降选择样本时以概率
$\mathcal{D}_t\left(\boldsymbol{x}_i\right)$ 选择样本 $\boldsymbol{x}_i$
即可。
注意, 这里总的损失中出现了样本个数 $m$ 。这是因为在定义损失时末求均值,
若对式(6.29)的第二项和式(3.27)乘以 $\frac{1}{m}$ 则可以将 $m$
抵消掉。然而常数项在最小化式(3.27)实际上并不影响什么,
对于式(6.29)来说只要选择平衡参数 $C$ 时选为原来的 $m$ 倍即可。
当然, 正如"西瓜书" P177 第三段中所说, "对无法接受带权样本的基学习算法,
则可通过 "重采样法' 来处理, 即在每一轮学习中,
根据样本分布对训练集重新进行采样,
再用重采样而得的样本集对基学习器进行训练"。
## 8.3 Bagging与随机森林
### 8.3.1 式(8.20)的解释
$\mathbb{I}\left(h_{t}(\boldsymbol{x})=y\right)$表示对$\mathrm{T}$个基学习器,每一个都判断结果是否与$y$一致,$y$的取值一般是$-1$和$1$,如果基学习器结果与$y$一致,则$\mathbb{I}\left(h_{t}(\boldsymbol{x})=y\right)=1$,如果样本不在训练集内,则$\mathbb{I}\left(\boldsymbol{x} \notin D_{t}\right)=1$,综合起来看就是,对包外的数据,用"投票法"选择包外估计的结果,即1或-1。
### 8.3.2 式(8.21)的推导
由式(8.20)知,$H^{\mathrm{oob}}(\boldsymbol{x})$是对包外的估计,该式表示估计错误的个数除以总的个数,得到泛化误差的包外估计。注意在本式直接除以
$D \mid$ (训练集 $D$ 样本个数), 也就是说此处假设 $T$
个基分类器的各自的包外样本的并集一定为训练集 $D$ 。实际上,
这个事实成立的概率也是比较大的, 可以计算一下: 样本属于包内的概率为
$0.632$, 那么 $T$ 次独立的 随机采样均属于包内的概率为 $0.632^T$, 当
$T=5$ 时, $0.632^T \approx 0.1$, 当 $T=10$ 时, $0.632^T \approx 0.01$,
这么来看的话 $T$ 个基分类器的各自的包外样本的并集为训练集 $D$
的概率的确实比较大。
### 8.3.3 随机森林的解释
在8.3.2节开篇第一句话就解释了随机森林的概念:随机森林是Bagging的一个扩展变体,是以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。
完整版随机森林当然更复杂,这时只须知道两个重点:(1)
以决策树为基学习器;(2)在基学习器训练过程中,选择划分属性时只使用当前结点属性集合的一个子集。
## 8.4 结合策略
### 8.4.1 式(8.22)的解释
$$
H(\boldsymbol{x})=\frac{1}{T} \sum_{i=1}^{T} h_{i}(\boldsymbol{x})
$$
对基分类器的结果进行简单的平均。
### 8.4.2 式(8.23)的解释
$$
H(\boldsymbol{x})=\sum_{i=1}^{T} w_{i} h_{i}(\boldsymbol{x})
$$
对基分类器的结果进行加权平均。
### 8.4.3 硬投票和软投票的解释
"西瓜书"中第183页提到了硬投票(hard voting)和软投票(soft
voting),本页左侧注释也提到多数投票法的英文术语使用不太一致,有文献称为majority
voting。本人看到有些文献中,硬投票使用majority
voting(多数投票),软投票使用probability
voting(概率投票),所以还是具体问题具体分析比较稳妥。
### 8.4.4 式(8.24)的解释
$$
H(\boldsymbol{x})=\left\{\begin{array}{ll}
{c_{j},} & {\text { if } \sum_{i=1}^{T} h_{i}^{j}(\boldsymbol{x})>0.5 \sum_{k=1}^{N} \sum_{i=1}^{T} h_{i}^{k}(\boldsymbol{x})} \\
{\text { reject, }} & {\text { otherwise. }}
\end{array}\right.
$$
当某一个类别$j$的基分类器的结果之和,大于所有结果之和的$\frac {1}{2}$,则选择该类别$j$为最终结果。
### 8.4.5 式(8.25)的解释
$$
H(\boldsymbol{x})=c_{\underset{j}{ \arg \max} \sum_{i=1}^{T} h_{i}^{j}(\boldsymbol{x})}
$$
相比于其他类别,该类别$j$的基分类器的结果之和最大,则选择类别$j$为最终结果。
### 8.4.6 式(8.26)的解释
$$
H(\boldsymbol{x})=c_{\underset{j}{ \arg \max} \sum_{i=1}^{T} w_i h_{i}^{j}(\boldsymbol{x})}
$$
相比于其他类别,该类别$j$的基分类器的结果之和最大,则选择类别$j$为最终结果,与式(8.25)不同的是,该式在基分类器前面乘上一个权重系数,该系数大于等于0,且T个权重之和为1。
### 8.4.7 元学习器(meta-learner)的解释
书中第183页最后一行提到了元学习器(meta-learner),简单解释一下,因为理解meta的含义有时对于理解论文中的核心思想很有帮助。
元(meta),非常抽象,例如此处的含义,即次级学习器,或者说基于学习器结果的学习器;另外还有元语言,就是描述计算机语言的语言,还有元数学,研究数学的数学等等;
另外,论文中经常出现的还有meta-strategy,即元策略或元方法,比如说你的研究问题是多分类问题,那么你提出了一种方法,例如对输入特征进行变换(或对输出类别做某种变换),然后再基于普通的多分类方法进行预测,这时你的方法可以看成是一种通用的框架,它虽然针对多分类问题开发,但它需要某个具体多分类方法配合才能实现,那么这样的方法是一种更高层级的方法,可以称为是一种meta-strategy。
### 8.4.8 Stacking算法的解释
该算法其实非常简单,对于数据集,试想你现在有了
个基分类器预测结果,也就是说数据集中的每个样本均有
个预测结果,那么怎么结合这 个预测结果呢?
本节名为"结合策略",告诉你各种结合方法,但其实最简单的方法就是基于这
个预测结果再进行一次学习,即针对每个样本,将这
个预测结果作为输入特征,类别仍为原来的类别,既然无法抉择如何将这些结果进行结合,那么就"学习"一下吧。
"西瓜书"图8.9伪代码第9行中将第个样本进行变换,特征为个基学习器的输出,类别标记仍为原来的
,将所有训练集中的样本进行转换得到新的数据集后,再基于进行一次学习即可,也就是Stacking算法。
至于说"西瓜书"图8.9中伪代码第1行到第3行使用的数据集与第5行到第10行使用的数据集之间的关系,在"西瓜书"图8.9下方的一段话有详细的讨论,不再赘述。
## 8.5 多样性
### 8.5.1 式(8.27)的解释
$$
A\left(h_{i} | \boldsymbol{x}\right)=\left(h_{i}(\boldsymbol{x})-H(\boldsymbol{x})\right)^{2}
$$
该式表示个体学习器结果与预测结果的差值的平方,即为个体学习器的"分歧"。
### 8.5.2 式(8.28)的解释
$$
\begin{aligned}
\bar{A}(h | \boldsymbol{x}) &=\sum_{i=1}^{T} w_{i} A\left(h_{i} | \boldsymbol{x}\right) \\
&=\sum_{i=1}^{T} w_{i}\left(h_{i}(\boldsymbol{x})-H(\boldsymbol{x})\right)^{2}
\end{aligned}
$$
该式表示对各个个体学习器的"分歧"加权平均的结果,即集成的"分歧"。
### 8.5.3 式(8.29)的解释
$$
E\left(h_{i} | \boldsymbol{x}\right)=\left(f(\boldsymbol{x})-h_{i}(\boldsymbol{x})\right)^{2}
$$
该式表示个体学习器与真实值之间差值的平方,即个体学习器的平方误差。
### 8.5.4 式(8.30)的解释
$$
E(H | \boldsymbol{x})=(f(\boldsymbol{x})-H(\boldsymbol{x}))^{2}
$$
该式表示集成与真实值之间差值的平方,即集成的平方误差。
### 8.5.5 式(8.31)的推导
由(8.28)知
$$
\begin{aligned}
\bar{A}(h | \boldsymbol{x})&=\sum_{i=1}^{T} w_{i}\left(h_{i}(\boldsymbol{x})-H(\boldsymbol{x})\right)^{2}\\
&=\sum_{i=1}^{T} w_{i}(h_i(\boldsymbol{x})^2-2h_i(\boldsymbol{x})H(\boldsymbol{x})+H(\boldsymbol{x})^2)\\
&=\sum_{i=1}^{T} w_{i}h_i(\boldsymbol{x})^2-H(\boldsymbol{x})^2
\end{aligned}
$$
又因为
$$
\begin{aligned}
& \sum_{i=1}^{T} w_{i} E\left(h_{i} | \boldsymbol{x}\right)-E(H | \boldsymbol{x})\\
&=\sum_{i=1}^{T} w_{i}\left(f(\boldsymbol{x})-h_{i}(\boldsymbol{x})\right)^{2}-(f(\boldsymbol{x})-H(\boldsymbol{x}))^{2}\\
&=\sum_{i=1}^{T} w_{i}h_i(\boldsymbol{x})^2-H(\boldsymbol{x})^{2}
\end{aligned}
$$
所以
$$
\bar{A}(h | \boldsymbol{x}) =\sum_{i=1}^{T} w_{i} E\left(h_{i} | \boldsymbol{x}\right)-E(H | \boldsymbol{x})
$$
### 8.5.6 式(8.32)的解释
$$
\sum_{i=1}^{T} w_{i} \int A\left(h_{i} | \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}=\sum_{i=1}^{T} w_{i} \int E\left(h_{i} | \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}-\int E(H | \boldsymbol{x}) p(\boldsymbol{x}) d \boldsymbol{x}
$$
$\int A\left(h_{i} | \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}$表示个体学习器在全样本上的"分歧",$\sum_{i=1}^{T} w_{i} \int A\left(h_{i} | \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}$表示集成在全样本上的"分歧"。
式(8.31)的意义在于, 对于示例 $\boldsymbol{x}$ 有
$\bar{A}(h \mid \boldsymbol{x})=\bar{E}(h \mid \boldsymbol{x})-E(H \mid \boldsymbol{x})$
成立, 即个体学习器分歧的加权均值等于个体学习器误差的加权均值减去集成
$H(\boldsymbol{x})$ 的误差。
将这个结论应用于全样本上, 即为式(8.32)。
例如
$A_i=\int A\left(h_i \mid \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}$,
这是将 $\boldsymbol{x}$ 作为连续变量来处理的, 所以这里是概率密度
$p(\boldsymbol{x})$ 和积分号; 若按离散变量来处理, 则变为
$A_i=\sum_{\boldsymbol{x} \in D} A\left(h_i \mid \boldsymbol{x}\right) p_{\boldsymbol{x}}$;
其实高等数学中讲过, 积分就是连续求和。
### 8.5.7 式(8.33)的解释
$$
E_{i}=\int E\left(h_{i} | \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}
$$
表示个体学习器在全样本上的泛化误差。
### 8.5.8 式(8.34)的解释
$$
A_{i}=\int A\left(h_{i} | \boldsymbol{x}\right) p(\boldsymbol{x}) d \boldsymbol{x}
$$
表示个体学习器在全样本上的分歧。
### 8.5.9 式(8.35)的解释
$$
E=\int E(H | \boldsymbol{x}) p(\boldsymbol{x}) d \boldsymbol{x}
$$
表示集成在全样本上的泛化误差。
### 8.5.10 式(8.36)的解释
$$
E=\bar{E}-\bar{A}
$$
$\bar{E}$表示个体学习器泛化误差的加权均值,$\bar{A}$表示个体学习器分歧项的加权均值,该式称为"误差-分歧分解"。
### 8.5.11 式(8.40)的解释
当 $p_1=p_2$ 时, $\kappa=0$; 当 $p_1=1$ 时, $\kappa=1$; 一般来说
$p_1 \geqslant p_2$, 即 $\kappa \geqslant 0$, 但偶尔也 有 $p_10$ 为待解常量;
$\boldsymbol{d}_k$ 表示往哪个方向改 变 $\boldsymbol{x}$ 函数值下降最快,
而 $\alpha_k$ 表示沿这个方向的步长。因此, 求解 $\Delta \boldsymbol{x}$
的问题变为
$$
\left(\alpha_k, \boldsymbol{d}_k\right)=\underset{\alpha, \boldsymbol{d}}{\arg \min } \nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \alpha \boldsymbol{d}
$$
将以上优化问题分为两步求解, 即
$$
\begin{gathered}
\boldsymbol{d}_k=\underset{\boldsymbol{d}}{\arg \min } \nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d} \quad \text { s.t. }\|\boldsymbol{d}\|_2=1 \\
\alpha_k=\underset{\alpha}{\arg \min } \nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d}_k \alpha
\end{gathered}
$$
以上求解 $\alpha_k$ 的优化问题明显有问题, 因为对于
$\nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d}_k<0$
来说, 显然 $\alpha_k=+\infty$ 时取 的最小值, 求解 $\alpha_k$
应该求解如下优化问题:
$$
\alpha_k=\underset{\alpha}{\arg \min } f\left(\boldsymbol{x}_k+\alpha \boldsymbol{d}_k\right)
$$
对于凸函数来说, 以上两步可以得到最优解; 但对于非凸函数来说, 联合求解得到
$\boldsymbol{d}_k$ 和 $\alpha_k$, 与先求 $\boldsymbol{d}_k$
然后基于此再求 $\alpha_k$ 的结果应该有时是不同的。 由 Cauchy-Schwartz
不等式
$$
\left|\nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d}_k\right| \leq\left\|\nabla f\left(\boldsymbol{x}_k\right)\right\|_2\left\|\boldsymbol{d}_k\right\|_2
$$
可知, 当且仅当
$\boldsymbol{d}_k=-\frac{\nabla f\left(\boldsymbol{x}_k\right)}{\left\|\nabla f\left(\boldsymbol{x}_k\right)\right\|_2}$
时,
$\nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d}_k$
最小,
$-\nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d}_k$
最大。 对于 $\alpha_k$, 若
$f\left(\boldsymbol{x}_k+\alpha \boldsymbol{d}_k\right)$ 对 $\alpha$
的导数存在, 则可简单求解如下单变量方程即可:
$$
\frac{\partial f\left(\boldsymbol{x}_k+\alpha \boldsymbol{d}_k\right)}{\partial \alpha}=0
$$
例 1: 试求 $f(x)=x^2$ 在 $x_k=2$ 处的梯度方向 $d_k$ 和步长 $\alpha_k$ 。
解: 对 $f(x)$ 在 $x_k=2$ 处进行一阶 Taylor 展开:
$$
\begin{aligned}
f(x) & =f\left(x_k\right)+f^{\prime}\left(x_k\right)\left(x-x_k\right) \\
& =x_k^2+2 x_k\left(x-x_k\right) \\
& =x_k^2+2 x_k \alpha d
\end{aligned}
$$
由于此时自变量为一维, 因此只有两个方向可选, 要么正方向,
要么负方向。此时 $f^{\prime}\left(x_k\right)=4$, 因此
$d_k=-\frac{f^{\prime}\left(x_k\right)}{\left|f^{\prime}\left(x_k\right)\right|}=-1$
。接下来求 $\alpha_k$, 将 $x_k$ 和 $d_k$ 代入:
$$
f\left(x_k+\alpha d_k\right)=f(2-\alpha)=(2-\alpha)^2
$$
进而有
$$
\frac{\partial f\left(x_k+\alpha d_k\right)}{\partial \alpha}=-2(2-\alpha)
$$
令导数等于 0 , 得 $\alpha_k=2$ 。此时
$$
\Delta x=\alpha_k d_k=-2
$$
则
$x_k+\Delta x=0$, 函数值 $f\left(x_k+\Delta x\right)=0$ 。 例 2: 试求
$f(\boldsymbol{x})=\|\boldsymbol{x}\|_2^2=\boldsymbol{x}^{\mathrm{T}} \boldsymbol{x}$
在
$\boldsymbol{x}_k=\left[x_k^1, x_k^2\right]^{\mathrm{T}}=[3,4]^{\mathrm{T}}$
处的梯度方向 $\boldsymbol{d}_k$ 和步长 $\alpha_k$ 。 解: 对
$f(\boldsymbol{x})$ 在
$\boldsymbol{x}_k=\left[x_k^1, x_k^2\right]^{\mathrm{T}}=[3,4]^{\mathrm{T}}$
处进行一阶 Taylor 展开:
$$
\begin{aligned}
f(\boldsymbol{x}) & =f\left(\boldsymbol{x}_k\right)+\nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}}\left(\boldsymbol{x}-\boldsymbol{x}_k\right) \\
& =\|\boldsymbol{x}\|_2^2+2 \boldsymbol{x}_k^{\mathrm{T}}\left(\boldsymbol{x}-\boldsymbol{x}_k\right) \\
& =\|\boldsymbol{x}\|_2^2+2 \boldsymbol{x}_k^{\mathrm{T}} \alpha \boldsymbol{d}
\end{aligned}
$$
此时
$\nabla f\left(\boldsymbol{x}_k\right)=[6,8]^{\mathrm{T}}$, 因此
$\boldsymbol{d}_k=-\frac{\nabla f\left(\boldsymbol{x}_k\right)}{\left\|\nabla f\left(\boldsymbol{x}_k\right)\right\|_2}=[-0.6,-0.8]^{\mathrm{T}}$
。接下来求 $\alpha_k$, 将 $\boldsymbol{x}_k$ 和 $\boldsymbol{d}_k$ 代入:
$$
\begin{aligned}
f\left(\boldsymbol{x}_k+\alpha \boldsymbol{d}_k\right) & =(3-0.6 \alpha)^2+(4-0.8 \alpha)^2 \\
& =\alpha^2-10 \alpha+25 \\
& =(\alpha-5)^2
\end{aligned}
$$
因此可得 $\alpha_k=5$ (或对 $\alpha$ 求导, 再令导数等于
0 )。此时
$$
\Delta \boldsymbol{x}=\alpha_k \boldsymbol{d}_k=[-3,-4]^{\mathrm{T}}
$$
则 $\boldsymbol{x}_k+\Delta \boldsymbol{x}=[0,0]^{\mathrm{T}}$, 函数值
$f\left(\boldsymbol{x}_k+\Delta \boldsymbol{x}\right)=0$ 。
通过以上分析, 只想强调两点: (1)梯度下降法求解下降最快的方向
$\boldsymbol{d}_k$ 时应该求解如下优化问题:
$$
\boldsymbol{d}_k=\underset{\boldsymbol{d}}{\arg \min } \nabla f\left(\boldsymbol{x}_k\right)^{\mathrm{T}} \boldsymbol{d} \text { s.t. }\|\boldsymbol{d}\|_2=C
$$
其中 $C$ 为常量, 即不必严格限定 $\left\|\boldsymbol{d}_k\right\|_2=1$,
只要固定向量长度, 与 $\alpha_k$ 搭配即可。 (2)梯度下降法求解步长
$\alpha_k$ 应该求解如下优化问题:
$$
\alpha_k=\underset{\alpha}{\arg \min } f\left(\boldsymbol{x}_k+\alpha \boldsymbol{d}_k\right)
$$
实际应用中, 很多时候不会去求最优的 $\alpha_k$, 而是靠经验设置一个步长。
### 8.6.2 从梯度下降的角度解释AdaBoost
AdaBoost 第 $t$ 轮迭代时最小化式(8.5)的指数损失函数
$$
\ell_{\exp }\left(H_t \mid \mathcal{D}\right)=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_t(\boldsymbol{x})}\right]=\sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H_t(\boldsymbol{x})}
$$
对 $\ell_{\exp }\left(H_t \mid \mathcal{D}\right)$ 每一项在 $H_{t-1}$
处泰勒展开
$$
\begin{aligned}
\ell_{\exp }\left(H_t \mid \mathcal{D}\right) & \approx \sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x})\left(e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}-f(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}\left(H_t(\boldsymbol{x})-H_{t-1}(\boldsymbol{x})\right)\right) \\
& =\sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x})\left(e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}-e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) \alpha_t h_t(\boldsymbol{x})\right) \\
& =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}-e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) \alpha_t h_t(\boldsymbol{x})\right]
\end{aligned}
$$
其中 $H_t=H_{t-1}+\alpha_t h_t$ 。注意: $\alpha_t, h_t$
是第 $t$ 轮待解的变量。 另外补充一下, 在上式展开中的变量为
$H_t(\boldsymbol{x})$, 在 $H_{t-1}$ 处一阶导数为
$$
\left.\frac{\partial e^{-f(\boldsymbol{x}) H_t(\boldsymbol{x})}}{\partial H_t(\boldsymbol{x})}\right|_{H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})}=-f(\boldsymbol{x}) e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}
$$
如果看不习惯上述泰勒展开过程, 可令变量 $z=H_t(\boldsymbol{x})$ 和函数
$g(z)=e^{-f(\boldsymbol{x}) z}$, 对 $g(z)$ 在
$z_0=H_{t-1}(\boldsymbol{x})$ 处泰勒展开, 得
$$
\begin{aligned}
g(z) & \approx g\left(z_0\right)+g^{\prime}\left(z_0\right)\left(z-z_0\right) \\
& =g\left(z_0\right)-f(\boldsymbol{x}) e^{-f(\boldsymbol{x}) z_0}\left(z-z_0\right) \\
& =e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}-e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x})\left(H_t(\boldsymbol{x})-H_{t-1}(\boldsymbol{x})\right) \\
& =e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})}-e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) \alpha_t h_t(\boldsymbol{x})
\end{aligned}
$$
注意此处 $h_t(\boldsymbol{x}) \in\{-1,+1\}$,
类似于3.3.2节梯度下降法中的约束 $\left\|\boldsymbol{d}^t\right\|=1$ 。
类似于使用梯度下降法求解下降最快的方向$\boldsymbol{d}^t$, 此处先求 $h_t$
(先不管 $\alpha_t$ ):
$$
h_t=\underset{h}{\arg \min } \sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x})\left(-e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right) \quad \text { s.t. } h(\boldsymbol{x}) \in\{-1,+1\}
$$
将负号去掉, 最小化变为最大化问题
$$
\begin{aligned}
h_t & =\underset{h}{\arg \max } \sum_{\boldsymbol{x} \in D} \mathcal{D}(\boldsymbol{x})\left(e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right) \\
& =\underset{h}{\arg \max } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[e^{-f(\boldsymbol{x}) H_{t-1}(\boldsymbol{x})} f(\boldsymbol{x}) h(\boldsymbol{x})\right] \quad \text { s.t. } h(\boldsymbol{x}) \in\{-1,+1\}
\end{aligned}
$$
这就是式(8.14)的第 3 个等号的结果,
因此其余推导参见8.2.16节即可。 由于这里的 $h(\boldsymbol{x})$
约束较强, 因此不能直接取负梯度方向, 书中经过推导得到了
$h_t(\boldsymbol{x})$ 的 表达式, 即式(8.18)。实际上,
可以将此结果理解为满足约束条件的最快下降方向。 求得
$h_t(\boldsymbol{x})$ 之后再求 $\alpha_t$
(8.2.16节 "AdaBoost的个人推导"
注解中已经写过一遍, 此处仅粘贴至此,
具体参见8.2.16节注解,尤其是
$\ell_{\exp }\left(H_{t-1}+\alpha h_t \mid \mathcal{D}\right)$
表达式的由来):
$$
\alpha_k=\underset{\alpha}{\arg \min } \ell_{\exp }\left(H_{t-1}+\alpha h_t \mid \mathcal{D}\right)
$$
对指数损失函数
$\ell_{\exp }\left(H_{t-1}+\alpha h_t \mid \mathcal{D}\right)$ 求导, 得
$$
\begin{aligned}
\frac{\partial \ell_{\exp }\left(H_{t-1}+\alpha h_t \mid \mathcal{D}\right)}{\partial \alpha} & =\frac{\partial\left(e^{-\alpha} \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)+\left(e^\alpha-e^{-\alpha}\right) \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right)}{\partial \alpha} \\
& =-e^{-\alpha} \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)+\left(e^\alpha+e^{-\alpha}\right) \sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)
\end{aligned}
$$
令导数等于零, 得
$$
\begin{aligned}
\frac{e^{-\alpha}}{e^\alpha+e^{-\alpha}} & =\frac{\sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)}{\sum_{i=1}^{|D|} \mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)}=\sum_{i=1}^{|D|} \frac{\mathcal{D}_t^{\prime}\left(\boldsymbol{x}_i\right)}{Z_t} \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right) \\
& =\sum_{i=1}^{|D|} \mathcal{D}_t\left(\boldsymbol{x}_i\right) \mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)=\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}_t}\left[\mathbb{I}\left(f\left(\boldsymbol{x}_i\right) \neq h\left(\boldsymbol{x}_i\right)\right)\right] \\
& =\epsilon_t
\end{aligned}
$$
对上述等式化简, 得
$$
\begin{aligned}
\frac{e^{-\alpha}}{e^\alpha+e^{-\alpha}}=\frac{1}{e^{2 \alpha}+1} & \Rightarrow e^{2 \alpha}+1=\frac{1}{\epsilon_t} \Rightarrow e^{2 \alpha}=\frac{1-\epsilon_t}{\epsilon_t} \Rightarrow 2 \alpha=\ln \left(\frac{1-\epsilon_t}{\epsilon_t}\right) \\
& \Rightarrow \alpha_t=\frac{1}{2} \ln \left(\frac{1-\epsilon_t}{\epsilon_t}\right)
\end{aligned}
$$
即式(8.11)。 通过以上推导可以发现: AdaBoost
每一轮的迭代就是基于梯度下降法求解损失函数为 指数损失函数的二分类问题。
**(约束条件
$h_t(\boldsymbol{x}) \in\{-1,+1\}$)**
### 8.6.3 梯度提升(Gradient Boosting)
将 AdaBoost 的问题一般化, 即不限定损失函数为指数损失函数,
也不局限于二分类问 题, 则可以将式(8.5)写为更一般化的形式
$$
\begin{aligned}
\ell\left(H_t \mid \mathcal{D}\right) & =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\operatorname{err}\left(H_t(\boldsymbol{x}), f(\boldsymbol{x})\right)\right] \\
& =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\operatorname{err}\left(H_{t-1}(\boldsymbol{x})+\alpha_t h_t(\boldsymbol{x}), f(\boldsymbol{x})\right)\right]
\end{aligned}
$$
问题时, $f(\boldsymbol{x}) \in \mathbb{R}$,
损失函数可使用平方损失
$\operatorname{err}\left(H_t(\boldsymbol{x}), f(\boldsymbol{x})\right)=\left(H_t(\boldsymbol{x})-f(\boldsymbol{x})\right)^2$
。 针对该一般化的损失函数和一般的学习问题, 要通过 $T$ 轮迭代得到学习器
$$
H(\boldsymbol{x})=\sum_{t=1}^T \alpha_t h_t(\boldsymbol{x})
$$
类似于
AdaBoost, 第 $t$ 轮得到 $\alpha_t, h_t(\boldsymbol{x})$,
可先对损失函数在 $H_{t-1}(\boldsymbol{x})$ 处进行泰勒展开:
$$
\begin{aligned}
\ell\left(H_t \mid \mathcal{D}\right) & \approx \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\operatorname{err}\left(H_{t-1}(\boldsymbol{x}), f(\boldsymbol{x})\right)+\left.\frac{\partial \operatorname{err}\left(H_t(\boldsymbol{x}), f(\boldsymbol{x})\right)}{\partial H_t(\boldsymbol{x})}\right|_{H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})}\left(H_t(\boldsymbol{x})-H_{t-1}(\boldsymbol{x})\right)\right] \\
& =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\operatorname{err}\left(H_{t-1}(\boldsymbol{x}), f(\boldsymbol{x})\right)+\left.\frac{\partial \operatorname{err}\left(H_t(\boldsymbol{x}), f(\boldsymbol{x})\right)}{\partial H_t(\boldsymbol{x})}\right|_{H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})} \alpha_t h_t(\boldsymbol{x})\right] \\
& =\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\operatorname{err}\left(H_{t-1}(\boldsymbol{x}), f(\boldsymbol{x})\right)\right]+\mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\left.\frac{\partial \operatorname{err}\left(H_t(\boldsymbol{x}), f(\boldsymbol{x})\right)}{\partial H_t(\boldsymbol{x})}\right|_{H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})} \alpha_t h_t(\boldsymbol{x})\right]
\end{aligned}
$$
注意, 在上式展开中的变量为 $H_t(\boldsymbol{x})$, 且有
$H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})+\alpha_t h_t(\boldsymbol{x})$
(类似于梯度下降法中
$\left.\boldsymbol{x}=\boldsymbol{x}_k+\alpha_k \boldsymbol{d}_k\right)$
。上式中括号内第 1 项为常量 $\ell\left(H_{t-1} \mid \mathcal{D}\right)$,
最小化 $\ell\left(H_t \mid \mathcal{D}\right)$ 只须最小化第 2
项即可。先不考虑权重 $\alpha_t$, 求解如下优化问题可得
$h_t(\boldsymbol{x})$ :
$$
h_t(\boldsymbol{x})=\underset{h}{\arg \min } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\left.\frac{\partial \operatorname{err}\left(H_t(\boldsymbol{x}), f(\boldsymbol{x})\right)}{\partial H_t(\boldsymbol{x})}\right|_{H_t(\boldsymbol{x})=H_{t-1}(\boldsymbol{x})} h(\boldsymbol{x})\right] \quad \text { s.t. constraints for } h(\boldsymbol{x})
$$
解得 $h_t(\boldsymbol{x})$ 之后, 再求解如下优化问题可得权重 $\alpha_t$ :
$$
\alpha_t=\underset{\alpha}{\arg \min } \mathbb{E}_{\boldsymbol{x} \sim \mathcal{D}}\left[\operatorname{err}\left(H_{t-1}(\boldsymbol{x})+\alpha h_t(\boldsymbol{x}), f(\boldsymbol{x})\right)\right]
$$
以上就是梯度提升(Gradient Boosting)的理论框架,
即每轮通过梯度(Gradient)下降的方式将 $T$
个弱学习器提升(Boosting)为强学习器。可以看出 AdaBoost 是其特殊形式。
Gradient Boosting 算法的官方版本参见[5]第 5-6 页,其中算法伪代码部分如下

感觉该伪代码针对的还是在任意损失函数
$L\left(y_i, F\left(\boldsymbol{x}_i\right)\right)$
下的回归问题。Algorithm 1 中第 3 步 和第 4 步意思是用
$\beta h\left(\boldsymbol{x}_i, \boldsymbol{a}\right)$ 拟合
$F(\boldsymbol{x})=F_{m-1}(\boldsymbol{x})$ 处负梯度, 但第 4
步表示只求参数 $\boldsymbol{a}_m$, 第 5 步单独求解参数 $\rho_m$,
这里的疑问是为什么第 4 步要用最小二乘法(即 $3.2$ 节的线性回
归)去拟合负梯度(又称伪残差)?
简单理解如下: 第 4 步要解的
$h\left(\boldsymbol{x}_i, \boldsymbol{a}\right)$
相当于梯度下降法中的待解的下降方向 $\boldsymbol{d}$,
在梯度下降法中也已提到不必严格限制 $\|\boldsymbol{d}\|_2=1$,
长度可以由步长 $\alpha$ 调节 (例如前面梯度下降方解释中的例 1 , 若直接取
$d_k=-f^{\prime}\left(x_k\right)=-4$, 则可得 $\alpha_k=0.5$, 仍有
$\left.\Delta x=\alpha_k d_k=-2\right)$, 因此第 4 步直接用
$h\left(\boldsymbol{x}_i, \boldsymbol{a}\right)$ 拟合负梯度,
与梯度下降中约束 $\|\boldsymbol{d}\|_2=1$ 的区别在于末对负梯度
除以其模值进行归一化而已。
那为什么不是直接令 $h\left(\boldsymbol{x}_i, \boldsymbol{a}\right)$
等于负梯度呢? 因为这里实际是求假设函数 $h$, 将数据集 中所有的
$\boldsymbol{x}_i$ 经假设函数 $h$ 映射到对应的伪残差 (负梯度)
$\tilde{y}_i$, 所以只能做线性回归了。
李航《统计学习方法》[2] 第 8.4.3 节中的算法 $8.4$ 并末显式体现参数
$\rho_m$, 这应该是第 2 步 的(c)步完成的, 因为(b)步只是拟合一棵回归树
(相当于 Algorithm 1 第 4 步解得
$h\left(\boldsymbol{x}_i, \boldsymbol{a}\right)$ ), 而 (c)
步才确定每个叶结点的取值 (相当于 Algorithm 1 第 5 步解得 $\rho_m$,
只是每个叶结点均对应一个 $\left.\rho_m\right)$;
而且回归问题中基函数为实值函数,可以将参数 $\rho_m$ 吸收到基函数中。
### 8.6.4 梯度提升树(GBDT)
本部分无实质GBDT内容,仅为梳理GBDT的概念,具体可参考给出的资源链接。
对于GBDT,一般资料是按Gradient
Boosting+CART处理回归问题讲解的,如林轩田《机器学习技法》课程第11讲。
但是,分类问题也可以用回归来处理,例如3.3节的对数几率回归,只需将平方损失换为对率损失(参见式(3.27)和式(6.33),二者关系可参见第3章注解中有关式(3.27)的推导)即可。细节可以搜索林轩田老师的《机器学习基石》和《机器学习技法》两门课程以及配套的视频。
### 8.6.5 XGBoost
本部分无实质XGBoost内容,仅为梳理XGBoost的概念,具体可参考给出的资源链接。
首先,XGBoost 是eXtreme Gradient Boosting的简称。
其次,XGBoost与GBDT的关系,可大致类比为LIBSVM与SVM(或SMO算法)的关系。LIBSVM是SVM算法的一种高效实现软件包,XGBoost是GBDT的一种高效实现;在实现层面,LIBSVM对SMO算法进行了许多改进,XGBoost也对GBDT进行了许多改进;另外,LIBSVM扩展了许多SVM变体,XGBoost也不再仅仅是标准的GBDT,也扩展了一些其它功能。
最后,XGBoost是由陈天奇开发的;XGBoost
论文可以参考[6],XGBoost工具包、文档和源码等均可以在Github上搜索到。
## 参考文献
[1] Jerome Friedman, Trevor Hastie, and Robert Tibshirani. Additive logistic regression: a statistical view
of boosting (with discussion and a rejoinder by the authors). The annals of statistics, 28(2):337–407,
2000.
[2] 李航. 统计学习方法. 清华大学出版社, 2012.
[3] Zhi-Hua Zhou and Ji Feng. Deep forest: Towards an alternative to deep neural networks. In IJCAI,
pages 3553–3559, 2017.
[4] 朱德通孙文瑜, 徐成贤. 最优化方法. 最优化方法, 2010.
[5] Jerome H Friedman. Greedy function approximation: a gradient boosting machine. Annals of statistics,
pages 1189–1232, 2001.
[6] Tianqi Chen and Carlos Guestrin. Xgboost: A scalable tree boosting system. In Proceedings of the
22nd acm sigkdd international conference on knowledge discovery and data mining, pages 785–794,
2016.
================================================
FILE: docs/chapter9/chapter9.md
================================================
> [!IMPORTANT]
> 参与组队学习的同学须知:
>
> 本章学习时间:3天
>
> 本章配套视频教程:https://www.bilibili.com/video/BV1Mh411e7VU?p=14
# 第9章 聚类
到目前为止,前面章节介绍的方法都是针对监督学习(supervised
learning)的,本章介绍的聚类(clustering)和下一章介绍的降维属于无监督学习(unsupervised
learning)。
## 9.1 聚类任务
单词"cluster"既是动词也是名词,作为名词时翻译为"簇",即聚类得到的子集;一般谈到"聚类"这个概念时对应其动名词形式"clustering"。
## 9.2 性能度量
本节给出了聚类性能度量的三种外部指标和两种内部指标,其中式(9.5)
\~式(9.7)是基于式(9.1)
\~式(9.4)导出的三种外部指标,而式(9.12)和式(9.13)是基于式(9.8)
\~式(9.11)导出的两种内部指标。读本节内容需要心里清楚的一点:本节给出的指标仅是该领域的前辈们定义的指标,在个人研究过程中可以根据需要自己定义,说不定就会被业内同行广泛使用。
### 9.2.1 式(9.5)的解释
给定两个集合$A$和$B$,则Jaccard系数定义为如下公式
$$
JC=\frac{|A\bigcap B|}{|A\bigcup B|}=\frac{|A\bigcap B|}{|A|+|B|-|A\bigcap B|}
$$
Jaccard系数可以用来描述两个集合的相似程度。
推论:假设全集$U$共有$n$个元素,且$A\subseteq U$,$B\subseteq U$,则每一个元素的位置共有四种情况:
1. 元素同时在集合$A$和$B$中,这样的元素个数记为$M_{11}$;
2. 元素出现在集合$A$中,但没有出现在集合$B$中,这样的元素个数记为$M_{10}$;
3. 元素没有出现在集合$A$中,但出现在集合$B$中,这样的元素个数记为$M_{01}$;
4. 元素既没有出现在集合$A$中,也没有出现在集合$B$中,这样的元素个数记为$M_{00}$。
根据Jaccard系数的定义,此时的Jaccard系数为如下公式
$$
\mathrm{JC}=\frac{M_{11}}{M_{11}+M_{10}+M_{01}}
$$
由于聚类属于无监督学习,事先并不知道聚类后样本所属类别的类别标记所代表的意义,即便参考模型的类别标记意义是已知的,我们也无法知道聚类后的类别标记与参考模型的类别标记是如何对应的,况且聚类后的类别总数与参考模型的类别总数还可能不一样,因此只用单个样本无法衡量聚类性能的好坏。
由于外部指标的基本思想就是以参考模型的类别划分为参照,因此如果某一个样本对中的两个样本在聚类结果中同属于一个类,在参考模型中也同属于一个类,或者这两个样本在聚类结果中不同属于一个类,在参考模型中也不同属于一个类,那么对于这两个样本来说这是一个好的聚类结果。
总的来说所有样本对中的两个样本共存在四种情况:
1. 样本对中的两个样本在聚类结果中属于同一个类,在参考模型中也属于同一个类;
2. 样本对中的两个样本在聚类结果中属于同一个类,在参考模型中不属于同一个类;
3. 样本对中的两个样本在聚类结果中不属于同一个类,在参考模型中属于同一个类;
4. 样本对中的两个样本在聚类结果中不属于同一个类,在参考模型中也不属于同一个类。
综上所述,即所有样本对存在着书中式(9.1)
\~式(9.4)的四种情况,现在假设集合$A$中存放着两个样本都同属于聚类结果的同一个类的样本对,即$A=SS\bigcup SD$,集合$B$中存放着两个样本都同属于参考模型的同一个类的样本对,即$B=SS\bigcup DS$,那么根据Jaccard系数的定义有:
$$
\mathrm{JC}=\frac{|A\bigcap B|}{|A\bigcup B|}=\frac{|SS|}{|SS\bigcup SD\bigcup DS|}=\frac{a}{a+b+c}
$$
也可直接将书中式(9.1)
\~式(9.4)的四种情况类比推论,即$M_{11}=a$,$M_{10}=b$,$M_{01}=c$,所以
$$
\mathrm{JC}=\frac{M_{11}}{M_{11}+M_{10}+M_{01}}=\frac{a}{a+b+c}
$$
### 9.2.2 式(9.6)的解释
其中$\frac{a}{a+b}$和$\frac{a}{a+c}$为Wallace提出的两个非对称指标,$a$代表两个样本在聚类结果和参考模型中均属于同一类的样本对的个数,$a+b$代表两个样本在聚类结果中属于同一类的样本对的个数,$a+c$代表两个样本在参考模型中属于同一类的样本对的个数,这两个非对称指标均可理解为样本对中的两个样本在聚类结果和参考模型中均属于同一类的概率。由于指标的非对称性,这两个概率值往往不一样,因此Fowlkes和Mallows提出利用几何平均数将这两个非对称指标转化为一个对称指标,即Fowlkes
and Mallows Index, FMI。
### 9.2.3 式(9.7)的解释
Rand Index定义如下:
$$
\mathrm{RI}=\frac{a+d}{a+b+c+d}=\frac{a+d}{m(m-1)/2}=\frac{2(a+d)}{m(m-1)}
$$
由第一个等号可知RI肯定不大于1。之所以 $a+b+c+d=m(m-1) / 2$,
这是因为式(9.1) \~式(9.4)遍历 了所有
$\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)$ 组合对 $(i \neq j)$ :
其中 $i=1$ 时 $j$ 可以取 2 到 $m$ 共 $m-1$ 个值, $i=2$ 时 $j$ 可以取 3
到 $m$ 共 $m-2$ 个值, $\cdots \cdots, i=m-1$ 时 $j$ 仅可以取 $m$ 共 1
个值, 因此 $\left(\boldsymbol{x}_i, \boldsymbol{x}_j\right)$ 组合对的个
数为从 1 到 $m - 1$求和, 根据等差数列求和公式即得 $m(m-1) / 2$ 。
这个指标可以理解为两个样本都属于聚类结果和参考模型中的同一类的样本对的个数与两个样本都分别不属于聚类结果和参考模型中的同一类的样本对的个数的总和在所有样本对中出现的频率,可以简单理解为聚类结果与参考模型的一致性。
### 9.2.4 式(9.8)的解释
簇内距离的定义式:求和号左边是$(x_i, x_j)$组合个数的倒数,求和号右边是这些组合的距离和,所以两者相乘定义为平均距离。
### 9.2.5 式(9.12)的解释
式中, $k$ 表示聚类结果中簇的个数。该式的DBI值越小越好,
因为我们希望"物以类聚", 即同一簇的样本尽可能彼此相似,
$\operatorname{avg}\left(C_i\right)$ 和
$\operatorname{avg}\left(C_j\right)$ 越小越好; 我们希望不同簇的样本尽
可能不同, 即 $d_{\text {cen }}\left(C_i, C_j\right)$ 越大越好。 [勘误:
第 25 次印刷将分母
$d_{\text {cen }}\left(\boldsymbol{\mu}_i, \boldsymbol{\mu}_j\right)$
改为
$d_{\text {cen }}\left(C_i, C_j\right)$]{style="background-color: lightgray"}
## 9.3 距离计算
距离计算在各种算法中都很常见,本节介绍的距离计算方式和"西瓜书"10.6节介绍的马氏距离基本囊括了一般的距离计算方法。另外可能还会碰到"西瓜书"10.5节的测地线距离。
本节有很多概念和名词很常见,比如本节开篇介绍的距离度量的四个基本性质、闵可夫斯基距离、欧氏距离、曼哈顿距离、切比雪夫距离、数值属性、离散属性、有序属性、无序属性、非度量距离等,注意对应的中文和英文。
### 9.3.1 式(9.21)的解释
该式符号较为抽象, 下面计算"西瓜书"第 76 页表4.1西瓜数据集2.0属性根蒂上
"蜷缩" 和 "稍 蜷"两个离散值之间的距离。
此时, $u$ 为 "根蒂", $a$ 为属性根蒂上取值为 "蜷缩", $b$
为属性根蒂上取值为 "稍蜷", 根据边注, 此时样本类别已知 (好瓜/坏瓜), 因此
$k=2$ 。
从"西瓜书"表4.1中可知, 根蒂为蜷缩的样本共有 8 个 (编号 $1\sim 5$、编号
12、编号 $16\sim 17$), 即 $m_{u, a}=8$, 根蒂为稍蜷的样本共有 7 个 (编号
$6 \sim 9$ 和编号 $13 \sim 15$), 即 $m_{u, b}=7$; 设 $i=1$ 对 应好瓜,
$i=2$ 对应坏瓜, 好瓜中根蒂为蜷缩的样本共有 5 个(编号 $1 \sim 5$ ), 即
$m_{u, a, 1}=5$, 好瓜中根蒂为稍蜷的样本共有 3 个 (编号 6 8), 即
$m_{u, b, 1}=3$, 坏瓜中根蒂为蜷缩的样本 共有 3 个 (编号 12 和编号
$16 \sim 17$ ), 即 $m_{u, a, 2}=3$, 坏瓜中根蒂为稍蜷的样本共有 4 个(编
号 9 和编号 $13 \sim 15)$, 即 $m_{u, b, 2}=4$, 因此 VDM 距离为
$$
\begin{aligned}
\operatorname{VDM}_p(a, b) & =\left|\frac{m_{u, a, 1}}{m_{u, a}}-\frac{m_{u, b, 1}}{m_{u, b}}\right|^p+\left|\frac{m_{u, a, 2}}{m_{u, a}}-\frac{m_{u, b, 2}}{m_{u, b}}\right|^p \\
& =\left|\frac{5}{8}-\frac{3}{7}\right|^p+\left|\frac{3}{8}-\frac{4}{7}\right|^p
\end{aligned}
$$
## 9.4 原型聚类
本节介绍了三个原型聚类算法, 其中 $k$ 均值算法最为经典,
几乎成为聚类的代名词, 在 Matlab、scikit-learn等主流的科学计算包中均有
kmeans 函数供调用。学习向量量化也是无监督聚类的一种方式,
在向量检索的引擎,比如facebook faiss中发挥重要的应用。
前两个聚类算法比较易懂, 下面主要推导第三个聚类算法:高斯混合聚类。
### 9.4.1 式(9.28)的解释
该式就是多元高斯分布概率密度函数的定义式:
$$
p(\boldsymbol{x})=\frac{1}{(2 \pi)^{\frac{n}{2}}|\boldsymbol{\Sigma}|^{\frac{1}{2}}} e^{-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\top} \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})}
$$
对应到我们常见的一元高斯分布概率密度函数的定义式:
$$
p(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^2}{2 \sigma^2}}
$$
其中 $\sqrt{2 \pi}=(2 \pi)^{\frac{1}{2}}$ 对应
$(2 \pi)^{\frac{n}{2}}, \sigma$ 对应
$|\boldsymbol{\Sigma}|^{\frac{1}{2}}$, 指数项中分母中的方差 $\sigma^2$
对应协方差矩阵 $\boldsymbol{\Sigma}$,
$\frac{(x-\mu)^2}{\sigma^2} \text { 对应 }(\boldsymbol{x}-\boldsymbol{\mu})^{\top} \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})$。
概率密度函数 $p(\boldsymbol{x})$ 是 $\boldsymbol{x}$
的函数。其中对于某个特定的 $\boldsymbol{x}$ 来说, 函数值
$p(\boldsymbol{x})$ 就是一个数, 若 $\boldsymbol{x}$ 的维度为 2 ,
则可以将函数 $p(\boldsymbol{x})$ 的图像可视化,
是三维空间的一个曲面。类似于一元高 斯分布 $p(x)$ 与横轴 $p(x)=0$
之间的面积等于 1 (即 $\int p(x) \mathrm{d} x=1$ ), $p(\boldsymbol{x})$
曲面与平面 $p(\boldsymbol{x})=0$ 之间的体积等于 1 (即
$\int p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x}=1$ 。
注意, "西瓜书"中后面将 $p(\boldsymbol{x})$ 记为
$p(\boldsymbol{x} \mid \boldsymbol{\mu}, \boldsymbol{\Sigma})$ 。
### 9.4.2 式(9.29)的解释
对于该式表达的高斯混合分布概率密度函数
$p_{\mathcal{M}}(\boldsymbol{x})$, 与式 $(9.28)$ 中的
$p(\boldsymbol{x})$ 不同的是, 它 由 $k$
个不同的多元高斯分布加权而来。具体来说, $p(\boldsymbol{x})$ 仅由参数
$\boldsymbol{\mu}, \boldsymbol{\Sigma}$ 确定, 而
$p_{\mathcal{M}}(\boldsymbol{x})$ 由 $k$ 个 "混合系数" $\alpha_i$ 以及
$k$ 组参数 $\boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i$ 确定。
在"西瓜书"中该式下方(P207 最后一段)中介绍了样本的生成过程, 实际也反应了
"混合系数" $\alpha_i$ 的含义, 即 $\alpha_i$ 为选择第 $i$
个混合成分的概率, 或者反过来说, $\alpha_i$ 为样本属于第 $i$ 个混合
成分的概率。重新描述一下样本生成过程, 根据先验分布
$\alpha_1, \alpha_2, \ldots, \alpha_k$ 选择其中一个高斯 混合成分 (即第
$i$ 个高斯混合成分被选到的概率为 $\alpha_i$ ), 假设选到了第 $i$
个高斯混合成分, 其 参数为 $\boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i$;
然后根据概率密度函数
$p\left(\boldsymbol{x} \mid \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$
(即将式(9.28) 中的 $\boldsymbol{\mu}, \boldsymbol{\Sigma}$ 替换为
$\left.\boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$
进行采样生成样本 $\boldsymbol{x}$ 。两个步骤的区别在于第 1
步选择高斯混合成分时是从 $k$ 个之中选其一 (相当于概率密度函数是离散的),
而第 2 步生成样本时是从 $\boldsymbol{x}$ 定义域中根据
$p\left(\boldsymbol{x} \mid \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right.$
)选 择其中一个样本, 样本 $\boldsymbol{x}$ 被选中的概率即为
$p\left(\boldsymbol{x} \mid \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$
。即第 1 步对应于离散型随机变量, 第 2 步对应于连续型随机变量。
### 9.4.3 式(9.30)的解释
若由上述样本生成方式得到训练集
$D=\left\{\boldsymbol{x}_1, \boldsymbol{x}_2, \ldots, \boldsymbol{x}_m\right\}$,
现在的问题是对于给定样 本 $\boldsymbol{x}_j$,
它是由哪个高斯混合成分生成的呢? 该问题即求后验概率
$p_{\mathcal{M}}\left(z_j \mid \boldsymbol{x}_j\right)$, 其中
$z_j \in\{1,2, \ldots, k\}$ 。下面对式(9.30)进行推导。
对于任意样本, 在不考虑样本本身之前 (即先验), 若瞎猜一下它由第 $i$
个高斯混合成分 生成的概率 $P\left(z_j=i\right)$, 那么肯定按先验概率
$\alpha_1, \alpha_2, \ldots, \alpha_k$ 进行猜测, 即
$P\left(z_j=i\right)=\alpha_i$ 。 若考虑样本本身带来的信息 (即后验),
此时再猜一下它由第 $i$ 个高斯混合成分生成的概率
$p_{\mathcal{M}}\left(z_j=i \mid \boldsymbol{x}_j\right)$,
根据贝叶斯公式, 后验概率
$p_{\mathcal{M}}\left(z_j=i \mid \boldsymbol{x}_j\right)$ 可写为
$$
p_{\mathcal{M}}\left(z_j=i \mid \boldsymbol{x}_j\right)=\frac{P\left(z_j=i\right) \cdot p_{\mathcal{M}}\left(\boldsymbol{x}_j \mid z_j=i\right)}{p_{\mathcal{M}}\left(\boldsymbol{x}_j\right)}
$$
分子第 1 项 $P\left(z_j=i\right)=\alpha_i$; 第 2 项即第 $i$
个高斯混合成分生成样本 $\boldsymbol{x}_j$ 的概率
$p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$,
根据式(9.28)将 $\boldsymbol{x}, \boldsymbol{\mu}, \boldsymbol{\Sigma}$
替换为 $\boldsymbol{x}_j, \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i$
即得; 分母 $p_{\mathcal{M}}\left(\boldsymbol{x}_j\right)$ 即为将
$\boldsymbol{x}_j$ 代入式(9.29)即得。
注意, "西瓜书"中后面将
$p_{\mathcal{M}}\left(z_j=i \mid \boldsymbol{x}_j\right)$ 记为
$\gamma_{j i}$, 其中 $1 \leq j \leq m, 1 \leq i \leq k$。
### 9.4.4 式(9.31)的解释
若将所有 $\gamma_{j i}$ 组成一个矩阵 $\Gamma$, 其中 $\gamma_{j i}$ 为第
$j$ 行第例的元素, 矩阵 $\Gamma$ 大小为 $m \times k$, 即
$$
\Gamma=\left[\begin{array}{cccc}
\gamma_{11} & \gamma_{12} & \cdots & \gamma_{1 k} \\
\gamma_{21} & \gamma_{22} & \cdots & \gamma_{2 k} \\
\vdots & \vdots & \ddots & \vdots \\
\gamma_{m 1} & \gamma_{m 2} & \cdots & \gamma_{m k}
\end{array}\right]_{m \times k}
$$
其中 $m$ 为训练集样本个数, $k$
为高斯混合模型包含的混合模型个数。 可以看出, 式(9.31)就是找出矩阵
$\Gamma$ 第 $j$ 行的所有 $k$ 个元素中最大的那个元素的位置。
### 9.4.5 式(9.32)的解释
对于训练集
$D=\left\{\boldsymbol{x}_1, \boldsymbol{x}_2, \ldots, \boldsymbol{x}_m\right\}$,
现在要把 $m$ 个样本划分为 $k$ 个簇, 即认为训练集 $D$ 的样本是根据 $k$
个不同的多元高斯分布加权而得的高斯混合模型生成的。
现在的问题是, $k$ 个不同的多元高斯分布的参数
$\left\{\left(\boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right) \mid 1 \leqslant i \leqslant k\right\}$
及它们各自的权 重 $\alpha_1, \alpha_2, \ldots, \alpha_k$ 不知道, $m$
个样本归到底属于哪个簇也不知道, 该怎么办呢?
其实这跟 $k$ 均值算法类似, 开始时既不知道 $k$ 个簇的均值向量, 也不知道
$m$ 个样本归到 底属于哪个簇, 最后我们采用了贪心策略,
通过迭代优化来近似求解式(9.24)。
本节的高斯混合聚类求解方法与 $k$ 均值算法, 只是具体问题具体解法不同,
从整体上来 说, 它们都应用了 $7.6$ 节的期望最大化算法(EM 算法)。
具体来说, 现假设已知式(9.30)的后验概率, 此时即可通过式(9.31)知道 $m$
个样本归到底 属于哪个簇, 再来求解参数
$\left\{\left(\alpha_i, \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right) \mid 1 \leqslant i \leqslant k\right\}$,
怎么求解呢? 对于每个样本 $\boldsymbol{x}_j$ 来说, 它出现的概率是
$p_{\mathcal{M}}\left(\boldsymbol{x}_j\right)$, 既然现在训练集 $D$
中确实出现了 $\boldsymbol{x}_j$, 我们当然希望待求解的参数
$\left\{\left(\alpha_i, \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right) \mid 1 \leqslant i \leqslant k\right\}$
能够使这种可能性 $p_{\mathcal{M}}\left(\boldsymbol{x}_j\right)$ 最大;
又因为我们假设 $m$ 个样本是独 立的, 因此它们恰好一起出现的概率就是
$\prod_{j=1}^m p_{\mathcal{M}}\left(\boldsymbol{x}_j\right)$,
即所谓的似然函数; 一般来说, 连乘容易造成下溢 ( $m$ 个大于 0 小于 1
的数相乘, 当 $m$ 较大时, 乘积会非常非常小, 以致
于计算机无法表达这么小的数, 产生下溢), 所以常用对数似然替代,
即式(9.32)。
### 9.4.6 式(9.33)的推导
根据公式(9.28)可知:
$$
p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)=\frac{1}{(2 \pi)^{\frac{n}{2}}\left|\boldsymbol{\Sigma}_{i}\right|^{\frac{1}{2}}} \exp \left(-\frac{1}{2}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{T} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\right)
$$
又根据公式(9.32),由
$$
\frac{\partial L L(D)}{\partial \boldsymbol{\mu}_{i}}=\frac{\partial L L(D)}{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \cdot \frac{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\partial \boldsymbol{\mu}_{i}}=0
$$
其中:
$$
\begin{aligned}
\frac{\partial L L(D)}{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \mathbf{\Sigma}_{i}\right)} &=\frac{\partial \sum_{j=1}^{m} \ln \left(\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{l}, \boldsymbol{\Sigma}_{l}\right)\right)}{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \\
&=\sum_{j=1}^{m} \frac{\partial \ln \left(\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{l}, \boldsymbol{\Sigma}_{l}\right)\right)}{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)} \\
&=\sum_{j=1}^{m} \frac{\alpha_{i}}{\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{l}, \boldsymbol{\Sigma}_{l}\right)}
\end{aligned}
$$
$$
\begin{aligned}
\frac{\partial p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\partial \boldsymbol{\mu}_{i}} &=\frac{\partial \frac{1}{(2 \pi)^{\frac{n}{2}}\left|\Sigma_{i}\right|^{\frac{1}{2}}} \exp\left({-\frac{1}{2}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top}\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)}\right)}{\partial \boldsymbol{\mu}_{i}} \\
&=\frac{1}{(2 \pi)^{\frac{n}{2}}\left|\boldsymbol{\Sigma}_{i}\right|^{\frac{1}{2}}} \cdot \frac{\partial \exp\left({-\frac{1}{2}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)}\right)}{\partial \boldsymbol{\mu}_{i}}\\
&=\frac{1}{(2 \pi)^{\frac{n}{2}}\left|\boldsymbol{\Sigma}_{i}\right|^{\frac{1}{2}}}\cdot \exp\left({-\frac{1}{2}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)}\right) \cdot-\frac{1}{2} \frac{\partial\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)}{\partial \boldsymbol{\mu}_{i}}\\
&=\frac{1}{(2 \pi)^{\frac{n}{2}}\left|\boldsymbol{\Sigma}_{i}\right|^{\frac{1}{2}}}\cdot \exp\left({-\frac{1}{2}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)}\right) \cdot\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\\
&=p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)
\end{aligned}
$$
其中,由矩阵求导的法则$\frac{\partial \mathbf{a}^{T} \mathbf{X} \mathbf{a}}{\partial \mathbf{a}}=2\mathbf{X} \mathbf{a}$可得:
$$
\begin{aligned}
-\frac{1}{2} \frac{\partial\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\top} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)}{\partial \boldsymbol{\mu}_{i}} &=-\frac{1}{2} \cdot 2 \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{\mu}_{i}-\boldsymbol{x}_{j}\right) \\
&=\boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)
\end{aligned}
$$
因此有:
$$
\frac{\partial L L(D)}{\partial \boldsymbol{\mu}_{i}}=\sum_{j=1}^{m} \frac{\alpha_{i}}{\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{l}, \mathbf{\Sigma}_{l}\right)} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \cdot \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)=0
$$
### 9.4.7 式(9.34)的推导
由式(9.30)
$$
\gamma_{j i}=p_{\mathcal{M}}\left(z_{j}=i | \mathbf{X}_{j}\right)=\frac{\alpha_{i} \cdot p\left(\mathbf{X}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\mathbf{X}_{j} | \boldsymbol{\mu}_{l}, \boldsymbol{\Sigma}_{l}\right)}
$$
带入式(9.33)
$$
\sum_{j=1}^{m} \gamma_{j i}\left(\mathbf{X}_{j}-\boldsymbol{\mu}_{i}\right)=0
$$
移项, 得
$$
\sum_{j=1}^m \gamma_{j i} \boldsymbol{x}_j=\sum_{j=1}^m \gamma_{j i} \boldsymbol{\mu}_i=\boldsymbol{\mu}_i \cdot \sum_{j=1}^m \gamma_{j i}
$$
第二个等号是因为 $\mu_i$ 对于求和变量 $j$ 来说是常量,
因此可以提到求和号外面; 因此
$$
\boldsymbol{\mu}_i=\frac{\sum_{j=1}^m \gamma_{j i} \boldsymbol{x}_j}{\sum_{j=1}^m \gamma_{j i}}
$$
### 9.4.8 式(9.35)的推导
根据公式(9.28)可知:
$$
p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})=\cfrac{1}{(2\pi)^\frac{n}{2}\left| \boldsymbol\Sigma_{i}\right |^\frac{1}{2}}\exp\left({-\frac{1}{2}(\boldsymbol x_{j}-\boldsymbol\mu_{i})^T\boldsymbol\Sigma_{i}^{-1}(\boldsymbol x_{j}-\boldsymbol\mu_{i})}\right)
$$
又根据公式(9.32),由
$$
\cfrac{\partial LL(D)}{\partial \boldsymbol\Sigma_{i}}=0
$$
可得
$$
\begin{aligned}
\cfrac {\partial LL(D)}{\partial\boldsymbol\Sigma_{i}}&=\cfrac {\partial}{\partial \boldsymbol\Sigma_{i}}\left[\sum_{j=1}^m\ln\Bigg(\sum_{i=1}^k \alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\Bigg)\right] \\
&=\sum_{j=1}^m\frac{\partial}{\partial\boldsymbol\Sigma_{i}}\left[\ln\Bigg(\sum_{i=1}^k \alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\Bigg)\right] \\
&=\sum_{j=1}^m\cfrac{\alpha_{i}\cdot \cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left(p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\right)}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})} \\
\end{aligned}
$$
其中
$$
\begin{aligned}
\cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left(p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\right)&=\cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left[\cfrac{1}{(2\pi)^\frac{n}{2}\left| \boldsymbol\Sigma_{i}\right |^\frac{1}{2}}\exp\left({-\frac{1}{2}(\boldsymbol x_{j}-\boldsymbol\mu_{i})^T\boldsymbol\Sigma_{i}^{-1}(\boldsymbol x_{j}-\boldsymbol\mu_{i})}\right)\right] \\
&=\cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left\{\exp\left[\ln\left(\cfrac{1}{(2\pi)^\frac{n}{2}\left| \boldsymbol\Sigma_{i}\right |^\frac{1}{2}}\exp\left({-\frac{1}{2}(\boldsymbol x_{j}-\boldsymbol\mu_{i})^T\boldsymbol\Sigma_{i}^{-1}(\boldsymbol x_{j}-\boldsymbol\mu_{i})}\right)\right)\right]\right\} \\
&=p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\cdot\cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left[\ln\left(\cfrac{1}{(2\pi)^\frac{n}{2}\left| \boldsymbol\Sigma_{i}\right |^\frac{1}{2}}\exp\left({-\frac{1}{2}(\boldsymbol x_{j}-\boldsymbol\mu_{i})^T\boldsymbol\Sigma_{i}^{-1}(\boldsymbol x_{j}-\boldsymbol\mu_{i})}\right)\right)\right]\\
&=p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\cdot\cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left[\ln\cfrac{1}{(2\pi)^{\frac{n}{2}}}-\cfrac{1}{2}\ln{|\boldsymbol{\Sigma}_i|}-\frac{1}{2}(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}(\boldsymbol x_j-\boldsymbol\mu_i)\right]\\
&=p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\cdot\left[-\cfrac{1}{2}\cfrac{\partial\left(\ln{|\boldsymbol{\Sigma}_i|}\right) }{\partial \boldsymbol{\Sigma}_i}-\cfrac{1}{2}\cfrac{\partial \left[(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}(\boldsymbol x_j-\boldsymbol\mu_i)\right]}{\partial \boldsymbol{\Sigma}_i}\right]\\
\end{aligned}
$$
由矩阵微分公式$\cfrac{\partial |\mathbf{X}|}{\partial \mathbf{X}}=|\mathbf{X}|\cdot(\mathbf{X}^{-1})^{T},\cfrac{\partial \boldsymbol{a}^{T} \mathbf{X}^{-1} \mathbf{B}}{\partial \mathbf{X}}=-\mathbf{X}^{-T} \boldsymbol{a b}^{T} \mathbf{X}^{-T}$可得
$$
\begin{aligned}
\cfrac{\partial}{\partial\boldsymbol\Sigma_{i}}\left(p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\right)&=p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})\cdot\left[-\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}+\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}\right]\\
\end{aligned}
$$
将此式代回$\cfrac {\partial LL(D)}{\partial\boldsymbol\Sigma_{i}}$中可得
$$
\cfrac {\partial LL(D)}{\partial\boldsymbol\Sigma_{i}}=\sum_{j=1}^m\cfrac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}\cdot\left[-\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}+\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}\right]
$$
又由公式(9.30)可知$\cfrac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}=\gamma_{ji}$,所以上式可进一步化简为
$$
\cfrac {\partial LL(D)}{\partial\boldsymbol\Sigma_{i}}=\sum_{j=1}^m\gamma_{ji}\cdot\left[-\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}+\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}\right]
$$
令上式等于0可得
$$
\cfrac {\partial LL(D)}{\partial\boldsymbol\Sigma_{i}}=\sum_{j=1}^m\gamma_{ji}\cdot\left[-\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}+\cfrac{1}{2}\boldsymbol{\Sigma}_i^{-1}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}\right]=0
$$
移项推导有:
$$
\begin{aligned}
\sum_{j=1}^m\gamma_{ji}\cdot\left[-\boldsymbol{I}+(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}\right]&=0\\
\sum_{j=1}^m\gamma_{ji}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T\boldsymbol{\Sigma}_i^{-1}&=\sum_{j=1}^m\gamma_{ji}\boldsymbol{I}\\
\sum_{j=1}^m\gamma_{ji}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T&=\sum_{j=1}^m\gamma_{ji}\boldsymbol{\Sigma}_i\\
\boldsymbol{\Sigma}_i^{-1}\cdot\sum_{j=1}^m\gamma_{ji}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T&=\sum_{j=1}^m\gamma_{ji}\\
\boldsymbol{\Sigma}_i&=\cfrac{\sum_{j=1}^m\gamma_{ji}(\boldsymbol x_j-\boldsymbol\mu_i)(\boldsymbol x_j-\boldsymbol\mu_i)^T}{\sum_{j=1}^m\gamma_{ji}}
\end{aligned}
$$
此即为公式(9.35)。
### 9.4.9 式(9.36)的解释
该式即$LL(D)$添加了等式约束$\sum_{i=1}^k{\alpha_i=1}$的拉格朗日形式。
### 9.4.10 式(9.37)的推导
重写式(9.32)如下:
$$
L L(D)=\sum_{j=1}^m \ln \left(\sum_{l=1}^k \alpha_l \cdot p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_l, \boldsymbol{\Sigma}_l\right)\right)
$$
这里将第 2 个求和号的求和变量由式(9.32)的 $i$ 改为了 $l$, 这是为了避免对
$\alpha_i$ 求导时与变量 $i$ 相 混淆。将式(9.36)中的两项分别对 $\alpha_i$
求导, 得
$$
\begin{aligned}
\frac{\partial L L(D)}{\partial \alpha_i} & =\frac{\partial \sum_{j=1}^m \ln \left(\sum_{l=1}^k \alpha_l \cdot p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_l, \boldsymbol{\Sigma}_l\right)\right)}{\partial \alpha_i} \\
& =\sum_{j=1}^m \frac{1}{\sum_{l=1}^k \alpha_l \cdot p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_l, \boldsymbol{\Sigma}_l\right)} \cdot \frac{\partial \sum_{l=1}^k \alpha_l \cdot p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_l, \boldsymbol{\Sigma}_l\right)}{\partial \alpha_i} \\
& =\sum_{j=1}^m \frac{1}{\sum_{l=1}^k \alpha_l \cdot p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_l, \boldsymbol{\Sigma}_l\right)} \cdot p\left(\boldsymbol{x}_j \mid \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)
\end{aligned}
$$
$$
\frac{\partial\left(\sum_{l=1}^k \alpha_l-1\right)}{\partial \alpha_i}=\frac{\partial\left(\alpha_1+\alpha_2+\ldots+\alpha_i+\ldots+\alpha_k-1\right)}{\partial \alpha_i}=1
$$
综合两项求导结果, 并令导数等于零即得式(9.37)。
### 9.4.11 式(9.38)的推导
注意, 在"西瓜书"第 14 次印刷中式(9.38)上方的一行话进行了勘误:
"两边同乘以 $\alpha_i$, 对 所有混合成分求和可知 $\lambda=-m$ ", 将原来的
"样本" 修改为 "混合成分"。
对公式(9.37)两边同时乘以$\alpha_{i}$可得
$$
\begin{aligned}
\sum_{j=1}^m\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}+\lambda\alpha_{i}=0\\
\sum_{j=1}^m\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}=-\lambda\alpha_{i}
\end{aligned}
$$
两边对所有混合成分求和可得
$$
\begin{aligned}\sum_{i=1}^k\sum_{j=1}^m\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}&=-\lambda\sum_{i=1}^k\alpha_{i}\\
\sum_{j=1}^m\sum_{i=1}^k\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}&=-\lambda\sum_{i=1}^k\alpha_{i}
\end{aligned}
$$
因为
$$
\sum_{i=1}^k\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\mathbf\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\mathbf\Sigma_{l})}=\frac{\sum_{i=1}^k\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\mathbf\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\mathbf\Sigma_{l})}=1
$$
且 $\sum_{i=1}^k\alpha_{i}=1$,所以有$m=-\lambda$,因此
$$
\sum_{j=1}^m\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}=-\lambda\alpha_{i}=m\alpha_{i}
$$
因此
$$
\alpha_{i}=\cfrac{1}{m}\sum_{j=1}^m\frac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}
$$
又由公式(9.30)可知$\cfrac{\alpha_{i}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{i},\boldsymbol\Sigma_{i})}{\sum_{l=1}^k\alpha_{l}\cdot p(\boldsymbol x_{j}|\boldsymbol\mu_{l},\boldsymbol\Sigma_{l})}=\gamma_{ji}$,所以上式可进一步化简为
$$
\alpha_{i}=\cfrac{1}{m}\sum_{j=1}^m\gamma_{ji}
$$
此即为公式(9.38)。
### 9.4.12 图9.6的解释
第 1 行初始化参数, 本页接下来的例子是按如下策略初始化的: 混合系数
$\alpha_i=\frac{1}{k}$; 任 选训练集中的 $k$ 个样本分别初始化 $k$
个均值向量 $\boldsymbol{\mu}_i(1 \leqslant i \leqslant k)$;
使用对角元素为 $0.1$ 的对角阵 初始化 $k$ 个协方差矩阵
$\boldsymbol{\Sigma}_i(1 \leqslant i \leqslant k)$ 。
第 3\~5 行根据式(9.30)计算共 $m \times k$ 个 $\gamma_{j i}$ 。
第 6\~10 行分别根据式(9.34)、式(9.35)、式(9.38)使用刚刚计算得到的
$\gamma_{j i}$ 更新均值向量、 协方差矩阵、混合系数; 注意第 8
行计算协方差矩阵时使用的是第 7 行计算得到的均值向量, 这并没错,
因为协方差矩阵 $\boldsymbol{\Sigma}_i^{\prime}$ 与均值向量
$\mu_i^{\prime}$ 是对应的, 而非 $\boldsymbol{\mu}_i$; 第 7 行的
$\mu_i^{\prime}$ 在第 8 行使用 之后会在下一轮迭代中第 4 行计算
$\gamma_{j i}$ 再次使用。
整体来说, 第 2 \~12 行就是一个 EM 算法的具体使用例子, 学习完 $7.6$ 节 EM
算法可能 根本无法理解其思想。此例中有两组变量, 分别是 $\gamma_{j i}$ 和
$\left(\alpha_i, \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$,
它们之间相互影响, 但都是末知的, 因此 $\mathrm{EM}$ 算法就有了用武之地:
初始化其中一组变量
$\left(\alpha_i, \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$,
然后计 算 $\gamma_{j i}$; 再根据 $\gamma_{j i}$
根据最大似然推导出的公式更新
$\left(\alpha_i, \boldsymbol{\mu}_i, \boldsymbol{\Sigma}_i\right)$,
反复迭代, 直到满足停止条件。
## 9.5 密度聚类
本节介绍的DBSCAN算法并不难懂,只是本节在最后举例时并没有说清楚密度聚类算法与前面原型聚类算法的区别,当然这也可能是作者有意为之,因为在"西瓜书"本章习题9.7题就提到了"凸聚类"的概念。具体来说,前面介绍的聚类算法只能产生"凸聚类",而本节介绍的DBSCAN则能产生"非凸聚类",其本质原因,个人感觉在于聚类时使用的距离度量,均值算法使用欧氏距离,而DBSCAN使用类似于测地线距离(只是类似,并不相同,测地线距离参见"西瓜书"10.5节),因此可以产生如图9-1所示的聚类结果(中间为典型的非凸聚类)。

注意,虽然左图为 "凸聚类"(四个簇都有一个凸包),但
均值算法却无法产生此结果,因为最大的簇太大了,其外围样本与另三个小簇的中心之间的距离更近,因此中间最大的簇肯定会被
均值算法划分到不同的簇之中,这显然不是我们希望的结果。
密度聚类算法可以产生任意形状的簇,不需要事先指定聚类个数k,并且对噪声鲁棒。
### 9.5.1 密度直达、密度可达与密度相连
$\boldsymbol{x}_j$ 由 $\boldsymbol{x}_i$ 密度直达, 该概念最易理解,
但要特别注意: 密度直达除了要求 $\boldsymbol{x}_j$ 位于
$\boldsymbol{x}_i$ 的 $\epsilon-$ 领域的条件之外, 还额外要求
$\boldsymbol{x}_i$ 是核心对象; $\epsilon$-领域满足对称性, 但
$\boldsymbol{x}_j$ 不一定为核心对象, 因此密度直达关系通常不满足对称性。
$\boldsymbol{x}_j$ 由 $\boldsymbol{x}_i$
密度可达,该概念基于密度直达,因此样本序列
$\boldsymbol{p}_1, \boldsymbol{p}_2, \ldots, \boldsymbol{p}_n$ 中除了
$\boldsymbol{p}_n=\boldsymbol{x}_j$ 之外, 其余样本均为核心对象 (当然包括
$\boldsymbol{p}_1=\boldsymbol{x}_i$ ), 所以同理, 一般不满足对称性。
以上两个概念中, 若 $\boldsymbol{x}_j$ 为核心对象, 已知
$\boldsymbol{x}_j$ 由 $\boldsymbol{x}_i$ 密度直达/可达, 则
$\boldsymbol{x}_i$ 由 $\boldsymbol{x}_j$ 密度直达/ 可达, 即满足对称性
(也就是说, 核心对象之间的密度直达/可达满足对称性)。
$\boldsymbol{x}_i$ 与 $\boldsymbol{x}_j$ 密度相连, 不要求
$\boldsymbol{x}_i$ 与 $\boldsymbol{x}_j$ 为核心对象, 所以满足对称性。
### 9.5.2 图9.9的解释
在第 $1\sim 7$ 行中, 算法先根据给定的邻域参数 $(\epsilon, M i n P t s)$
找出所有核心对象, 并存于集 合 $\Omega$ 之中; 第 4 行的 if
判断语句即在判别 $\boldsymbol{x}_j$ 是否为核心对象。
在第 $10\sim 24$ 行中, 以任一核心对象为出发点 (由第 12 行实现),
找出其密度可达的样本 生成聚类簇 (由第 $14\sim 21$ 行实现),
直到所有核心对象被访问过为止(由第 10 行和第 23 行 配合实现)。具体来说:
其中第 $14\sim 21$ 行 while 循环中的 if 判断语句(第 16
行)在第一次循环时一定为真(因 为 $Q$ 在第 12 行初始化为某核心对象),
此时会往队列 $Q$ 中加入 $\boldsymbol{q}$ 密度直达的样本 (已知
$\boldsymbol{q}$ 为核 心对象, $\boldsymbol{q}$ 的
$\epsilon$-领域中的样本即为 $\boldsymbol{q}$ 密度直达的),
队列遵循先进先出规则, 接下来的循环将 依次判别 $\boldsymbol{q}$ 的
$\epsilon$-领域中的样本是否为核心对象 (第 16 行), 若为核心对象,
则将密度直达的 样本 ( $\epsilon$-领域中的样本) 加入
Q。根据密度可达的概念, while 循环中的 if 判断语句(第 16
行)找出的核心对象之间一定是相互密度可达的, 非核心对象一定是密度相连的。
第 $14\sim 21$ 行 while 循环每跳出一次,
即生成一个聚类簇。每次生成聚类笶之前, 会记录 当前末访问过样本集合 (第 11
行 $\Gamma_{\mathrm{old}}=\Gamma$ ),
然后当前要生成的聚类簇每决定录取一个样 本后会将该样本从厂去除 (第 13
行和第 19 行), 因此第 14\~21 行 while 循环每跳出一次后,
$\Gamma_{\text {old }}$ 与 $\Gamma$ 差别即为聚类簇的样本成员 (第 22 行),
并将该聚类簇中的核心对象从第 $1 \sim 7$ 行生 成的核心对象集合 $\Omega$
中去除。
符号 " $\backslash$" 为集合求差, 例如集合
$A=\{a, b, c, d, e, f\}, B=\{a, d, f, g, h\}$, 则 $A \backslash B$ 为
$A \backslash B=\{b, c, e\}$, 即将 $A, B$ 所有相同元素从 $A$ 中去除。
## 9.6 层次聚类
本节主要介绍了层次聚类的代表算法 AGNES。
式(9.41) (9.43)介绍了三种距离计算方式,
这与"西瓜书"9.3节中介绍的距离不同之处在于, 此 三种距离计算面向集合之间,
而9.3节的距离则面向两点之间。正如"西瓜书"第 215 页左上边注所示,
集合间的距离计算常采用豪斯多夫距离(Hausdorff distance)。
算法 AGNES 很简单,
就是不断重复执行合并距离最近的两个聚类簇。"西瓜书"图9.11为具体实 现方法,
核心就是在合并两个聚类簇后更新距离矩阵(第 $11\sim 23$ 行),
之所以看起来复杂, 是因为该实现只更新原先距离矩阵中发生变化的行和列,
因此需要为此做一些调整。
在第 $1\sim 9$ 行,
算法先对仅含一个样本的初始聚类簇和相应的距离矩阵进行初始化。注意,
距离矩阵中, 第 $i$ 行为聚类簇 $C_i$ 到各聚类簇的距离, 第 $i$
列为各聚类簇到聚类簇 $C_i$ 的距离, 由 第 7 行可知, 距离矩阵为对称矩阵,
即使用的集合间的距离计算方法满足对称性。
第 $18\sim 21$ 行更新距离矩阵 $M$ 的第 $i^*$ 行与第 $i^*$ 列,
因为此时的聚类簇 $C_{i^*}$ 已经合并了 $C_{j^*}$,
因此与其余聚类簇之间的距离都发生了变化, 需要更新。
================================================
FILE: docs/errata.md
================================================
# 纸质版勘误表
如何使用勘误?首先找到你的书的印次,接下来对着下表索引印次,该印次及其之后印次的勘误都是你书中所要注意的勘误,该印次前的所有勘误在当前印次均已修正。
## 第2版第6次印刷(2024.01)
- 127页,“式(8.7)的推导”中的最后一句话“两边同除$\frac{1}{2}$”改为“两边同乘$\frac{1}{2}$”(感谢@Acumen7)
- 181页,“式(10.14)的推导”中将式(10.14)化简成式(10.15)目标函数形式时,第⑥步中的$-\boldsymbol{x}_i^{\top}\mathbf{W}^{\top} \mathbf{x}_i$改为$-\boldsymbol{x}_i^{\top} \mathbf{W}\mathbf{W}^{\top} \mathbf{x}_i$(感谢@huishengye)
- 195页,“式(10.31)的目标函数形式”中的$\operatorname{tr}\left(\mathbf{Z}\mathbf{M}\mathbf{Z}\mathbf{Z}^{\top}\right)$改为$\operatorname{tr}\left(\mathbf{Z}\mathbf{M}\mathbf{Z}^{\top}\right)$(感谢@CoderKingXY)
- 86页,“样本内积$\boldsymbol{x}_i^{\mathrm{T}\boldsymbol{x}_j}$”改为“样本内积$\boldsymbol{x}_i^{\mathrm{T}}\boldsymbol{x}_j$”(感谢南瓜书读者交流群13的@.)
- 97页、98页,将其中的“$\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b}^{\phi} \boldsymbol{w}$”改为“$\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w}^{\phi} \boldsymbol{w}$”(感谢南瓜书读者交流群6的@Sodas)
## 第2版第5次印刷(2023.11)
- 98页,“6.6.5 核对率回归”中的第2个公式,其中的$\boldsymbol{x}_{i}$改为$\boldsymbol{z}_{i}$(感谢南瓜书读者交流群11的@[太阳]🌈)
- 13页,“2.3.6 式(2.12)~式(2.17)的解释”中的最后一段,将“式(2.17)的$\text{macro-}F1$是将$\text{macro-}P$和$\text{macro-}R$代入式(2.10)所得”改为“式(2.17)的$\text{micro-}F1$是将$\text{micro-}P$和$\text{micro-}R$代入式(2.10)所得”
- 46页,“3.4.1 式(3.32)的推导”中的第一段第一行,将“左下角”改为“右下角”
- 52页,“3.6 类别不平衡问题”的开头第一句话,将“对于类别平衡问题”改为“对于类别不平衡问题”
## 第2版第4次印刷(2023.10)
- 172页,$\|\mathbf{A}\|_F=\sum_{i=1}^m \sum_{j=1}^n\left|a_{i j}\right|^2$ 改为 $\|\mathbf{A}\|_F^{2}=\sum_{i=1}^m \sum_{j=1}^n\left|a_{i j}\right|^2$ (感谢@吴津宇)
## 第1版第12次印刷(2022.06)
- 式(3.9)中$\hat{\boldsymbol{x}}_i=(x_{1};...;x_{d};1)\in\mathbb{R}^{(d+1)\times 1}$改为$\hat{\boldsymbol{x}}_i=(x_{i1};...;x_{id};1)\in\mathbb{R}^{(d+1)\times 1}$(感谢@Link2Truth)
## 第1版第10次印刷(2021.12)
- 式(10.2)解释的最后一行,最后一个式子因为$1 + P^2\left(c^{*} | \boldsymbol{x}\right)\leqslant 2$改为$1 + P\left(c^{*} | \boldsymbol{x}\right)\leqslant 2$
## 第1版第7次印刷(2021.10)
- 92页,式(10.28),“$n$行1列的单位向量”改为“$n$行1列的元素值全为1的向量”
- 95页,式(11.6),“...降低因$w$的分量过太而导致...”改为“...降低因$w$的分量过大而导致...”(感谢@李伟豪work hard)
- 式(11.18),求和可得下面的公式中第一行关于$\boldsymbol{b}$的列向量有笔误,最新表述参见:https://datawhalechina.github.io/pumpkin-book/#/chapter11/chapter11?id=_1118 (感谢@李伟豪work hard)
## 第1版第6次印刷(2021.07)
- 17页,式(3.37),最后解析$\lambda$的取值那部分不太严谨,最新表述参见:https://datawhalechina.github.io/pumpkin-book/#/chapter3/chapter3?id=_337
## 第1版第4次印刷(2021.05)
- 17页,式(3.37),解析的倒数第二行“将其代入$\mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{b} \boldsymbol{w}$”改为“将其代入$\mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w}$”
- 80页,式(9.34),$\mu$ 都改为粗体$\boldsymbol{\mu}$,表示向量 (感谢交流3群@橙子)
- 117页倒数第二行,式(12.42),解析中“$\Phi(Z)$ 表示经验误差和泛化误差的上确界”改为“$\Phi(Z)$表示泛化误差和经验误差的差的上确界” (感谢交流3群@橙子)
- 145页,式(14.36),最后”即式(14.36)右侧的积分部分“上面的公式第二行$\Sigma_{z\ne j}$改为$\Sigma_{k\ne j}$ (感谢交流3群@橙子)
================================================
FILE: docs/index.md
================================================
---
# https://vitepress.dev/reference/default-theme-home-page
layout: home
hero:
name: "南瓜书"
text: "pumpkin-book"
tagline: 《机器学习》(西瓜书)公式详解
image:
src: /pumpkin-logo.png
alt: 南瓜书(pumpkin-book)
actions:
- theme: brand
text: 开始学习
link: /chapter1/chapter1
# features:
# - title: 💥 前沿
# details: 紧跟技术发展输出最前沿的知识
# - title: 🎁 免费
# details: 无任何形式的收费
# - title: 🌐 开源
# details: 教程和代码源文件全部托管在GitHub
---
编委会
================================================
FILE: package.json
================================================
{
"devDependencies": {
"markdown-it-mathjax3": "^4.3.2",
"vitepress": "^2.0.0-alpha.15"
},
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
},
"dependencies": {
"vitepress-plugin-image-viewer": "^1.1.6"
}
}