Softmax层技术

softmax层的使用

什么是softmax

在分类任务中,我们通过一个模型得到一个输出向量, v e c = ( v 1 , v 2 , . . . , v n ) vec = (v_1,v_2,...,v_n) vec=(v1,v2,...,vn),往往不是一个概率分布,即 ∑ i = 1 n v i ≠ 1 \sum_{i = 1}^{n}v_i \not =1 i=1nvi=1, 这在我们人看就是不直观的结果,为了解决这个问题,我们利用指数函数得到新向量:
d i s t r i b u t i o n = ( exp ⁡ v i ∑ j = 1 n exp ⁡ v j ) i = 1 n distribution = (\frac{\exp{v_i}}{\sum_{j = 1}^{n}{}\exp{v_j}})^n_{i = 1} distribution=(j=1nexpvjexpvi)i=1n

这时候,distrbution显然满足概率分布的条件。

为什么这么做?

其中一个原因指数函数是增长非常块的函数,想让一个主元素的概率尽可能突出出来,这种设计就让我们可以将主要的概率集中在原始数据较大的分量上,换句话说,通过softmax,我们拉大了分量之间的差距。

直观

在单分类任务的时候能够直接锁定倾向的类别。

缺点

在进行模型训练的时候,特别是分类数量特别大的情形(比如200个类别),由于模型参数最开始是随机设置的,概率会集中在随机的类别上。同时,由定义可知,当某个分量的softmax值趋近0的时候,其梯度也趋于0,导致难以更新参数

建议

在分类数量小的时候可以在分类层最后添加一个softmax,但是比较多的时候最好别加,另外,由于缺点所述,很多情况下在模型尾部加上一个Softmax 可能会减缓模型的训练速度。

学习心得

会自己构建模型的时候,添加自己的softmax层技术,全部都将其搞定。设计自己的模型架构,全部慢慢地完成都行啦的理由与打算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

big_matster

您的鼓励,是给予我最大的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值