积水成渊之softmax函数

导引

对于二分类问题,除了可以使用单个输出节点表示(输入为x的条件下)事件A发生的概率 P ( A ∣ x ) P(A|x) P(Ax)外,还可以是分别预测 P ( A ∣ x ) P(A|x) P(Ax) P ( A ‾ ∣ x ) P(\overline A|x) P(Ax),A是 A ‾ \overline A A的对立事件,满足约束: P ( A ∣ x ) + P ( A ‾ ∣ x ) = 1 P(A|x)+P(\overline A|x)=1 P(Ax)+P(Ax)=1

这样,一个输出节点变成了两个输出节点,两个节点输出的二分类比单节点输出的二分类多了一个约束条件,这个约束条件将输出节点的输出值变成了一个概率分布。

简单来说,各个输出节点代表一个事件发生的可能性,这个输出值范围为[0,1];并且约束各个输出节点的输出值的和为1。

而且将“求得输入条件下某个事件发生的可能性”变成了“求得输入条件下所有事件发生的可能性”。

当然,我们可以将输出为两个节点的二分类推广成用于n个输出 节点的n分类问题,而这样将各个输出节点的输出值范围映射到[0, 1],并且约束各个输出节点的输出值的和为1的函数,就是Softmax函数,不对!Softmax函数就是这样的函数!

什么是Softmax函数?

Softmax从字面上来说,可以分成soft和max两个部分。

  • max故名思议就是最大值的意思。
  • Softmax的核心在于soft,而soft有软的含义,与之相对的是hard硬。

很多场景中需要我们找出数组所有元素中值最大的元素,实质上都是求的hardmax。
hardmax是只求出数据中最大的值,这往往不合情理。
比如在某些情况下,我们需要得到不止一种可能的可能性,这时候hardmax显然不能胜任,而这就引出了softmax。

Softmax的含义就在于不再唯一的确定某一个最大值而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。

简单来说就是求最大值,但这个过程是软(soft)的,它是为其他结果留有余地的,仍会给较小数值Xi分配一个概率,而不会为0(不会直接舍弃掉)。

公式 S o f t m a x ( x i ) = e x i ∑ j = 1 n e x j Softmax(x_i)=\frac{e^{x_i}}{\sum_{j=1}^{n}e^{x_j}} Softmax(xi)=j=1nexjexi

其中, x i x_i xi为第i个节点的输出值,n为输出节点的个数,即分类的类别个数。
通过Softmax函数就可以对多分类的输出值进行归一化,转换为范围在[0, 1]且和为1的概率分布。
Softmax函数使用了指数进行归一化,它能够将差距大的数值距离拉的更大,但又不会将输出值小的概率直接赋为0。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值