线性模型

最近在读《机器学习》——周志华的西瓜书, 打卡学习——2019年05月16日

线性模型

  1. 基本形式:

给定由 d d d个属性描述的示例 x = ( x 1 ; x 2 ; . . . ; x i ) x =(x_1; x_2;...;x_i) x=(x1;x2;...;xi),其中 x i x_i xi

x x x在第$ i$个的属性上的取值,一般式为:
(1) f ( x ) = w 1 x 1 + w 2 x 2 + . . . + w i x i f(x)= w_1x_1 +w_2x_2+...+w_ix_i\tag{1} f(x)=w1x1+w2x2+...+wixi(1)
即:
(2) f ( x ) = w T x + b f(x)=w^Tx+b\tag{2} f(x)=wTx+b(2)

  1. 线性回归:

给定数据集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x i , y i ) D={(x_1, y_1), (x_2,y_2 ), …,(x_i, y_i)} D=(x1,y1),(x2,y2),,(xi,yi),其中 x i = ( x i 1 ; x i 2 ; … ; x i d ) , y ∈ R x_i=(x_{i1}; x_{i2};…;x_{id}), y\in R xi=(xi1;xi2;;xid),yR。"线性回归"试图学的一个线性模型以尽可能准确的预测输出标记。线性回归试图学得:
(3) f ( x i ) = w x i + b , 使 得 f ( x i ) ≃ y i f(x_i) = wx_i +b,使得f(x_i)\simeq y_i\tag{3} f(xi)=wxi+b,使f(xi)yi(3)
我们使用均方误差衡量 f ( x i ) f( x_i) f(xi) y y y之间的关系, 以求得 w w w b b b, 均方误差最小化, 即
(4) ( w ∗ , b ∗ ) = a r g m i n ∑ i = 1 m ( f ( x i ) − y i ) 2 = a r g m i n ∑ i = 1 m ( y i − w x i − b ) 2 (w^*, b^*) = argmin\sum_{i=1}^m(f(x_i)-y_i)^2 \\ =argmin\sum_{i= 1}^{m}(y_i-wx_i-b)^2\tag{4} w,b=argmini=1m(f(xi)yi)2=argmini=1m(yiwxib)2(4)
基于均方误差最小化来进行模型求解的方法称为“最小二乘”, 最小二乘试图找到一条直线,使所有的样本到直线上的欧式距离之和最小。

求解 w w w b b b 使 E ( w , b ) = ∑ i = 1 m ( y − w x i − b ) 2 E_{(w,b)}=\sum_{i=1}^m(y-wx_i-b)^2 E(w,b)=i=1m(ywxib)2最小化的过程,成为线性回归模型的最小二乘“参数估计”, 将 E w , b E_{w,b} Ew,b分别对 w w w b b b求导:
(5) ∂ E w , b ∂ w = 2 ( w ∑ i = 1 m x i 3 − ∑ i = 1 m ( y i − b ) x i ) , \frac{\partial E_{w, b}}{\partial w}=2(w\sum_{i=1}^mx^3_i -\sum_{i=1}^m(y_i-b)x_i),\tag{5} wEw,b=2(wi=1mxi3i=1m(yib)xi),(5)

(6) ∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \frac{\partial E_{(w, b)}}{\partial{b}}=2(mb-\sum_{i=1}^m(y_i-wx_i))\tag{6} bE(w,b)=2(mbi=1m(yiwxi))(6)

​ 令式(5)、(6)为0, 可得 w w w b b b最优的闭解:
(7) 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_{i=1}^m(y_i(x_i- \bar{x})}{\sum_{i=1}^m x_i^2 -\frac{1}{m}(\sum_{i=1}^m x_i)^2} \tag{7} w=i=1mxi2m1(i=1mxi)2i=1m(yi(xixˉ)(7)

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

​ 其中 x ˉ = 1 m ∑ i = 1 m x i \bar{x} =\frac{1}{m}\sum_{i=1}^m x_i xˉ=m1i=1mxi x x x的均值。

​ 同时数据集 D D D ,样本由多个 d d d个属性描述, 此时 f ( x i ) = w T x + b , f ( x i ) ≃ y i f(x_i)= w^Tx+b, f(x_i)\simeq y_i f(xi)=wTx+b,f(xi)yi 为“多元线性回归”

​ 将(4)式写成矩阵的形式,即:
(9) w ∗ ^ = a r g m i n ( y − X w ^ ) T ( y − X w ^ ) \hat{w^*}= argmin(y-X\hat{w})^T(y-X\hat{w}) \tag{9} w^=argmin(yXw^)T(yXw^)(9)
​ 对$ \hat{w}$求导得:
(10) ∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) \frac{\partial E_{\hat{w}}}{\partial \hat{w}}= 2X^T(X\hat{w}-y)\tag{10} w^Ew^=2XT(Xw^y)(10)
​ 当 X T X X^ TX XTX为满秩矩阵或者正定矩阵时, (10)式可得闭解, 即:
w ^ ∗ = ( X T X ) − 1 X T y \hat{w}^*= (X^TX)^{-1}X^Ty w^=(XTX)1XTy
​ 当 X T X X^TX XTX不是满秩矩阵时, 需要引入正则化项。

  1. 对数几率回归(逻辑回归)

    对于二元分类问题, 其输出得标记 y ∈ { 0 , 1 } y \in \{0, 1\} y{0,1},而线性回归模型产生得预测值 z = w T x + b z=w^Tx +b z=wTx+b是实值, 最理想得是“单位阶跃函数”,由于其不是单调可微的。但是对数几率函数常用的替代函数, 它将 z z z值转化成一个接近0或1的 y y y值, 并且其输出值再 z = 0 z=0 z=0附近变化很陡。
    (11) y = 1 1 + e − z y=\frac{1}{1+e^{-z}}\tag{11} y=1+ez1(11)
    即:
    (12) y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(w^Tx+b)}}\tag{12} y=1+e(wTx+b)1(12)

对(12)式取对数,
(13) l n y 1 − y = w T x + b ln\frac{y}{1-y} = w^Tx+b\tag{13} ln1yy=wTx+b(13)
若将 y y y视为样本 x x x作为正例的可能性, 则 1 − y 1-y 1y是其反例的可能性, 两者的比值
(14) y 1 − y \frac{y}{1-y}\tag{14} 1yy(14)
称为"几率", 反应了 x x x作为正例的可能性, 对几率取对数则可以得到“对数几率”
(15) l n y 1 − y ln\frac{y}{1-y}\tag{15} ln1yy(15)
“对数几率回归”实际是一种分类学习方法, 可以直接对分类可能性进行建模, 无需假设数据分布, 他不仅预测出“类别”, 而且还可得到近似概率预测。

  1. 线性判别分析

    线性判别分析(Linear Discriminant Analysis 简称LDA)是一种经典的线性学习方法,最早称"Fisher 判别分析"。

    LDA的思想很朴素: 给定训练样例集, 设法将样例投影到一条直线上, 使得同类样例的投影点尽可能接近, 异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影在这条直线上, 再根据投影点的位置来确定新的样本类别。

    数据集: D = { ( x i , y i ) } i = 1 m D=\{(x_i, y_i)\}^m_{i=1} D={(xi,yi)}i=1m, y i = { 0 , 1 } y_i=\{0, 1\} yi={0,1}, 令 X i , μ i , Σ i X_i, \mu_i, \Sigma_i Xi,μi,Σi分别表示第 i ∈ { 0 , 1 } i\in \{0, 1\} i{0,1}类实例的集合,均值向量, 协方差矩阵。

    样本在直线上的投影为 w T μ 0 , w T μ 1 w^T\mu_0,w^T\mu_1 wTμ0,wTμ1, 协方差为: w T Σ 0 w , w T Σ 1 w w^T\Sigma_0w, w^T\Sigma_1w wTΣ0w,wTΣ1w


    欲使同类的投影点尽可能接近, 可以让同类的投影点的协方差尽可能小 ( w T Σ 0 w + w T Σ 1 w w^T\Sigma_0 w+w^T\Sigma_1 w wTΣ0w+wTΣ1w), 而欲使异类样例的投影点尽可能远离, 可以让类中心的距离尽可能大( ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^T\mu_0 -w^T\mu_1||^2_2 wTμ0wTμ122)尽可能大, 同时考虑两者, 则可得到最大化目标:
    (16) J = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T Σ 0 w + w T Σ 1 w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) w w T ( Σ 0 + Σ 1 ) w J=\frac{||w^T\mu_0 -w^T\mu_1||^2_2}{w^T\Sigma_0 w+w^T\Sigma_1 w}\\ =\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)w}{w^T(\Sigma_0+\Sigma_1)w}\tag{16} J=wTΣ0w+wTΣ1wwTμ0wTμ122=wT(Σ0+Σ1)wwT(μ0μ1)(μ0μ1)w(16)
    定义“类内散度矩阵”
    (17) S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T S_w=\Sigma_0+\Sigma_1\\ =\sum_{x\in X_0}(x-\mu_0)(x-\mu_0)^T+\sum_{x\in X_1}(x-\mu_1)(x-\mu_1)^T\tag{17} Sw=Σ0+Σ1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T(17)

以及“内间散度矩阵”
(18) S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b =(\mu_0-\mu_1)(\mu_0-\mu_1)^T \tag{18} Sb=(μ0μ1)(μ0μ1)T(18)

(19) J = w T S b w w T S w w J=\frac{w^TS_bw}{w^TS_ww}\tag{19} J=wTSwwwTSbw(19)
这就是LDA欲最大化的目标, 即 S b S_b Sb, S w S_w Sw的“广义瑞利商”, 分子和分母都是关于 w w w的二次项, 因此式(19)的解和 w w w的长度无关, 只与其方向有关,不失一般性, 令 w T S w w = 1 w^TS_ww =1 wTSww=1

即:
(20) m i n w − w T S b w s . t . w T S w w = 1 min_{w} -w^TS_bw\\ s.t. w^TS_ww =1\tag{20} minwwTSbws.t.wTSww=1(20)
由拉格朗日乘子, S b w = λ S w w S_bw=\lambda S_ww Sbw=λSww, 其中 λ \lambda λ是拉格朗日乘子 ,注意到 S b w S_bw Sbw的方向恒为 μ 0 − μ 1 \mu_0-\mu_1 μ0μ1, 不妨令:
S b w = λ ( μ 0 − μ 1 ) S_bw=\lambda (\mu_0-\mu_1) Sbw=λ(μ0μ1)
即得:
w = S w − 1 ( μ 0 − μ 1 ) w=S_w^{-1}(\mu_0-\mu_1) w=Sw1(μ0μ1)
使用奇异值分解 S w S_w Sw, 即 S w = U Σ V T S_w=U\Sigma V^T Sw=UΣVT, 再由
S w − 1 = V Σ − 1 U T S_w^{-1}=V\Sigma^{-1}U^T Sw1=VΣ1UT
可以将LDA推广到多分类任务中, 假定存在 N N N个类, 且第 i i i类示例数为 m i m_i mi,我们先定义“全局散度矩阵”
S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T S_t = S_b+S_w\\ =\sum_{i=1}^m(x_i-\mu)(x_i-\mu)^T St=Sb+Sw=i=1m(xiμ)(xiμ)T
其中 μ \mu μ是所有样例的均值, 将类内散度矩阵 S w Sw Sw重定义为每个类别的散度矩阵之和,即
S w = ∑ i = 1 n S w i S w i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T S_w=\sum^n_{i=1}S_{w_i}\\ S_{w_i}=\sum_{x\in X_i}(x-\mu_i)(x-\mu_i)^T Sw=i=1nSwiSwi=xXi(xμi)(xμi)T
可得:
S b = S t − S w S_b=S_t-S_w Sb=StSw
可以使用多种实现方法使用 S b , S w , S t S_b, S_w, S_t Sb,Sw,St三者中的任何两种即可。常见的一种实现是采用优化目标
(21) m a x t r ( W T S b W ) t r ( W T S w W ) max\frac{tr(W^TS_bW)}{tr(W^TS_wW)}\tag{21} maxtr(WTSwW)tr(WTSbW)(21)
可通过广义特征值问题求解:
S b W = λ S w W S_bW=\lambda S_wW SbW=λSwW
W W W的闭解形式是 S w − 1 S b S^{-1}_wS_b Sw1Sb N − 1 N-1 N1个最大广义特征值所对应的特征向量组成的矩阵。

  1. 多分类学习

    不失一般性, 考虑 N N N个类别 C 1 , C 2 , . . . . , C N C_1, C_2, ...., C_N C1,C2,....,CN多分类学习的基本思路是“拆解法”, 最经典的拆分策略有三种:“一对一”(One vs. One 简称OvO)、“一对其余”(One vs. Rest 简称 OvR)和“多对多”(Many vs. Many 简称MvM).

    OvO将这 N N N个类别两两配对, 从而产生 N ( N − 1 ) / 2 N(N-1)/2 N(N1)/2个二元分类任务。

    OvR 则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器。

    MvM是每次将若干个类作为正类, 若干个其他类作为反类。MVM技术常用的叫“纠错输出码”,由于纠错编码实用性不强,所以在这里不过多介绍。

    接下来我会找一些编程题来实现对线性回归算法的复盘。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值