文章目录
一,二分类
二分类问题顾名思义,将某事件分成两类,
例如某幅图片是不是猫,
x=1记为此图片是猫,x=0记为此图片不是猫,假设两个事件的概率如下
P(x=1)=a,P(x=0)=b,很容易知道,二分类的事件的概率和为1,即:
P(x=1) + P (x=0) = 1。
二分类问题是处理分类问题的,将事件分成两类,并且两类的结果是互斥的。
二,Sigmoid函数
(一)Sigmoid函数及其图像
Sigmoid函数的表达式与图像,如下所示,可以看出Sigmoid函数的值域在(0,1)之间,当x->
+
∞
+\infin
+∞,y->1;当x->
−
∞
-\infin
−∞,y->0。
f
(
x
)
=
1
1
+
e
−
x
f(x)=\frac{1}{1+e^{-x}}
f(x)=1+e−x1
(二) SIgmoid导数及其图像
求解Sigmoid导数得到如下的结果
∂
f
∂
d
=
f
(
x
)
(
1
−
f
(
x
)
)
\frac{\partial f}{\partial d}=f(x)(1-f(x))
∂d∂f=f(x)(1−f(x))
图像如下导数取到最大值为0.25,并且处处都有导数,并且不为0
三,逻辑回归
(一) 模型
逻辑回归模型如下,其中x为一维
y
=
1
1
+
e
−
d
d
=
w
1
x
1
+
w
0
y = \frac{1}{1+e^{-d}}\\ d = w_1x_1 + w_0
y=1+e−d1d=w1x1+w0
d在平面内是一条直线,这条直线被称为分类线。当d=0时,y=0.5。
令阈值 θ \theta θ=0.5,如果d>0.5,则将数据划分为一类,记为+1类
若d<0.5,则将数据划分为另一类,记为-1类。
d越大,说明数据点距离分类线越远,也说明分类的可靠性越大。
(二)阈值
θ \theta θ的选取问题。一般情况下阈值选择时0.5,当y>0.5的时候,将其分为一类,当y<0.5,的时候,将其分为另一类。
但是根据实际情况,阈值的选取也是不同的。
例如判断患者是否患病,那么就需要将阈值调低一些,比如0.2,如果得到的结果大于0.2,就要对患者进行进一步的治疗。这种情况宁可错判,也不要漏判。
(三) 选取Sigmoid函数的原因
1,由Sigmoid导函数的图像可知,其导函数处处可导,且都不为0这使得梯度下降成为可能性;
2,Sigmoid函数的图像可知,其值域在(0,1),输出得到的结果,根据阈值进行分类。
四,损失函数
KL距离作为逻辑回归的损失函数,KL距离是用来度量不同概率分布之间 差异
K
L
(
P
,
Q
)
=
∑
P
(
y
)
l
o
g
P
(
y
)
Q
(
y
)
∑
P
(
y
)
=
1
∑
Q
(
y
)
=
1
KL(P,Q)= \sum P(y) log \frac{P(y)}{Q(y)} \\ \sum P(y) = 1 \\ \sum Q(y) = 1
KL(P,Q)=∑P(y)logQ(y)P(y)∑P(y)=1∑Q(y)=1
由于我们现在研究的是二分类问题,+1类的概率是
y
^
\hat{y}
y^,那么-1类的概率就是
1
−
y
^
1-\hat{y}
1−y^
由于只有二分类,所以可以将KL距离改写成
K
L
(
y
,
y
^
)
=
y
l
o
g
y
y
^
+
(
1
−
y
)
l
o
g
1
−
y
1
−
y
^
KL(y,\hat{y})= ylog \frac{y}{\hat{y}} + (1-y)log \frac{1-y}{1-\hat{y}}
KL(y,y^)=ylogy^y+(1−y)log1−y^1−y
由于对数函数的性质可知
l
o
g
b
a
=
l
o
g
b
−
l
o
g
a
log\frac{b}{a} = logb-loga
logab=logb−loga
所以可以将KL距离进行化简
K
L
(
y
,
y
^
)
=
y
l
o
g
y
−
y
l
o
g
y
^
+
(
1
−
y
)
l
o
g
(
1
−
y
)
−
(
1
−
y
)
l
o
g
(
1
−
y
^
)
KL(y,\hat{y})= ylog {y}-ylog{\hat{y}} + (1-y)log ({1-y})-(1-y)log({1-\hat{y}})
KL(y,y^)=ylogy−ylogy^+(1−y)log(1−y)−(1−y)log(1−y^)
由于我们要找到和w有关的项,
y
l
o
g
y
ylogy
ylogy与w无关,所以将一些去掉,对上式进行化简
K
L
(
y
,
y
^
)
=
−
y
l
o
g
y
^
−
(
1
−
y
)
l
o
g
(
1
−
y
^
)
KL(y,\hat{y})= -ylog{\hat{y}} -(1-y)log({1-\hat{y}})
KL(y,y^)=−ylogy^−(1−y)log(1−y^)
上式就是逻辑回归二分类得到的LOSS函数
如果考虑到所有样本N,就可以得到逻辑函数的损失函数L
L
=
K
L
(
y
,
y
^
)
=
∑
i
=
1
N
[
−
y
i
l
o
g
y
i
^
−
(
1
−
y
i
)
l
o
g
(
1
−
y
i
^
)
]
L = KL(y,\hat{y})= \sum\limits_{i=1}^N[-y_ilog{\hat{y_i}} -(1-y_i)log({1-\hat{y_i}})]
L=KL(y,y^)=i=1∑N[−yilogyi^−(1−yi)log(1−yi^)]
五,梯度下降法
由于我们知道Sigmoid导函数处处不为零,这就为使用梯度下降求取w提供了可能性
求解先用一个样本举例
y
=
1
1
+
e
−
d
d
=
w
1
x
1
+
w
0
∂
L
∂
w
=
∂
L
∂
y
^
⋅
∂
y
^
∂
d
⋅
∂
d
∂
w
y = \frac{1}{1+e^{-d}}\\ d = w_1x_1 + w_0 \\ \frac{\partial L}{\partial w} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial d} \cdot \frac{\partial d}{\partial w} \\
y=1+e−d1d=w1x1+w0∂w∂L=∂y^∂L⋅∂d∂y^⋅∂w∂d
使用链式法则得到
w
w
w和
w
0
w_0
w0
∂
L
∂
w
=
(
y
^
−
y
)
x
∂
L
∂
w
0
=
(
y
^
−
y
)
\frac{\partial L}{\partial w} = (\hat y - y)x \\ \frac{\partial L}{\partial w_0} = (\hat y - y)
∂w∂L=(y^−y)x∂w0∂L=(y^−y)
如果考虑到所有的样本N,得到
w
w
w和
w
0
w_0
w0
∂
L
∂
w
=
1
N
∑
i
=
1
N
(
y
^
−
y
)
x
∂
L
∂
w
0
=
1
N
∑
i
=
1
N
(
y
^
−
y
)
\frac{\partial L}{\partial w} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y)x \\ \frac{\partial L}{\partial w_0} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y)
∂w∂L=N1i=1∑N(y^−y)x∂w0∂L=N1i=1∑N(y^−y)
六,梯度下降法求解步骤
1,随机初始化, w ( t ) w(t) w(t)和 w 0 ( t ) w_0(t) w0(t),t为迭代次数
2,在第五章使用梯度下降法求出的结果
∂
L
∂
w
(
t
)
=
1
N
∑
i
=
1
N
(
y
^
−
y
)
x
∂
L
∂
w
0
(
t
)
=
1
N
∑
i
=
1
N
(
y
^
−
y
)
\frac{\partial L}{\partial w(t)} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y)x \\ \frac{\partial L}{\partial w_0(t)} = \frac{1}{N}\sum\limits_{i=1}^N(\hat y - y)
∂w(t)∂L=N1i=1∑N(y^−y)x∂w0(t)∂L=N1i=1∑N(y^−y)
3,更新得到的参数
w
(
t
+
1
)
=
w
(
t
)
−
α
∂
L
∂
w
(
t
)
w
0
(
t
+
1
)
=
w
0
(
t
)
−
α
∂
L
∂
w
0
(
t
)
w(t+1) = w(t) - \alpha\frac{\partial L}{\partial w(t)} \\ w_0(t+1) = w_0(t) - \alpha\frac{\partial L}{\partial w_0(t)}
w(t+1)=w(t)−α∂w(t)∂Lw0(t+1)=w0(t)−α∂w0(t)∂L
4,重复上述1~3步,如果我们指定了或者L足够小就会提前停止更新。
七,正则项
L = K L ( y , y ^ ) = ∑ i = 1 N [ − y i l o g y i ^ − ( 1 − y i ) l o g ( 1 − y i ^ ) ] + λ ∣ ∣ w ∣ ∣ L = KL(y,\hat{y})= \sum\limits_{i=1}^N[-y_ilog{\hat{y_i}} -(1-y_i)log({1-\hat{y_i}})] + \lambda ||w|| L=KL(y,y^)=i=1∑N[−yilogyi^−(1−yi)log(1−yi^)]+λ∣∣w∣∣
正则项分为L1和L2正则,L1对应的是曼哈顿距离,L2对应的是欧氏距离
如果线性可分,如果按比例将w的各个维度放大,L会不断减小并接近于0。
∑
i
=
1
N
[
−
y
i
l
o
g
y
i
^
−
(
1
−
y
i
)
l
o
g
(
1
−
y
i
^
)
]
+
λ
∣
∣
w
∣
∣
\sum_{i=1}^N[-y_ilog{\hat{y_i}} -(1-y_i)log({1-\hat{y_i}})] + \lambda ||w||
i=1∑N[−yilogyi^−(1−yi)log(1−yi^)]+λ∣∣w∣∣
正则项分为L1和L2正则,L1对应的是曼哈顿距离,L2对应的是欧氏距离
如果线性可分,如果按比例将w的各个维度放大,L会不断减小并接近于0。
所以使用L2正则来防止w的无穷无止的增加。