1.线性回归
1.1 线性模型(Linear Model)
给定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x m , y m ) } D=\left \{ \left (x_{1}\mathbf{},y_{1} \right ),\left ( x_{2},y_{2} \right ),\left (x_{3},y_{3} \right ),...,\left (x_{m},y_{m} \right ) \right \} D={(x1,y1),(x2,y2),(x3,y3),...,(xm,ym)},其中 x i x_{i} xi有 d d d个特征,表示为 x i = ( x i 1 ; x i 1 ; . . . ; x i d ) x_{i}=\left ( x_{i1}; x_{i1};...;x_{id}\right ) xi=(xi1;xi1;...;xid),线性回归模型是通过 d d d个特征的线性组合对 y y y值进行拟合,即 f ( x i ) = w T x i + b f(x_{i})=w^{T}x_{i}+b f(xi)=wTxi+b,使得 f ( x i ) ≃ y i f(x_{i})\simeq y_{i} f(xi)≃yi
1.2 损失函数(Loss Function):Square Loss
-
定义: L ( f ( x ) , y ) = ( f ( x ) − y ) 2 L(f(x),y)=(f(x)-y)^2 L(f(x),y)=(f(x)−y)2
-
为什么使用square loss作为损失函数:
(1)记误差 ε = y i − y i ^ \varepsilon=y_{i}-\hat{y_{i}} ε=yi−yi^,假设误差独立同分布,根据中心极限定理, ε ∼ ( μ , σ 2 ) \varepsilon\sim(\mu,\sigma^2) ε∼(μ,σ2),得到 f ( ε ) = 1 σ 2 π e x p ( − ( ε − μ ) 2 2 σ 2 ) f(\varepsilon)=\frac{1}{\sigma\sqrt{2\pi}}exp(-\frac{(\varepsilon-\mu)^2}{2\sigma^2}) f(ε)=σ2π1exp(−2σ2(ε−μ)2),求 μ \mu μ和 σ 2 \sigma^2 σ2的极大似然估计,
L ( μ , σ 2 ) = ∏ i = 1 m 1 σ 2 π e x p ( − ( ε − μ ) 2 2 σ 2 ) L(\mu,\sigma^2)=\prod_{i=1}^{m}\frac{1}{\sigma\sqrt{2\pi}}exp(-\frac{(\varepsilon-\mu)^2}{2\sigma^2}) L(μ,σ2)=∏i=1mσ2π1exp(−2σ2(ε−μ)2),等式两边取对数,得到,
l o g L ( μ , σ 2 ) = − m 2 l o g 2 π − m 2 l o g σ 2 − ( ε − μ ) 2 2 σ 2 logL(\mu,\sigma^2)=-\frac{m}{2}log2\pi-\frac{m}{2}log\sigma^2-\frac{(\varepsilon-\mu)^2}{2\sigma^2} logL(μ,σ2)=−2mlog2π−2mlogσ2−2σ2(ε−μ)2,对 μ \mu μ和 σ 2 \sigma^2 σ2求偏导,得到
∂ L ∂ μ = 1 σ 2 ( ε − μ ) \frac{\partial{L}}{\partial{\mu}}=\frac{1}{\sigma^2}(\varepsilon-\mu) ∂μ∂L=σ21(ε−μ),
∂ L ∂ σ 2 = m 2 σ 2 + ( ε − μ ) 2 2 σ 4 \frac{\partial{L}}{\partial{\sigma^2}}=\frac{m}{2\sigma^2}+\frac{(\varepsilon-\mu)^2}{2\sigma^4} ∂σ2∂L=2σ2m+2σ4(ε−μ)2,
令 ∂ L ∂ μ = ∂ L ∂ σ 2 = 0 \frac{\partial{L}}{\partial{\mu}}=\frac{\partial{L}}{\partial{\sigma^2}}=0 ∂μ∂L=∂σ2∂L=0,得到: μ = 1 m ∑ i = 1 m ε i = 1 m ∑ i = 1 m ( y i − y i ^ ) \mu=\frac{1}{m}\sum_{i=1}^{m}\varepsilon_{i}=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}}) μ=m1∑i=1mεi=m1∑i=1m(yi−yi^)趋近于0或越小越好 , σ 2 = 1 m ∑ i = 1 m ( ε i − μ ) 2 = 1 m ∑ i = 1 m ( y i − y i ^ − μ ) 2 ≈ 1 m ∑ i = 1 m ( y i − y i ^ ) 2 \sigma^2=\frac{1}{m}\sum_{i=1}^{m}(\varepsilon_{i}-\mu)^2=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}}-\mu)^2\approx\frac{1}{m}\sum_{i=1}^{m}(y_{i}-\hat{y_{i}})^2 σ2=m1∑i=1m(εi−μ)2=m1∑i=1m(yi−yi^−μ)2≈m1∑i=1m(yi−yi^)2趋近于0或越小越好,与最前面构建的平方形式损失函数本质上是等价的。
(2)误差的平方形式是正数。这样正的误差和负的误差不会相互抵消。
(3)与采用绝对值形式的比较:平方形式对大误差的惩罚大于小误差;平方形式对数学运算也更友好,绝对值形式在求导使需要分段求导。
- 定义代价函数(cost function):
J ( w , b ) = 1 2 m ∑ i = 1 m ( f ( x i ) − y i ) 2 J(w,b)=\frac{1}{2m}\sum_{i=1}^{m}(f(x_{i})-y_{i})^2 J(w,b)=2m1∑i=1m(f(xi)−yi)2
1.3 求解
引入向量形式
θ
=
(
w
,
b
)
,
X
=
[
x
11
x
12
⋯
x
1
d
1
x
21
x
22
⋯
x
2
d
1
⋮
⋮
⋱
⋮
⋮
x
m
1
x
m
2
⋯
x
m
d
1
]
=
[
x
1
T
1
x
2
T
1
⋮
⋮
x
m
T
1
]
\theta=(w,b),X=\begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1d}&1 \\ x_{21} & x_{22} & \cdots & x_{2d}&1 \\ \vdots &\vdots & \ddots & \vdots&\vdots\\ x_{m1} & x_{m2} & \cdots & x_{md}&1 \end{bmatrix}=\begin{bmatrix} x_{1}^{T}&1 \\ x_{2}^{T}&1 \\ \vdots &\vdots \\ x_{m}^{T} & 1 \end{bmatrix}
θ=(w,b),X=⎣⎢⎢⎢⎡x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1Tx2T⋮xmT11⋮1⎦⎥⎥⎥⎤,
则
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
i
)
−
y
i
)
2
=
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x_{i})-y_{i})^2=\frac{1}{2}(X\theta-y)^T(X\theta-y)
J(θ)=21∑i=1m(hθ(xi)−yi)2=21(Xθ−y)T(Xθ−y)
1.3.1 最小二乘法(Least Square Method)
在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
求梯度
$\nabla_{\theta}J(\theta)
= ∇ θ ( 1 2 ( θ T X T − y T ) ( X θ − y ) ) =\nabla_{\theta}\left(\frac{1}{2}(\theta^TX^T-y^T)(X\theta-y)\right) =∇θ(21(θTXT−yT)(Xθ−y))
= ∇ θ ( 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) ) =\nabla_{\theta}\left(\frac{1}{2}(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)\right) =∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))
= 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) =\frac{1}{2}\left(2X^TX\theta-X^Ty-(y^TX)^T\right) =21(2XTXθ−XTy−(yTX)T)
= X T X θ − X T y =X^TX\theta-X^Ty =XTXθ−XTy
令上式等于0,求驻点,则有 θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)−1XTy,
则令 x i ^ = ( x i ; 1 ) \hat{x_{i}}=(x_{i};1) xi^=(xi;1)线性回归模型为 f ( X ) = x i ^ T ( X T X ) − 1 X T y f(X)=\hat{x_{i}}^T(X^TX)^{-1}X^Ty f(X)=xi^T(XTX)−1XTy
1.3.2 梯度下降法(Gradient Descent)
1.初始化 θ \theta θ
2.沿着负梯度方向迭代,得到 θ = θ − α ⋅ ∂ J ∂ θ \theta=\theta-\alpha\cdot\frac{\partial J}{\partial \theta} θ=θ−α⋅∂θ∂J,使得 J ( θ ) J(\theta) J(θ)更小, α \alpha α为学习率(learning rate)(也称为步长),
偏导计算
∂ J ∂ θ j = ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( ∑ i = 1 m θ i x i − y ) = ( h θ ( x ) − y ) x j \frac{\partial J}{\partial \theta_{j}}=(h_{\theta}(x)-y)\cdot\frac{\partial }{\partial \theta_j}(\sum_{i=1}^{m}\theta_{i}x_{i}-y)=(h_{\theta}(x)-y)x_j ∂θj∂J=(hθ(x)−y)⋅∂θj∂(∑i=1mθixi−y)=(hθ(x)−y)xj
3.直至下降到无法下降时,停止计算
批量梯度下降法(Batch Gradient Descent):在更新参数时使用所有的样本来进行更新
随机梯度下降法(Stochastic Gradient Descent):仅选取一个样本来求梯度
小批量梯度下降法(Mini-batch Gradient Descent):对于m个样本,采用x个样本进行迭代
1.4 正则化(Regularization)
现实往往其变量数目超过样本数,
X
T
X
X^TX
XTX不满秩,导致存在多个
θ
^
\hat{\theta}
θ^,使得
J
(
θ
)
J(\theta)
J(θ)最小化。此时,选择哪个解作为输出,由学习算法的归纳偏好决定,常见的做法是引入正则化项,通过减少参数
θ
\theta
θ的值,使得模型变得简单,避免过拟合。
正则化线性回归(regularized linear regression)的代价函数(cost function)为:
- L1-norm(LASSO):
假设参数的先验分布是Laplace分布,
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x i ) − y i ) 2 + λ ∑ i = 1 m ∣ θ j ∣ J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x_{i})-y_{i})^2+\lambda\sum_{i=1}^{m}|\theta_j| J(θ)=21∑i=1m(hθ(xi)−yi)2+λ∑i=1m∣θj∣
L1范数可以实现稀疏化,而本质上对 θ \theta θ进行稀疏约束,即希望 θ \theta θ非零分量尽可能少,常用L0范数,但L0范数不连续,很难优化求解(NP问题)。而在求解向量足够稀疏的情况下,L0范数优化问题等价于L1范数优化问题,即各向量分量绝对值之和。
L1的优势在于通过稀疏化可用于特征选择,但也因此导致局部特征没有完全体现出来。 - L2-norm(Ridge):
假设参数的先验分布是Gaussian 分布,
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x i ) − y i ) 2 + λ ∑ i = 1 m θ j 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x_{i})-y_{i})^2+\lambda\sum_{i=1}^{m}\theta_j^2 J(θ)=21∑i=1m(hθ(xi)−yi)2+λ∑i=1mθj2
为了解决L1没有保留局部特征的问题,引入L2范数替代L1范数。L2范数使得 θ \theta θ趋向于0, θ \theta θ越小使得模型的复杂度降低。 - Elastic Net:
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x i ) − y i ) 2 + λ ( ρ ⋅ ∑ i = 1 m ∣ θ j ∣ + ( 1 − ρ ) ∑ i = 1 m θ j 2 ) J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x_{i})-y_{i})^2+\lambda\left(\rho\cdot\sum_{i=1}^{m}|\theta_j|+(1-\rho)\sum_{i=1}^{m}\theta_j^2\right) J(θ)=21∑i=1m(hθ(xi)−yi)2+λ(ρ⋅∑i=1m∣θj∣+(1−ρ)∑i=1mθj2)
其中,L1正则项产生稀疏模型,L2正则项消除L1正则项中选择变量个数的限制(即稀疏性)。
Elastic Net在高度相关变量的情况下,会产生群体效应;选择变量的数目没有限制;可以承受双重收缩。
2.广义线性回归(Generalized linear model,GLM)
2.1 定义
2.1.1 指数族分布
- 给定随机变量
Y
Y
Y,观测值为
y
y
y,服从指数型分布,即有概率分布函数:
p ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) p(y;η)=b(y)exp(η^TT(y)−a(η)) p(y;η)=b(y)exp(ηTT(y)−a(η)),其中 η η η为自然参数(bature parameter), T ( y ) T(y) T(y)是充分统计量(sufficient statistic)。 - 常见的指数族分布:伯努利分布、高斯分布、多项式分布、泊松分布、指数分布、伽马分布、贝塔分布、狄利克雷分布、维希特分布……
2.1.2 广义线性模型
GLM必须满足以下3个假设:
- y ∣ x , θ ∼ E x p o n e n t i a l F a m i l y ( η ) y|x,\theta\sim ExponentialFamily(η) y∣x,θ∼ExponentialFamily(η)
- 预测的值
h
θ
(
x
)
=
E
[
T
(
y
)
∣
x
]
h_{\theta}(x)=E[T(y)|x]
hθ(x)=E[T(y)∣x],通常
T
(
y
)
=
y
T(y)=y
T(y)=y
假设 E ( Y ) = μ E(Y)=\mu E(Y)=μ,且 μ \mu μ与 η \eta η由如下关系: g ( μ ) = η g(\mu)=\eta g(μ)=η,则 μ = g − 1 ( η ) \mu=g^{-1}(\eta) μ=g−1(η), g ( μ ) g(\mu) g(μ)称之为联系函数(link function)。 - η = θ T x η=\theta^Tx η=θTx
2.2 逻辑回归(Logistic Regression)
2.2.1 定义
-
y
∼
B
(
1
,
φ
)
y\sim B(1,\varphi)
y∼B(1,φ)
F ( y ) = φ y ( 1 − φ ) ( 1 − y ) F(y)=\varphi^y(1-\varphi)^{(1-y)} F(y)=φy(1−φ)(1−y)
= e x p ( y l o g φ + ( 1 − y ) l o g ( 1 − φ ) ) =exp\left(ylog\varphi+(1-y)log(1-\varphi)\right) =exp(ylogφ+(1−y)log(1−φ))
= e x p ( y l o g φ 1 − φ + l o g ( 1 − φ ) ) =exp\left(ylog\frac{\varphi}{1-\varphi}+log(1-\varphi)\right) =exp(ylog1−φφ+log(1−φ))
由指数族分布可知, b ( y ) = 1 , η = l o g φ 1 − φ b(y)=1,η=log\frac{\varphi}{1-\varphi} b(y)=1,η=log1−φφ(称为logit), T ( y ) = y , a ( η ) = − l o g ( 1 − φ ) T(y)=y,a(η)=-log(1-\varphi) T(y)=y,a(η)=−log(1−φ)
得到, φ = 1 1 + e − η \varphi=\frac{1}{1+e^{-η}} φ=1+e−η1(sigmoid函数) - h θ ( x ) = E [ T ( y ) ∣ x ] = φ h_{\theta}(x)=E[T(y)|x]=\varphi hθ(x)=E[T(y)∣x]=φ
-
η
=
θ
T
x
η=\theta^Tx
η=θTx
由此得到 h θ ( x ) = 1 1 + e θ T x h_{\theta}(x)=\frac{1}{1+e^{\theta^Tx}} hθ(x)=1+eθTx1
2.2.2 损失函数(Loss Function)
loss function:对数损失, 即对数似然损失(Log-likelihood Loss), 也称逻辑斯谛回归损失(Logistic Loss)
L ( θ ) = ∏ i = 1 m P ( y ∣ x ; θ ) L(\theta)=\prod_{i=1}^{m}P(y|x;\theta) L(θ)=∏i=1mP(y∣x;θ)
= ∏ i = 1 m h θ ( x i ) y i ( 1 − h θ ( x i ) ) ( 1 − y i ) =\prod_{i=1}^{m}h_{\theta}(x_i)^{y_i}(1-h_{\theta}(x_i))^{(1-y_i)} =∏i=1mhθ(xi)yi(1−hθ(xi))(1−yi)
l o g L ( θ ) logL(\theta) logL(θ)
= ∑ i = 1 m l o g ( h θ ( x i ) y i ( 1 − h θ ( x i ) ) ( 1 − y i ) ) =\sum_{i=1}^{m}log(h_{\theta}(x_i)^{y_i}(1-h_{\theta}(x_i))^{(1-y_i)}) =∑i=1mlog(hθ(xi)yi(1−hθ(xi))(1−yi))
= ∑ i = 1 m [ y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ] =\sum_{i=1}^{m}[y_ilogh_{\theta}(x_i)+(1-y_i)log(1-h_{\theta}(x_i))] =∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
cost function通过最小化负的对数似然函数得到:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
i
l
o
g
h
θ
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
θ
(
x
i
)
)
]
J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}[y_ilogh_{\theta}(x_i)+(1-y_i)log(1-h_{\theta}(x_i))]
J(θ)=−m1∑i=1m[yiloghθ(xi)+(1−yi)log(1−hθ(xi))]
为什么使用logitic loss而不是square loss
-
极大似然法求解得到的结果与对数似然函数的结果是等价的(推导如上)
-
逻辑回归的平方损失不是一个凸函数,不容易求解,得到的解是局部最优解。 对数损失是一个凸函数,且是关于 θ \theta θ的高阶连续可导的凸函数(证略,多元函数的海赛矩阵半正定是其为凸函数的充分必要条件)
2.2.3 求解
梯度下降法:同1.3.2
2.2.4 逻辑回归和线性回归的区别和联系
-
两者都是属于广义线性回归的特殊情况
-
线性回归是假设y服从高斯分布,逻辑回归假设y服从伯努利分布
-
线性回归的损失函数是square loss,而逻辑回归的损失函数是logistic loss
2.2.5 优缺点
优点:
(1).模型的可解释性强,可以通过参数值看到特征对结果的影响(该值并不能代表特征的重要性)。
(2).模型的训练速度较快
(3).既可以得到分类结果也可以得到类别的概率值
缺点:
(1).模型的准确性不高
(2).数据不平衡时,对正负样本的区分能力差
(3).对模型中自变量多重共线性较为敏感
(4).不适合处理非线性数据,只能处理二分类的问题。
(5).sigmoid函数两端斜率小,模型输出的概率值变化小,中间段斜率大,概率变化大。这导致特征某些区间的数值变化对概率的影响较大。
现实场景中,应用逻辑回归往往先进行特征归一化、特征离散化和交叉化处理