6.1 离散分类问题
线性回归算法不适用分类问题。
6.2 假设表示(方程)
逻辑函数(sigmoid函数):
g
(
z
)
=
1
1
+
e
−
z
g(z)={1\over 1+e^{-z}}
g(z)=1+e−z1
逻辑回归假设函数:
h
θ
(
x
)
=
g
(
Θ
T
x
)
=
1
1
+
e
−
Θ
T
x
h_\theta(x)=g(\Theta^Tx)={1\over 1+e^{-\Theta^Tx}}
hθ(x)=g(ΘTx)=1+e−ΘTx1
h(x)指的是在给定参数
Θ
\Theta
Θ的前提下,y=1(患病)的概率
条件概率:
h
θ
(
x
)
=
P
(
y
=
1
∣
x
;
Θ
)
h_\theta(x)=P(y=1|x;\Theta)
hθ(x)=P(y=1∣x;Θ)
6.3 判定界限
若果
h
(
x
)
>
=
0.5
h(x)>=0.5
h(x)>=0.5,判定会患病即"
y
=
1
y=1
y=1"
反之
h
(
x
)
<
0.5
h(x)<0.5
h(x)<0.5,判定不会患病即"
y
=
0
y=0
y=0"
又因为
h
θ
(
x
)
=
g
(
Θ
T
x
)
=
1
1
+
e
−
Θ
T
x
h_\theta(x)=g(\Theta^Tx)={1\over 1+e^{-\Theta^Tx}}
hθ(x)=g(ΘTx)=1+e−ΘTx1。由图像可知:
当
Θ
T
x
>
0
\Theta^Tx>0
ΘTx>0时,
h
θ
(
x
)
=
g
(
Θ
T
x
)
>
0.5
h_\theta(x)=g(\Theta^Tx)>0.5
hθ(x)=g(ΘTx)>0.5
当
Θ
T
x
<
0
\Theta^Tx<0
ΘTx<0时,
h
θ
(
x
)
=
g
(
Θ
T
x
)
<
0.5
h_\theta(x)=g(\Theta^Tx)<0.5
hθ(x)=g(ΘTx)<0.5
假设函数:
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)
判定界限:
Θ
T
x
=
0
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
\Theta^Tx=0=\theta_0+\theta_1x_1+\theta_2x_2
ΘTx=0=θ0+θ1x1+θ2x2
下面的例子中判定界限:
−
3
+
x
1
+
x
2
=
0
-3+x_1+x_2=0
−3+x1+x2=0
通过构造高次多项式的判定边界函数可以获得复杂的判定边界:
6.4 损失函数
如果直接用线性回归中的损失函数,其中的
h
(
x
)
−
y
=
g
(
Θ
T
x
)
−
y
=
1
1
+
e
−
Θ
T
x
−
y
h(x)-y=g(\Theta^Tx)-y={1\over 1+e^{-\Theta^Tx}}-y
h(x)−y=g(ΘTx)−y=1+e−ΘTx1−y
该损失函数不是凸函数,有很多局部最优解。不适用于逻辑回归。
使用对数函数作为损失函数。
下图所示将患病y=1作为预测前提,损失函数为
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
l
o
g
(
h
θ
(
x
)
)
Cost(h_\theta(x),y)=-log(h_\theta(x))
Cost(hθ(x),y)=−log(hθ(x))。损失函数值越大,证明预测错了,其实是没患病,损失函数值很小,证明预测正确,确实患病了。
下图所示将没患病y=0预测前提,损失函数为
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
l
o
g
(
1
−
h
θ
(
x
)
)
Cost(h_\theta(x),y)=-log(1-h_\theta(x))
Cost(hθ(x),y)=−log(1−hθ(x))。损失函数值越大,证明预测错了,其实是患病了,损失函数值很小,证明预测正确,确实没患病。
6.5 简化损失函数并求梯度
用一个函数表示y=1和y=0的两种情况:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
l
o
g
(
1
−
h
θ
(
x
)
)
Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
损失函数:
J
(
Θ
)
=
−
1
m
∑
i
=
1
m
[
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\Theta)=-{1\over m}\sum^m_{i=1}[logh_\theta(x^{(i)})+(1-y^{i})log(1-h_\theta(x^{(i)}))]
J(Θ)=−m1i=1∑m[loghθ(x(i))+(1−yi)log(1−hθ(x(i)))]
优化函数:求偏导数推得梯度函数:
θ
j
:
=
θ
j
−
α
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
(
i
)
=
θ
j
−
α
∑
i
=
1
m
(
1
1
+
e
−
Θ
T
x
−
y
(
i
)
)
x
(
i
)
\theta_j:=\theta_j-\alpha\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})x^{(i)}=\theta_j-\alpha\sum^m_{i=1}({1\over 1+e^{-\Theta^Tx}}-y^{(i)})x^{(i)}
θj:=θj−αi=1∑m(hθ(x(i))−y(i))x(i)=θj−αi=1∑m(1+e−ΘTx1−y(i))x(i)
=
θ
j
−
α
∑
i
=
1
m
(
1
1
+
e
−
(
θ
0
+
θ
1
x
1
+
θ
2
(
x
2
)
2
+
⋯
+
)
−
y
(
i
)
)
x
(
i
)
=\theta_j-\alpha\sum^m_{i=1}({1\over 1+e^{-(\theta_0+\theta_1x_1+\theta_2(x_2)^2+\cdots+)}}-y^{(i)})x^{(i)}
=θj−αi=1∑m(1+e−(θ0+θ1x1+θ2(x2)2+⋯+)1−y(i))x(i)
6.6 高级优化函数
高级优化函数:
- 共轭梯度法
- BFGS
- L-BFGS
优点: - 不需要手动选择学习率 α \alpha α
- 收敛速度远远快于梯度下降
缺点: - 更复杂
逻辑回归解决多类别分类问题
构造
C
n
2
C^2_n
Cn2个伪两类别分类问题