下面我们介绍如何拟合逻辑回归模型的参数θ。
具体来说,要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。
理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
h_{\theta}(x) = \frac{1}{1 + e^{-\theta^T x}}
hθ(x)=1+e−θTx1带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convexfunction)。
这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
线性回归的代价函数为 :
J
(
θ
)
=
1
m
∑
i
=
1
m
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(\theta) = \frac{1}{m} \sum_{i=1}^{m} \frac{1}{2} \big( h_\theta(x^{(i)}) - y^{(i)} \big)^2
J(θ)=m1i=1∑m21(hθ(x(i))−y(i))2
我们重新定义逻辑回归的代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
cost
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
J(\theta) = \frac{1}{m} \sum_{i=1}^{m} \text{cost}\big( h_\theta(x^{(i)}), y^{(i)} \big)
J(θ)=m1i=1∑mcost(hθ(x(i)),y(i))
h
θ
(
x
)
ℎθ (x)
hθ(x)与
cost
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
)
\text{cost}\big( h_\theta(x^{(i)}), y^{(i)}) \big)
cost(hθ(x(i)),y(i)))之间的关系如下图所示:
这样构建的
c
o
s
t
(
h
θ
(
x
)
,
y
)
cost(ℎ_θ (x), y)
cost(hθ(x),y)函数的特点是:
当实际的 y = 1 且
h
θ
(
x
)
ℎ_θ (x)
hθ(x)也为 1 时误差为 0,
当 y = 1 但
h
θ
(
x
)
ℎ_θ (x)
hθ(x)不为 1 时误差随着
h
θ
(
x
)
ℎ_θ (x)
hθ(x)变小而变大;
当实际的 y = 0 且
h
θ
(
x
)
ℎ_θ (x)
hθ(x)也为 0 时 代价为 0
当y = 0 但
h
θ
(
x
)
ℎ_θ (x)
hθ(x)不为 0 时误差随着
h
θ
(
x
)
ℎ_θ (x)
hθ(x)的变大而变大。
将构建的
c
o
s
t
(
h
θ
(
x
)
,
y
)
cost(ℎ_θ (x), y)
cost(hθ(x),y)简化如下:
c
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
×
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
×
l
o
g
(
1
−
h
θ
(
x
)
)
cost(ℎ_θ (x), y) = −y × log(ℎ_θ (x)) − (1 − y) × log(1 − ℎ_θ (x))
cost(hθ(x),y)=−y×log(hθ(x))−(1−y)×log(1−hθ(x))
带入代价函数得到:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \Big[ y^{(i)} \log\big( h_\theta(x^{(i)}) \big) + (1 - y^{(i)}) \log\big( 1 - h_\theta(x^{(i)}) \big) \Big]
J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
我们定义了单训练样本的代价函数,凸性分析的内容是超出范围的,但是可以证明我们所选的代价值函数会给我们一个凸优化问题。代价函数J(θ)会是一 个凸函数,并且没有局部最优值。推导过程如下:
注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的
h
𝜃
(
𝑥
)
=
𝑔
(
𝜃
𝑇
𝑋
)
ℎ_𝜃(𝑥) = 𝑔(𝜃^{𝑇}𝑋)
h𝜃(x)=g(𝜃TX)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之前,进行特征缩放依旧是非常必要的。
一些梯度下降算法之外的选择: 除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速.这些算法有:
共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS)