Softmax扩展

本文详细介绍了Softmax函数,包括其在多分类问题中的作用、数学性质和与sigmoid的关系。接着,讨论了LogSoftmax如何解决指数计算引起的溢出问题以及提高计算效率。然后,介绍了Modified softmax-A-softmax,它引入了更大的类别间隔以增强分类的明确性。最后,提到了L-Softmax损失函数,它通过角度约束提高了不同类别之间的区分度,增强了模型的分类性能。
摘要由CSDN通过智能技术生成

目录

一、Softmax

二、LogSoftmax

三、Modified softmax-A-softmax

四、L-softmax


前言

在机器学习尤其是深度学习领域中,经常需要把一些输入映射到0-1之间的概率值。这个时候最先想到的就是sigmoid和softmax了,softmax是二分类函数sigmoid在多分类上的推广,目的就是将多分类结果以概率的形式展现出来。在数学,尤其是概率论和相关领域中,softmax函数又称归一化指数函数,是逻辑函数的一种推广。Softmax函数实际上是有限项离散概率分布的梯度对数归一化。因此,Softmax函数在包括 多项逻辑回归,多项线性判别分析,朴素贝叶斯分类器和人工神经网络等的多种基于概率的多分类问题方法中都有着广泛应用。

softmax function is a generalization of the logistic function that maps a length-p vector of real values to a length-K vector of values.

一、Softmax

softmax具有良好的数学性质,可以从以下几个方面思考softmax函数:

1、softmax是sigmoid函数在多分类输出上的推广,考虑sigmoid函数的物理意义:

𝑦=11+𝑒−𝑧,𝑧=𝑤𝑥+𝑏

𝑙𝑛𝑦1−𝑦=𝑤𝑥+𝑏

等式左边被称为“对数几率”logits,其中 𝑦1−𝑦 表示了事件发生与不发生的比例,具有良好的物理意义。而对于softmax而言,在二分类情况下与sigmoid函数等价,他是sigmoid函数在多分类上扩展,具体形式:

𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑥)=𝑒𝑥𝑖∑𝑗𝑒𝑥𝑗

对于softmax函数,使用极大似然估计计算需要训练的参数 𝜃 的值,

𝑙𝑜𝑔𝑃(𝑦=𝑖;𝑧)=𝑙𝑜𝑔 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑧)𝑖=𝑧𝑖−𝑙𝑜𝑔∑𝑗𝑒𝑧𝑗

其中第一项表示输入 𝑧𝑖 总是对代价函数有直接贡献,当最大化对数似然时,第一项鼓励𝑧𝑖被推高,而第二项则鼓励所有的 𝑧 被拉低。这也能一定程度上说明为什么softmax对于输出结果出现[0.5, 0.5]的情况,往往会给出一个过于自信的判断。为了对第二项 𝑙𝑜𝑔∑𝑗𝑒𝑧𝑗 有个直观的理解,注意到这一项大致可以近似为 𝑚𝑎𝑥𝑗𝑧𝑗 ,这种近似是基于对任何明显小于𝑚𝑎𝑥𝑗𝑧𝑗的 𝑧𝑘 , 𝑒𝑧𝑘 都是不重要的,能从这种近似中看出,负对数似然代价函数总是强烈地惩罚最活跃的不确定项。如果正确答案已经具有了softmax的最大输入,那么 −𝑧𝑖 和 𝑙𝑜𝑔∑𝑗𝑒𝑧𝑗≈𝑚𝑎𝑥𝑗𝑧𝑗=𝑧𝑗 项大致低效,这个样本对整体训练代价的贡献很小,这个代价主要有未被正确分类的样本产生。

通常情况下,对于和交叉熵(极大似然估计)一起使用的softmax函数而言,其导数具有非常简单的形式,只用正确分类的项上输出值-1,其他项保持不变即可。(这个的具体推导,放到损失函数里面再说吧Softmax Loss 的推导及改进 - 知乎 (zhihu.com)

另外,对于softmax来说,存在的第一个问题就是涉及到了指数计算,故对于计算机而言带来的第一个挑战就是内存溢出。因此需要对softmax函数进行改进:

𝑦𝑘=𝑒𝑎𝑘∑𝑖=1𝑛𝑒𝑎𝑖=𝐶𝑒𝑎𝑘𝐶∑𝑖=1𝑛𝑒𝑎𝑖=𝑒𝑎𝑘+𝑙𝑜𝑔𝐶∑𝑖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值