一、什么是二分类与逻辑回归(Logistic Regression)?
二分类 表示分类任务中有两个类别。比如有一个分类任务是预测一张图片中是否有猫,则结果只有有 (1)或没有 (0)两种类别。 逻辑回归 就是为解决二分类问题,建立模型,输入数据,最终输出一个0到1的数,用来预测
y
y
y的真实值。比如可以规定当模型输出值
y
^
\hat{y}
y^?大于等于0.5时,我们便预测输出类别为1(对应上述例子,即图片中有猫)。
二、逻辑回归基本思路
有时我们使用线性回归 预测连续的值。设
y
^
\hat{y}
y^? 是预测值,则
y
^
\hat{y}
y^? 可以表示为:
y
^
\hat{y}
y^? = wTx + b
其中x为样本某一特征取值, wT及b为输入参数。
上式输出的值是可以小于0或者大于1的。但我们希望逻辑回归 输出一个0到1的数。可以借助
S
i
g
m
o
i
d
Sigmoid
Sigmoid函数来将输出映射到0到1:
y
^
\hat{y}
y^? =
σ
\sigma
σ(wTx + b) 其中,
σ
(
z
)
=
1
1
+
e
?
z
\sigma(z) = {1\over 1+e^{-z}}
σ(z)=1+e?z1?
σ
(
z
)
\sigma(z)
σ(z)表示
S
i
g
m
o
i
d
Sigmoid
Sigmoid函数,其图像如下图所示: 二分类问题的最终结果
y
y
y 只可能取值0或1,我们通过某一模型计算得到
y
^
\hat{y}
y^?, 用于对
y
y
y 的值进行预测。
y
^
\hat{y}
y^? 通过
S
i
g
m
o
i
d
Sigmoid
Sigmoid函数可以映射到0到1中的某个具体的值,这个值可以理解为模型预测真实结果
y
y
y 为1的概率。比如
y
^
\hat{y}
y^? = 0.8 就代表着在样本
x
x
x 的条件下,通过模型预测
y
y
y 真实值为0.8,但
y
y
y 只可能取值0或1,所以该模型认为
y
y
y 有着80%的概率取得1。
这样
y
^
\hat{y}
y^? 就可以理解为在样本
x
x
x 条件下,
y
=
1
y=1
y=1 的概率,即
y
^
=
P
(
y
=
1
∣
x
)
\hat{y} = P(y = 1 | x)
y^?=P(y=1∣x)
三、定义损失函数(Loss Function)
损失函数用来描述真实值
y
y
y与预测值
y
^
\hat{y}
y^?之间的差距,损失函数越小,代表预测值越接近真实值。 逻辑回归中损失函数定义如下:
L
\mathcal{L}
L(
y
^
\hat{y}
y^?,
y
y
y) =
?
-
?
(
(
(
y
l
o
g
y
^
y log\hat{y}
ylogy^?
+
+
+
(
1
?
y
)
l
o
g
(
1
?
y
^
)
(1 - y) log(1 - \hat{y})
(1?y)log(1?y^?)
)
)
)
下文将给出解释过程。 上文中已说明
y
^
=
P
(
y
=
1
∣
x
)
\hat{y} = P(y = 1 | x)
y^?=P(y=1∣x) 。由于y只可能取值为0或1,所以这个式子可以变形为:
IF y = 1:
P
(
y
∣
x
)
=
y
^
P(y|x) = \hat{y}
P(y∣x)=y^? IF y = 0:
P
(
y
∣
x
)
=
1
?
y
^
P(y|x) =1 - \hat{y}
P(y∣x)=1?y^?
我们希望预测值
y
^
\hat{y}
y^? 接近真实值
y
y
y。 如果y = 1,让
y
^
\hat{y}
y^? 接近
y
y
y, 即接近1,则根据上述第一个式子知
P
(
y
∣
x
)
P(y|x)
P(y∣x)接近1。 如果y = 0,让
y
^
\hat{y}
y^? 接近
y
y
y, 即接近0,则根据上述第二个式子知
P
(
y
∣
x
)
P(y|x)
P(y∣x)接近1 - 0 = 1。 因此我们希望P(y|x)值越大越好,越大代表着预测值越接近真实值。 将上述两个式子合并:
P
(
y
∣
x
)
=
y
^
y
(
1
?
y
^
)
1
?
y
P(y|x) = \hat{y} ^y (1 - \hat{y})^{1 - y}
P(y∣x)=y^?y(1?y^?)1?y
通过取对数,简化式子,得:
l
o
g
P
(
y
∣
x
)
=
y
l
o
g
y
^
+
(
1
?
y
)
l
o
g
(
1
?
y
^
)
=
?
L
(
y
^
,
y
)
logP(y|x) = ylog\hat{y} + (1 - y)log(1 - \hat{y}) = -\mathcal{L}(\hat{y}, y)
logP(y∣x)=ylogy^?+(1?y)log(1?y^?)=?L(y^?,y)
因为对数是单调递增函数,且
P
(
y
∣
x
)
P(y|x)
P(y∣x)值越大说明预测精度越高,也就是说
l
o
g
P
(
y
∣
x
)
logP(y|x)
logP(y∣x)越大越好。但损失函数描述的是真实值与预测值的差距,损失函数越小代表着预测精度越高,因此令
l
o
g
P
(
y
∣
x
)
=
?
L
(
y
^
,
y
)
logP(y|x) = -\mathcal{L}(\hat{y}, y)
logP(y∣x)=?L(y^?,y),损失函数最终便可以表示为:
L
\mathcal{L}
L(
y
^
\hat{y}
y^?,
y
y
y) =
?
-
?
(
(
(
y
l
o
g
y
^
y log\hat{y}
ylogy^?
+
+
+
(
1
?
y
)
l
o
g
(
1
?
y
^
)
(1 - y) log(1 - \hat{y})
(1?y)log(1?y^?)
)
)
)
|