【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】Softmax回归

Softmax回归主要用于解决多类问题(类别数>2),可以看作Logistic回归在多分类问题上的一种扩展

Softmax函数

对于K个标量 x 1 , x 2 , ⋯   , x K x_1,x_2,\cdots,x_K x1,x2,,xK
s o f t m a x ( x K ) = exp ⁡ ( x K ) ∑ i = 1 K exp ⁡ ( x i ) softmax(x_K)=\frac{\exp(x_K)}{\sum_{i=1}^{K}\exp(x_i)} softmax(xK)=i=1Kexp(xi)exp(xK)
其中,指数项>0,分母>=分子,因此结果必定属于区间 ( 0 , 1 ) (0,1) (0,1),且 ∑ K s o f t m a x ( x K ) = 1 \sum_Ksoftmax(x_K)=1 Ksoftmax(xK)=1。也就是说,K个标量在通过softmax函数之后,可以转换成具有K个取值的分布,每个取值可以看作对应的打分,标量值越大对应的打分越高。
在这里插入图片描述

Softmax回归

目标类别 y = c y=c y=c的条件概率为:
p θ ( y = c ∣ x ) = s o f t m a x ( w c T x ) = exp ⁡ ( w c T x ) ∑ c ′ = 1 C exp ⁡ ( w c ′ T x ) \begin{aligned} p_\theta(y=c\mid x) &=softmax(w_c^Tx)\\ &=\frac{\exp(w^T_cx)}{\sum_{c'=1}^C\exp(w^T_{c'}x)} \end{aligned} pθ(y=cx)=softmax(wcTx)=c=1Cexp(wcTx)exp(wcTx)
用向量表示:
y ^ = s o f t m a x ( W T x ) = exp ⁡ ( W T x ) 1 C T exp ⁡ ( W T x ) \begin{aligned} \hat{y} &=softmax(W^Tx)\\ &=\frac{\exp(W^Tx)}{1_C^T\exp(W^Tx)} \end{aligned} y^=softmax(WTx)=1CTexp(WTx)exp(WTx)
其中, y ^ ∈ R C \hat{y}\in\mathbb{R}^C y^RC(C维向量)为所有类别的预测条件概率组成的向量, W ∈ R D × C W\in\mathbb{R}^{D\times C} WRD×C为所有判别函数对应的权重组成的向量, 1 C T 1_C^T 1CT为C维的全为1的向量,与后项内积来表示后项所有元素的加和。

交叉熵损失:
H ( p r , p θ ) = − ∑ y = 1 C p r ( y ∣ x ) log ⁡ p θ ( y ∣ x ) H(p_r,p_\theta)=-\sum_{y=1}^Cp_r(y\mid x)\log p_\theta(y\mid x) H(pr,pθ)=y=1Cpr(yx)logpθ(yx)
这里需要与logistic回归区别一下,在使用logistic回归解决多分类问题时,主要取决于不同类别之间是否互斥,等同于将多分类问题转换成了多次二分类问题。而softmax回归可以同时计算多个类别的打分,取得分最高为最终的分类。真实概率 p r p_r pr和预测概率负对数(熵、自信息量)如下所示:
在这里插入图片描述

最终要令二者内积后的交叉熵最小,同时根据熵(自信息)的概念,当真实概率最大时对应的自信息量最小,这也就意味着当熵最小时对应的真实概率越大,越可能是最终的预测结果。如上图中,类别为1的熵 − log ⁡ p θ ( y = 1 ∣ x ) → 0 -\log p_\theta(y=1\mid x)\rightarrow 0 logpθ(y=1x)0,则对应 p r ( y = 1 ∣ x ) → m a x p_r(y=1\mid x)\rightarrow max pr(y=1x)max
用向量来表示交叉熵损失:
H ( y , y ^ ) = − y T log ⁡ y ^ ,      y = [ I ( 1 = c ) , I ( 2 = c ) , ⋯   , I ( C = c ) ] T H(y,\hat{y})=-y^T\log\hat{y},\ \ \ \ y=[I(1=c),I(2=c),\cdots,I(C=c)]^T H(y,y^)=yTlogy^,    y=[I(1=c),I(2=c),,I(C=c)]T
其中,y表示真实的分类,一般是one-hot向量,只有对应预测分类为1,其他地方为0。举例来说,若一个三分类问题,y属于分类3,则对应的 y = [ 0 0 1 ] T y=\begin{bmatrix}0&0&1\end{bmatrix}^T y=[001]T ,若预测概率 y ^ = [ 0.3 0.3 0.4 ] T \hat{y}=\begin{bmatrix}0.3&0.3&0.4\end{bmatrix}^T y^=[0.30.30.4]T则对应的交叉熵损失为:
L ( θ ) = H ( y , y ^ ) = − [ 0 0 1 ] log ⁡ [ 0.3 0.3 0.4 ] = − log ⁡ 0.4 \begin{aligned} \mathcal{L}(\theta)=H(y,\hat{y}) &=-\begin{bmatrix}0&0&1\end{bmatrix}\log\begin{bmatrix}0.3\\0.3\\0.4\end{bmatrix}\\ &=-\log0.4 \end{aligned} L(θ)=H(y,y^)=[001]log 0.30.30.4 =log0.4
实际上也对应了正确类别对应的对数似然。
下面就可以对模型的参数进行优化了,定义模型的学习准则为:
R ( W ) = − 1 N ∑ n = 1 N ( y ( n ) ) T log ⁡ y ^ ( n ) + 1 2 ∥ W ∥ 2 \mathcal{R}(W)=-\frac{1}{N}\sum_{n=1}^N(y^{(n)})^T\log\hat{y}^{(n)}+\frac{1}{2}\parallel W\parallel^2 R(W)=N1n=1N(y(n))Tlogy^(n)+21W2
在求梯度之前先对softmax函数求导:
∂ s o f t m a x ( x ) ∂ x = ∂ e x ∂ x 1 1 K T e x + e x ∂ ∂ x ( 1 1 K T e x ) = d i a g ( e x ) 1 1 K T e x − e x 1 ( 1 K T e x ) 2 ∂ ( 1 K T e x ) ∂ x = d i a g ( s o f t m a x ( x ) ) − e x 1 K T e x ( e x ) T 1 K T e x = d i a g ( s o f t m a x ( x ) ) − s o f t m a x ( x ) s o f t m a x ( x ) T \begin{aligned} \frac{\partial softmax(x)}{\partial x} &=\frac{\partial e^x}{\partial x}\frac{1}{1_K^Te^x}+e^x\frac{\partial}{\partial x}(\frac{1}{1_K^Te^x})\\ &=diag(e^x)\frac{1}{1_K^Te^x}-e^x\frac{1}{(1_K^Te^x)^2}\frac{\partial(1_K^Te^x)}{\partial x}\\ &=diag(softmax(x))-\frac{e^x}{1_K^Te^x}\frac{(e^x)^T}{1_K^Te^x}\\ &=diag(softmax(x))-softmax(x)softmax(x)^T \end{aligned} xsoftmax(x)=xex1KTex1+exx(1KTex1)=diag(ex)1KTex1ex(1KTex)21x(1KTex)=diag(softmax(x))1KTexex1KTex(ex)T=diag(softmax(x))softmax(x)softmax(x)T
diag表示对角矩阵,因为 x = [ x ( 1 ) ⋮ x ( K ) ] , e x = [ e x ( 1 ) ⋮ e x ( K ) ] x=\begin{bmatrix}x^{(1)}\\ \vdots \\ x^{(K)}\end{bmatrix},e^x=\begin{bmatrix}e^{x^{(1)}}\\ \vdots \\ e^{x^{(K)}}\end{bmatrix} x= x(1)x(K) ,ex= ex(1)ex(K)
∂ e x ∂ x = ∂ [ e x ( 1 ) ⋮ e x ( K ) ] ∂ x = [ ∂ e x ( 1 ) ∂ x ⋮ ∂ e x ( K ) ∂ x ] 其中, ∂ e x ( 1 ) ∂ x = [ ∂ e x ( 1 ) ∂ x ( 1 ) ⋮ ∂ e x ( 1 ) ∂ x ( K ) ] = [ e x ( 1 ) 0 ⋮ 0 ] 因此 , ∂ e x ∂ x = [ e x ( 1 ) 0 ⋯ 0 0 e x ( 2 ) ⋯ 0 ⋮ ⋮ ⋮ 0 0 ⋯ e x ( K ) ] = d i a g ( e x ) \begin{aligned} \frac{\partial e^x}{\partial x} &=\frac{\partial\begin{bmatrix}e^{x^{(1)}}\\ \vdots \\ e^{x^{(K)}}\end{bmatrix}}{\partial x} =\begin{bmatrix}\frac{\partial e^{x^{(1)}}}{\partial x}\\ \vdots \\ \frac{\partial e^{x^{(K)}}}{\partial x}\end{bmatrix}\\ \\ 其中,\\ \frac{\partial e^{x^{(1)}}}{\partial x} &=\begin{bmatrix}\frac{\partial e^{x^{(1)}}}{\partial x^{(1)}}\\ \vdots \\\frac{\partial e^{x^{(1)}}}{\partial x^{(K)}}\end{bmatrix} =\begin{bmatrix}e^{x^{(1)}}\\0\\\vdots\\0\end{bmatrix}\\ 因此,\\ \frac{\partial e^x}{\partial x} &=\begin{bmatrix} e^{x^{(1)}}&0&\cdots&0\\ 0&e^{x^{(2)}}&\cdots&0\\ \vdots&\vdots&&\vdots\\ 0&0&\cdots&e^{x^{(K)}} \end{bmatrix} =diag(e^{x}) \end{aligned} xex其中,xex(1)因此,xex=x ex(1)ex(K) = xex(1)xex(K) = x(1)ex(1)x(K)ex(1) = ex(1)00 = ex(1)000ex(2)000ex(K) =diag(ex)
此外, ∂ ( 1 K T e x ) ∂ x = 1 K T d i a g ( e x ) = ( e x ) T \frac{\partial(1_K^Te^x)}{\partial x}=1_K^Tdiag(e^x)=(e^x)^T x(1KTex)=1KTdiag(ex)=(ex)T,且 ( 1 K T e x ) T = ( e x ) T 1 K = 1 K T e x (1_K^Te^x)^T=(e^x)^T1_K=1_K^Te^x (1KTex)T=(ex)T1K=1KTex
然后记 z = W T x = [ w 1 T x ⋯ w c T x ] z=W^Tx=\begin{bmatrix}w_1^Tx&\cdots&w_c^Tx\end{bmatrix} z=WTx=[w1TxwcTx],则:
∂ z ∂ w c = [ ∂ w 1 T x ∂ w c ⋯ ∂ w c T ∂ w c ] = [ 0 0 ⋯ x ⋯ 0 ] ≜ M c ( x ) \frac{\partial z}{\partial w_c}=\begin{bmatrix}\frac{\partial w_1^Tx}{\partial w_c}&\cdots&\frac{\partial w_c^T}{\partial w_c}\end{bmatrix}=\begin{bmatrix}0&0&\cdots&x&\cdots&0\end{bmatrix}\triangleq\mathbb{M}_c(x) wcz=[wcw1TxwcwcT]=[00x0]Mc(x)
对于单个样本的梯度:
∂ L ( n ) ( W ) ∂ W = − ∂ ∂ w c ( ( y ( n ) ) T log ⁡ y ^ ( n ) ) = − ∂ log ⁡ y ^ ( n ) ∂ w c y ( n ) = − ∂ log ⁡ y ^ ( n ) ∂ y ^ ( n ) ∂ y ^ ( n ) ∂ z ∂ z ∂ w c T y ( n ) = − M c ( x ( n ) ) ( d i a g ( y ^ ( n ) ) − y ^ ( n ) ( y ^ ( n ) ) T ) ( d i a g ( y ^ ( n ) ) − 1 ) y ( n ) = − M c ( x ( n ) ) ( I − y ^ ( n ) ( y ^ ( n ) ) T ( d i a g ( y ^ ( n ) ) − 1 ) ) y ( n ) = − M c ( x ( n ) ) ( y ( n ) − y ^ ( n ) 1 C T y ( n ) ) = − M c ( x ( n ) ) ( y ( n ) − y ^ ( n ) ) = − x ( n ) [ y ( n ) − y ^ ( n ) ] c \begin{aligned} \frac{\partial\mathcal{L}^{(n)}(W)}{\partial W} &=-\frac{\partial}{\partial w_c}((y^{(n)})^T\log\hat{y}^{(n)})\\ &=-\frac{\partial\log\hat{y}^{(n)}}{\partial w_c}y^{(n)}\\ &=-\frac{\partial\log\hat{y}^{(n)}}{\partial\hat{y}^{(n)}}\frac{\partial\hat{y}^{(n)}}{\partial z}\frac{\partial z}{\partial w_c^T}y^{(n)}\\ &=-\mathbb{M}_c(x^{(n)})(diag(\hat{y}^{(n)})-\hat{y}^{(n)}(\hat{y}^{(n)})^T)(diag(\hat{y}^{(n)})^{-1})y^{(n)}\\ &=-\mathbb{M}_c(x^{(n)})(I-\hat{y}^{(n)}(\hat{y}^{(n)})^T(diag(\hat{y}^{(n)})^{-1}))y^{(n)}\\ &=-\mathbb{M}_c(x^{(n)})(y^{(n)}-\hat{y}^{(n)}1_C^Ty^{(n)})\\ &=-\mathbb{M}_c(x^{(n)})(y^{(n)}-\hat{y}^{(n)})\\ &=-x^{(n)}[y^{(n)}-\hat{y}^{(n)}]_c \end{aligned} WL(n)(W)=wc((y(n))Tlogy^(n))=wclogy^(n)y(n)=y^(n)logy^(n)zy^(n)wcTzy(n)=Mc(x(n))(diag(y^(n))y^(n)(y^(n))T)(diag(y^(n))1)y(n)=Mc(x(n))(Iy^(n)(y^(n))T(diag(y^(n))1))y(n)=Mc(x(n))(y(n)y^(n)1CTy(n))=Mc(x(n))(y(n)y^(n))=x(n)[y(n)y^(n)]c
梯度下降过程:
W t + 1 ← W t + α ( 1 N ∑ n = 1 N x ( n ) ( y ( n ) − y ^ ( n ) ) T ) W_t+1\leftarrow W_t+\alpha(\frac{1}{N}\sum_{n=1}^Nx^{(n)}(y^{(n)}-\hat{y}^{(n)})^T) Wt+1Wt+α(N1n=1Nx(n)(y(n)y^(n))T)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Don't move

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值