6.1 分类
当预测的值为离散型变量时,我们将这类问题归于监督学习的分类问题。举例来说,垃圾邮件的判断,肿瘤良性恶性的判别等即属此类。
预测的值仅为0或1时,0被称为负类(negative class),1被称为正类(positive class)。 但同时,我们也存在多分类的问题,比如优良中差等级评定等问题。如图所示:
6.2 模型假设
我们在这里引入一个新的模型——逻辑回归(Logistic regression)。 同时,我们还要补充一个函数知识:
逻辑函数 (logistic function) ,它保证了输出一定位于0-1之间。
g
(
x
)
=
1
1
+
e
−
z
g(x) = \frac{1}{1+e^{-z}}
g(x)=1+e−z1
其函数图像如图所示:
逻辑回归模型认为,或者说,有这样的假设:
h
θ
(
x
)
=
g
(
θ
T
x
)
h_\theta(x) = g(\theta^Tx)
hθ(x)=g(θTx)
即:
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
h_\theta(x) = \frac{1}{1+e^{-\theta^{T}x}}
hθ(x)=1+e−θTx1
在这里,
h
θ
(
x
)
h_\theta(x)
hθ(x)代表概率,即根据输入值得出输出为1的概率。举例来说,这里有一个输入:
x
0
x_0
x0仍然和线性回归时一样为1,
x
1
x_1
x1为肿瘤大小。我们根据给定的x值得出
h
θ
(
x
)
=
0.7
h_\theta(x) = 0.7
hθ(x)=0.7,说明输出值为1的概率为0.7,即恶性肿瘤的概率为0.7。 用数学表达式来阐述的话就是:
h
θ
(
x
)
=
P
(
y
=
1
∣
x
;
θ
)
h_\theta(x) = P(y=1|x;\theta)
hθ(x)=P(y=1∣x;θ)即在给定条件x的情况下,y=1的概率。这个概率的参数为
θ
\theta
θ.
6.3 决策边界
仍以上一节例子继续阐述。
在这里,我们以0.5为分界线。
h
θ
(
x
)
≥
0.5
时,预测
y
=
1
h_\theta(x) \geq 0.5时,预测y=1
hθ(x)≥0.5时,预测y=1
h
θ
(
x
)
<
0.5
时,预测
y
=
0
h_\theta(x) < 0.5时,预测y=0
hθ(x)<0.5时,预测y=0
我们之前说过的逻辑函数有一个很好的性质,如上图所示,当函数值大于0.5时,自变量大于0;当函数值小于0.5时,自变量小于0。所以可以得出以下结论:
θ
T
x
≥
0
时,预测
y
=
1
\theta^Tx \geq0时,预测y = 1
θTx≥0时,预测y=1
θ
T
x
<
0
时,预测
y
=
0
\theta^Tx <0时,预测y=0
θTx<0时,预测y=0
接下来我们进入模型训练,假设我们已经拟定好了模型的参数:
θ
=
[
−
3
1
1
]
\theta = \begin{bmatrix} -3 \\ 1 \\1 \end{bmatrix}
θ=⎣
⎡−311⎦
⎤
现在要对以下的数据集进行预测:
根据我们上文提到的公式,要预测"y=1",则需要
−
3
+
x
1
+
x
2
≥
0
-3+x_1+x_2 \geq 0
−3+x1+x2≥0;要预测"y =0",则需要
−
3
+
x
1
+
x
2
<
0
-3+x_1+x_2<0
−3+x1+x2<0(反之依然成立)。
在上图中作出
−
3
+
x
1
+
x
2
=
0
-3 + x_1+x_2=0
−3+x1+x2=0的图像,如图所示:
因此,我们认定为恶性肿瘤的区域即为直线的上方区域,认定为良性肿瘤的区域为直线的下方区域,这条直线即被称为决策边界(decision boundary)。
我们还给出一个较为复杂的例子,如图所示:
这里我们不加证明的使用
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
1
2
+
θ
4
x
2
2
)
h_\theta(x) = g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2)
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)作为我们的假设函数,同时令:
θ
0
=
−
1
,
θ
1
=
0
,
θ
2
=
0
,
θ
3
=
1
,
θ
4
=
1
\theta_0 = -1,\theta_1 = 0,\theta_2=0,\theta_3=1,\theta_4=1
θ0=−1,θ1=0,θ2=0,θ3=1,θ4=1
即
θ
=
[
−
1
0
0
1
1
]
即\theta = \begin{bmatrix} -1\\0\\0\\1\\1 \end{bmatrix}
即θ=⎣
⎡−10011⎦
⎤
因此,当
−
1
+
x
1
2
+
x
2
2
≥
0
时,
y
=
1
;
−
1
+
x
1
2
+
x
2
2
<
0
时
,
y
=
0
。
-1+x_1^2+x_2^2 \ge0时,y=1;-1+x_1^2+x_2^2 <0时,y=0。
−1+x12+x22≥0时,y=1;−1+x12+x22<0时,y=0。
作出决策边界如下:
在这里我们得出了一个更为复杂的决策边界。实际上,通过改变参数
θ
\theta
θ的值,我们可以创造非常多样化的决策边界。
6.4 代价函数
一个典型的Logistic回归问题所具有的条件是这样的:
训练集:{( x ( 1 ) x^{(1)} x(1), y ( 1 ) y^{(1)} y(1)),( x ( 2 ) x^{(2)} x(2), y ( 2 ) y^{(2)} y(2))…( x ( m ) x^{(m)} x(m), y ( m ) y^{(m)} y(m))};一共有m个样本。
变量:任一x均为向量形式的变量“合集”,即: x ( i ) = { x 0 x 1 . . . x n } x^{(i)}= \begin{Bmatrix} x_0 \\ x_1 \\... \\x_n \end{Bmatrix} x(i)=⎩ ⎨ ⎧x0x1...xn⎭ ⎬ ⎫,其中 x 0 = 1 x_0 = 1 x0=1, y ∈ [ 0 , 1 ] y\in[0,1] y∈[0,1]。
函数 : h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1+e^{-\theta^T}x} hθ(x)=1+e−θTx1
另外,我们将原来线性回归里的损失函数形式:
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}(h_{\theta}(x^{(i)})-y^{(i)})^2
J(θ)=m1i=1∑m21(hθ(x(i))−y(i))2
改写为以下形式:
定义函数:
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
=
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
Cost(h_{\theta}(x^{(i)}),y^{(i)})=\frac{1}{2}(h_{\theta}(x^{(i)})-y^{(i)})^2
Cost(hθ(x(i)),y(i))=21(hθ(x(i))−y(i))2
或者进一步地,去掉这些上标,即考虑整个样本内的情况:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
1
2
(
h
θ
(
x
)
−
y
)
2
Cost(h_{\theta}(x),y)=\frac{1}{2}(h_{\theta}(x)-y)^2
Cost(hθ(x),y)=21(hθ(x)−y)2
但是,实践表明,在
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
h_{\theta}(x) = \frac{1}{1+e^{-\theta^T}x}
hθ(x)=1+e−θTx1的情况下,该损失函数的图像是一个非凸函数(non-convex function) 而不是一个凸函数(convex_function)。其原因在于
h
θ
(
x
)
h_{\theta}(x)
hθ(x)并不与线性回归的预测函数一致,是一个线性函数。
若对非凸函数使用梯度下降法,则它很难收敛到全局最小值
若对非凸函数使用梯度下降法,则它很难收敛到全局最小值
若对非凸函数使用梯度下降法,则它很难收敛到全局最小值
因此,我们考虑引入一种新的损失函数,该损失函数需要满足以下特点:
- 当 y = 1 , h θ ( x ) = 0 y=1, h_{\theta}(x)=0 y=1,hθ(x)=0时,损失函数应该有最大值。
- 当 y = 0 , h θ ( x ) = 1 y=0, h_{\theta}(x)=1 y=0,hθ(x)=1时,损失函数应该有最大值。
- 有全局最小值,最好没有局部最小值
考虑到此时的预测函数特点,我们定义损失函数如下:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
,
y
=
1
时
−
l
o
g
(
1
−
h
θ
(
x
)
)
,
y
=
0
时
Cost(h_{\theta}(x),y) =\begin{cases} -log(h_{\theta}(x))&,y=1时 \\-log(1-h_{\theta}(x))&,y=0时 \end{cases}
Cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x)),y=1时,y=0时
如上图所示
6.5 简化后的损失函数以及梯度下降
根据之前所说的,分类问题下的损失函数可以表示为:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
,
y
=
1
时
−
l
o
g
(
1
−
h
θ
(
x
)
)
,
y
=
0
时
Cost(h_{\theta}(x),y) =\begin{cases} -log(h_{\theta}(x))&,y=1时 \\-log(1-h_{\theta}(x))&,y=0时 \end{cases}
Cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x)),y=1时,y=0时
由于分类问题下,数据集中的样本Y值要么为0要么为1。基于此,我们考虑将上面的损失函数合并成一个函数以简化使用。
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
log
(
h
θ
(
x
)
)
−
(
1
−
y
)
log
(
1
−
h
θ
(
x
)
)
Cost(h_{\theta}(x),y) = -y\log(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
C
o
s
t
(
h
θ
(
x
i
)
,
y
(
i
)
)
J(\theta)= \frac{1}{m}\sum_{i=1}^mCost(h_{\theta}(x^{i}),y^{(i)})
J(θ)=m1i=1∑mCost(hθ(xi),y(i))
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
= - \frac{1}{m}\sum_{i=1}^{m} [y^{(i)}\log(h_{\theta}(x^{(i)}))+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))]
=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
然后,类比我们之前在线性回归中使用的梯度下降法:
θ
j
:
=
θ
j
−
α
∂
J
(
θ
0
,
θ
1
.
.
.
θ
n
)
∂
θ
j
\theta_j := \theta_j - \alpha \frac{\partial J(\theta_0,\theta_1...\theta_n)}{\partial \theta_j}
θj:=θj−α∂θj∂J(θ0,θ1...θn)
带入
J
(
θ
)
J(\theta)
J(θ):
=
θ
j
−
α
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
=\theta_j - \alpha \sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}
=θj−αi=1∑m(hθ(x(i))−y(i))xj(i)
上式中,
1
m
\frac{1}{m}
m1被归到了学习率
α
\alpha
α中。
实际上,对比之前在线性回归中的梯度下降法,我们会惊讶地发现两者惊人的一致。
线性回归中的梯度下降:
θ
1
:
=
θ
1
−
α
1
m
∑
i
=
1
m
(
(
θ
0
+
θ
1
x
i
)
−
y
i
)
∗
x
i
\theta_1 := \theta_1 - \alpha\frac{1}{m}\sum_ {i=1}^m((\theta_0 + \theta_1x_i) - y_i)*x_i
θ1:=θ1−αm1i=1∑m((θ0+θ1xi)−yi)∗xi
=
θ
1
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
)
x
1
(
i
)
=\theta_1-\alpha\frac{1}{m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y)x_1^{(i)}
=θ1−αm1i=1∑m(hθ(x(i))−y)x1(i)
6.6 高级优化
我们现在设计机器学习算法的目的是找到最优的模型参数 θ \theta θ。为此,我们需要计算两个量:
- 损失函数 J ( θ ) J(\theta) J(θ)
- 偏导数 ∂ ∂ θ J ( θ ) \frac{\partial}{\partial\theta}J(\theta) ∂θ∂J(θ)
相对应的,我们目前有这些优化算法:
- 梯度下降
- 共轭梯度法
- BFGS
- L-BFGS
后面加粗的这些算法相较梯度下降来说更有优势,它们收敛的更快,可以智能选择学习率,同时也更为复杂。
6.7 一对多(one-vs-all)的分类问题
除开上文所述的二元(binary)分类问题以外,我们通常还会遇到以下一些问题:
天气有晴,雨,多云,雪等类别
病人的癌症有肝癌,肺癌,胃癌等类别
如果以图像的形式来看的话就如下图所示:
上图同时也描述了在现有框架下的一种解决方法。如图所示,将问题转变为三个二分类问题依次构造分类器。同时也起到了交叉验证的效果。