深度学习基础(一) —— softmax 及 logsoftmax

softmax:重新定义了多层神经网络的输出层(output layer),注意仅和输出层有关系,和其他层无关。

  • softmax function,也称为 normalized exponential(指数族分布的观点);

1. softmax

我们知道在神经网络的前馈(feedforward)的过程中,输出层的输入(input)为:

zLj=kwLjkaL1k+bLj z j L = ∑ k w j k L ⋅ a k L − 1 + b j L

在 softmax 的机制中,为获得输出层的输出(也即最终的输出),我们不是将 sigmoid 函数作用于其上,

aLj=σ(zLj) a j L = σ ( z j L )

而是采用所谓的 softmax function:

aLj=ezLjkezLk a j L = e z j L ∑ k e z k L

因此:

  • (1)输出层输出之和为 1

    kaLk=kezLkkezLk=1 ∑ k a k L = ∑ k e z k L ∑ k e z k L = 1

    因为输出层的输出之和为1,其中一项增加,其他所有项则会相应减少。

  • (2)输出层全部输出均为正:
    而且 softmax 的机制,也保证了所有的输出均为正值;

终上所述,softmax 层的输出其实为一种概率分布(probability distribution),因此对于一个多 label 的分类任务(比如手写字符识别,0-9)而言, aLj a j L 对应于最终的分类结果为 j j 的概率。

2. logsoftmax

logσ(xi)=logexp(xi)jexp(xj)=xilog(jexp(xj))

将原始数据从 x ⇒ log (x),无疑会原始数据的值域进行一定的收缩。

进一步地,还可对原始数据进行进一步的预处理( xi=ximax(x) x i = x i − max ( x ) ),

# 假设 x 是一个向量
def logsoftmax(x):
    m = T.max(x)
    exp_x = T.exp(x-m)
    Z = T.sum(exp_x)
    return x-m-T.log(Z)

3. 梯度计算与反向更新

label 有 m m 个不同取值,则:

oi(z)=softmax(zi)=exp(zi)jexp(zj),i=1,2,,m

yi y i 是对激活值 zi z i 的概率化, {yi}i=1,2,,m { y i } i = 1 , 2 , ⋯ , m 构成输出预测的概率分布。其具有很好的求导性质:

oi(z)zi====exp(zi)jexp(zj)exp2(zi)2jexp(zj)exp(zi)jexp(zj)jexp(zj)exp(zi)jexp(zj)exp(zi)jexp(zj)(1exp(zi)jexp(zj))oi(z)(1oi(z)) ∂ o i ( z ) ∂ z i = exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) − exp 2 ⁡ ( z i ) ∑ j 2 exp ⁡ ( z j ) = exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) ⋅ ∑ j exp ⁡ ( z j ) − exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) = exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) ⋅ ( 1 − exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) ) = o i ( z ) ( 1 − o i ( z ) )

有时会取 softmax 的负对数形式作为损失函数:

L=logoi(z)=logexp(zi)jexp(zj)=zilogj(exp(zj)) L = − log ⁡ o i ( z ) = − log ⁡ exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) = − z i − log ⁡ ∑ j ( exp ⁡ ( z j ) )

在反向求导时,需要计算负对数似然关于 zi z i 的导数:

Lzi=1exp(zi)jexp(zj)=1σi(z) ∂ L ∂ z i = − 1 − exp ⁡ ( z i ) ∑ j exp ⁡ ( z j ) = − 1 − σ i ( z )


  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

五道口纳什

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

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

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

打赏作者

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

抵扣说明:

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

余额充值