给定样本
x
⃗
\vec x
x,其中
x
⃗
=
(
x
1
,
x
2
,
⋯
,
x
n
)
T
\vec x = {\left( {{x^1},{x^2}, \cdots ,{x^n}} \right)^T}
x=(x1,x2,⋯,xn)T,
x
i
{x^i}
xi为样本 的第i个特征,特征有
n
n
n种,
线性模型的形式为:
f
(
x
⃗
)
=
W
X
+
b
f\left( {\vec x} \right) = WX + b
f(x)=WX+b
其中
W
⃗
=
(
w
1
,
w
2
,
⋯
,
w
n
)
T
\vec W = {\left( {{w^1},{w^2}, \cdots ,{w^n}} \right)^T}
W=(w1,w2,⋯,wn)T为每个特征对应的权重生成的权重向量
线性模型由于其简单、可解释性强,因此是运用最广泛的模型之一。对于更复杂的非线性模型,可以通过引入高层级或者非线性映射等转化为线性模型求解。
1.线性回归
以二维线性回归进行说明:
给定一个具有n个样本的样本集
{
(
x
1
,
y
1
)
,
…
(
x
n
,
y
n
)
}
\left\{ {\left( {{x_1},{y_1}} \right), \ldots \left( {{x_n},{y_n}} \right)} \right\}
{(x1,y1),…(xn,yn)} ,线性回归的目的就是找到一条形如
y
=
k
x
+
b
y = kx + b
y=kx+b的直线来反映变量y随x的变化趋势,从机器学习的角度来说,y是目标,x是特征。当x由很多细分变量组成时,就变成了多元线性回归。
这一系列的样本集可以用如下代数方程表示:
KaTeX parse error: Undefined control sequence: \hfill at position 36: …} = k{x_1} + b \̲h̲f̲i̲l̲l̲ ̲\cr {y_2} = …
线性回归的目的就是找到这样的一组代数方程的解
(
k
,
b
)
\left( {k,b} \right)
(k,b)
多维线性回归则为:
其矩阵表示形式为:
y
=
W
X
+
b
y = WX + b
y=WX+b
但是对于所有的机器学习内容都不可能找到完美的一组解
(
k
,
b
)
\left( {k,b} \right)
(k,b),必然存在着拟合误差,也被叫做损失。在这样的情况下线性回归的目的就变成了找到一组使损失最小化的函数 。
对于不同的优化目标,可以选择不同的损失函数来衡量损失以满足不同要求。
常用平方损失函数:
L
(
f
^
)
=
(
f
^
−
f
)
2
=
(
W
^
X
−
y
)
(
W
^
X
−
y
)
T
L(\hat f) = {(\hat f - f)^2} = \left( {\hat WX - y} \right){\left( {\hat WX - y} \right)^T}
L(f^)=(f^−f)2=(W^X−y)(W^X−y)T
,这个位置将b归结到W上去了
机器学习的优化目标即为
arg
min
(
L
(
f
^
)
)
\arg \min \left( {L(\hat f)} \right)
argmin(L(f^))
为了找到使得损失最小的W,常用的方法有最小二乘和梯度下降
最小二乘:
最小二乘通过使损失函数导数为0找到W的估计值的解析解
∂
L
∂
W
^
=
0
=
2
X
T
(
X
W
^
−
y
)
{{\partial L} \over {\partial \hat W}} = 0 = 2{X^T}\left( {X\hat W - y} \right)
∂W^∂L=0=2XT(XW^−y)
解得:
W
^
=
(
X
T
X
)
−
1
X
T
y
\hat W = {\left( {{X^T}X} \right)^{ - 1}}{X^T}y
W^=(XTX)−1XTy
从基本原理可知,最小二乘的解析解就是各组样本的算术平均值
这种方式将所有样本都赋予着同样的权重,在学习时需要将所有样本属性进行归一化,当属性之间具有数量级差时,学习结果会手样本属性更大的影响。
因此在该基础上还发展出了许多最小二乘的改进算法:加权最小二乘、迭代最小二乘等等
梯度下降:
假设给定W一个初始值
W
0
{W_0}
W0,学习率为
η
\eta
η ,为了得到最优解,构建一个迭代过程,每一次迭代依照当前权重的负梯度更新一次权重
W
i
+
1
=
W
i
+
η
.
∂
L
∂
W
(
W
=
W
i
)
{W_{i + 1}} = {W_i} + \eta .{{\partial L} \over {\partial W}}\left( {W = {W_i}} \right)
Wi+1=Wi+η.∂W∂L(W=Wi)
除此之外需要设定收敛条件,使得迭代在达到条件时停止,例如迭代次数、允许最大损失、时间等。
但是这样的迭代很可能只会收敛到局部极小值,或者训练时间过长,因此又有了许多基于梯度下降的改进方法:随机梯度下降、共轭梯度法、基于动量的梯度下降、使用二阶偏导的拟牛顿法等。
梯度是指:某一函数在该点处的方向导数沿着该方向取得最大值,即该函数在该点处变化最快,变化率最大。对与最优化问题,求损失函数最小值,只要沿着梯度的反方向进行权重更新就能得到全局最优解
梯度下降即,
在现实任务中通常不是满秩矩阵,此时W的解会有多个,为了避免这种情况,通常在损失函数引入引入正则化项,
-周志华(西瓜书)
如何理解:
常见的正则化项包括:L1正则化、L2正则化
L1正则化也称为Lasso正则化
2.对数线性回归
基本的线性回归模型只适合于拟合 的直线,这限制了其使用范围,将目标或者属性进行某种变化使得其在形式上服从于线性回归,这种模型被称为广义线性模型。
对数线性回归采用对数几率函数对目标进行转化:
ln
y
=
w
x
+
b
\ln y = wx + b
lny=wx+b
y
=
1
1
+
e
−
z
,
z
=
w
x
+
b
y = {\textstyle{1 \over {1 + {e^{ - z}}}}},z = wx + b
y=1+e−z1,z=wx+b
对数几率函数属于一种“Sigmoid”函数,将z值转化为一个接近0/1的值,因此对数几率函数属于分类模型,由于其的连续性,虽然其是分类模型,但是由于采用对数几率函这种任意阶可导的凸函数,许多的数值优化算法都可用于其的求解。
另一方面,其还有一个优点,可以将模型的输出作为其分类的近似概率预测,即:
ln
y
1
−
y
=
W
X
+
b
\ln {y \over {1 - y}} = WX + b
ln1−yy=WX+b
此时y代表样本x属于正例的可能性,1-y为其反例的可能性,两者的比值称为几率,以0作为其分类的分界点。
对数几率回归的求解过程如下:
ln
y
1
−
y
=
W
X
+
b
\ln {y \over {1 - y}} = WX + b
ln1−yy=WX+b
则有:
p
(
y
=
1
∣
x
)
=
e
w
x
+
b
1
+
e
w
x
+
b
p\left( {y = 1|x} \right) = {{{e^{wx + b}}} \over {1 + {e^{wx + b}}}}
p(y=1∣x)=1+ewx+bewx+b
p
(
y
=
0
∣
x
)
=
1
1
+
e
w
x
+
b
p\left( {y = 0|x} \right) = {1 \over {1 + {e^{wx + b}}}}
p(y=0∣x)=1+ewx+b1
采用“极大似然法”对w和b进行求解,
一般来说,为了对参数进行估计,都是尽可能地将问题转化为求解连续凸函数的最大、小值的最优化问题,从而使用经典的数值优化算法进行求解,例如梯度下降
对数几率回归的极值问题为:
arg
min
(
L
(
β
)
)
=
arg
min
(
∑
i
m
(
−
y
i
β
T
x
^
i
+
ln
(
1
+
e
β
T
x
^
i
)
)
)
\arg \min (L(\beta )) = \arg \min \left( {\sum\limits_i^m {\left( { - {y_i}{\beta ^T}{{\hat x}_i} + \ln (1 + {e^{{\beta ^T}{{\hat x}_i}}})} \right)} } \right)
argmin(L(β))=argmin(i∑m(−yiβTx^i+ln(1+eβTx^i)))