之前写过一篇线性回归知识梳理,这篇文章主要是从整体角度出发再回顾一下,另外思考一下之前没想过的问题。
1. 线性模型(linear model)与线性回归(linear regression)
1.1 linear model
linear model 试图学习一个通过属性的线性组合来进行预测的函数:
f
(
x
)
=
w
1
x
1
+
w
2
x
2
+
…
+
w
n
x
n
+
b
f(\boldsymbol{x})=w_{1} x_{1}+w_{2} x_{2}+\ldots+w_{n} x_{n}+b
f(x)=w1x1+w2x2+…+wnxn+b
向量形式:
f
(
x
)
=
w
T
x
+
b
f(\boldsymbol{x})=\boldsymbol{w}^{\mathbf{T}} \boldsymbol{x}+b
f(x)=wTx+b
线性模型形式简单、易于建模,但却蕴含着 machine learning 的一些重要思想,很多功能强大的非线性模型(nonlinear model)都可以在线性模型的基础上通过引入层级结构或高维映射而得到。
几种经典的 linear model 有:linear regression、logistics regression、线性判别分析(LDA)。
1.2 linear regression
linear regression 就是用于回归的linear regression。它的输出是离散值。
2. 机器学习模型建立的三个步骤
选择模型框架、选择评估模型的方法(object function)、最优化
2.1 选择模型框架
这篇文章只讲 linear regression,于是只选择线性模型框架了。
2.2 选择模型的评估方法
object function(目标函数)由 cost function 和 regularization(正则项)两部分组成。
当我们的损失函数是 convex function(凸函数)时,全局最优解也是局部最优解。
在线性回归里面,loss function是convex function,不会出现local optimal。
2.2.1 cost function
回归任务中常用的性能度量是 mean squared error/square loss(均方误差),除了MSE还有RMSE、R Squared等指标。从几何意义上说,MSE是想找到一条直线使得所有样本到直线上的欧氏距离之和最小。
E
(
f
;
D
)
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
E(f ; D)=\frac{1}{m} \sum_{i=1}^{m}\left(f\left(x_{i}\right)-y_{i}\right)^{2}
E(f;D)=m1i=1∑m(f(xi)−yi)2
2.2.2 regularization
引入正则项实际上是学习器的一种归纳偏好,即:选用尽可能简单的模型(奥卡姆剃刀原则),避免过拟合,因为这样能够有更好的泛化性能。注:通常只对权重向量计算正则项,
L
p
=
∑
1
n
x
i
p
n
,
x
=
(
x
1
,
x
2
,
⋯
 
,
x
n
)
L p=\sqrt[n]{\sum_{1}^{n} x_{i}^{p}}, x=\left(x_{1}, x_{2}, \cdots, x_{n}\right)
Lp=n1∑nxip,x=(x1,x2,⋯,xn)
(1)L0 norm
L0范数不符合严格的数学定义,常指向量中非0元素的个数。在实际应用中,L0 norm 很难优化求解(NP难问题)。所以在实际情况中,L0的最优化会被放宽到L1或L2下的最优化。
(2)L1 norm
L1 norm 也叫 Lasso regularization、曼哈顿距离等。形式如下:
∥
x
∥
1
=
∑
i
=
1
n
∣
x
i
∣
\|\mathbf{x}\|_{1}=\sum_{i=1}^{n}\left|x_{i}\right|
∥x∥1=i=1∑n∣xi∣
在目标函数中,L1正则项的形式为
ℓ
1
=
λ
∥
ω
∥
1
=
∑
i
∣
ω
i
∣
\ell_{1}=\lambda\|\omega\|_{1}=\sum_{i}\left|\omega_{i}\right|
ℓ1=λ∥ω∥1=∑i∣ωi∣,
对L1最优化的解是一个稀疏解,可以过滤掉不携带信息的特征,实现特征选择。
(3)L2 norm(欧氏距离)
对于线性回归,使用L2正则化的模型也叫 ridge regression,定义如下:
∥
x
∥
2
=
∑
i
=
1
n
x
i
2
\|\mathbf{x}\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}
∥x∥2=i=1∑nxi2
在目标函数中,L2正则项形式为
1
2
λ
∥
ω
∥
2
2
=
1
2
λ
∑
j
=
1
n
θ
j
2
\frac{1}{2} \lambda\|\omega\|_{2}^{2}=\frac{1}{2} \lambda \sum_{j=1}^{n} \theta_{j}^{2}
21λ∥ω∥22=21λ∑j=1nθj2 ,其中 λ 是正则化强度。L2 范数擅长于防止过拟合,还可以让我们的优化求解变得稳定和快速。
相较L1正则化会让权重向量在最优化的过程中变得稀疏(即非常接近0),L2正则化中的权重向量大多是分散的小数字。在实践中,如果不是特别关注某些明确的特征选择,一般说来L2正则化都会比L1正则化效果好。
2.3 最优化方法
2.3.1 gradient descent
(1)损失函数:
J
(
θ
)
=
1
2
m
∑
i
=
1
m
[
(
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
n
θ
j
2
)
]
J(\theta)=\frac{1}{2 m} \sum_{i=1}^{m}\left[\left(\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right)\right]
J(θ)=2m1i=1∑m[((hθ(x(i))−y(i))2+λj=1∑nθj2)]
其中
h
θ
(
x
)
=
θ
T
X
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
…
+
θ
n
x
n
h_{\theta}(x)=\theta^{T} X=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\ldots+\theta_{n} x_{n}
hθ(x)=θTX=θ0+θ1x1+θ2x2+…+θnxn
(2)梯度下降:
Repeat
{
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
0
,
θ
1
,
…
,
θ
n
)
}
\begin{array}{l}{\text { Repeat }\{ } \\ {\theta_{\mathrm{j}} :=\theta_{\mathrm{j}}-\alpha \frac{\partial}{\partial \theta_{j}} \mathrm{J}\left(\theta_{0}, \theta_{1}, \ldots, \theta_{\mathrm{n}}\right)} \\ {\}}\end{array}
Repeat {θj:=θj−α∂θj∂J(θ0,θ1,…,θn)}
即:
R
e
p
e
a
t
Repeat
Repeat
u
n
t
i
l
until
until
c
o
n
v
e
r
g
e
n
c
e
convergence
convergence{
θ
0
:
=
θ
0
−
a
1
m
∑
i
=
1
m
(
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
0
(
i
)
)
{\theta_0}:={\theta_0}-a\frac{1}{m}\sum\limits_{i=1}^{m}{(({h_\theta}({{x}^{(i)}})-{{y}^{(i)}})x_{0}^{(i)}})
θ0:=θ0−am1i=1∑m((hθ(x(i))−y(i))x0(i))
θ
j
:
=
θ
j
−
a
[
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
+
λ
m
θ
j
]
{\theta_j}:={\theta_j}-a[\frac{1}{m}\sum\limits_{i=1}^{m}{({h_\theta}({{x}^{(i)}})-{{y}^{(i)}})x_{j}^{\left( i \right)}}+\frac{\lambda }{m}{\theta_j}]
θj:=θj−a[m1i=1∑m(hθ(x(i))−y(i))xj(i)+mλθj]
f
o
r
for
for
j
=
1
,
2
,
.
.
.
n
j=1,2,...n
j=1,2,...n
}
可以看出,相比没有正则化的梯度下降,每次都在原有算法更新规则的基础上令 θ 值减少了一个额外的值。