前言
机器学习已经学到线性模型了,今天课上讲了两个方法,一个是对单一属性线性回归使用的最小二乘法,一个是对多元回归使用的极大似然法。老师过的太快了没有怎么搞明白,尤其是其中的推导,大量的“易证”,实际上还是需要些步骤的。因此今天我就来把这两个方法中的一些解方程的步骤写一下
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=1mxi2−∑i=1m(yi−b)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 ∂b∂E(ω,b)=2(mb−∑i=1m(yi−wxi))=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=m1∑i=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=1mxi2−∑i=1myixi+b∑i=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+m1∑i=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+m1∑i=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=1mxi2−m1(∑i=1mxi)2)=∑i=1myixi−m1∑i=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=1mxi2−m1(∑i=1mxi)2∑i=1myi(xi−x均),其中 x 均 = 1 m ∑ i = 1 m x i x_均=\frac{1}{m}\sum_{i=1}^m x_i x均=m1∑i=1mxi
2. 对数几率回归——极大似然法
2.1 对数几率函数
对于二分类问题,假定其预测值与输出标记有如下关系:
z = ω T x + b z=\omega^Tx+b z=ωTx+b, y ∈ 0 , 1 y\in {0,1} y∈0,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+e−z1=1+e−(ωTx+b)1
我们称上述函数为对数几率函数,注意到这是一个单调可微、任意阶可导的广义线性模型函数
2.2 对数几率
我们可以用上述函数去求取对数几率,即样本作为正例的相对可能性的对数:
ln y 1 − y \ln \frac{y}{1-y} ln1−yy
对于二分类问题来说,即
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=0∣x)p(y=1∣x)=ωTx+b
注意到 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x)和 p ( y = 0 ∣ x ) p(y=0|x) p(y=0∣x)之和为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=1∣x)=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=0∣x)=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=1∣x′;β)
p 0 ( x i ′ ; β ) = p ( y = 0 ∣ x ′ ; β ) p_0(x_i';\beta)=p(y=0|x';\beta) p0(xi′;β)=p(y=0∣x′;β)
这样一来,就有似然函数:
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′;β)1−yi
取对数:
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(yi∣xi;ω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(yi∣xi;ω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′;β)1−yi]}
=
∑
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′;β)]+(1−yi)ln[1−p1(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[1−p1(xi′;β)]}+ln[1−p1(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{yiln1−p1(xi′;β)p1(xi′;β)+ln[1−p1(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βTx′1)
=
∑
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βTx′−ln(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′)]}
结语
上面这堆公式打的我眼睛都花了,好在这下真的弄明白这两种算法是怎么来的了