逻辑回归
逻辑回归
二分类情况
对于二分类问题,在线性可分的情况下,试图构建一个判别式
W
′
X
′
+
b
{W'X'+b}
W′X′+b,为了便于操作将判别式增广为
W
X
{WX}
WX。
W
x
i
=
{
>
0
,
x
i
∈
w
1
,
Y
=
1
<
0
,
x
i
∈
w
2
,
Y
=
0
{Wx_i}=begin{cases} >0, quad x_i in w_1,Y=1\ <0, quad x_i in w_2,Y=0 end{cases}
Wxi={ >0,xi∈w1,Y=1<0,xi∈w2,Y=0
为了将其表示为概率的方式我们对概率建模,将其缩放为
[
0
,
1
]
[0,1]
[0,1]的范围上,所以我们利用sigmoid函数
1
1
+
e
−
x
frac{1}{1+e^{-x}}
1+e−x1。
由此我们设分类为
w
1
w_1
w1的概率为
P
(
Y
=
1
∣
x
)
=
1
1
+
e
−
W
x
P(Y=1|x)=frac{1}{1+e^{-Wx}}
P(Y=1∣x)=1+e−Wx1
设:
P
(
Y
=
1
∣
x
i
)
=
P
(
x
i
)
P
(
Y
=
0
∣
x
i
)
=
1
−
P
(
x
i
)
P(Y=1|x_i)=P(x_i)\ P(Y=0|x_i)=1-P(x_i)
P(Y=1∣xi)=P(xi)P(Y=0∣xi)=1−P(xi)
由此构建似然函数:
L
(
W
)
=
∏
[
P
(
x
i
)
]
y
i
[
1
−
P
(
x
i
)
]
(
1
−
y
i
)
L(W)=prod[P(x_i)]^{y_i}[1-P(x_i)]^{(1-y_i)}
L(W)=∏[P(xi)]yi[1−P(xi)](1−yi)
对似然函数取对数:
I
n
(
L
(
W
)
)
=
ln
(
∏
[
P
(
x
i
)
]
y
i
[
1
−
P
(
x
i
)
]
(
1
−
y
i
)
)
=
∑
(
ln
(
[
P
(
x
i
)
]
y
i
)
+
ln
(
[
1
−
P
(
x
i
)
]
(
1
−
y
i
)
)
)
=
∑
(
y
i
ln
(
[
P
(
x
i
)
]
)
+
(
1
−
y
i
)
ln
(
[
1
−
P
(
x
i
)
]
)
)
=
∑
[
y
i
⋅
W
x
i
−
ln
(
1
+
e
W
x
i
)
]
begin{aligned} In(L(W)) &=ln(prod[P(x_i)]^{y_i}[1-P(x_i)]^{(1-y_i)})\ &=sum (ln([P(x_i)]^{y_i})+ln([1-P(x_i)]^{(1-y_i)}))\ &=sum ({y_i}ln([P(x_i)])+{(1-y_i)}ln([1-P(x_i)]))\ &=sum[y_icdot Wx_i-ln(1+e^{Wx_i})] end{aligned}
In(L(W))=ln(∏[P(xi)]yi[1−P(xi)](1−yi))=∑(ln([P(xi)]yi)+ln([1−P(xi)](1−yi)))=∑(yiln([P(xi)])+(1−yi)ln([1−P(xi)]))=∑[yi⋅Wxi−ln(1+eWxi)]
为了最大化似然,即最小化似然的负数
使似然除以样本总数n(减少梯度爆炸出现的概率),再乘以-1(将求最大值问题转化为求最小值问题
J
(
W
)
=
−
1
N
∑
(
ln
(
[
P
(
x
i
)
]
y
i
)
+
ln
(
[
1
−
P
(
x
i
)
]
(
1
−
y
i
)
)
)
J(W)=-frac{1}{N}sum (ln([P(x_i)]^{y_i})+ln([1-P(x_i)]^{(1-y_i)}))
J(W)=−N1∑(ln([P(xi)]yi)+ln([1−P(xi)](1−yi)))
采用梯度下降的方法:
∂
J
(
W
)
∂
W
=
−
1
N
∑
(
y
i
−
P
(
x
i
)
)
x
i
frac{partial J(W)}{partial W}=-frac{1}{N}sum (y_i-P(x_i))x_i
∂W∂J(W)=−N1∑(yi−P(xi))xi
更新
W
W
W:
W
k
+
1
=
W
k
−
α
∂
J
(
W
)
∂
W
,
k
为迭代次数
,
α
为学习率
W^{k+1}=W^{k}-alphafrac{partial J(W)}{partial W},quad k为迭代次数,alpha为学习率
Wk+1=Wk−α∂W∂J(W),k为迭代次数,α为学习率
当
∣
∣
W
k
+
1
−
W
k
∣
∣
||W^{k+1}-W^{k}||
∣∣Wk+1−Wk∣∣小于阈值时或者当
k
k
k达到最大迭代次数时停止迭代。
逻辑回归是在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,使得逻辑回归称为了一个优秀的分类算法。本质上来说,两者都属于广义线性模型,但他们两个要解决的问题不一样,逻辑回归解决的是分类问题,输出的是离散值,线性回归解决的是回归问题,输出的连续值。
多分类问题
为了实现多分类,我们引入一个softmax函数: softmax ( x i ) = e x i ∑ j e x j text{softmax}(x_i) = frac{e^{x_i}}{sum_j e^{x_j}} softmax(xi)=∑jexjexi来代替Sigmoid函数,同构建模型: Y = W X i Y=WX_i Y=WXi,其中 Y Y Y为一个列向量,第 i i i个数表示第 i i i个类别的概率。
其中修改损失函数:
J
(
W
)
=
−
1
n
[
∑
i
=
1
n
∑
j
=
1
k
1
{
j
(
i
)
=
j
}
⋅
log
(
e
W
x
i
∑
l
=
1
k
e
W
x
i
)
]
J(W)=-frac{1}{n}left[sum_{i=1}^nsum_{j=1}^k 1_{{j^{(i)}=j}}cdotlog (frac{e^{Wx_i}}{sum_{l=1}^k e^{Wx_i}})right]
J(W)=−n1[i=1∑nj=1∑k1{j(i)=j}⋅log(∑l=1keWxieWxi)]
其中
1
{
j
(
i
)
=
j
}
1_{{j^{(i)}=j}}
1{j(i)=j}表示第
i
i
i类分类正确时为1,否则为0,
k
k
k为类别数。