机器学习课程讲义·第二章,线性模型系列

上期回顾

上期机器学习课程讲义·第一章,绪论,我们一起认识了什么是机器学习,机器学习的研究范式和模型选择的基本方法;此外,我还带领大家从零开始推导了高斯分布,并从最基本的线性回归模型开始一步步推广到软间隔的支持向量机模型,以此见识了机器学习中的数学之美和算法之美;其次,我们还了解了机器学习的两种学派,即频率学派和贝叶斯学派,并分别讲解了频率学派的最大似然估计(MLE)和贝叶斯学派的最大后验估计(MAP)方法;上一章最后我们讨论了机器学习发展历史和应用现状。

本期导读

本章开始,我们一起学习机器学习中最基本的线性模型系列。在本章的学习中,我会首先带大家认识基础的一般回归模型,并使用线性组合、空间、概率三种不同的视角解读一般回归模型。之后,根据第一章提到的奥卡姆剃刀定律准则,我将讲解一种机器学习中缓解过拟合非常重要的技术-正则化技术,并以此引出LASSO回归和Ridge回归模型。此外,我们还将学习两种经典的线性分类模型:逻辑回归模型和线性判别分析。

符号形式

我们首先约定符号形式,如无特别说明,以后所有章节均采用同样的符号记法。

假定 N N N个数据集合,记为 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } \mathcal{D}=\{(x_1, y_1),(x_2, y_2),\cdots,(x_N, y_N)\} D={(x1,y1),(x2,y2),,(xN,yN)},其中输入空间 x i ∈ R P x_i \in R^P xiRP,输出空间 y i ∈ R y_i \in R yiR;输入矩阵记为 X = ( x 1 , x 2 , ⋯   , x N ) T X=(x_1,x_2,\cdots,x_N)^T X=(x1,x2,,xN)T,输出矩阵记为 Y = ( y 1 , y 2 , ⋯   , y N ) T Y=(y_1,y_2,\cdots,y_N)^T Y=(y1,y2,,yN)T,即 X ∈ R N × P X \in R^{N \times P} XRN×P Y ∈ R N × 1 Y \in R^{N \times 1} YRN×1

一般回归模型

线性组合视角

模型形式

首先从线性组合的角度认识一般回归模型。设参数向量 w = ( w 1 , w 2 , ⋯   , w P ) T w=(w_1,w_2,\cdots,w_P)^T w=(w1,w2,,wP)T,即 w ∈ R P × 1 w\in R^{P\times1} wRP×1,一般回归模型约定模型的输出: y = f ( x ) = w T x + b (2-1) y=f(x)=w^Tx+b\tag{2-1} y=f(x)=wTx+b(2-1)即, y y y x x x的线性组合。

为了简化记法,我们通常将参数 b b b写进参数向量 w w w中,此时 w = ( w 1 , w 2 , ⋯   , w P , b ) T w=(w_1,w_2,\cdots,w_P,b)^T w=(w1,w2,,wP,b)T,输入空间变为 X = ( x 1 , x 2 , ⋯   , x N , 1 ) T X=(x_1,x_2,\cdots,x_N,1)^T X=(x1,x2,,xN,1)T,模型形式变为 y = f ( x ) = w T x (2-2) y=f(x)=w^Tx\tag{2-2} y=f(x)=wTx(2-2)(注意,此处的 w 和 x w和x wx跟公式2-1中不同,方便起见后续出现 w 和 x w和x wx均默认带参数分量 b 和 1 b和1 b1

一般回归模型又称(一般)线性回归模型,值得一提的是,这里的线性指的是参数 w w w是线性的,而不要求 x x x是线性,如对于 X = ( x 1 , x 1 2 , ⋯   , x 1 P , 1 ) X=(x_1,x_1^2,\cdots,x_1^P,1) X=(x1,x12,,x1P,1),只要 w w w为线性, f ( x ) = w T x f(x)=w^Tx f(x)=wTx依然是一般线性回归模型。

损失函数

一般回归模型是典型的回归问题,通常采用平方损失函数。即: L ( w ) = ∑ i = 1 N ∣ ∣ w T x i − y i ∣ ∣ 2 2 (2-3) L(w)=\sum\limits_{i=1}^N||w^Tx_i-y_i||^2_2\tag{2-3} L(w)=i=1N∣∣wTxiyi22(2-3)其中 y i y_i yi如前所述是数据的真实值, w T x i w^Tx_i wTxi是一般线性回归模型对输入 x i x_i xi的预测值。

对于回归问题而言,最直观的损失函数应该是绝对值损失函数(见第一章),但因为绝对值损失函数在原点不可导,不能使用费马定理求解,因此通常使用平方损失函数作为替代。平方损失函数是凸函数,可以使用费马定理求得极值。

优化算法

平方损失函数不仅有非常好的函数性质,还具有很好解释的几何意义。它实际上对应了空间中的欧几里得距离(Euclidean Distance),又称欧氏距离。寻找使平方损失函数最小的参数即寻找使空间中的所有数据点到直线或超平面的距离之和最小的参数。解决上述问题的优化算法称为普通最小二乘法(Ordinary Least Square, OLS)。

最小二乘法的数学形式可以写作: ( w ∗ ) = arg ⁡ min ⁡ w ∑ i = 1 N ( f ( x i ) − y i ) 2 = arg ⁡ min ⁡ w ∑ i = 1 N ( w T x i − y i ) 2 (2-4) \begin{aligned}\left(w^{*}\right) &=\underset{w}{\arg \min } \sum_{i=1}^{N}\left(f\left(x_{i}\right)-y_{i}\right)^{2} \\ &=\underset{w}{\arg \min } \sum_{i=1}^{N}\left(w^Tx_i-y_i\right)^{2} \end{aligned}\tag{2-4} (w)=wargmini=1N(f(xi)yi)2=wargmini=1N(wTxiyi)2(2-4)

因为平方损失函数优良的求导性质,为了求最小值,可公式2-4右侧求偏导,求导数为零的参数值。方便起见,分别对去掉 b b b分量的 w w w b b b求偏导,即: ∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 N x i 2 − ∑ i = 1 N ( y i − b ) x i ) = 0 \frac{\partial E_{(w, b)}}{\partial w}=2\left(w \sum_{i=1}^{N} x_{i}^{2}-\sum_{i=1}^{N}\left(y_{i}-b\right) x_{i}\right)=0 wE(w,b)=2(wi=1Nxi2i=1N(yib)xi)=0 ∂ E ( w , b ) ∂ b = 2 ( N b − ∑ i = 1 N ( y i − w x i ) ) = 0 (2-5) \frac{\partial E_{(w, b)}}{\partial b}=2\left(N b-\sum_{i=1}^{N}\left(y_{i}-w x_{i}\right)\right)=0\tag{2-5} bE(w,b)=2(Nbi=1N(yiwxi))=0(2-5)两个方程,两个未知数,可以求得闭式解: w = ∑ i = 1 N y i ( x i − x ˉ ) ∑ i = 1 N x i 2 − 1 N ( ∑ i = 1 N x i ) 2 w=\frac{\sum_{i=1}^{N} y_{i}\left(x_{i}-\bar{x}\right)}{\sum_{i=1}^{N} x_{i}^{2}-\frac{1}{N}\left(\sum_{i=1}^{N} x_{i}\right)^{2}} w=i=1Nxi2N1(i=1Nxi)2i=1Nyi(xixˉ) b = 1 N ∑ i = 1 N ( y i − w x i ) (2-6) b=\frac{1}{N} \sum_{i=1}^{N}\left(y_{i}-w x_{i}\right)\tag{2-6} b=N1i=1N(yiwxi)(2-6)

矩阵形式

上述使用最小二乘法求解最优参数的过程比较麻烦,我们可以使用矩阵形式来简化表达和运算。使用相同的符号形式,模型三要素(即研究范式中前三个要素:模型形式、损失函数和优化算法)的矩阵表达分别为:

  1. 模型形式: Y ^ = X w (2-7) \hat Y=Xw\tag{2-7} Y^=Xw(2-7)
  2. 损失函数: L ( w ) = ( X w − Y ) T ( X w − Y ) = w T X T X w − Y T X w − w T X T Y + Y T Y = w T X T X w − 2 w T X T Y + Y T Y (2-8) \begin{aligned} L(w)&=(Xw-Y)^T(Xw- Y) \\ &=w^TX^TXw-Y^TXw-w^TX^TY+Y^TY\\ &=w^TX^TXw-2w^TX^TY+Y^TY \end{aligned}\tag{2-8} L(w)=(XwY)T(XwY)=wTXTXwYTXwwTXTY+YTY=wTXTXw2wTXTY+YTY(2-8)
  3. 优化算法:对损失函数进行求导,令导数等于零。 w ^ = argmin ⁡ w L ( w ) ⟶ ∂ ∂ w L ( w ) = 0 ⟶ 2 X T X w ^ − 2 X T Y = 0 ⟶ w ^ = ( X T X ) − 1 X T Y = X + Y (2-9) \begin{aligned} \hat{w}=\operatorname{argmin}_{w} L(w) & \longrightarrow \frac{\partial}{\partial w} L(w)=0 \\ & \longrightarrow 2 X^{T} X \hat{w}-2 X^{T} Y=0 \\ & \longrightarrow \hat{w}=\left(X^{T} X\right)^{-1} X^{T} Y=X^{+} Y \end{aligned}\tag{2-9} w^=argminwL(w)wL(w)=02XTXw^2XTY=0w^=(XTX)1XTY=X+Y(2-9)其中 X + X^+ X+叫做伪逆。

具体的求导方式见下补充知识。

矩阵形式可以简洁地对模型损失函数进行表示,利用矩阵求导的规则也可以对损失函数快速地求导,以获得使损失函数最小的最优参数,后续讨论的模型均采用矩阵形式表达。

补充知识:常见的矩阵求导公式

矩阵运算本质上是一种线性映射,根据输入和输出的不同,这种映射可以分为标量/向量/矩阵向标量/向量/矩阵的映射,具体的求导涉及不同的形式,还包含一些重要的概念,比如梯度、方向导数、雅各比矩阵、黑塞矩阵等。这些概念会在后续合适的章节介绍给大家,本章只讨论两种常用的求导,即 f ( x ) = A x f(x)=Ax f(x)=Ax f ( x ) = x T A x f(x)=x^TAx f(x)=xTAx关于变量 x x x的导数/梯度(Gradient)。

首先定义梯度(Gradient),它是导数对多远函数的推广,即多元函数对各自分量偏导数形成的向量。其数学形式表达为: ∇ f ( x ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , … , ∂ f ∂ x n ) T (2-10) \nabla f(x)=\left(\frac{\partial f}{\partial x_{1}}, \frac{\partial f}{\partial x_{2}}, \ldots, \frac{\partial f}{\partial x_{n}}\right)^T\tag{2-10} f(x)=(x1f,x2f,,xnf)T(2-10)根据定义有 ∇ A x = ( ∂ A x ∂ x 1 , ∂ A x ∂ x 2 , … , ∂ A x ∂ x n ) T = ( A 1 , A 2 , ⋯   , A n ) T = A T (2-11) \begin {aligned}\nabla Ax&=\left(\frac{\partial Ax}{\partial x_{1}}, \frac{\partial Ax}{\partial x_{2}}, \ldots, \frac{\partial Ax}{\partial x_{n}}\right)^T\\\\&=(A_1,A_2,\cdots,A_n)^T=A^T\end {aligned} \tag{2-11} Ax=(x1Ax,x2Ax,,xnAx)T=(A1,A2,,An)T=AT(2-11)思考第二步到第三步是怎么得到的(提示:矩阵列空间的定义)。

特别地,当A为向量时有 ∇ a x = a T (2-12) \nabla ax=a^T\tag{2-12} ax=aT(2-12)这与一元函数的求导公式在形式上是一致的。

然后我们考虑矩阵 A A A的二次型的导数,即 ∇ x T A x \nabla x^TAx xTAx

将矩阵的二次型展开,我们有 y = x T A x = ∑ p = 1 n ∑ q = 1 n a p q x p x q (2-13) y=x^TAx=\sum_{p=1}^{n} \sum_{q=1}^{n} a_{p q} x_{p} x_{q}\tag{2-13} y=xTAx=p=1nq=1napqxpxq(2-13)其中 a p q a_{pq} apq是矩阵 A A A p p p行第 q q q列的元素。

于是, ∂ y ∂ x i = ∂ ( ∑ p = 1 n ∑ q = 1 n a p q x p x q ) ∂ x i = ∑ q = 1 n a i q x q + ∑ p = 1 n a p i x p (2-14) \begin {aligned} \frac{\partial y}{\partial x_{i}}&=\frac{\partial\left(\sum_{p=1}^{n} \sum_{q=1}^{n} a_{p q} x_{p} x_{q}\right)}{\partial x_{i}}\\&=\sum_{q=1}^{n} a_{i q} x_{q}+\sum_{p=1}^{n} a_{p i} x_{p}\end{aligned}\tag{2-14} xiy=xi(p=1nq=1napqxpxq)=q=1naiqxq+p=1napixp(2-14)可以得到 ∇ x T A x = ( ∑ q = 1 n a 1 q x q + ∑ p = 1 n a p 1 x p , ∑ q = 1 n a 1 q x q + ∑ p = 1 n a p 1 x p ) ⋯   , ∑ q = 1 n a n q x q + ∑ p = 1 n a p n x p ) = ( A + A T ) x (2-15) \begin{aligned}\nabla x^TAx&=(\sum_{q=1}^{n} a_{1 q} x_{q}+\sum_{p=1}^{n} a_{p 1} x_{p},\sum_{q=1}^{n} a_{1 q} x_{q}+\sum_{p=1}^{n} a_{p 1} x_{p})\cdots,\\&\sum_{q=1}^{n} a_{n q} x_{q}+\sum_{p=1}^{n} a_{p n} x_{p})\\&=(A+A^T)x\end{aligned}\tag{2-15} xTAx=(q=1na1qxq+p=1nap1xp,q=1na1qxq+p=1nap1xp),q=1nanqxq+p=1napnxp)=(A+AT)x(2-15)特别地,当 A A A为对称矩阵的时候, ∇ x T A x = 2 A x (2-16) \nabla \boldsymbol{x}^{\mathrm{T}} \boldsymbol{A} \boldsymbol{x}=2 \boldsymbol{A} \boldsymbol{x}\tag{2-16} xTAx=2Ax(2-16)补充知识结束。

空间视角(几何意义)

考虑一般线性回归模型的几何意义。

X w Xw Xw X X X的列空间,如果 Y Y Y正好在 X X X的列空间中,则能够找到一个 w w w使得 Y = X w Y=Xw Y=Xw,这时候模型完美地拟合了数据(没有误差)。

但是实际情况下, Y Y Y一般不会正好在 X X X的列空间中,一方面是因为数据本身存在噪声,一方面因为数据可能不完全服从“回归形式”的规律。这时候就需要找到一个 w w w使得 Y Y Y X w Xw Xw的距离最短(即差异最小)。

我们以二维平面为例用图示(图1)说明。下面的平面α是 X X X的列空间,直线是二维的 Y Y Y,需要在平面α中找到一条直线 X w Xw Xw,使得 Y Y Y到这条直线的距离最短。
图1一般回归模型的几何视角图示

显然,由 Y Y Y向平面做垂线,可以得到 Y Y Y在平面α上的投影,投影所在的直线为 X w Xw Xw,垂线即最短距离,垂线的数学表达式为 Y − X w Y-Xw YXw

根据平面垂线的定义,有 X T ( Y − X w ) = 0 (2-17) X^T(Y-Xw)=0\tag{2-17} XT(YXw)=0(2-17)可以得到: w = ( X T X ) − 1 X T Y (2-18) w=(X^TX)^{-1}X^TY\tag{2-18} w=(XTX)1XTY(2-18)结果与最小二乘法一致。

概率视角

考虑概率视角的一般回归模型。前面提过, Y Y Y一般不会恰好在 X X X的列空间中,我们设一个服从正态分布的误差 ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim \mathcal{N}\left(0, \sigma^{2}\right) ϵN(0,σ2),于是有: y = w T x + ϵ (1-19) y=w^Tx+\epsilon\tag{1-19} y=wTx+ϵ(1-19)以及: y ∼ N ( w T x , σ 2 ) (2-20) y \sim \mathcal{N}\left(w^Tx, \sigma^{2}\right)\tag{2-20} yN(wTx,σ2)(2-20)使用最大似然估计对参数进行估计,对数似然函数为: L ( w ) = log ⁡ p ( Y ∣ X , w ) = log ⁡ ∏ i = 1 N p ( y i ∣ x i , w ) = ∑ i = 1 N log ⁡ ( 1 2 π σ e − ( y i − w T x i ) 2 2 σ 2 ) (2-21) \begin{aligned} L(w)&=\log p(Y \mid X, w) \\&=\log \prod_{i=1}^{N} p\left(y_{i} \mid x_{i}, w\right) \\ &=\sum_{i=1}^{N} \log \left(\frac{1}{\sqrt{2 \pi \sigma}} e^{-\frac{\left(y_{i}-w^{T}x_i\right)^{2}}{2 \sigma^{2}}}\right) \end{aligned}\tag{2-21} L(w)=logp(YX,w)=logi=1Np(yixi,w)=i=1Nlog(2πσ 1e2σ2(yiwTxi)2)(2-21) σ \sigma σ是常数,因此求对数似然函数的最大值等同于公式2-22 argmax ⁡ w L ( w ) = argmin ⁡ w ∑ w ( y i − w T x i ) 2 (2-22) \underset{w}{\operatorname{argmax}} L(w)=\underset{w}{\operatorname{argmin}} \sum_{\boldsymbol{w}}\left(y_{i}-w^{T} x_{i}\right)^{2}\tag{2-22} wargmaxL(w)=wargminw(yiwTxi)2(2-22)可以发现,与最小二乘法的优化目标一致。

概率视角的一般回归模型可以用图2表示,图2中,每一个样本点 y y y服从均值是 w T x w^Tx wTx,方差为 σ 2 \sigma^2 σ2的正态分布。
一般回归模型的概率视角图示

一般回归模型的问题

在实施一般回归模型的时候,很重要的一步是选择输入空间 x x x,在统计学里,合适的输入空间可以规避共线性,在机器学习领域,我们更加关注合适的输入空间对过拟合/欠拟合的影响。例如,第一章中提到过,平面上 n − 1 n-1 n1个点一定可以用 n n n阶多项式来拟合,也就是说如果不考虑模型的复杂度,我们可以尽可能选择较大的输入空间,但是奥卡姆提到定律告诉我们这样是不可取的。

除奥卡姆剃刀定律说明的原理之外,我们还可以从数学角度考虑“如果输入空间的维度过大”可能造成的问题。假设我们有 N N N个数据,每个数据有 P P P个维度,如果 P P P过大,我们假设它远大于 N N N,那在最小二乘法求得的闭式解 ( X T X ) − 1 X T Y (X^TX)^{-1}X^TY (XTX)1XTY中会有 X T X X^TX XTX不可逆的现象出现,这会最优参数的解有无穷多个。实际上,这通常说明我们的说句不足以确定唯一一个解,如果我们从这些解中随机选择一个的话,很可能不是真正好的解(Overfitting了)。

当然,即便是 P P P不远大于 N N N,上述 X T X X^TX XTX不可逆的情况仍然存在(想一想计量经济学中的多重共线性)。也就是说,在实际问题中我们很难规避一般回归模型出现过拟合的现象。为了解决这一问题,我们引入正则化技术。

正则化技术

我们首先来看一下正则化技术的基本思想和一般形式,然后再后续的内容中讨论一般回归模型中如何引入正则化技术。

正则化技术的基本思想是通过在表达经验风险的损失函数后加入表示模型负责度的惩罚项,使得模型的结构风险最小化。所谓结构风险,是指经验风险(经验误差)和置信风险(可以理解为泛化误差)之和。正则化技术可以同时控制模型训练误差和测试误差,在保证模型经验误差较小的同时,降低模型复杂度,提高泛化能力。

正则化技术的一般形式可以用表达为公式2-22。 n e w L ( ⋅ ) = o l d L ( ⋅ ) + λ p ( ⋅ ) (1-23) newL(\cdot)=oldL(\cdot)+\lambda p(\cdot)\tag{1-23} newL()=oldL()+λp()(1-23)其中, o l d L ( ⋅ ) oldL(\cdot) oldL()表示原来的损失函数,括号中的点号表示参数集合, λ p ( ⋅ ) \lambda p(\cdot) λp()是对参数的惩罚项(penalty),$ p(\cdot) 是惩罚函数, 是惩罚函数, 是惩罚函数,\lambda>0$是惩罚系数。正则化技术通过在原有损失函数中加入参数的惩罚项,控制参数的大小(或者非零参数的数量),从而降低模型的复杂度。

惩罚函数的选择是正则化技术的最重要的环节。一般会选择参数的范数作为惩罚函数,为了方便后面讲解,我们一起回顾一下范数的概念。

范数包括向量范数和矩阵范数。向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小,我们这里提到的范数均为向量范数(以下简称为范数)。一般意义上,一个从向量映射到实数的函数 f ( x ) f(x) f(x),满足以下三条性质就可称为范数:

  1. 非负性: f ( x ) ≥ 0 f(x) \geq 0 f(x)0并且 f ( x ) = 0 f(x)=0 f(x)=0的充分必要条件是 x = 0 x=0 x=0
  2. 齐次性:对于 x ∈ R x\in \mathbb{R} xR,有 f ( c x ) = ∣ c ∣ f ( x ) f(cx)=|c|f(x) f(cx)=cf(x);
  3. 三角不等式: f ( a + b ) ≤ f ( a ) + f ( b ) f(a+b)\leq f(a)+f(b) f(a+b)f(a)+f(b)

机器学习中常用的范数指的是 p p p范数,数学形式如公式2-23所示: L p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p (2-23) L p=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{\frac{1}{p}}\tag{2-23} Lp=(i=1nxip)p1(2-23) p p p常见的取值有0、1、2和 ± ∞ \pm \infty ±

  • L 0 L0 L0范数:统计向量中非零元素的个数;
  • L 1 L1 L1范数:向量中所有元素的绝对值之和。可用于优化中去除没有取值的信息,又称稀疏规则算子: ∥ x ∥ 1 = ∑ i = 1 n ∣ x i ∣ (2-24) \|x\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right|\tag{2-24} x1=i=1nxi(2-24)
  • L 2 L2 L2范数:即欧式距离: ∥ x ∥ 2 = ∑ i = 1 n ∣ x i ∣ 2 (2-25) \|x\|_{2}=\sqrt{\sum_{i=1}^{n}\left|x_{i}\right|^{2}}\tag{2-25} x2=i=1nxi2 (2-25)
  • L + ∞ L+\infty L+范数:向量中的最大值: ∥ x ∥ ∞ = max ⁡ i ∣ x i ∣ (2-26) \|x\|_{\infty}=\max _{i}\left|x_{i}\right|\tag{2-26} x=imaxxi(2-26)
  • - L − ∞ L-\infty L范数:向量中的最小值: ∥ x ∥ − ∞ = min ⁡ i ∣ x i ∣ (2-27) \|x\|_{-\infty}=\min _{i}\left|x_{i}\right|\tag{2-27} x=iminxi(2-27)
    图2-3展示了 L 1 L1 L1 L 2 L2 L2范数等于常数 C C C对应的图像(二维情况):
    在这里插入图片描述
    除了惩罚函数之外,惩罚项还有一个重要的乘子惩罚系数 λ \lambda λ,一般而言, λ \lambda λ越大,正则技术更加偏重“简单模型”, λ \lambda λ越小,正则技术更加偏重经验误差,需要根据经验选择合适的 λ \lambda λ

Ridge回归(岭回归模型)

岭回归的基本形式和最优解

接下来考虑 L 1 L1 L1范数和 L 2 L2 L2范数作为惩罚函数的回归模型。考虑到回归模型的损失函数(公式2-8)为 L ( w ) = w T X T X w − 2 w T X T Y + Y T Y \begin{aligned} L(w)=w^TX^TXw-2w^TX^TY+Y^TY \end{aligned} L(w)=wTXTXw2wTXTY+YTY可以通过求导求得极值,但是 L 1 L1 L1范数无法直接求导,因此先考虑相对容易的 L 2 L2 L2范数,加入 L 2 L2 L2范数到损失函数中的一般回归模型叫Ridge回归(岭回归),稍后我们会解释岭回归中“岭”的含义。

加入正则项后,岭回归模型的损失函数变为: L r 2 ( w ) = L ( w ) + λ ∥ w ∥ 2 2 , λ > 0 (2-28) L_{r2}(w)=L(w) +\lambda\|w\|_{2}^{2}, \lambda>0\tag{2-28} Lr2(w)=L(w)+λw22,λ>0(2-28)对损失函数求导可以得到最优参数: w ^ = argmin ⁡ w L ( w ) + λ w T w ⟶ ∂ ∂ w L ( w ) + 2 λ w = 0 ⟶ 2 X T X w ^ − 2 X T Y + 2 λ w ^ = 0 ⟶ w ^ = ( X T X + λ I ) − 1 X T Y (2-29) \begin{aligned} \hat{w}=\underset{w}{\operatorname{argmin}} L(w)+\lambda w^{T} w & \longrightarrow \frac{\partial}{\partial w} L(w)+2 \lambda w=0 \\ & \longrightarrow 2 X^{T} X \hat{w}-2 X^{T} Y+2 \lambda \hat{w}=0 \\ & \longrightarrow \hat{w}=\left(X^{T} X+\lambda I\right)^{-1} X^{T} Y \end{aligned}\tag{2-29} w^=wargminL(w)+λwTwwL(w)+2λw=02XTXw^2XTY+2λw^=0w^=(XTX+λI)1XTY(2-29)
对比一般回归模型的闭式解,我们发现原来伪逆中的 X T X X^TX XTX变成了 X T X + λ I X^TX+\lambda I XTX+λI。由于 X T X X^TX XTX是半正定矩阵,加上一个对角矩阵后,一定是满秩的可逆矩阵。最优解中的 λ I \lambda I λI对角矩阵只有对角元素上为 λ \lambda λ,就像一条山岭一样,这也是岭回归名字的由来。

概率视角的岭回归模型

前面推导了概率视角的一般回归模型,得到的结论是如果误差项服从均值为 0 0 0方差为 σ 2 \sigma^2 σ2的正态分布,使用最大似然估计得到的最优参数和使用最小二乘法的最优参数解相同。我们已经知道,最大似然估计是频率学派的观点,如果我们使用贝叶斯学派的概率视角看待回归模型,会得到什么样的结论呢?

答案是:使用贝叶斯学派的概率视角得到的最优参数与使用最小二乘法求解得到的岭回归模型最优参数相同。现在开始推导。

按照贝叶斯学派的观点,模型的参数服从一个先验分布。我们设参数 w ∼ N ( 0 , Σ 2 ) w\sim \mathcal{N}\left(0, \Sigma ^{2}\right) wN(0,Σ2),其中 Σ \Sigma Σ是多维高斯分布的协方差。根据最大后验估计我们有: w ^ = arg ⁡ max ⁡ w ∏ i = 1 N P ( w ∣ y ) = arg ⁡ max ⁡ ∏ i = 1 N P ( y ∣ w ) ⋅ P ( w ) = arg ⁡ max ⁡ w ∑ i = 1 N log ⁡ [ P ( y ∣ w ) ⋅ P ( w ) ] = arg ⁡ max ⁡ w ∑ i = 1 N log ⁡ ( 1 2 π σ ⋅ 1 2 π p + 1 2 ∣ Σ ∣ 1 2 ) + ∑ i = 1 N log ⁡ exp ⁡ { − ( y − w T x ) 2 2 σ 2 − w T Σ − 1 w 2 } = arg ⁡ min ⁡ w ∑ i = 1 N ( y − w T x ) 2 2 σ 2 + N w T Σ − 1 w 2 = arg ⁡ min ⁡ w ∑ i = 1 N ( y − w T x ) 2 + N σ 2 w T Σ − 1 w (2-30) \begin{aligned} \hat{w} &=\arg \max _{w} \prod_{i=1}^N P(w \mid y)=\arg \max\prod_{i=1}^N P(y \mid w) \cdot P(w) \\ &=\arg \max _{w} \sum_{i=1}^N \log [P(y \mid w) \cdot P(w)] \\ &=\arg \max _{w}\sum_{i=1}^N \log \left(\frac{1}{\sqrt {2 \pi} \sigma} \cdot \frac{1}{{2 \pi}^\frac{p+1}{2} |\Sigma|^\frac{1}{2}}\right)\\&+\sum_{i=1}^N\log \exp \left\{-\frac{\left(y-w^T x\right)^{2}}{2 \sigma^{2}}-\frac{w^T\Sigma^{-1} w}{2 }\right\} \\ &=\arg \min _{w} \sum_{i=1}^N\frac{\left(y-w^T x\right)^{2}}{2 \sigma^{2}}+N\frac{w^T\Sigma^{-1} w}{2 } \\ &=\arg \min _{w}\sum_{i=1}^N\left(y-w^Tx\right)^{2}+N\sigma^{2}{w^T\Sigma^{-1} w} \end{aligned}\tag{2-30} w^=argwmaxi=1NP(wy)=argmaxi=1NP(yw)P(w)=argwmaxi=1Nlog[P(yw)P(w)]=argwmaxi=1Nlog(2π σ12π2p+1∣Σ211)+i=1Nlogexp{2σ2(ywTx)22wTΣ1w}=argwmini=1N2σ2(ywTx)2+N2wTΣ1w=argwmini=1N(ywTx)2+Nσ2wTΣ1w(2-30)
进一步假设 w w w的各个分量是独立且同方差的,则 Σ \Sigma Σ可以写成 σ 0 2 I \sigma_0^2I σ02I,于是公式2-30变成: arg ⁡ min ⁡ w ( y − w T x ) 2 + N σ 2 σ 0 2 w T   w (2-31) \arg \min _{w}(y-w^Tx)^{2}+N\frac{\sigma^{2}}{\sigma_0^2}{w^T\ w} \tag{2-31} argwmin(ywTx)2+Nσ02σ2wT w(2-31)与上述推导的岭回归参数最优化问题相同。

LASSO回归

LASSO回归的损失函数引入了 L 1 L1 L1范式,即: L r 2 ( w ) = L ( w ) + λ ∥ w ∥ 1 , λ > 0 (2-32) L_{r2}(w)=L(w) +\lambda\|w\|_{1}, \lambda>0\tag{2-32} Lr2(w)=L(w)+λw1,λ>0(2-32)这在形式上并不复杂,只不过由于 L 1 L1 L1范式无法直接求导(在0处导数不存在),因此不能直接求得闭式解。

通常来讲,LASSO回归可以得到稀疏解,所谓稀疏解是指解向量中有多个0分量的解,因此LASSO回归还可以进行特征选择。当然,稀疏解还有一些其他好处,这里不再赘述。

对LASSO回归的求解可以使用次梯度下降法、坐标下降法、最小角回归法等,这些内容超出了本章的范围,我们在后续章节中继续讨论。在本章中,我们重点讨论为什么LASSO回归容易得到稀疏解。

LASSO回归稀疏解的几何解释

观察公式2-32LASSO回归的损失函数,它可以改写成如下约束优化问题: argmin ⁡ w L ( w )  s.t.  ∥ w ∥ 1 ≤ C (2-33) \begin{array}{l}\underset{w}{\operatorname{argmin}} L(w) \\ \text { s.t. }\|w\|_{1}\leq C\end{array}\tag{2-33} wargminL(w) s.t. w1C(2-33)其中 C C C是一个与 λ \lambda λ对应的常数。

前面讲过了 L 1 L1 L1范数的几何图形,我们可以将公式2-33的约束优化问题看成是在 ∣ ∣ w ∣ ∣ 1 ≤ C ||w||_1\leq C ∣∣w1C的菱形区域(或有菱角的BALL,可行域)内寻找使得 L ( w ) = ∑ i = 1 N ∣ ∣ w T x i − y i ∣ ∣ 2 2 L(w)=\sum\limits_{i=1}^N||w^Tx_i-y_i||^2_2 L(w)=i=1N∣∣wTxiyi22最小的 w w w

直观表达依然采用二维表示,如图2-4所示。蓝绿色区域是 L ( w ) L(w) L(w)的等高线,等高线与菱形初次相交的地方就是最优解,而初次相交的地方一般会在菱角处,而菱角处的解是稀疏的。
在这里插入图片描述
上述几何解释比较intuitive,也可以有更加数学的解释,要解释清楚需要引入次梯度的概念,这里不做延伸,只做一些提示,有兴趣的同学可以深入研究一下。

对损失函数求次梯度,有: KaTeX parse error: Got function '\gdef' with no arguments as argument to '\right' at position 1: \̲g̲d̲e̲f̲\df@tag{\text{#…

∇ L 0 − λ \nabla L_{0}-\lambda L0λ ∇ L 0 + λ \nabla L_{0}+\lambda L0+λ异号时,损失函数会产生一个极小值,而异号的情况通常出现在 w j = 0 w_j=0 wj=0处。

++++++++++++++++++++++++分类问题分割线++++++++++++++++++++++++++++++++++++++

上述讨论的是利用线性模型解决回归问题,对于分类问题,需要对原有的模型形式做一些调整。本章讲解两个重要的线性分类模型:逻辑回归和线性判别分析。

逻辑回归模型

回归模型的输出空间是连续值,而对于分类问题,我们要求输出空间是离散值(例如,二分类问题的0和1),如何找到一种映射关系,将连续的输出空间转换为离散的输出空间,这就是逻辑回归模型的基本思路。

具体而言,逻辑回归模型使用sigmoid函数作为映射函数。我们首先认识一下sigmoid函数。

补充知识:sigmoid函数

sigmoid函数又称S函数,因为它的集合图像像一个趴倒了的大S,如图2-5。sigmoid函数的数学表达如公式2-35所示: σ ( x ) = 1 1 + exp ⁡ ( − x ) (2-35) \sigma(x)=\frac{1}{1+\exp (-x)}\tag{2-35} σ(x)=1+exp(x)1(2-35)

在这里插入图片描述
sigmoid函数有一些优良的性质,我们经常用到以下几条:

  1. 图像关于原点中心对称;
  2. 定义域为 ( − ∞ , + ∞ ) (-\infty, +\infty) (,+),值域为 ( 0 , + 1 ) (0, +1) (0,+1)
  3. 单调递增;
  4. 处处可导,且导数满足 σ ( x ) ′ = σ ( x ) ( 1 − σ ( x ) ) \sigma (x)' = \sigma(x)(1-\sigma(x)) σ(x)=σ(x)(1σ(x))

除了sigmoid函数之外,机器学习中还有一些常用的映射(激活)函数,在神经网络的章节我会给大家详细介绍。

模型形式

借助sigmoid函数,逻辑回归模型可以表达如下: f ( x ) = 1 1 + exp ⁡ ( − w T x ) (2-36) f(x)=\frac{1}{1+\exp (-w^Tx)}\tag{2-36} f(x)=1+exp(wTx)1(2-36)我们先来看一下这个形式是怎么来的,对于二分类问题,我们假设两个类别 C 1 C_1 C1 C 2 C_2 C2,根据贝叶斯定理有: p ( C 1 ∣ x ) = p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 1 ) p ( C 1 ) + p ( x ∣ C 2 ) p ( C 2 ) (2-37) p(C_1|x)=\frac{p(x|C_1)p(C_1)}{p(x|C_1)p(C_1)+p(x|C_2)p(C_2)}\tag{2-37} p(C1x)=p(xC1)p(C1)+p(xC2)p(C2)p(xC1)p(C1)(2-37)
w T x = ln ⁡ p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 2 ) p ( C 2 ) w^Tx=\ln\frac{p(x|C_1)p(C_1)}{p(x|C_2)p(C_2)} wTx=lnp(xC2)p(C2)p(xC1)p(C1),即两个联合概率之比(称之为几率odds)取对数(因此逻辑回归也叫作对数几率回归),我们得到:
p ( C 1 ∣ x ) = 1 1 + exp ⁡ ( − w T x ) (2-38) p(C_1|x)=\frac{1}{1+\exp(-w^Tx)}\tag{2-38} p(C1x)=1+exp(wTx)1(2-38)也就是说,逻辑回归的输出可以看做是 C 1 C_1 C1类的概率。

自然地, C 2 C_2 C2类的概率为: p ( C 2 ∣ x ) = 1 − p ( C 1 ∣ x ) = exp ⁡ ( − w T x ) 1 + exp ⁡ ( − w T x ) (2-39) p(C_2|x)=1-p(C_1|x)=\frac{\exp(-w^Tx)}{1+\exp(-w^Tx)}\tag{2-39} p(C2x)=1p(C1x)=1+exp(wTx)exp(wTx)(2-39)

如果 C 1 C_1 C1 C 2 C_2 C2分别记作1和0,我们有: p ( y ∣ x ) = p ( C 1 ∣ x ) y p ( C 2 ∣ x ) 1 − y (2-40) p(y|x)=p(C_1|x)^yp(C_2|x)^{1-y}\tag{2-40} p(yx)=p(C1x)yp(C2x)1y(2-40)上式可以这样理解,如果 y y y为1,则等式右边只剩下 p ( C 1 ∣ x ) p(C_1|x) p(C1x),如果y为0,则等式右边只剩下 p ( C 2 ∣ x ) p(C_2|x) p(C2x)

简便起见,后续我们记 C 1 C_1 C1 C 2 C_2 C2的概率分别为 p 1 p_1 p1 p 0 p_0 p0

损失函数

逻辑回归属于分类问题,可以使用第一章提及到的交叉熵作为损失函数,我们有: L ( w ) = − ∑ i = 1 N ( y i log ⁡ ( p 1 ( x i ) ) + ( 1 − y i ) log ⁡ ( p o ( x i ) ) ) (2-41) L(w)=-\sum_{i=1}^{N}(y_i \log (p_1(x_i))+(1-y_i) \log (p_o(x_i)))\tag{2-41} L(w)=i=1N(yilog(p1(xi))+(1yi)log(po(xi)))(2-41)其中, p 1 ( x i ) p_1(x_i) p1(xi)是对于输入 x i x_i xi,使用逻辑回归得到为 C 1 C_1 C1类的概率。

回顾第一章讲解的交叉熵的物理意义,它是相对熵中可以优化的部分,而相对熵描述了如果用分布P描述事件,比用Q描述事件带来的信息增量。 在逻辑回归中,分布P是经验数据中的分布,分布Q是使用逻辑回归预测得到的分布,在训练过程中,我们希望经验误差最小,也就是这两个分布的差异最小。

优化算法

我们对损失函数求梯度(关于参数向量 w w w),求解过程中我们先省略求和符号(不影响结果),现在开始: ∂ L ′ ( w ) ∂ w = ∂ y i l o g σ ( x i ) + ( 1 − y i ) l o g ( 1 − σ ( x i ) ) ∂ w = − y i x i ( 1 − σ ( x i ) ) − ( 1 − y i ) ( − x i σ ( x i ) ) = − ( y i − σ ( x i ) ) x i (2-42) \begin{aligned}\frac{\partial L'(w)}{\partial w}&=\frac {\partial y_ilog\sigma(x_i)+(1-y_i)log(1-\sigma(x_i))} {\partial w}\\&=-y_ix_i(1-\sigma (x_i))-(1-y_i)(-x_i\sigma(x_i))\\&=-(y_i-\sigma(x_i))x_i\end{aligned}\tag{2-42} wL(w)=wyilogσ(xi)+(1yi)log(1σ(xi))=yixi(1σ(xi))(1yi)(xiσ(xi))=(yiσ(xi))xi(2-42)
求导时,用到了sigmoid函数的第四条导函数的性质,令梯度为零,有: ∑ i = 1 N ( y i − σ ( x i ) ) x i = 0 (2-43) \sum_{i=1}^{N} (y_i-\sigma(x_i))x_i=0\tag{2-43} i=1N(yiσ(xi))xi=0(2-43)该式难以直接求出闭式解,我们使用梯度下降法进行优化。

补充:梯度下降法

梯度下降法(Gradient Descent Method)是大数学家柯西提出的优化算法,它的基本思路是对参数首先设置一个初始值,计算该处的损失函数值,然后求出该值处导数(梯度)值,沿着梯度的反方向设定特定的补偿迭代改变参数值,直到损失函数值不再减少或者达到了我们设置的最大迭代次数。

那么问题来了,沿着梯度的反方向一定会使损失函数值变小么?接下来我们证明:沿着梯度的反方向,损失函数值下降,并且是所有方向中下降最快的方向。

证明:
首先证明沿着梯度的反方向,损失函数值下降

  1. 将函数在 x x x点作一阶泰勒展开: f ( x + Δ x ) = f ( x ) + ( ∇ f ( x ) ) T Δ x + o ( ∥ Δ x ∥ ) (2-44) f(x+\Delta x)=f(\boldsymbol{x})+(\nabla f(\boldsymbol{x}))^{\mathrm{T}} \Delta \boldsymbol{x}+o(\|\Delta \boldsymbol{x}\|)\tag{2-44} f(x+Δx)=f(x)+(f(x))TΔx+o(∥Δx)(2-44)
  2. 变形后发现函数的增量与自变量增量、函数梯度的关系为: f ( x + Δ x ) − f ( x ) = ( ∇ f ( x ) ) T Δ x + o ( ∥ Δ x ∥ ) (2-45) f(x+\Delta x)-f(\boldsymbol{x})=(\nabla f(\boldsymbol{x}))^{\mathrm{T}} \Delta \boldsymbol{x}+o(\|\Delta \boldsymbol{x}\|\tag{2-45}) f(x+Δx)f(x)=(f(x))TΔx+o(∥Δx)(2-45)
  3. 如果令 Δ x \Delta x Δx ∇ f ( x ) \nabla f(\boldsymbol{x}) f(x)同向,则有: f ( x + Δ x ) − f ( x ) = λ ( ∇ f ( x ) ) T ∇ f ( x ) + o ( ∥ Δ x ∥ ) (2-46) f(x+\Delta x)-f(\boldsymbol{x})=\lambda(\nabla f(\boldsymbol{x}))^{\mathrm{T}} \nabla f(\boldsymbol{x})+o(\|\Delta \boldsymbol{x}\|)\tag{2-46} f(x+Δx)f(x)=λ(f(x))Tf(x)+o(∥Δx)(2-46)
  4. 如果 Δ x \Delta x Δx足够小,则其高阶无穷小可以忽略,可以证明公式2-46的等号左边大于等于零,如果取反方向,则等号左边小于等于0。
    接下来证明沿着梯度反方向函数值下降最快:
    由内积的定义可以知道: ( ∇ f ( x ) ) T Δ x = ∥ ∇ f ( x ) ∥ ⋅ ∥ Δ x ∥ ⋅ cos ⁡ θ (2-47) (\nabla f(x))^{\mathrm{T}} \Delta \boldsymbol{x}=\|\nabla f(\boldsymbol{x})\| \cdot\|\Delta \boldsymbol{x}\| \cdot \cos \theta\tag{2-47} (f(x))TΔx=∥∇f(x)∥Δxcosθ(2-47)
    显然,当 cos ⁡ θ \cos \theta cosθ取-1时,该值的绝对值最大,即 θ = π \theta=\pi θ=π
    证毕。

于是我们有了梯度下降法的基本数学表达: w i + 1 = w i − α ∇ L ( x ) (2-48) w^{i+1}=w^{i}-\alpha\nabla L(x)\tag{2-48} wi+1=wiαL(x)(2-48)其中 α \alpha α大于0,称之为步长。

梯度下降法的物理意义见板书内容。

梯度下降法存在一些问题,最常见的有梯度震荡、梯度爆炸和梯度消失,相应的会有一些改进版本,如模拟退火算法、Adam等等。后续有机会我会跟同学们进一步讨论。

回到我们的问题,使用梯度下降法求解逻辑回归的最优参数: g i = ∂ J ( w ) ∂ w i = ( p ( x i ) − y i ) x i w i k + 1 = w i k − α g i (2-49) \begin{array}{c}g_{i}=\frac{\partial J(w)}{\partial w_{i}}=\left(p\left(x_{i}\right)-y_{i}\right) x_{i} \\ \\w_{i}^{k+1}=w_{i}^{k}-\alpha g_{i}\end{array}\tag{2-49} gi=wiJ(w)=(p(xi)yi)xiwik+1=wikαgi(2-49)

概率视角的逻辑回归

接下来我们用概率的视角看待逻辑回归模型,还记得逻辑回归模型可以表达成什么形式么(见公式2-40),我们按照后面的符号定义重新写一下,有: p ( y ∣ x ) = p 1 y p 0 1 − y (2-50) p(y|x)=p_1^yp_0^{1-y}\tag{2-50} p(yx)=p1yp01y(2-50)熟悉概率论的同学们可能一眼就看出来了,这就是经典的伯努利概型。

于是我们将分类问题用概率分布的形式写了下来,有了概率分布自然地想到使用最大似然估计来求解最优参数。如下: w ^ = a r g m a x w J ( w ) = a r g m a x w ∑ i = 1 N ( y i log ⁡ p 1 + ( 1 − y i ) log ⁡ p 0 ) \hat{w}=\mathop{argmax}_wJ(w)=\mathop{argmax}_w\sum\limits_{i=1}^N(y_i\log p_1+(1-y_i)\log p_0) w^=argmaxwJ(w)=argmaxwi=1N(yilogp1+(1yi)logp0)
将求最大值改写成求最小值便得到了交叉熵损失函数,与前面的推导一致。

自然,逻辑回归也可以使用正则技术来防止过拟合,本章不再讨论,感兴趣的同学可以自行研究。

线性判别分析

我们讲解另一个经典的分类问题,线性判别分析(Linear Discriminant Analysis,简称LDA)。线性判别分析最早有数学家Fisher(1936)提出,因此也叫Fisher判别分析。

注意区分这里的LDA模型和隐含狄利克雷分布(LDA)模型,后者是机器学习中一种非常经典的文本聚类模型,其中涉及的数理知识非常多,有机会我将跟大家聊一聊。

线性判别分析的基本思想非常简单:将代表数据的多维向量投影到一个超平面上,属于同一类的我们尽可能让他投影后“挨得近一点”,不同类的我们让他投影后“挨得远一点”,这就是所谓的“类内小,类间大”,或者对应计算机科学中的“高内聚,低耦合”。

上述思想可以用图2-5来表示(引自周志华《机器学习》,西瓜书):
在这里插入图片描述
接下来的问题是,如何将类内聚类和类间距离表示出来,我们来看具体的模型形式。

模型形式

首先讲解投影的概念。假定原来的数据是向量 x x x,那么顺着 $ w$ 方向的投影就是标量 z = w T ⋅ x ( = ∣ w ∣ ⋅ ∣ x ∣ cos ⁡ θ ) (2-52) z=w^T\cdot x(=|w|\cdot|x|\cos\theta)\tag{2-52} z=wTx(=wxcosθ)(2-52)我们可以用 w w w表示我们要找到的超平面。

依然假设数据集有两类,即 C 1 C_1 C1 C 2 C_2 C2,我们使用两类均值之差的平方来表示类间距离,记作 ( z c 1 ‾ − z c 2 ‾ ) 2 \left(\overline{z_{c 1}}-\overline{z_{c 2}}\right)^{2} (zc1zc2)2,使用两类各自的方差之和来表示类内距离,记作: Var ⁡ z [ C 1 ] + Var ⁡ z [ C 2 ] \operatorname{Var}_{z}\left[C_{1}\right]+\operatorname{Var}_{z}\left[C_{2}\right] Varz[C1]+Varz[C2]

总结一下,线性判别分析的模型形式是:找到一个超平面 w T w^T wT,使得数据向这个超平面投影之后,类内间距 ( z c 1 ‾ − z c 2 ‾ ) 2 \left(\overline{z_{c 1}}-\overline{z_{c 2}}\right)^{2} (zc1zc2)2尽可能小,类间间距 Var ⁡ z [ C 1 ] + Var ⁡ z [ C 2 ] \operatorname{Var}_{z}\left[C_{1}\right]+\operatorname{Var}_{z}\left[C_{2}\right] Varz[C1]+Varz[C2]尽可能大。

损失函数

为了实现模型形式中设定的目标,我们约定损失函数如下: L ( w ) = − ( z c 1 ‾ − z c 2 ‾ ) 2 Var ⁡ z [ C 1 ] + Var ⁡ z [ C 2 ] (2-53) L(w)=-\frac{\left(\overline{z_{c 1}}-\overline{z_{c 2}}\right)^{2}}{\operatorname{Var}_{z}\left[C_{1}\right]+\operatorname{Var}_{z}\left[C_{2}\right]}\tag{2-53} L(w)=Varz[C1]+Varz[C2](zc1zc2)2(2-53)
让损失函数尽可能小,等价于前面所说的“类内小,类间大”。

需要说明的是,当前的主流教材中并没有明确地说公式2-53是线性判别分析的损失函数,实际上,我们可以不定义损失函数,直接根据我们的目标来求得最佳的 w w w,这里为了将线性判别分析的分析纳入到第一章的分析框架中,故作了这样的设定。

优化算法

求上述损失函数的最小值,等价于一下优化问题: w ^ = argmin ⁡ w L ( w ) = argmax ⁡ w ( z c 1 ‾ − z c 2 ‾ ) 2 Var ⁡ z [ C 1 ] + Var ⁡ z [ C 2 ] = argmax ⁡ w w T ( x c 1 ‾ − x c 2 ‾ ) ( x c 1 ‾ − x c 2 ‾ ) T w w T ( S 1 + S 2 ) w = argmax ⁡ w w T S b w w T S w w (2-54) \begin{aligned} \hat{w}=\underset{w}{\operatorname{argmin}} L(w) &=\underset{w}{\operatorname{argmax}} \frac{\left(\overline{z_{c 1}}-\overline{z_{c 2}}\right)^{2}}{\operatorname{Var}_{z}\left[C_{1}\right]+\operatorname{Var}_{z}\left[C_{2}\right]} \\ &=\operatorname{argmax}_{w} \frac{w^{T}\left(\overline{x_{c 1}}-\overline{x_{c 2}}\right)\left(\overline{x_{c 1}}-\overline{x_{c 2}}\right)^{T} w}{w^{T}\left(S_{1}+S_{2}\right) w} \\ &=\underset{w}{\operatorname{argmax}} \frac{w^{T} S_{b} w}{w^{T} S_{w} w} \end{aligned}\tag{2-54} w^=wargminL(w)=wargmaxVarz[C1]+Varz[C2](zc1zc2)2=argmaxwwT(S1+S2)wwT(xc1xc2)(xc1xc2)Tw=wargmaxwTSwwwTSbw(2-54)

这里 S b S_b Sb成为类间方差, S w S_w Sw成为类内方差。

对公式2-54求梯度,令梯度等于零可得: ∂ w T S b w w T S w w ∂ w = 2 S b w ( w T S w w ) − 1 − 2 w T S b w ( w T S w w ) − 2 S w w = 0 ⟹ S b w ( w T S w w ) = ( w T S b w ) S w w ⟹ w ∝ S w − 1 S b w = S w − 1 ( x c 1 ‾ − x c 2 ‾ ) ( x c 1 ‾ − x c 2 ‾ ) T w ∝ S w − 1 ( x c 1 ‾ − x c 2 ‾ ) (2-55) \begin{array}{l}\frac{\partial \frac{w^{T} S_{b} w}{w^{T} S_{w} w}}{\partial w} =2 S_{b} w\left(w^{T} S_{w} w\right)^{-1}-2 w^{T} S_{b} w\left(w^{T} S_{w} w\right)^{-2} S_{w} w=0 \\ \Longrightarrow S_{b} w\left(w^{T} S_{w} w\right)=\left(w^{T} S_{b} w\right) S_{w} w \\ \Longrightarrow w \propto S_{w}^{-1} S_{b} w=S_{w}^{-1}\left(\overline{x_{c 1}}-\overline{x_{c 2}}\right)\left(\overline{x_{c 1}}-\overline{x_{c 2}}\right)^{T} w \propto S_{w}^{-1}\left(\overline{x_{c 1}}-\overline{x_{c 2}}\right)\end{array}\tag{2-55} wwTSwwwTSbw=2Sbw(wTSww)12wTSbw(wTSww)2Sww=0Sbw(wTSww)=(wTSbw)SwwwSw1Sbw=Sw1(xc1xc2)(xc1xc2)TwSw1(xc1xc2)(2-55)

这里需要注意的是代表超平面的 w w w是一个既有方向又有大小的向量,但是对于我们要确定的超平面来讲,大小并不重要,实际上可以任意缩放,所以我们更加关心它的方向。

最终的优化结果给出了超平面的方向,它与 S w − 1 ( x c 1 ‾ − x c 2 ‾ ) S_{w}^{-1}\left(\overline{x_{c 1}}-\overline{x_{c 2}}\right) Sw1(xc1xc2)方向相同。

结束语

本章内容对西瓜书第三章内容进行了拓展,主要是为了加深大家对相关算法本质的一些理解,当然西瓜书的第三章还介绍了多分类问题的处理方法,这部分内容见课件。

下章我将带大家认识机器学习中一种经典的分类方法:决策树,并借助集成学习的思想进一步介绍随机森林。在下一章中,我们会大量讨论第一章介绍的信息熵及其相关概念,请同学们复习相关内容。

本章完毕。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值