线性模型
基本形式
给定有d个属性描述的示例\(x=(x_1:x_2……x_d)\),其中Xi是x在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
…
…
+
w
d
x
d
+
b
f(x)=w_1x_1+w_2x_2+……+w_dx_d+b
f(x)=w1x1+w2x2+……+wdxd+b
一般向量形式写成
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b
线性回归
x只有一种属性
我们先考一种最简单的情况,x只有一种属性,即假设函数为
f
(
x
i
)
=
w
x
i
+
b
f(x_i)=wx_i+b
f(xi)=wxi+b
选择均方误差作为性能度量,试图使方差最下,即
(
w
∗
,
b
∗
)
=
a
r
g
m
i
n
(
w
,
b
)
=
Σ
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
(w^*,b^*)=arg min(w,b)=\Sigma^m_{i=1}(f(x_i)-y_i)^2
(w∗,b∗)=argmin(w,b)=Σi=1m(f(xi)−yi)2
=
a
r
g
m
i
n
(
w
,
b
)
Σ
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
=arg min(w,b)\Sigma^m_{i=1}(y_i-wx_i-b)^2
=argmin(w,b)Σi=1m(yi−wxi−b)2
基于均方误差进行模型求解的方法称为最小二乘法,我们将损失函数分别对w和b求导得
x有d个属性
此时我们试图学得
f
(
x
i
)
=
w
T
x
i
+
b
m
a
k
e
f
(
x
i
)
≈
y
i
f(x_i)=w^Tx_i+b \qquad make \qquad f(x_i) \approx y_i
f(xi)=wTxi+bmakef(xi)≈yi
这称为“多元线性回归”
类似的,可以用最小二乘法对w和b进行估计,我们把w和b吸收入向量形式\( \hat w=(w;b) \),相应的把数据集D表示为一个m*(d+1)大小的矩阵X,我们需要求如下式子
w
^
∗
=
a
r
g
m
i
n
(
w
^
)
(
y
−
X
w
^
)
T
(
y
−
X
w
^
)
\hat w^*=arg min(\hat w)(y-X \hat w)^T(y-X \hat w)
w^∗=argmin(w^)(y−Xw^)T(y−Xw^)
上式对w求导,得到
∂
E
w
∂
w
=
2
X
T
(
X
w
−
y
)
\frac{ \partial E_w}{\partial w}=2X^T(Xw-y)
∂w∂Ew=2XT(Xw−y)
- 当\(X^TX\)为满秩矩阵或正定矩阵时,上式为0可得
w ∗ = ( X T X ) − 1 X T y w^*=(X^TX)^{-1}X^Ty w∗=(XTX)−1XTy - 如果不是,那么可能解出多个w,此时由学习算法的归纳偏好决定,常见的做法是引入正则化
损失函数求解
梯度下降法
假设函数为\(f(x)=\theta x\),损失函数为\(J(\theta)\),要最小化损失函数,则参数更新公式为
θ
i
=
θ
i
−
1
−
η
∂
J
(
θ
)
∂
θ
\theta_i=\theta_{i-1}-\eta \frac {\partial J(\theta)}{\partial \theta }
θi=θi−1−η∂θ∂J(θ)
不断迭代,直到损失函数值达到一定要求
梯度下降相关理论
当\(\theta 和 \theta_0 \)相隔很近时,利用泰勒公式可知
f
(
θ
)
≈
f
(
θ
0
)
+
(
θ
−
θ
0
)
∗
∇
f
(
θ
0
)
f(\theta)\approx f(\theta_0)+(\theta-\theta_0)*\nabla f(\theta_0)
f(θ)≈f(θ0)+(θ−θ0)∗∇f(θ0)
其中\(\theta - \theta_0\)是矢量,大小就是梯度下降更新公式的\(\eta\),类似于下山过程中的步长,\(\theta - \theta_0\)的单位向量,我们用v表示,则\(\theta - \theta_0\)可表示为
θ
−
θ
0
=
η
v
—
—
(
1
)
\theta - \theta_0=\eta v ——(1)
θ−θ0=ηv——(1)
,重点来了,我们希望每次theta更新,都能让f(theta)变小,就是说希望f(theta)<f(theta 0),则有
f
(
θ
)
−
f
(
θ
0
)
≈
η
v
∗
∇
f
(
θ
0
)
<
0
f(\theta)-f(\theta_0)\approx \eta v*\nabla f(\theta_0)<0
f(θ)−f(θ0)≈ηv∗∇f(θ0)<0
因为n是标量,一般取正数,可忽略,所以就是后半部分小于0,而v和梯度都是向量,两个向量相乘最小,即两者方向完全相反,即让v是负梯度方向,即
v
=
−
∇
f
(
θ
0
)
∣
∣
∇
f
(
θ
0
)
∣
∣
v=- \frac{\nabla f(\theta_0)}{||\nabla f(\theta_0)||}
v=−∣∣∇f(θ0)∣∣∇f(θ0)
代入(1)式可得
θ
=
θ
0
−
η
∇
f
(
θ
0
)
∣
∣
∇
f
(
θ
0
)
∣
∣
\theta=\theta_0 - \eta \frac{\nabla f(\theta_0)}{||\nabla f(\theta_0)||}
θ=θ0−η∣∣∇f(θ0)∣∣∇f(θ0)
因为n是标量,所以简化为
θ
=
θ
0
−
η
∇
f
(
θ
0
)
\theta=\theta_0-\eta \nabla f(\theta_0)
θ=θ0−η∇f(θ0)
牛顿法
牛顿法也可用来求极值(用来求损失函数的最小值),由于函数求极值的导数为0,故可用牛顿法求导函数的零点,迭代公式
x
n
+
1
=
x
n
−
f
′
(
x
n
)
f
′
′
(
x
n
)
x_{n+1}=x_n-\frac{f'(x_n)}{f''(x_n)}
xn+1=xn−f′′(xn)f′(xn)
参考资料