【学习机器学习】线性模型相关方程求解

前言

机器学习已经学到线性模型了,今天课上讲了两个方法,一个是对单一属性线性回归使用的最小二乘法,一个是对多元回归使用的极大似然法。老师过的太快了没有怎么搞明白,尤其是其中的推导,大量的“易证”,实际上还是需要些步骤的。因此今天我就来把这两个方法中的一些解方程的步骤写一下

1. 单一属性线性回归——最小二乘法中 ω \omega ω和b求解

方程组:

∂ E ( ω , b ) ∂ ω = 2 ( ω ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) = 0 \frac{\partial E_(\omega,b)}{\partial \omega}=2(\omega \sum_{i=1}^{m} x_i^2-\sum_{i=1}^{m} (y_i-b)x_i)=0 ωE(ω,b)=2(ωi=1mxi2i=1m(yib)xi)=0…(1)

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

由(2)式可得,

b = 1 m ∑ i = 1 m ( y i − ω x i ) b=\frac{1}{m} \sum_{i=1}^{m}(y_i-\omega x_i) b=m1i=1m(yiωxi)

将其带入(1)式,则有

ω ∑ i = 1 m x i 2 − ∑ i = 1 m y i x i + b ∑ i = 1 m x i = 0 \omega \sum_{i=1}^m x_i^2 - \sum_{i=1}^m y_ix_i + b \sum_{i=1}^m x_i=0 ωi=1mxi2i=1myixi+bi=1mxi=0

ω ∑ i = 1 m x i 2 + 1 m ∑ i = 1 m ( y i − ω x i ) ∑ i = 1 m x i = ∑ i = 1 m y i x i \omega \sum_{i=1}^m x_i^2 + \frac{1}{m} \sum_{i=1}^{m}(y_i-\omega x_i) \sum_{i=1}^m x_i=\sum_{i=1}^m y_ix_i ωi=1mxi2+m1i=1m(yiωxi)i=1mxi=i=1myixi

ω ∑ i = 1 m x i 2 + 1 m ∑ i = 1 m ( y i x i ) − ω m ( ∑ i = 1 m x i ) 2 = ∑ i = 1 m y i x i \omega \sum_{i=1}^m x_i^2 + \frac{1}{m} \sum_{i=1}^{m}(y_i x_i) - \frac{\omega}{m}( \sum_{i=1}^m x_i)^2=\sum_{i=1}^m y_ix_i ωi=1mxi2+m1i=1m(yixi)mω(i=1mxi)2=i=1myixi

ω ( ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 ) = ∑ i = 1 m y i x i − 1 m ∑ i = 1 m y i x i \omega(\sum_{i=1}^m x_i^2 - \frac{1}{m} (\sum_{i=1}^m x_i)^2)=\sum_{i=1}^m y_ix_i - \frac{1}{m} \sum_{i=1}^m y_ix_i ω(i=1mxi2m1(i=1mxi)2)=i=1myixim1i=1myixi

得, ω = ∑ i = 1 m y i ( x i − x 均 ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 \omega = \frac{\sum_{i=1}^m y_i(x_i-x_均)}{\sum_{i=1}^m x_i^2 - \frac{1}{m}(\sum_{i=1}^m x_i)^2} ω=i=1mxi2m1(i=1mxi)2i=1myi(xix),其中 x 均 = 1 m ∑ i = 1 m x i x_均=\frac{1}{m}\sum_{i=1}^m x_i x=m1i=1mxi

2. 对数几率回归——极大似然法

2.1 对数几率函数

对于二分类问题,假定其预测值与输出标记有如下关系:

z = ω T x + b z=\omega^Tx+b z=ωTx+b y ∈ 0 , 1 y\in {0,1} y0,1

最理想的函数——单位阶跃函数:

y = 0 , z < 0 y=0, z<0 y=0,z<0
y = 0.5 , z = 0 y=0.5, z=0 y=0.5,z=0
y = 1 , z > 0 y=1, z>0 y=1,z>0

但是这是一个离散的函数,我们可以用一个与其等价的替代函数来表示,即:

y = 1 1 + e − z = 1 1 + e − ( ω T x + b ) y=\frac{1}{1+e^{-z}}=\frac{1}{1+e^{-(\omega^Tx+b)}} y=1+ez1=1+e(ωTx+b)1

我们称上述函数为对数几率函数,注意到这是一个单调可微、任意阶可导的广义线性模型函数

2.2 对数几率

我们可以用上述函数去求取对数几率,即样本作为正例的相对可能性的对数:

ln ⁡ y 1 − y \ln \frac{y}{1-y} ln1yy

对于二分类问题来说,即

ln ⁡ p ( y = 1 ∣ x ) p ( y = 0 ∣ x ) = ω T x + b \ln \frac{p(y=1|x)}{p(y=0|x)}=\omega^Tx+b lnp(y=0x)p(y=1x)=ωTx+b

注意到 p ( y = 1 ∣ x ) p(y=1|x) p(y=1x) p ( y = 0 ∣ x ) p(y=0|x) p(y=0x)之和为1,因此可以解得 p ( y = 1 ∣ x ) = e ω T x + b 1 + e ω T x + b p(y=1|x)=\frac{e^{\omega^Tx+b}}{1+e^{\omega^Tx+b}} p(y=1x)=1+eωTx+beωTx+b p ( y = 0 ∣ x ) = 1 1 + e ω T x + b p(y=0 | x)=\frac{1}{1+e^{\omega^Tx+b}} p(y=0x)=1+eωTx+b1

2.3 对数几率回归——极大似然法

极大似然法是一种参数估计法,也就是通过部分观测值,反推导致这样结果的参数的一种方法。我们做线性回归,就是为了得出一组系数和截距,使得 f ( x i ) = ω T x i + b f(x_i)=\omega^Tx_i+b f(xi)=ωTxi+b成立,因此下面我们采用极大似然法,通过一组给定的数据集,去反推出系数与截距 ω \omega ω b b b

首先我们对原式做一些修改,令 β = ( ω ; b ) \beta = (\omega ; b) β=(ω;b) x ′ = ( x ; 1 ) x'=(x;1) x=(x;1),则 ω T x + b \omega^Tx+b ωTx+b可简写为 β T x ′ \beta^Tx' βTx β \beta β实际上就是一个系数、截距矩阵,我们去构造关于 β \beta β的似然函数

再令

p 1 ( x i ′ ; β ) = p ( y = 1 ∣ x ′ ; β ) p_1(x_i';\beta)=p(y=1|x';\beta) p1(xi;β)=p(y=1x;β)

p 0 ( x i ′ ; β ) = p ( y = 0 ∣ x ′ ; β ) p_0(x_i';\beta)=p(y=0|x';\beta) p0(xi;β)=p(y=0x;β)

这样一来,就有似然函数:

l ( ω , b ) = ∏ i = 1 m p 1 ( x i ′ ; β ) y i p 0 ( x i ′ ; β ) 1 − y i l(\omega,b)=\prod_{i=1}^m p_1(x_i';\beta)^{y_i}p_0(x_i';\beta)^{1-y_i} l(ω,b)=i=1mp1(xi;β)yip0(xi;β)1yi

取对数:

l ( ω , b ) = ∑ i = 1 m ln ⁡ p ( y i ∣ x i ; ω i , b ) l(\omega,b)=\sum_{i=1}^m \ln p(y_i|x_i;\omega_i,b) l(ω,b)=i=1mlnp(yixi;ωi,b)

l ( ω , b ) l(\omega,b) l(ω,b)
= ∑ i = 1 m [ ln ⁡ p ( y i ∣ x i ; ω i , b ) ] =\sum_{i=1}^m [\ln p(y_i|x_i;\omega_i,b)] =i=1m[lnp(yixi;ωi,b)]
= ∑ i = 1 m { ln ⁡ [ p 1 ( x i ′ ; β ) y i + ln ⁡ p 0 ( x i ′ ; β ) 1 − y i ] } = \sum_{i=1}^m\left\{ \ln [p_1(x_i';\beta)^{y_i}+ \ln p_0(x_i';\beta)^{1-y_i}]\right\} =i=1m{ln[p1(xi;β)yi+lnp0(xi;β)1yi]}
= ∑ i = 1 m { y i ln ⁡ [ p 1 ( x i ′ ; β ) ] + ( 1 − y i ) ln ⁡ [ 1 − p 1 ( x i ′ ; β ) ] } = \sum_{i=1}^m\left\{ y_i \ln[p_1(x_i';\beta)]+ (1-y_i) \ln [1-p_1(x_i';\beta)]\right\} =i=1m{yiln[p1(xi;β)]+(1yi)ln[1p1(xi;β)]}
= ∑ i = 1 m { y i { ln ⁡ [ p 1 ( x i ′ ; β ) ] − ln ⁡ [ 1 − p 1 ( x i ′ ; β ) ] } + ln ⁡ [ 1 − p 1 ( x i ′ ; β ) ] } = \sum_{i=1}^m \left\{y_i \left\{\ln[p_1(x_i';\beta)] - \ln [1-p_1(x_i';\beta)]\right\} + \ln [1-p_1(x_i';\beta)]\right\} =i=1m{yi{ln[p1(xi;β)]ln[1p1(xi;β)]}+ln[1p1(xi;β)]}
= ∑ i = 1 m { y i ln ⁡ p 1 ( x i ′ ; β ) 1 − p 1 ( x i ′ ; β ) + ln ⁡ [ 1 − p 1 ( x i ′ ; β ) ] } = \sum_{i=1}^m \left\{y_i \ln \frac{p_1(x_i';\beta)}{1-p_1(x_i';\beta)} + \ln [1-p_1(x_i';\beta)]\right\} =i=1m{yiln1p1(xi;β)p1(xi;β)+ln[1p1(xi;β)]}
= ∑ i = 1 m ( y i ln ⁡ e β T x ′ + ln ⁡ 1 1 + e β T x ′ ) = \sum_{i=1}^m (y_i \ln e^{\beta^Tx'} + \ln \frac{1}{1+e^{\beta^Tx'}}) =i=1m(yilneβTx+ln1+eβTx1)
= ∑ i = 1 m [ y i β T x ′ − ln ⁡ ( 1 + e β T x ′ ) ] = \sum_{i=1}^m [y_i \beta^Tx' - \ln (1+e^{\beta^Tx'})] =i=1m[yiβTxln(1+eβTx)]

因此我们的目标结果也就是:

β ∗ = a r g m a x [ l ( β ) ] = a r g m i n [ − l ( β ) ] = a r g m i n { ∑ i = 1 m [ − y i β T x ′ + ln ⁡ ( 1 + e β T x ′ ) ] } \beta^*=argmax[l(\beta)]=argmin[-l(\beta)]=argmin\left\{\sum_{i=1}^m [-y_i \beta^Tx' + \ln (1+e^{\beta^Tx'})]\right\} β=argmax[l(β)]=argmin[l(β)]=argmin{i=1m[yiβTx+ln(1+eβTx)]}

结语

上面这堆公式打的我眼睛都花了,好在这下真的弄明白这两种算法是怎么来的了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值