logistic回归
一个对数几率回归
y
=
1
1
−
e
−
z
y = \frac{1}{1-e^{-z}}
y=1−e−z1
z
=
w
T
x
+
b
z = \bold{w^Tx}+b
z=wTx+b
对数据集
{
x
i
,
y
i
}
i
=
1
m
\{\bold{x}_i,y_i\}^{m}_{i=1}
{xi,yi}i=1m,
m
m
m笔数据,
w
\bold{w}
w和
x
\bold{x}
x都是竖向量,
y
i
y_i
yi是标量
y
i
∈
{
0
,
1
}
y_i\in\{0,1\}
yi∈{0,1}
y
y
y视为正例可能性(
y
=
=
1
y==1
y==1),
1
−
y
1-y
1−y视为反例可能性,则
ln
y
1
−
y
\text{ln}\frac{y}{1-y}
ln1−yy为其对数几率
如果反过来呢 y是反例 1-y为正例
ln y 1 − y = w T x + b \text{ln}\frac{y}{1-y}=\bold{w^Tx}+b ln1−yy=wTx+b
[ p ( 0 ∣ x , w ) p ( 1 ∣ x , w ) ] = 1 1 + e w T x + b [ 1 e w T x + b ] \left[ \begin{array}{ccc} p(0|\bold{x,w}) \\ p(1|\bold{x,w}) \end{array} \right] =\frac{1}{1+e^{\bold{w^Tx}+b}}\left[\begin{array}{ccc}1\\ e^{\bold{w^Tx}+b}\end{array}\right] [p(0∣x,w)p(1∣x,w)]=1+ewTx+b1[1ewTx+b]
损失函数,
m
m
m笔数据,用极大似然法,对数似然
怎么又是cross entropy?
L
=
∑
1
=
1
m
ln
p
(
y
i
∣
x
,
w
)
L=\sum_{1=1}^m\text{ln}p(y_i|\bold{x},\bold{w})
L=1=1∑mlnp(yi∣x,w)
损失函数最后的形式是西瓜书3.27
softmax回归
本质上是一种多分类逻辑回归(Multinomial logistic regression)
对数据集
{
x
i
,
y
i
}
i
=
1
m
\{\bold{x}_i,\bold{y}_i\}^{m}_{i=1}
{xi,yi}i=1m,
m
m
m笔数据,
w
i
\bold{w}_i
wi和
x
\bold{x}
x都是竖向量,
y
i
y_i
yi是有
k
k
k个类别
y
i
∈
{
0
,
1
,
2
,
.
.
.
,
k
}
\bold{y}_i\in\{0,1,2,...,k\}
yi∈{0,1,2,...,k},所以也有k个
w
\bold{w}
w,
w
1
,
w
2
,
.
.
.
,
w
k
{\bold{w_1},\bold{w_2},...,\bold{w_k}}
w1,w2,...,wk
[ p ( y = 1 ∣ x , w ) p ( y = 2 ∣ x , w ) ⋮ p ( y = k ∣ x , w ) ] = 1 ∑ i = 1 k e w i T x + b [ e w 1 T x + b e w 2 T x + b ⋮ e w k T x + b ] \left[ \begin{array}{ccc} p(y=1|\bold{x,w}) \\ p(y=2|\bold{x,w}) \\ \vdots\\ p(y=k|\bold{x,w}) \end{array} \right] =\frac{1}{\sum^k_{i=1}e^{\bold{w_i^Tx}+b}}\left[\begin{array}{ccc}e^{\bold{w_1^Tx}+b}\\ e^{\bold{w_2^Tx}+b}\\ \vdots\\ e^{\bold{w_k^Tx}+b}\end{array}\right] ⎣⎢⎢⎢⎡p(y=1∣x,w)p(y=2∣x,w)⋮p(y=k∣x,w)⎦⎥⎥⎥⎤=∑i=1kewiTx+b1⎣⎢⎢⎢⎢⎡ew1Tx+bew2Tx+b⋮ewkTx+b⎦⎥⎥⎥⎥⎤
同样的损失函数,是交叉熵 这里对
m
m
m笔数据求平均
L
=
1
m
∑
i
=
1
m
(
∑
j
=
1
k
1
{
y
=
j
}
e
w
j
T
x
+
b
∑
α
=
1
k
e
w
α
T
x
+
b
)
L=\frac{1}{m}\sum^m_{i=1}(\sum^k_{j=1}1\{y=j\}\frac{e^{\bold{w_j^Tx}+b}}{\sum^k_{\alpha = 1}e^{\bold{w_\alpha^Tx}+b}})
L=m1i=1∑m(j=1∑k1{y=j}∑α=1kewαTx+bewjTx+b)
softmax的实现
交叉熵损失函数的反向传播——back propagation
求交叉熵损失函数对输入的偏导数
有 { a 1 , a 2 , a 3 , . . . , a N } \{a_1,a_2,a_3,...,a_N\} {a1,a2,a3,...,aN}的 N N N维输入,经过softmax层输出 { exp ( a 1 ) ∑ } , { exp ( a 2 ) ∑ } , { exp ( a 3 ) ∑ } . . . , { exp ( a N ) ∑ } \{\frac{\exp(a_1)}{\sum}\},\{\frac{\exp(a_2)}{\sum}\},\{\frac{\exp(a_3)}{\sum}\}...,\{\frac{\exp(a_N)}{\sum}\} {∑exp(a1)},{∑exp(a2)},{∑exp(a3)}...,{∑exp(aN)}
经过交叉熵
L
L
L
L
=
−
∑
k
=
1
N
t
k
ln
y
k
L=-\sum^{N}_{k=1}{t_k\ln{y_k}}
L=−k=1∑Ntklnyk
这里
t
k
t_k
tk为监督数据,
k
=
1
∼
N
k=1\sim{N}
k=1∼N
现在要求 ∂ L ∂ a i \frac{\partial{L}}{\partial{a_i}} ∂ai∂L,这里还原到矩阵实际上要求一个 N N N维的梯度 { ∂ L ∂ a 1 , ∂ L ∂ a 2 , . . . ∂ L ∂ a N } \{\frac{\partial{L}}{\partial{a_1}},\frac{\partial{L}}{\partial{a_2}},...\frac{\partial{L}}{\partial{a_N}}\} {∂a1∂L,∂a2∂L,...∂aN∂L}
这个梯度是怎么用的呢?
如果是Affine层+Softmax with Loss层,那么这个求出来的梯度 作为Affine层误差反向法的入参,可以求其权重和偏置的梯度。。。,最终目的还是更新权重和偏置。
求解过程如下,求导这里可以看出交叉性,矩阵方程的特点。
∂ L ∂ a i = ∑ i = 1 ∼ k ∂ L ∂ y k ∂ y k ∂ a i \frac{\partial{L}}{\partial{a_i}} = {\sum_{i=1{\sim}k}}\frac{\partial{L}}{\partial{y_k}}\frac{\partial{y_k}}{\partial{a_i}} ∂ai∂L=i=1∼k∑∂yk∂L∂ai∂yk
其中记 y k = exp ( a k ) ∑ y_k= \frac{\exp(a_k)}{\sum} yk=∑exp(ak),由于
∂ L ∂ y k = − y k t k \frac{\partial{L}}{\partial{y_k}} =-\frac{y_k}{t_k} ∂yk∂L=−tkyk
(1)式为
∂
L
∂
a
i
=
∑
i
=
1
∼
k
−
y
k
t
k
∂
y
k
∂
a
i
\frac{\partial{L}}{\partial{a_i}} = {\sum_{i=1{\sim}k}}-\frac{y_k}{t_k}\frac{\partial{y_k}}{\partial{a_i}}
∂ai∂L=i=1∼k∑−tkyk∂ai∂yk
现在求 ∂ y k ∂ a i \frac{\partial{y_k}}{\partial{a_i}} ∂ai∂yk,因为 k = 1 ∼ N k=1\sim{N} k=1∼N 所以分 k = i k=i k=i和 k ≠ i k\neq{i} k=i
如果 k = i k=i k=i
∂ y i ∂ a i = y i − y i 2 \frac{\partial{y_i}}{\partial{a_i}}=y_i-{y_i}^2 ∂ai∂yi=yi−yi2
如果 k ≠ i k\neq{i} k=i
∂ y k ∂ a i = − y i y k \frac{\partial{y_k}}{\partial{a_i}}=-y_i{y_k} ∂ai∂yk=−yiyk
把(3)(4)带入
∂
L
∂
a
i
=
∑
k
≠
i
t
k
y
k
y
i
y
k
+
t
i
y
i
(
y
i
2
−
y
i
)
=
y
i
∑
i
=
1
∼
N
t
k
−
t
i
\frac{\partial{L}}{\partial{a_i}} = {\sum_{k\neq{i}}\frac{t_k}{y_k}y_i{y_k}}+\frac{t_i}{y_i}(y_i^2-y_i)=y_i\sum_{i=1\sim{N}}{t_k}-t_i
∂ai∂L=k=i∑yktkyiyk+yiti(yi2−yi)=yii=1∼N∑tk−ti
这里是交叉着乘的,监督数据
t
t
t是one-hot的也即
∑
k
=
1
∼
N
t
k
=
1
\sum_{k=1\sim{N}}t_k=1
∑k=1∼Ntk=1得到
∂
L
∂
a
i
=
y
i
−
t
i
\frac{\partial{L}}{\partial{a_i}} = y_i-t_i
∂ai∂L=yi−ti
109

被折叠的 条评论
为什么被折叠?



