线性回归
线性回归使用线性模型去拟合数据集,进行预测。线性回归的预测函数的一般形式为:
f
(
x
)
=
Σ
i
=
0
n
w
i
x
i
+
b
f(\bold x) = \Sigma_{i=0}^n w_ix_i +b
f(x)=Σi=0nwixi+b
用 x i \bold x_i xi表示第i个样本的特征,如果样本有m个特征,则 x i \bold x_i xi为一个m为特征向量 x i = [ x 1 ( i ) x 2 ( i ) . . . x m ( i ) ] T \bold x_i=[x_1^{(i)} \ x_2^{(i)} \ ... \ x_m^{(i)}]^\bold T xi=[x1(i) x2(i) ... xm(i)]T。对应的参数 w \bold w w则也为一个m维向量, w = [ w 1 w 2 . . . w m ] T \bold w=[w_1 \ w_2 \ ... \ w_m]^\bold T w=[w1 w2 ... wm]T,则线性回归表达式可以写成矩阵形式:
f ( x ) = w T x + b f(\bold x) = \bold{w^Tx}+b f(x)=wTx+b
最小二乘估计
用 ( x i , y i ) (\bold x_i, y_i) (xi,yi)表示为第i个样本, x i , y i \bold{x_i}, y_i xi,yi分别为其特征和真实类别。
线性回归模型中,参数w的最优值为:
w ∗ = a r g m i n w Σ i = 0 n ( y i − f ( x i ) ) 2 \bold w^* = \underset{w}{argmin} \Sigma_{i=0}^n(y_i-f(\bold x_i))^2 w∗=wargminΣi=0n(yi−f(xi))2
使用最小二乘法对w和b进行估计。找到一条直线,使得均方误差 E = 1 2 Σ i = 0 n ( y i − f ( x i ) ) 2 E=\frac{1}{2}\Sigma_{i=0}^n(y_i-f(\bold x_i))^2 E=21Σi=0n(yi−f(xi))2最小(为了计算方便对其乘了1/2)。对 w \bold w w中的每个参数求偏导数,并令其偏导数为0。
∂ E ∂ w k = − Σ i = 0 n ( ( y i − ( Σ j = 0 m w j x j ( i ) + b ) ) x k ( i ) ) = − Σ i = 0 n ( ( y i − f ( x i ) ) x k ( i ) ) = 0 \begin{aligned} \frac{\partial{E}}{\partial{w_k}} &=-\Sigma_{i=0}^n((y_i-(\Sigma_{j=0}^mw_jx_j^{(i)}+b))x_k^{(i)})\\ &=-\Sigma_{i=0}^n((y_i-f(\bold {x_i}))x_k^{(i)})=0 \end{aligned} ∂wk∂E=−Σi=0n((yi−(Σj=0mwjxj(i)+b))xk(i))=−Σi=0n((yi−f(xi))xk(i))=0
将其写为矩阵形式,
X = [ x 1 ( 1 ) x 2 ( 1 ) . . . x m ( 1 ) 1 x 1 ( 2 ) x 2 ( 2 ) . . . x m ( 2 ) 1 ⋮ ⋮ x 1 ( n ) x 2 ( n ) . . . x m ( n ) 1 ] = [ x 1 T 1 x 2 T 1 ⋮ ⋮ x m T 1 ] \bold X = \left[\begin{matrix} x_1^{(1)} & x_2^{(1)} & ... & x_m^{(1)} & 1\\ x_1^{(2)} & x_2^{(2)} & ... & x_m^{(2)} & 1 \\ \vdots & \vdots\\ x_1^{(n)} & x_2^{(n)} & ... & x_m^{(n)} & 1 \end{matrix}\right] =\left[\begin{matrix} \bold x_1^\bold T & 1\\ \bold x_2^\bold T & 1 \\ \vdots & \vdots\\ \bold x_m^\bold T & 1 \end{matrix}\right] X=⎣⎢⎢⎢⎢⎡x1(1)x1(2)⋮x1(n)x2(1)x2(2)⋮x2(n).........xm(1)xm(2)xm(n)111⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1Tx2T⋮xmT11⋮1⎦⎥⎥⎥⎤
w = [ w 1 w 2 . . . w m b ] T \bold w=[w_1 \ w_2 \ ... \ w_m \ b]^\bold T w=[w1 w2 ... wm b]T
y = [ y 1 y 2 . . . y n ] T \bold y=[y_1 \ y_2 \ ... \ y_n]^\bold T y=[y1 y2 ... yn]T
线性回归模型中,参数w的最优值为:
w
∗
=
a
r
g
m
i
n
w
(
y
−
X
w
)
T
(
y
−
X
w
)
\bold w^* = \underset{w}{argmin}\bold{(y-Xw)^T(y-Xw)}
w∗=wargmin(y−Xw)T(y−Xw)
使用最小二乘法对w和b进行估计。找到一条直线,使得均方误差E最小。
E的期望值为:
E
=
(
y
−
X
w
)
T
(
y
−
X
w
)
E =\bold{(y-Xw)^T(y-Xw)}
E=(y−Xw)T(y−Xw)
要使E的值最小,令其对
w
\bold w
w的导数为0
∂
E
∂
w
=
2
X
T
X
w
−
2
X
T
y
=
2
X
T
(
X
w
−
y
)
=
0
\begin{aligned} \frac{\partial{E}}{\partial{\bold w}}&=2\bold{X^TXw-2X^Ty}\\&=\bold{2X^T(Xw-y)}=0 \end{aligned}
∂w∂E=2XTXw−2XTy=2XT(Xw−y)=0
当
X
T
X
\bold{X^TX}
XTX是满秩矩阵或正定矩阵时,可以对其求逆,此时有:
w
∗
=
(
X
T
X
)
−
1
X
T
y
\bold w^*=\bold{(X^TX)^{-1}X^Ty}
w∗=(XTX)−1XTy
这样的过程称为线性回归模型的最小二乘估计
广义线性模型
广义线性模型中,将原本的线性模型的输出空间进行非线性函数映射。考虑单调可微函数g(·),令
y
=
g
−
1
(
w
T
x
)
+
b
y=g^{-1}\bold{(w^Tx)}+b
y=g−1(wTx)+b
这样的模型成为广义线性模型,g(·)称为联系函数。对数线性回归是广义线性模型在g(·)=ln(·)时的特例。
对数几率回归(逻辑回归)
逻辑回归虽然叫做回归,但实际上做是分类。
对数几率函数(对数几率函数属于sigmoid函数):
y
=
f
w
,
b
(
x
)
=
1
1
+
e
−
(
w
T
x
+
b
)
y = f_{w,b}(\bold x)=\frac{1}{1+e^{-(\bold{w^Tx}+b)}}
y=fw,b(x)=1+e−(wTx+b)1
该式可变换为:
l
n
(
y
1
−
y
)
=
w
T
x
+
b
ln(\frac{y}{1-y})=\bold{w^Tx}+b
ln(1−yy)=wTx+b
若将y视为样本x为正类的可能性,则1-y就对应x为负类的可能性,因此两者的比值就反映了x为正例的相对可能性,又因为取了对数,因此这个模型称为对数几率模型(logistic regression 或logit regression)。对数函数是任意阶可导的凸函数,有很好的数学性质。
接下来确定逻辑回归的参数w。
首先根据定义,我们有概率:
P
(
y
=
1
∣
x
)
=
1
1
+
e
−
(
w
T
x
+
b
)
P
(
y
=
0
∣
x
)
=
e
−
(
w
T
x
+
b
)
1
+
e
−
(
w
T
x
+
b
)
=
(
1
−
P
(
y
=
1
∣
x
)
)
P(y=1|\bold x) = \frac{1}{1+e^{-(\bold{w^Tx}+b)}}\\ P(y=0|\bold x) = \frac{e^{-(\bold{w^Tx}+b)}}{1+e^{-(\bold{w^Tx}+b)}} = (1-P(y=1|\bold x))
P(y=1∣x)=1+e−(wTx+b)1P(y=0∣x)=1+e−(wTx+b)e−(wTx+b)=(1−P(y=1∣x))
将两式合并,得到:
P
(
y
∣
x
;
w
,
b
)
=
y
P
(
y
=
1
∣
x
)
+
(
1
−
y
)
P
(
y
=
0
∣
x
)
=
P
(
y
=
1
∣
x
)
y
+
P
(
y
=
0
∣
x
)
(
1
−
y
)
=
P
(
y
∣
x
)
y
∗
(
1
−
P
(
y
∣
x
)
(
1
−
y
)
)
\begin{aligned} P(y|\bold x;\bold w,b)&= yP(y=1|\bold x) + (1-y) P(y=0|\bold x) \\ &=P(y=1|\bold x)^{y} + P(y=0|\bold x)^{(1-y)}\\ &=P(y \ |\bold x)^y*(1-P(y\ |\bold x)^{(1-y)}) \end{aligned}
P(y∣x;w,b)=yP(y=1∣x)+(1−y)P(y=0∣x)=P(y=1∣x)y+P(y=0∣x)(1−y)=P(y ∣x)y∗(1−P(y ∣x)(1−y))
于是,我们可以通过极大似然法来来估计w和b的值。
L
(
w
,
b
)
=
∏
i
P
(
y
i
∣
x
i
)
y
i
∗
(
1
−
P
(
y
i
∣
x
i
)
(
1
−
y
i
)
)
=
∏
i
f
w
,
b
(
x
i
)
y
i
∗
(
1
−
f
w
,
b
(
x
i
)
)
(
1
−
y
i
)
)
\begin{aligned} L(\bold w,b)&=\underset{i}{\prod}P(y_i|\bold{x_i})^{y_i}*(1-P(y_i|\bold{x_i})^{(1-y_i)})\\ &=\underset{i}{\prod}f_{w,b}(\bold{x_i})^{y_i}*(1-f_{w,b}(\bold{x_i}))^{(1-y_i)})\\ \end{aligned}
L(w,b)=i∏P(yi∣xi)yi∗(1−P(yi∣xi)(1−yi))=i∏fw,b(xi)yi∗(1−fw,b(xi))(1−yi))
对其取对数,得到对数似然函数:
L
L
(
w
,
b
)
=
Σ
i
l
n
(
f
w
,
b
(
x
i
)
y
i
∗
(
1
−
f
w
,
b
(
x
i
)
)
(
1
−
y
i
)
)
)
)
=
Σ
i
(
y
i
l
n
f
w
,
b
(
x
i
)
+
(
1
−
y
i
)
l
n
(
1
−
f
w
,
b
(
x
i
)
)
)
\begin{aligned} LL(w,b)&=\underset{i}{\Sigma}ln(f_{w,b}(\bold{x_i})^{y_i}*(1-f_{w,b}(\bold{x_i}))^{(1-y_i)})))\\ &=\underset{i}{\Sigma}({y_i}lnf_{w,b}(\bold{x_i})+{(1-y_i)}ln(1-f_{w,b}(\bold{x_i}))) \end{aligned}
LL(w,b)=iΣln(fw,b(xi)yi∗(1−fw,b(xi))(1−yi))))=iΣ(yilnfw,b(xi)+(1−yi)ln(1−fw,b(xi)))
计算对应的梯度:
∂
L
L
(
w
,
b
)
∂
w
=
1
n
Σ
i
=
1
n
(
y
i
l
n
f
w
,
b
(
x
i
)
+
(
1
−
y
i
)
l
n
(
1
−
f
w
,
b
(
x
i
)
)
)
=
1
n
Σ
i
=
1
n
(
∂
(
y
i
l
n
f
w
,
b
(
x
i
)
)
∂
w
+
∂
(
(
1
−
y
i
)
l
n
(
1
−
f
w
,
b
(
x
i
)
)
∂
w
)
=
1
n
Σ
i
=
1
n
(
y
i
f
w
,
b
(
x
i
)
∂
f
w
,
b
(
x
i
)
∂
w
+
1
−
y
i
1
−
f
w
,
b
(
x
i
)
∂
(
1
−
f
w
,
b
(
x
i
)
)
∂
w
)
=
1
n
Σ
i
=
1
n
(
y
i
f
w
,
b
(
x
i
)
f
w
,
b
(
x
i
)
(
1
−
f
w
,
b
(
x
)
)
x
i
−
1
−
y
i
1
−
f
w
,
b
(
x
i
)
f
w
,
b
(
x
i
)
(
1
−
f
(
x
i
)
)
x
i
=
1
n
Σ
i
=
1
n
(
y
i
(
1
−
f
w
,
b
(
x
i
)
)
x
i
−
(
1
−
y
i
)
f
w
,
b
(
x
i
)
x
i
)
)
=
1
n
Σ
i
=
1
n
(
y
i
e
−
(
w
T
x
+
b
)
x
i
1
+
e
−
(
w
T
x
i
+
b
)
−
(
1
−
y
)
x
i
1
+
e
−
(
w
T
x
i
+
b
)
)
=
1
n
Σ
i
=
1
n
(
(
y
i
−
1
1
+
e
−
(
w
T
x
i
+
b
)
)
x
i
)
=
1
n
Σ
i
=
1
n
(
(
y
i
−
f
w
,
b
(
x
i
)
)
x
i
)
\begin{aligned} \frac{\partial LL(w,b)}{\partial \bold w}&=\frac{1}{n} \Sigma_{i=1}^n(y_i ln f_{w,b}(\bold x_i)+(1-y_i)ln(1-f_{w,b}(\bold x_i))) \\ &=\frac{1}{n} \Sigma_{i=1}^n(\frac{\partial (y_i ln f_{w,b}(\bold x_i))}{\partial \bold w} + \frac{\partial((1-y_i)ln(1-f_{w,b}(\bold x_i))}{\partial \bold w}) \\ &=\frac{1}{n} \Sigma_{i=1}^n(\frac{y_i}{f_{w,b}(\bold x_i)} \frac{\partial f_{w,b}(\bold x_i)}{\partial \bold w} + \frac{1-y_i}{1-f_{w,b}(\bold x_i)} \frac{\partial (1-f_{w,b}(\bold x_i))}{\partial \bold w}) \\ &=\frac{1}{n} \Sigma_{i=1}^n(\frac{y_i}{f_{w,b}(\bold x_i)} f_{w,b}(\bold x_i)(1-f_{w,b}(\bold x))\bold x_i - \frac{1-y_i}{1-f_{w,b}(\bold x_i)}f_{w,b}(x_i)(1-f(\bold x_i))\bold x_i \\ &=\frac{1}{n} \Sigma_{i=1}^n(y_i(1-f_{w,b}(\bold x_i))\bold x_i - (1-y_i)f_{w,b}(\bold x_i)\bold x_i)) \\ &=\frac{1}{n} \Sigma_{i=1}^n(y_i\frac{e^{-(\bold{w^Tx}+b)}\bold x_i}{1+e^{-(\bold{w^Tx_i}+b)}} - (1-y)\frac{\bold x_i}{1+e^{-(\bold{w^Tx_i}+b)}}) \\ &=\frac{1}{n} \Sigma_{i=1}^n( (y_i-\frac{1}{1+e^{-(\bold{w^Tx_i}+b)}}) \bold x_i)\\ &=\frac{1}{n} \Sigma_{i=1}^n( (y_i-f_{w,b}(\bold x_i))\bold x_i) \end{aligned}
∂w∂LL(w,b)=n1Σi=1n(yilnfw,b(xi)+(1−yi)ln(1−fw,b(xi)))=n1Σi=1n(∂w∂(yilnfw,b(xi))+∂w∂((1−yi)ln(1−fw,b(xi)))=n1Σi=1n(fw,b(xi)yi∂w∂fw,b(xi)+1−fw,b(xi)1−yi∂w∂(1−fw,b(xi)))=n1Σi=1n(fw,b(xi)yifw,b(xi)(1−fw,b(x))xi−1−fw,b(xi)1−yifw,b(xi)(1−f(xi))xi=n1Σi=1n(yi(1−fw,b(xi))xi−(1−yi)fw,b(xi)xi))=n1Σi=1n(yi1+e−(wTxi+b)e−(wTx+b)xi−(1−y)1+e−(wTxi+b)xi)=n1Σi=1n((yi−1+e−(wTxi+b)1)xi)=n1Σi=1n((yi−fw,b(xi))xi)
得到最优化问题:
w
∗
,
b
∗
=
a
r
g
m
a
x
w
,
b
L
L
(
w
,
b
)
w^*, b^*=\underset{w,b}{argmax}\ LL(w,b)
w∗,b∗=w,bargmax LL(w,b)
可以使用梯度下降或牛顿法迭代更新求解该最优化问题。可以参考另一篇文章:牛顿法及其几何意义
如果得到的最大似然LL(w,b)取反,则得到
−
L
L
(
w
,
b
)
=
Σ
i
=
0
n
(
−
y
i
l
n
f
w
,
b
(
x
i
)
−
(
1
−
y
i
)
l
n
(
1
−
f
w
,
b
(
x
i
)
)
)
=
Σ
i
=
0
n
(
−
y
i
l
n
y
^
i
−
(
1
−
y
i
l
n
(
1
−
y
^
i
)
)
\begin{aligned} -LL(\bold w,b)&=\Sigma_{i=0}^n (-y_ilnf_{w,b}(\bold{x_i})-(1-y_i)ln(1-f_{w,b}(\bold{x_i})))\\ &=\Sigma_{i=0}^n (-y_iln\hat y_i-(1-y_iln(1-\hat y_i)) \end{aligned}
−LL(w,b)=Σi=0n(−yilnfw,b(xi)−(1−yi)ln(1−fw,b(xi)))=Σi=0n(−yilny^i−(1−yiln(1−y^i))
需要求解的优化问题就变成了
w
∗
,
b
∗
=
a
r
g
m
i
n
w
,
b
(
−
L
L
(
w
,
b
)
)
\bold w^*, b^*=\underset{\bold w,b}{argmin}\ (-LL(\bold w,b))
w∗,b∗=w,bargmin (−LL(w,b))
仔细观察可以发现,待优化的式子中的项正是交叉熵,即使用最大似然估计求解得到的参数与使用最小化交叉熵所得到的结果一致(两者的思想并不一样)。
读者如果有兴趣推导一下梯度下降的递推式可以发现,逻辑回归与线性回归的梯度下降递推式的形式是一致的。当然,两个递推式的含义不一致。
如果熟悉神经网络还可以发现,逻辑回归的预测函数就是神经网络中常用的神经元激活函数之一,因此逻辑回归可以简单看作只有一个神经元节点的神经网络。