机器学习西瓜书——第03章线性模型

本文详细介绍了周志华老师的《西瓜书》第三章线性模型内容,涵盖线性回归、最小二乘法、对数几率回归、线性判别分析等。深入探讨了模型的形式、参数估计方法及应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是关于周志华老师编写的机器学习书籍『西瓜书』的第三章线性模型.

主要的内容有: 线性回归的基本形式、最小二乘法、广义线性回归、对数几率回归(逻辑回归)、最大似然估计、线性判别分析、广义瑞利商、拉格朗日乘子法等.

3.1 基本形式

线性模型(linear model)是一个通过属性的线性组合来进行预测的函数, 形如:

f ( x ) = w 1 x 1 + x 2 w 2 + ⋯ + w d x d + b f(x) = w_{1}x_{1} + x_{2}w_{2} + \dots + w_{d}x_{d} + b f(x)=w1x1+x2w2++wdxd+b

其中 x i x_i xi表示第 i i i个属性值.

容易发现, 每个 w i w_i wi都表示了属性的权重, 这使得建立的模型有很好的可解释性(comprehensibility).

一般可以写成向量形式:

f ( x ) = w T x + b f(x) = \boldsymbol{w}^{T}\boldsymbol{x} + b f(x)=wTx+b

那么我们的目的就是学习得到 w \boldsymbol{w} w b b b来确定模型.

3.2 线性回归

线性回归是来学习一个线性模型, 来预测连续值. 使得预测的连续值 f ( x i ) f(x_i) f(xi)尽可能是与真实值 y i y_i yi接近, 即, 使得 f ( x i ) ≊ y i f(x_i) \approxeq y_{i} f(xi)yi.

最小二乘法

那么我们如何来衡量 f ( x i ) f(x_i) f(xi) y i y_i yi之间的差距呢, 这时候可以上文提过的均方误差(MSE)来衡量 f ( x i ) f(x_i) f(xi) y i y_i yi之间的差距. 并使其最小化, 就可以得到我们先想要的 w \boldsymbol{w} w b b b:

( w ∗ , b ∗ ) = arg min ⁡ ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = arg min ⁡ ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 \begin{aligned} (w^*, b^*) &= \argmin_{(\boldsymbol{w}, b)}{\sum^m_{i=1}{(f(x_i)-y_i)^2}} \\ &= \argmin_{(\boldsymbol{w}, b)}{\sum^m_{i=1}{(y_i-wx_i-b)^2}} \end{aligned} (w,b)=(w,b)argmini=1m(f(xi)yi)2=(w,b)argmini=1m(yiwxib)2

这就是最小二乘法(least square method): 使用均方误差这个具有几何意义的欧氏距离来度量差距.

OK, 那么我们下一步就是如何求解 E ( w , b ) = ∑ i = 1 m ( y i − w x i − b ) 2 E_{(w,b)}= {\sum^m_{i=1}{(y_i-wx_i-b)^2}} E(w,b)=i=1m(yiwxib)2最小值了, 这一步叫做最小二乘的参数估计(parameter estimate), 对 w \boldsymbol{w} w b b b和b分别求偏导, 并令为零可以得到 w \boldsymbol{w} w b b b的最优解:

w = ∑ i = 1 m y i ( x i − x ˉ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w = \frac{\sum\limits^m_{i=1}{y_i(x_i-\bar{x})}}{\sum\limits^m_{i=1}{x_i^2}-\frac{1}{m}(\sum\limits^m_{i=1}{x_i})^2} w=i=1mxi2m1(i=1mxi)2i=1myi(xixˉ)

b = 1 m ∑ i = 1 m ( y i − w x i ) b = \frac{1}{m}\sum^m_{i=1}{(y_i-wx_i)} b=m1i=1m(yiwxi)

矩阵形式

当我们将数据扩展为矩阵形式, 把 w \boldsymbol{w} w b b b写入向量形式 w = ( w , b ) \boldsymbol{w} = (\boldsymbol{w}, b) w=(w,b), 相应地, 把数据集 D D D表示为一个 m ∗ ( d + 1 ) m*(d+1) m(d+1)大小的矩阵 X \boldsymbol{X} X, 其中每一行代表一个实例,每行前d个元素对应实例中的d个属性, 最后一个元素恒为1.
X = ( x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d 1 ⋮ ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m d 1 ) = ( x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ) \boldsymbol{X} = \begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1d} & 1 \\ x_{21} & x_{22} & \cdots & x_{2d} & 1 \\ \vdots & \vdots & & \vdots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{md} & 1 \\ \end{pmatrix} = \begin{pmatrix} \boldsymbol{x_1}^T & 1 \\ \boldsymbol{x_2}^T & 1 \\ \vdots & \vdots \\ \boldsymbol{x_m}^T & 1 \\ \end{pmatrix} X=x11x21xm1x12x22xm2x1dx2dxmd111=x1Tx2TxmT111

再将输入也写成向量形式

y = ( y 1 , y 2 , ⋯   , y m ) \boldsymbol{y} = (y_1, y_2, \cdots, y_m) y=(y1,y2,,ym)

根据均方差误差最小化原则有:

w ∗ = a r g min ⁡ w ( y − X w ) T ( y − X w ) \boldsymbol{w}^\ast = arg \min_w(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{w})^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{w}) w=argwmin(yXw)T(yXw)

E w = ( y − X w ) T ( y − X w ) \boldsymbol{E_w} = (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{w})^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{w}) Ew=(yXw)T(yXw), 对 w \boldsymbol{w} w求导得到

∂ E w ∂ w = 2 X T ( X w − y ) \frac{\partial\boldsymbol{E_w}}{\partial\boldsymbol{w}} = 2\boldsymbol{X}^{T}(\boldsymbol{X}\boldsymbol{w}-\boldsymbol{y}) wEw=2XT(Xwy)

令其为零可得到 W \boldsymbol{W} W的最优解的闭式解。

以上是当矩阵 X T X X^TX XTX满秩(可逆)时进行的计算, 而实际中, 很多的数据矩阵是非满秩的, 则有可能会解出多个解, 那么选择解由学习算法的归纳偏好决定, 常见做法是引入正则化.

广义线性回归

以上我们针对的是一个简单线性回归的模型, 显然预测得到的标记一定是一个线性的结果.

此时我们实验中获得了一组数据, 通过观察是符合指数函数形式的, 很明显是一个非线性的标记序列, 那这时是否可以使用线性回归呢?

答案是可以的.

我们对标记 y y yln函数, 这时就会发现:

ln ⁡ y = w T x + b \ln{y} = \boldsymbol{w}^{T}\boldsymbol{x} + b lny=wTx+b

这就是对数线性回归, 在形式上我们可以使用线性回归进行表示, 但本质上却实现了非线性回归. 发生这时神奇变化的东西就是ln这个单调可微函数.

由此推到广义线性模型(generalized linear model), 使用单调可微函数 g ( ⋅ ) g(\cdot) g()来将预测值和实际值联系起来.

y = g − 1 ( w T x + b ) y = g^{-1}(\boldsymbol{w}^{T}\boldsymbol{x} + b) y=g1(wTx+b)

3.3 对数几率回归

对数几率回归也就是我们之前经常听说的逻辑回归. 但是逻辑(logistic)其实并不合适, 而对数几率(log odds, logit)才是这个模型的本质, 下面详细介绍.

我们在上面所提到的广义线性回归中, 使用一个特定的函数来代替单调可微函数 g − 1 ( ⋅ ) g^{-1}(\cdot) g1()——sigmoid函数.

y = 1 1 + e − z y = \frac{1}{1+e^{-z}} y=1+ez1
单位阶跃函数与对数几率函数.png
这是一个形如s型曲线的图像, 通过设置不同的阈值, 使得取值被划分为0或1, 所以这也是为什么虽然叫做回归函数, 却经常被用作分类.

模型的表示(模型)

将线性模型带入sigmoid函数中, 可以得到:

y = 1 1 + e − ( w T x + b ) y = \frac{1}{1+e^{-(\boldsymbol{w}^{T}\boldsymbol{x} + b)}} y=1+e(wTx+b)1

通过变化得到:

ln ⁡ y 1 − y = w T x + b \ln{\frac{y}{1-y}} = \boldsymbol{w}^{T}\boldsymbol{x} + b ln1yy=wTx+b

此时很关键的一步:

  • y y y视作样本 x \boldsymbol{x} x为正例的可能性, 用后验概率表示为 p ( y = 1 ∣ x ) p(y=1|\boldsymbol{x}) p(y=1x);
  • 1 − y 1-y 1y视作样本 x \boldsymbol{x} x为反例的可能性, 用后验概率表示为 p ( y = 0 ∣ x ) p(y=0|\boldsymbol{x}) p(y=0x).

我们所谓的"几率"就是 y 1 − y \frac{y}{1-y} 1yy, 反映了x作为正例的相对可能性. 再取对数, 所以就称为对数几率!

最大似然估计(策略)

那么问题回到如何确定模型中的 w \boldsymbol{w} w b b b呢? 我们这里使用最大似然估计来解释, 同样的还可以使用信息论的角度来解释.

根据以上的内容, 可以将模型表达写成:

p ( y = 1 ∣ x ) = e w T x + b 1 + e w T x + b p(y=1|\boldsymbol{x}) = \frac{e^{\boldsymbol{w}^{T}\boldsymbol{x} + b}}{1+e^{\boldsymbol{w}^{T}\boldsymbol{x} + b}} p(y=1x)=1+ewTx+bewTx+b

p ( y = 0 ∣ x ) = 1 1 + e w T x + b p(y=0|\boldsymbol{x}) = \frac{1}{1+e^{\boldsymbol{w}^{T}\boldsymbol{x} + b}} p(y=0x)=1+ewTx+b1

通过极大似然估计法, 并取对数就可以得到:

L ( w , b ) = ∏ i = 1 m p ( y i ∣ x i ; w , b ) l ( w , b ) = ∑ i = 1 m ln ⁡ [ y i p 1 ( x ^ i ; w , b ) + ( 1 − y i ) p 0 ( x ^ i ; w , b ) ] \begin{aligned} L(\boldsymbol{w}, b) &= \prod^m_{i=1}{p(y_i|\boldsymbol{x}_i;w,b)} \\ l(\boldsymbol{w}, b) &= \sum^m_{i=1}{\ln{[y_ip_1(\hat{\boldsymbol{x}}_i;\boldsymbol{w}, b) + (1-y_i)p_0(\hat{\boldsymbol{x}}_i;\boldsymbol{w}, b)]}}\end{aligned} L(w,b)l(w,b)=i=1mp(yixi;w,b)=i=1mln[yip1(x^i;w,b)+(1yi)p0(x^i;w,b)]

其中 p 1 p_1 p1 p ( y = 1 ∣ x ; w , b ) p(y=1|\boldsymbol{x};\boldsymbol{w}, b) p(y=1x;w,b), p 0 p_0 p0 p ( y = 0 ∣ x ; w , b ) p(y=0|\boldsymbol{x};\boldsymbol{w}, b) p(y=0x;w,b).

为了便于讨论, 令 β = ( x ; b ) , x ^ = ( x ; 1 ) \beta=(\boldsymbol{x};b), \hat{\boldsymbol{x}}=(\boldsymbol{x};1) β=(x;b),x^=(x;1), 使得 w T x + b \boldsymbol{w}^{T}\boldsymbol{x} + b wTx+b可以表示为 β T x \beta^T\boldsymbol{x} βTx. 再分别令 y i y_i yi为0或1:

l ( β ) = { ∑ i = 1 m − ln ⁡ ( 1 + e β T x i ) , y i = 0 ∑ i = 1 m β T x i − ln ⁡ ( 1 + e β T x i ) , y i = 1 l(\beta) = \begin{cases} \sum\limits^m_{i=1}{- \ln{(1+e^{\beta^T\boldsymbol{x}_i})}}, \qquad &y_i = 0 \\ \sum\limits^m_{i=1}{\beta^T\boldsymbol{x}_i - \ln{(1+e^{\beta^T\boldsymbol{x}_i})}}, \qquad &y_i = 1 \end{cases} l(β)=i=1mln(1+eβTxi),i=1mβTxiln(1+eβTxi),yi=0yi=1

综合可得如下式子, 并且将其取负数得最小化:

l ( β ) = − ∑ i = 1 m [ y i β T x i − ln ⁡ ( 1 + e β T x i ) ] l(\beta) = -\sum^m_{i=1}{[y_i\beta^T\boldsymbol{x}_i - \ln{(1+e^{\beta^T\boldsymbol{x}_i})}]} l(β)=i=1m[yiβTxiln(1+eβTxi)]

这就是关于 β \beta β的高阶可导凸函数, 使用梯度下降等优化理论方法进行求解即可.

模型的优点

  1. 该模型直接对分类的可能性进行建模, 也没有要求数据分布, 避免假设数据分布带来的不确定性问题;
  2. 而且得到了近似概率预测, 对许多需要利用概率辅助决策的任务有很大的帮助;
  3. 求解的目标函数是任意阶可导的凸函数, 有很好的数学性质, 许多值优化算法都可以用来求解最优解.

3.4 线性判别分析

线性判别分析(linear Discrimination Analysis, LDA)是一种典型的二分类方法.

主要思想是: 在给定的训练样本集中, 试图寻找一条直线, 并让所有的样本点投影到该直线上, 其中同类样本点的投影之间尽可能的接近, 异类样本点的投影之间尽可能远离.当需要对新样本进行分类时, 同样将新样本投影到该直线上, 根据其位置判断属于哪一类.
LDA示意图.png

针对二分类问题(模型)

接下来, 首先对一些符号进行说明. 数据集: D = { ( x i , y i ) } i = 1 m D=\{(\boldsymbol{x}_i,y_i)\}^m_{i=1} D={(xi,yi)}i=1m, 其中标记取值为0或1: y i = { 0 , 1 } y_i=\{0,1\} yi={0,1}, 第 i = { 0 , 1 } i=\{0, 1\} i={0,1}类示例的集合为 X i X_i Xi, 均值向量为 μ i \mu_i μi, 协方差矩阵为 Σ i \Sigma_i Σi.

协方差矩阵 Σ \Sigma Σ(读Sigma)与求和符号 ∑ \sum (读sum)还是不一样的,注意通过上下文进行区分.

协方差矩阵表示的是各个属性之间的相关性, 为0表示不相关. 因此协方差矩阵的大小与属性的个数有关, 而与样本的个数无关.

根据以上对符号的定义,

  1. 将样本点投影到直线上得到: w T μ 0 \boldsymbol{w}^T\mu_0 wTμ0 w T μ 1 \boldsymbol{w}^T\mu_1 wTμ1;
  2. 将所有样本点投影到直线上得到两类样本的协方差为: w T Σ 0 w \boldsymbol{w}^T\Sigma_0\boldsymbol{w} wTΣ0w w T Σ 1 w \boldsymbol{w}^T\Sigma_1\boldsymbol{w} wTΣ1w.

由于我们的目的是使得两类样本之间的距离尽可能的大, 而样本内的距离尽可能的小, 那么就需要使得 ∥ w T μ 0 − w T μ 1 ∥ 2 2 \|\boldsymbol{w}^T\mu_0 - \boldsymbol{w}^T\mu_1\|^2_2 wTμ0wTμ122尽可能的大, 而 w T Σ 0 w + w T Σ 1 w \boldsymbol{w}^T\Sigma_0\boldsymbol{w} + \boldsymbol{w}^T\Sigma_1\boldsymbol{w} wTΣ0w+wTΣ1w尽可能的小.

∥ X ∥ 2 2 这 叫 做 二 范 数 的 平 方 , 表 示 向 量 之 间 的 距 离 , 可 以 使 用 向 量 的 内 积 进 行 计 算 \|X\|^2_2这叫做二范数的平方, 表示向量之间的距离, 可以使用向量的内积进行计算 X22,,使

我们需要注意 ⚠️ ! 我们的目的是为了求出投影直线的方向, 所以 w \boldsymbol{w} w的大小无关紧要, 这也是下面很多步骤中的必要条件.

损失函数(策略)

同时考虑以上两者, 可以得到我们的最大化目标:

max ⁡ J = ∥ w T μ 0 − w T μ 1 ∥ 2 2 w T Σ 0 w + w T Σ 1 w = ∥ ( μ 0 − μ 1 ) T w ∥ 2 2 w T ( Σ 0 + Σ 1 ) w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w \begin{aligned} \max J &= \frac{\|\boldsymbol{w}^T\mu_0 - \boldsymbol{w}^T\mu_1\|^2_2}{\boldsymbol{w}^T\Sigma_0\boldsymbol{w} + \boldsymbol{w}^T\Sigma_1\boldsymbol{w}} \\ &= \frac{\|(\mu_0-\mu_1)^T\boldsymbol{w}\|^2_2}{\boldsymbol{w}^T(\Sigma_0+\Sigma_1)\boldsymbol{w}} \\ &= \frac{w^T (\mu_0-\mu_1)(\mu_0-\mu_1)^T \boldsymbol{w}}{\boldsymbol{w}^T(\Sigma_0+\Sigma_1)\boldsymbol{w}} \end{aligned} maxJ=wTΣ0w+wTΣ1wwTμ0wTμ122=wT(Σ0+Σ1)w(μ0μ1)Tw22=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)Tw

并定义"类内散度矩阵"(within-class scatter matrix):
S w = Σ 0 + Σ 1 \boldsymbol{S}_w = \Sigma_0 + \Sigma_1 Sw=Σ0+Σ1, “类间散度矩阵”(between-class scatter matrix): S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T \boldsymbol{S}_b = (\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0μ1)(μ0μ1)T.

那么上式可以表示为:

max ⁡ J = w T S b w w T S w w \max J = \frac{\boldsymbol{w}^T \boldsymbol{S}_b \boldsymbol{w}}{\boldsymbol{w}^T \boldsymbol{S}_w \boldsymbol{w}} maxJ=wTSwwwTSbw

以上这个最大化的目标函数其实就是 S b \boldsymbol{S}_b Sb S w \boldsymbol{S}_w Sw的"广义瑞利商".

并注意到我们需要求解的 w \boldsymbol{w} w只与方向有关, 而与大小无关, 那么不失一般性的, 可以令分母 w T S w w = 1 \boldsymbol{w}^T \boldsymbol{S}_w \boldsymbol{w}=1 wTSww=1, 由此等价于:

min ⁡ w − w T S b w s . t . w T S w w = 1 \begin{aligned} \min_{\boldsymbol{w}}\quad&{-\boldsymbol{w}^T \boldsymbol{S}_b \boldsymbol{w}} \\ s.t. \quad &\boldsymbol{w}^T \boldsymbol{S}_w \boldsymbol{w}=1 \end{aligned} wmins.t.wTSbwwTSww=1

拉格朗日乘子法(求解)

关于这种仅含有等式约束的问题, 可以使用拉格朗日乘子法进行求解.

即, 可得:

L ( w , λ ) = − w T S b w + λ ( w T S w w − 1 ) L(\boldsymbol{w}, \lambda) = -\boldsymbol{w}^T \boldsymbol{S}_b \boldsymbol{w} + \lambda(\boldsymbol{w}^T \boldsymbol{S}_w \boldsymbol{w} - 1) L(w,λ)=wTSbw+λ(wTSww1)

再对 w \boldsymbol{w} w求偏导可得:

∂ L ( w , λ ) ∂ w = − ( S b + S b T ) w + λ ( S w + S w T ) w \frac{\partial{L(\boldsymbol{w}, \lambda)}}{\partial{\boldsymbol{w}}} = -(\boldsymbol{S}_b+\boldsymbol{S}_b^T)\boldsymbol{w} + \lambda(\boldsymbol{S}_w+\boldsymbol{S}_w^T)\boldsymbol{w} wL(w,λ)=(Sb+SbT)w+λ(Sw+SwT)w

令等式为0可得:

S b w = λ S w w \boldsymbol{S}_b\boldsymbol{w} = \lambda\boldsymbol{S}_w\boldsymbol{w} Sbw=λSww

因为 ( μ 0 − μ 1 ) T w (\mu_0-\mu_1)^T\boldsymbol{w} (μ0μ1)Tw为实数, 所以 S b w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w \boldsymbol{S}_b\boldsymbol{w} = (\mu_0-\mu_1)(\mu_0-\mu_1)^T\boldsymbol{w} Sbw=(μ0μ1)(μ0μ1)Tw的方向恒为 ( μ 0 − μ 1 ) (\mu_0-\mu_1) (μ0μ1), 所以可以解得:

w = S w − 1 ( μ 0 − μ 1 ) \boldsymbol{w} = \boldsymbol{S}^{-1}_w(\mu_0-\mu_1) w=Sw1(μ0μ1)

可以发现, 我们求得的 w \boldsymbol{w} w的值, 就是 S b \boldsymbol{S}_b Sb对应于 S b \boldsymbol{S}_b Sb的广义特征值对应的特征向量

多分类问题

而多分类的问题中, 只不过是求矩阵 W \boldsymbol{W} W, 使得 S b W = λ S w W \boldsymbol{S}_b\boldsymbol{W} = \lambda\boldsymbol{S}_w\boldsymbol{W} SbW=λSwW.

我们将 W \boldsymbol{W} W拆分为多个二分类问题可得: W = { w 1 , w 1 , … , w n } \boldsymbol{W} = \{\boldsymbol{w}_1, \boldsymbol{w}_1, \dots, \boldsymbol{w}_n\} W={w1,w1,,wn}, 结合广义特征值与广义瑞利商的性质可以得到 W \boldsymbol{W} W其实就是 S b \boldsymbol{S}_b Sb相对于 S w \boldsymbol{S}_w Sw最大的非零广义特征值所对应的特征向量组成的矩阵!

个人收获

  1. 从单纯的线性模型, 推广到广义的线性模型, 再引出特殊的对数几率回归模型. 从特殊到一般再到特殊的方式, 很好的理清楚了简单线性回归和逻辑回归之间的关系.
  2. 逻辑回归真正的名字应该是对数几率回归, 这对记忆和理解模型都有更好的可解释性.
  3. 公式的推导依旧有难度, 目前处于抛开书想不到怎么推, 但结合西瓜书和南瓜书还是能够看懂推导过程.

继续加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值