回归
回归,其直观的理解就是拟合的意思。
回归的本质就是我们的预测结果尽量贴近实际观测的结果,或者说我们的求得一些参数,经过计算之后的预测结果尽可能接近真实值。
线性回归定义
线性回归是一个回归问题,即用一条线去拟合训练数据
线性回归的模型: 通过训练数据学习一个特征的线性组合,以此作为预测函数,预测值Y是连续值。 f ( x ) = ω 1 x 1 + ω 2 x 2 + ⋯ + ω n x n + b f(x) = \omega_1x_1 + \omega_2x_2 +\dots +\omega_nx_n+ b f(x)=ω1x1+ω2x2+⋯+ωnxn+b
训练目标:根据训练数据学习参数 ( ω 1 , ω 2 , … , ω n , b ) (\omega_1,\omega_2, \dots , \omega_n,b) (ω1,ω2,…,ωn,b)
逻辑回归定义
逻辑回归,也叫对数几率回归。
假设有一个二分类问题,输出为y∈{0,1},而线性回归模型产生的预测值为
z
=
w
T
x
+
b
z=w^Tx+b
z=wTx+b是实数值,我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化,为了单调可微,选用sigmoid函数来替代阶跃函数。
参考
引入:数据线性可分可以使用线性分类器,如果数据线性不可分,可以使用非线性分类器,这里似乎没有逻辑回归什么事情。但是如果我们想知道对于一个二类分类问题,对于具体的一个样例,我们不仅想知道该类属于某一类,而且还想知道该类属于某一类的概率多大,有什么办法呢?
线性回归和非线性回归的分类函数为: y = ω x + b y=\omega x+b y=ωx+b 。预测的y的阈值为 ( − ∞ , + ∞ ) ( - \infty, + \infty) (−∞,+∞)
,此时不能很好的给出属于某一类的概率,因为概率的范围是**[0,1]**,我们需要一个更好的映射函数,能够将分类的结果很好的映射成为[0,1]之间的概率,并且这个函数能够具有很好的可微分性。在这种需求下,人们找到了这个映射函数,即逻辑斯谛函数,也就是我们常说的sigmoid函数。
- 假设数据离散二类可分,分为0类和1类,如果概率值大于1/2,我们就将该类划分为1类,如果概率值低于1/2,我们就将该类划分为0类
线性回归用来预测,逻辑回归用来分类。
线性回归是拟合函数,逻辑回归是预测函数
线性回归的参数计算方法是最小二乘法,逻辑回归的参数计算方法是梯度下降
正文
逻辑回归:
0
≤
h
θ
(
x
)
≤
1
0 \leq h_{\theta}(x) \leq 1
0≤hθ(x)≤1 ,是一种分类算法,它适用于标签y 取值离散的情况,如:1 0 0 1。
对数几率: l n h θ ( x ) 1 − h θ ( x ) ln \frac{h_{\theta}(x)}{1-h_{\theta}(x)} ln1−hθ(x)hθ(x)
决策边界:给定了参数后,就决定了决策边界,与数据集无关。
如
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
)
h_{\theta}(x)=g(\theta_0+\theta_1x_1+\theta_2x_2)
hθ(x)=g(θ0+θ1x1+θ2x2) ,当参数是向量[-3,1,1]时,直线
x
1
+
x
2
=
3
x_1+x_2=3
x1+x2=3 便是决策边界,此时
h
θ
(
x
)
=
0.5
h_{\theta}(x) = 0.5
hθ(x)=0.5
逻辑回归的Chapter3_公式(3.27)的两种推导方法
第一种西瓜书的推导:
似然函数
(1)
l
(
β
)
=
∑
i
=
1
m
ln
p
(
y
i
∣
x
i
^
;
β
)
l(\beta) = \sum_{i=1}^m \ln p(y_i| \hat{x_i};\beta) \tag{1}
l(β)=i=1∑mlnp(yi∣xi^;β)(1)
其中似然项为
(2)
p
(
y
i
∣
x
i
^
;
β
)
=
y
i
p
1
(
x
i
^
;
β
)
+
(
1
−
y
i
)
p
0
(
x
i
^
;
β
)
p(y_i| \hat{x_i};\beta) = y_ip_1(\hat{x_i};\beta) + (1-y_i)p_0(\hat{x_i};\beta) \tag{2}
p(yi∣xi^;β)=yip1(xi^;β)+(1−yi)p0(xi^;β)(2)
当
p
0
(
x
i
^
;
β
)
p_0(\hat{x_i};\beta)
p0(xi^;β)是预测为反例(
y
i
=
0
y_i = 0
yi=0):
(3)
p
0
(
x
i
^
;
β
)
=
1
1
+
e
β
T
x
^
p_0(\hat{x_i};\beta) = \frac{1} {1+e^{\beta^\mathrm{T} \hat{x}}} \tag{3}
p0(xi^;β)=1+eβTx^1(3)
当
p
1
(
x
i
^
;
β
)
p_1(\hat{x_i};\beta)
p1(xi^;β)是预测为正例(
y
i
=
1
y_i = 1
yi=1):
(4)
p
1
(
x
i
^
;
β
)
=
e
β
T
x
^
1
+
e
β
T
x
^
p_1(\hat{x_i};\beta) = \frac{e^{\beta^\mathrm{T} \hat{x}}} {1+e^{\beta^\mathrm{T} \hat{x}}} \tag{4}
p1(xi^;β)=1+eβTx^eβTx^(4)
把公式(2)(3)(4)代入公式(1)中,得
l
(
β
)
=
∑
i
=
1
m
ln
y
i
p
1
(
x
i
^
;
β
)
+
(
1
−
y
i
)
p
0
(
x
i
^
;
β
)
l(\beta) = \sum_{i=1}^m \ln {y_ip_1(\hat{x_i};\beta) + (1-y_i)p_0(\hat{x_i};\beta) }
l(β)=i=1∑mlnyip1(xi^;β)+(1−yi)p0(xi^;β)
=
∑
i
=
1
m
ln
{
y
i
e
β
T
x
i
^
1
+
e
β
T
x
i
^
+
(
1
−
y
i
)
1
1
+
e
β
T
x
i
^
}
=\sum_{i=1}^m \ln \{ y_i \frac{e^{\beta^\mathrm{T} \hat{x_i}}} {1+e^{\beta^\mathrm{T} \hat{x_i}}} + (1-y_i) \frac{1} {1+e^{\beta^\mathrm{T} \hat{x_i}}} \}
=i=1∑mln{yi1+eβTxi^eβTxi^+(1−yi)1+eβTxi^1}
=
∑
i
=
1
m
ln
{
y
i
e
β
T
x
i
^
+
(
1
−
y
i
)
1
+
e
β
T
x
i
^
}
=\sum_{i=1}^m \ln \{ \frac{y_i e^{\beta^\mathrm{T} \hat{x_i}} + (1-y_i)}{1+e^{\beta^\mathrm{T} \hat{x_i}} } \}
=i=1∑mln{1+eβTxi^yieβTxi^+(1−yi)}
(5)
=
∑
i
=
1
m
{
ln
{
y
i
(
e
β
T
x
i
^
−
1
)
+
1
}
−
l
n
{
1
+
e
β
T
x
i
^
}
}
=\sum_{i=1}^m \{ \ln \{ y_i(e^{\beta^\mathrm{T} \hat{x_i}} - 1) +1 \} - ln\{ 1 + e^{\beta^\mathrm{T} \hat{x_i}} \} \} \tag{5}
=i=1∑m{ln{yi(eβTxi^−1)+1}−ln{1+eβTxi^}}(5)
当 y i = 0 y_i = 0 yi=0 时, (5.1) l ( β ) = ∑ i = 1 m ( 0 − l n ( 1 + e β T x i ^ ) ) l(\beta)=\sum_{i=1}^m ( 0 - ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{5.1} l(β)=i=1∑m(0−ln(1+eβTxi^))(5.1) 当 y i = 1 y_i = 1 yi=1 时,
(5.2) l ( β ) = ∑ i = 1 m ( β T x i ^ − l n ( 1 + e β T x i ^ ) ) l(\beta)=\sum_{i=1}^m ( \beta^\mathrm{T} \hat{x_i} - ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{5.2} l(β)=i=1∑m(βTxi^−ln(1+eβTxi^))(5.2)
整合公式(5.1)(5.2)可得
(6)
l
(
β
)
=
∑
i
=
1
m
(
y
i
β
T
x
i
^
−
l
n
(
1
+
e
β
T
x
i
^
)
)
l(\beta)=\sum_{i=1}^m ( y_i \beta^\mathrm{T} \hat{x_i} - ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{6}
l(β)=i=1∑m(yiβTxi^−ln(1+eβTxi^))(6)
最大化
l
(
β
)
l(\beta)
l(β)即可求得
β
\beta
β的最优值,进而求得
ω
和
b
\omega 和 b
ω和b。此时,最大化
l
(
β
)
l(\beta)
l(β) 等价于最小化
−
l
(
β
)
-l(\beta)
−l(β),则令
l
(
β
)
=
−
l
(
β
)
l(\beta) = -l(\beta)
l(β)=−l(β)。
β
∗
=
arg
min
β
l
(
β
)
\qquad \qquad \qquad \qquad \qquad \beta^* = \underset{\beta}{\arg \min } l(\beta)
β∗=βargminl(β)
西瓜书中的推导结果如下:
(7)
l
(
β
)
=
∑
i
=
1
m
(
−
y
i
β
T
x
i
^
+
l
n
(
1
+
e
β
T
x
i
^
)
)
l(\beta)=\sum_{i=1}^m ( -y_i \beta^\mathrm{T} \hat{x_i} + ln( 1 + e^{\beta^\mathrm{T} \hat{x_i}} ) ) \tag{7}
l(β)=i=1∑m(−yiβTxi^+ln(1+eβTxi^))(7)
可根据梯度下降和牛顿法求最优解 β ∗ \beta^* β∗。
这里根据牛顿法的结论公式得出更新公式: β t + 1 = β t − ( ∂ 2 l ( β ) ∂ β ∂ β ⊺ ) − 1 ∂ l ( β ) ∂ β \beta^{t+1} = \beta^{t} -(\frac{\partial ^2 l(\beta)}{\partial \beta \partial \beta^\intercal }) ^{-1} \frac{\partial l(\beta)}{\partial \beta} βt+1=βt−(∂β∂β⊺∂2l(β))−1∂β∂l(β)。这里的就是统计学习中的公式 x ( k + 1 ) = x ( k ) − H k − 1 g k x^{(k+1)} = x^{(k)}-H_k^{-1} g_k x(k+1)=x(k)−Hk−1gk 海 塞 矩 阵 H k = ∇ 2 f ( x ( k ) ) = ( ∂ 2 l ( β ) ∂ β ∂ β ⊺ ) 海塞矩阵 H_k =\nabla^2 f(x^{(k)}) = (\frac{\partial ^2 l(\beta)}{\partial \beta \partial \beta^\intercal }) 海塞矩阵Hk=∇2f(x(k))=(∂β∂β⊺∂2l(β)) g k = ∇ f ( x ( k ) ) g_k = \nabla f(x^{(k)}) gk=∇f(x(k))
1. 牛顿法
牛顿法(Newton method)也是求解无约束最优化问题的常用方法,收敛速度快,但是每一步需要求解目标函数的海塞矩阵的逆矩阵,计算较复杂。
目标函数很复杂时,为了使问题简化,常常将目标函数在某点邻域展开成泰勒多项式来逼近原函数,此时函数在某点泰勒展开式的矩阵形式中会涉及到黑塞矩阵。
- 泰勒展开式
其中, Δ x = x − x ( 0 ) , Δ x 2 = ( x − x ( 0 ) ) 2 \Delta x= x-x^{(0)}, \Delta x^2= (x-x^{(0)})^2 Δx=x−x(0),Δx2=(x−x(0))2。以此展开式来逼近复杂的原函数。
牛顿法利用极小点的必要条件:
∇ f ( x ( k + 1 ) ) = 0 \nabla f(x^{(k+1)}) = 0 ∇f(x(k+1))=0
对泰勒展开式进行求导。
- 海塞矩阵
一阶导数叫梯度,多阶导数叫海塞矩阵。
(1)当A正定矩阵时, f ( x k ) f(x_k) f(xk)处是极小值;
(2)当A负定矩阵时, f ( x k ) f(x_k) f(xk)处是极大值;
(3)当A不定矩阵时, x k x_k xk不是极值点。
(4)当A为半正定矩阵或半负定矩阵时, x k x_k xk是“可疑”极值点,尚需要利用其他方法来判定。 - 正定矩阵
2. 梯度下降法
梯度下降法(gradient descent)或称最速下降法(steepest descent)是求解无约束最优化问题的最常用方法,每一步都需要求解目标函数的梯度向量。
x k + 1 = x k + λ k p k x^{k+1} = x^k + \lambda_k p_k xk+1=xk+λkpk
- 梯度
函数在该点处沿着该方向沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
p k p_k pk搜索方向是负梯度方向, λ k \lambda_k λk 是步长,由一维搜索方向确定。这里的 p k = − g ( x ( k ) ) p_k = -g(x^{(k)}) pk=−g(x(k)) ,而 g ( x ( k ) ) = ∇ f ( x ( k ) ) g(x^{(k)}) = \nabla f(x^{(k)}) g(x(k))=∇f(x(k))。
其中, λ k \lambda_k λk通过下式求出: f ( x ( k ) + λ k p k ) = min λ ≥ 0 f ( x ( k ) + λ k p k ) f(x^{(k)}+ \lambda_k p_k) = \underset{\lambda \geq0}{\min} f(x^{(k)} + \lambda_k p_k) f(x(k)+λkpk)=λ≥0minf(x(k)+λkpk)
- 特征缩放
特征缩放(feature scaling)大致的思路是:梯度下降算法中,在有多个特征的情况下,如果你能确保这些不同的特征都处在一个相近的范围,这样梯度下降法就能更快地收敛。
(1)均值归一化: x ′ = x − m e a n ( x ) m a x ( x ) − m i n ( x ) x' = \frac{x-mean(x)}{max(x)- min(x)} x′=max(x)−min(x)x−mean(x)
(2)标准化(Standardization):特征标准化使每个特征的值有零均值(zero-mean)和单位方差(unit-variance)。这个方法在机器学习地算法中被广泛地使用。例如:SVM,逻辑回归和神经网络。这个方法的公式如下:
x ′ = x − m e a n ( x ) s t d ( x ) x' = \frac{x-mean(x)}{std(x)} x′=std(x)x−mean(x)
标准差为: s t d ( x ) = ∑ ( x − m e a n ( x ) ) 2 n std(x) = \sqrt{\frac{\sum(x-mean(x))^2}{n}} std(x)=n∑(x−mean(x))2
正则化
以多项式理解,x的次数越高,拟合的越好,但相应的预测能力可能变差。
解决方法:(1)减少特征数量,手工选择保留哪些特征,或者借助模型选择算法(如PCA)(2)正则化:保留了所有特征,但减少参数的大小。
将正则化作用于线性回归代价函数:
J
(
θ
)
=
1
2
m
[
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
+
λ
∑
j
=
1
n
θ
j
2
]
J(\theta) = \frac{1}{2m}[\sum_{i=1}^m (h_\theta (x^{(i)}) - y^{(i)} )^2 + \lambda \sum_{j=1}^n \theta_j^2 ]
J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2]
λ
\lambda
λ 是正则化参数,作用是控制这两个目标之间的平衡,即更好拟合训练集的目标和将参数控制得更小的目标。这里
λ
\lambda
λ值很大的话,为了使代价函数尽量小,所有的
θ
\theta
θ都会在一定程度上减小。
将正则化作用于逻辑回归代价函数:
J
(
θ
)
=
1
m
∑
i
=
1
m
[
−
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
−
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
+
λ
2
m
∑
j
=
1
n
θ
j
2
J(\theta) = \frac{1}{m}\sum_{i=1}^m [-y^{(i)} \log(h_\theta (x^{(i)})) - (1-y^{(i)}) \log(1-h_\theta(x^{(i)}))] + \frac{\lambda} {2m} \sum_{j=1}^n \theta_j^2
J(θ)=m1i=1∑m[−y(i)log(hθ(x(i)))−(1−y(i))log(1−hθ(x(i)))]+2mλj=1∑nθj2
逻辑回归和线性回归的假设函数不同:
(1)线性回归:
h
θ
(
x
)
=
θ
T
X
=
θ
0
x
0
+
θ
1
x
1
+
θ
2
x
2
+
⋯
+
θ
n
x
n
h_\theta(x) = \theta^TX =\theta_0x_0 + \theta_1x_1 +\theta_2x_2 +\dots +\theta_n x_n
hθ(x)=θTX=θ0x0+θ1x1+θ2x2+⋯+θnxn
(2)逻辑回归:
h
θ
(
x
)
=
1
1
+
e
−
θ
T
X
h_\theta(x) = \frac{1}{1+e^{-\theta^TX}}
hθ(x)=1+e−θTX1
逻辑回归的损失函数—是对数损失函数
L
(
Y
,
P
(
Y
∣
X
)
)
=
−
l
o
g
P
(
Y
∣
X
)
L(Y,P(Y|X)) = -logP(Y|X)
L(Y,P(Y∣X))=−logP(Y∣X)
逻辑回归损失函数的启发