logistic回归 和 Softmax回归

logistic回归

一个对数几率回归

y = 1 1 − e − z y = \frac{1}{1-e^{-z}} y=1ez1
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 1y视为反例可能性,则 ln y 1 − y \text{ln}\frac{y}{1-y} ln1yy为其对数几率
如果反过来呢 y是反例 1-y为正例

ln y 1 − y = w T x + b \text{ln}\frac{y}{1-y}=\bold{w^Tx}+b ln1yy=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(0x,w)p(1x,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=1mlnp(yix,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=1x,w)p(y=2x,w)p(y=kx,w)=i=1kewiTx+b1ew1Tx+bew2Tx+bewkTx+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=1m(j=1k1{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=1Ntklnyk
这里 t k t_k tk为监督数据, k = 1 ∼ N k=1\sim{N} k=1N

现在要求 ∂ L ∂ a i \frac{\partial{L}}{\partial{a_i}} aiL,这里还原到矩阵实际上要求一个 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}}\} {a1L,a2L,...aNL}

这个梯度是怎么用的呢?
如果是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}} aiL=i=1kykLaiyk

其中记 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} ykL=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}} aiL=i=1ktkykaiyk

现在求 ∂ y k ∂ a i \frac{\partial{y_k}}{\partial{a_i}} aiyk,因为 k = 1 ∼ N k=1\sim{N} k=1N 所以分 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 aiyi=yiyi2

如果 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} aiyk=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 aiL=k=iyktkyiyk+yiti(yi2yi)=yii=1Ntkti
这里是交叉着乘的,监督数据 t t t是one-hot的也即 ∑ k = 1 ∼ N t k = 1 \sum_{k=1\sim{N}}t_k=1 k=1Ntk=1得到
∂ L ∂ a i = y i − t i \frac{\partial{L}}{\partial{a_i}} = y_i-t_i aiL=yiti

拓展阅读

loss function 斯坦福教材

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值