一.推导LR损失函数
逻辑回归的函数是
f
w
,
b
(
x
)
=
σ
(
∑
i
w
i
x
i
+
b
)
f_{w, b}(x)=\sigma\left(\sum_{i} w_{i} x_{i}+b\right)
fw,b(x)=σ(i∑wixi+b)
output是在0到1之间。
我们先进行一个假设,假设上面的数据都是来自于Posterior probability(后验概率),
f
w
,
b
(
x
)
=
P
w
,
b
(
C
1
∣
x
)
f_{w, b}(x)=P_{w, b}\left(C_{1} | x\right)
fw,b(x)=Pw,b(C1∣x)
L(w,b)就是这个Posterior probability产生这些数据的概率,然后我们看看哪个w和b是能让这个概率最大。
L
(
w
,
b
)
=
f
w
,
b
(
x
1
)
f
w
,
b
(
x
2
)
(
1
−
f
w
,
b
(
x
3
)
)
⋯
f
w
,
b
(
x
N
)
L(w, b)=f_{w, b}\left(x^{1}\right) f_{w, b}\left(x^{2}\right)\left(1-f_{w, b}\left(x^{3}\right)\right) \cdots f_{w, b}\left(x^{N}\right)
L(w,b)=fw,b(x1)fw,b(x2)(1−fw,b(x3))⋯fw,b(xN)
也就是找到一个w和b让L(w,b)最大:
w
∗
,
b
∗
=
arg
max
w
,
b
L
(
w
,
b
)
w^{*}, b^{*}=\arg \max _{w, b} L(w, b)
w∗,b∗=argmaxw,bL(w,b)
通过等式变换
L
(
w
,
b
)
=
f
w
,
b
(
x
1
)
f
w
,
b
(
x
2
)
(
1
−
f
w
,
b
(
x
3
)
)
⋯
f
w
,
b
(
x
N
)
L(w, b)=f_{w, b}\left(x^{1}\right) f_{w, b}\left(x^{2}\right)\left(1-f_{w, b}\left(x^{3}\right)\right) \cdots f_{w, b}\left(x^{N}\right)
L(w,b)=fw,b(x1)fw,b(x2)(1−fw,b(x3))⋯fw,b(xN)
转换到
−
ln
L
(
w
,
b
)
=
ln
f
w
,
b
(
x
1
)
+
ln
f
w
,
b
(
x
2
)
+
ln
(
1
−
f
w
,
b
(
x
3
)
)
⋯
-\ln L(w, b)=\ln f_{w, b}\left(x^{1}\right)+\ln f_{w, b}\left(x^{2}\right)+\ln \left(1-f_{w, b}\left(x^{3}\right)\right) \cdots
−lnL(w,b)=lnfw,b(x1)+lnfw,b(x2)+ln(1−fw,b(x3))⋯
y
^
n
\widehat{y}^{n}
y
n是class 1的时候为1,class 2的时候为0
−
ln
L
(
w
,
b
)
=
∑
n
[
y
^
n
ln
f
w
,
b
(
x
n
)
+
(
1
−
y
^
n
)
ln
(
1
−
f
w
,
b
(
x
n
)
)
]
-\ln L(w, b)=\sum_{n} [\hat{y}^{n} \ln f_{w, b}\left(x^{n}\right)+\left(1-\hat{y}^{n}\right) \ln \left(1-f_{w, b}\left(x^{n}\right)\right)]
−lnL(w,b)=∑n[y^nlnfw,b(xn)+(1−y^n)ln(1−fw,b(xn))]
我们可以这样看
Distribution p
p
(
x
=
1
)
=
y
^
n
p(x=1)=\hat{y}^{n}
p(x=1)=y^n,
p
(
x
=
0
)
=
1
−
y
^
n
p(x=0)=1-\hat{y}^{n}
p(x=0)=1−y^n
Distribution q
q
(
x
=
1
)
=
f
(
x
n
)
q(x=1)=f\left(x^{n}\right)
q(x=1)=f(xn),
q
(
x
=
0
)
=
1
−
f
(
x
n
)
q(x=0)=1-f\left(x^{n}\right)
q(x=0)=1−f(xn)
我们就是通过变换得到这个形式,这个就是cross entropy,左边是label p,右边是预测 q,然后尽可能缩小这两个分布的差距
H
(
p
,
q
)
=
−
∑
x
p
(
x
)
ln
(
q
(
x
)
)
H(p, q)=-\sum_{x} p(x) \ln (q(x))
H(p,q)=−∑xp(x)ln(q(x))。
二.学习LR梯度下降
通过上面的推导,我们知道了逻辑回归的损失函数公式,但是我们应该如何通过这个函数来更新w和b呢。
−
ln
L
(
w
,
b
)
∂
w
i
=
∑
n
−
[
y
^
n
ln
f
w
,
b
(
x
n
)
∂
w
i
+
(
1
−
y
^
n
)
ln
(
1
−
f
w
,
b
(
x
n
)
)
∂
w
i
]
\frac{-\ln L(w, b)}{\partial w_{i}}=\sum_{n} - [\hat{y}^{n} \frac{\ln f_{w, b}(x^{n})}{\partial w_{i}}+\left(1-\hat{y}^{n}\right) \frac{\ln \left(1-f_{w, b}\left(x^{n}\right))\right.}{\partial w_{i}}]
∂wi−lnL(w,b)=n∑−[y^n∂wilnfw,b(xn)+(1−y^n)∂wiln(1−fw,b(xn))]
我们拆开分解:
前面的:
∂
ln
f
w
,
b
(
x
)
∂
w
i
=
∂
ln
f
w
,
b
(
x
)
∂
z
∂
z
∂
w
i
\frac{\partial \ln f_{w, b}(x)}{\partial w_{i}}=\frac{\partial \ln f_{w, b}(x)}{\partial z} \frac{\partial z}{\partial w_{i}}
∂wi∂lnfw,b(x)=∂z∂lnfw,b(x)∂wi∂z
∂
z
∂
w
i
=
x
i
\frac{\partial z}{\partial w_{i}}=x_{i}
∂wi∂z=xi
而其中的
∂
ln
f
w
,
b
(
x
)
∂
z
\frac{\partial \ln f_{w, b}(x)}{\partial z}
∂z∂lnfw,b(x)是
∂
ln
σ
(
z
)
∂
z
=
1
σ
(
z
)
∂
σ
(
z
)
∂
z
=
(
1
−
σ
(
z
)
)
\frac{\partial \ln \sigma(z)}{\partial z}=\frac{1}{\sigma(z)} \frac{\partial \sigma(z)}{\partial z}=(1-\sigma(z))
∂z∂lnσ(z)=σ(z)1∂z∂σ(z)=(1−σ(z))
同理,后面的:
∂
ln
(
1
−
f
w
,
b
(
x
)
)
∂
w
i
=
∂
ln
(
1
−
f
w
,
b
(
x
)
)
∂
z
∂
z
∂
w
i
\frac{\partial \ln \left(1-f_{w, b}(x)\right)}{\partial w_{i}}=\frac{\partial \ln \left(1-f_{w, b}(x)\right)}{\partial z} \frac{\partial z}{\partial w_{i}}
∂wi∂ln(1−fw,b(x))=∂z∂ln(1−fw,b(x))∂wi∂z
∂
z
∂
w
i
=
x
i
\frac{\partial z}{\partial w_{i}}=x_{i}
∂wi∂z=xi
∂
ln
(
1
−
σ
(
z
)
)
∂
z
=
−
1
1
−
σ
(
z
)
∂
σ
(
z
)
∂
z
=
−
σ
(
z
)
\frac{\partial \ln (1-\sigma(z))}{\partial z}=-\frac{1}{1-\sigma(z)} \frac{\partial \sigma(z)}{\partial z}= - \sigma(z)
∂z∂ln(1−σ(z))=−1−σ(z)1∂z∂σ(z)=−σ(z)
所以总结起来就是:
−
ln
L
(
w
,
b
)
∂
w
i
=
∑
n
−
[
y
^
n
ln
f
w
,
b
(
x
n
)
∂
w
i
+
(
1
−
y
^
n
)
ln
(
1
−
f
w
,
b
(
x
n
)
)
∂
w
i
]
\frac{-\ln L(w, b)}{\partial w_{i}} =\sum_{n} - [\hat{y}^{n} \frac{\ln f_{w, b}(x^{n})}{\partial w_{i}}+\left(1-\hat{y}^{n}\right) \frac{\ln \left(1-f_{w, b}\left(x^{n}\right))\right.}{\partial w_{i}}]
∂wi−lnL(w,b)=n∑−[y^n∂wilnfw,b(xn)+(1−y^n)∂wiln(1−fw,b(xn))]
=
∑
n
−
[
y
^
n
(
1
−
f
w
,
b
(
x
n
)
)
x
i
n
−
(
1
−
y
^
n
)
f
w
,
b
(
x
n
)
x
i
n
]
=\sum_{n} - [\hat{y}^n(1-f_{w,b}(x^n))x^n_i - (1 - \hat{y}^n)f_{w,b}(x^n)x^n_i ]
=n∑−[y^n(1−fw,b(xn))xin−(1−y^n)fw,b(xn)xin]
=
∑
n
−
[
y
^
n
−
y
^
n
f
w
,
b
(
x
n
)
−
f
w
,
b
(
x
n
)
+
y
^
n
f
w
,
b
(
x
n
)
]
x
i
n
=\sum_{n} - [\hat{y}^n - \hat{y}^n f_{w,b}(x^n) - f_{w,b}(x^n) + \hat{y}^n f_{w,b}(x^n) ]x^n_i
=n∑−[y^n−y^nfw,b(xn)−fw,b(xn)+y^nfw,b(xn)]xin
=
∑
n
−
(
y
^
n
−
f
w
,
b
(
x
n
)
)
x
i
n
=\sum_{n} -(\hat{y}^n - f_{w,b}(x^n))x^n_i
=n∑−(y^n−fw,b(xn))xin
最后总结起来就是这样
w
i
←
w
i
−
η
∑
n
−
(
y
^
n
−
f
w
,
b
(
x
n
)
)
x
i
n
w_{i} \leftarrow w_{i}-\eta \sum_{n}-\left(\hat{y}^{n}-f_{w, b}\left(x^{n}\right)\right) x_{i}^{n}
wi←wi−ηn∑−(y^n−fw,b(xn))xin
三.利用代码描述梯度下降(选做)
四.Softmax原理
C
1
:
w
1
,
b
1
z
1
=
w
1
⋅
x
+
b
1
C
2
:
w
2
,
b
2
z
2
=
w
2
⋅
x
+
b
2
C
3
:
w
3
,
b
3
z
3
=
w
3
⋅
x
+
b
3
\begin{array}{ll}{C_{1} : w^{1}, b_{1}} & {z_{1}=w^{1} \cdot x+b_{1}} \\ {C_{2} : w^{2}, b_{2}} & {z_{2}=w^{2} \cdot x+b_{2}} \\ {C_{3} : w^{3}, b_{3}} & {z_{3}=w^{3} \cdot x+b_{3}}\end{array}
C1:w1,b1C2:w2,b2C3:w3,b3z1=w1⋅x+b1z2=w2⋅x+b2z3=w3⋅x+b3
softmax做的就是事情就是对z进行exponential(指数化),将exponential的结果相加,再分别用exponential的结果除以相加的结果。原本
z
1
,
z
2
,
z
3
z_1,z_2,z_3
z1,z2,z3原本可以是任何值,但是做完softmax之后,就把输出都限制在0到1之间,而且概率和是1。
如这个展示图,
y
1
y_1
y1表示x属于类别1的概率:0.88,
y
2
y_2
y2表示x属于类别2的概率:0.12,
y
3
y_3
y3表示x属于类别3的概率:0。
Softmax的输出就是用来估计后验概率(Posterior Probability)
五.softmax损失函数
这个代价函数类似于上面的逻辑回归,一样是用交叉熵。剩下的就是基本带进去
I
{
expression
}
=
{
0
if expression
=
false
1
if expression
=
true
I\{\text {expression}\}=\left\{\begin{array}{ll}{0} & {\text { if expression }=\text { false }} \\ {1} & {\text { if expression }=\text {true}}\end{array}\right.
I{expression}={01 if expression = false if expression =true
J
(
θ
)
=
−
1
m
[
∑
i
=
1
m
∑
j
=
1
k
I
{
y
(
i
)
=
j
}
log
e
θ
j
T
x
(
i
)
∑
l
=
1
k
e
θ
T
x
(
i
)
]
J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^{m} \sum_{j=1}^{k} I\left\{y^{(i)}=j\right\} \log \frac{e^{\theta_{j}^{T} \mathbf{x}^{(i)}}}{\sum_{l=1}^{k} e^{\theta T \mathbf{x}^{(i)}}}\right]
J(θ)=−m1[i=1∑mj=1∑kI{y(i)=j}log∑l=1keθTx(i)eθjTx(i)]
类别对应的,才纳入倒损失函数中去。
六.softmax梯度下降
参考文献
https://blog.youkuaiyun.com/google19890102/article/details/49738427