softmax function

softmax function

对于多类分类问题即输出多个概率的问题,sigmoid函数就使不上劲了。这时候就需要运用softmax了。
softmax是如何由来的呢?
举个简单的例子(例子来自udacity的深度学习课程里的解释),要建立一个模型,对于我们看到的动物,我们要分别输出为鸭子,海狸和海豹的概率。基于种种特征输入,现在鸭子,海狸和海豹得到的分数分别为 2 , 1 和 0。计算概率的最简单的方法就是将它们各自的得分除以它们得分的总和。所以得到概率分别为 2/3 , 1/3 和 0。但是这种方法会有个弊端,当得分包含负数会出现这样的情况:1/(1+0+(-1)),这时候就没法计算概率了。
联想到指数函数(ex)会将输入的任何数转换为正数的特性,用它来转换得分再计算概率就会避免上述方法的弊端。基于 2, 1, 0 的得分,计算概率分别为 e2/e2+e1+e0=0.67, e1/e2+e1+e0=0.24, e0/e2+e1+e0=0.09,这样就完成了一个多类分类的问题

 

Python 中 softmax 的代码实现如下:

import numpy as np

def softmax(L):
    exp_L = np.exp(L)
    sum = np.sum(exp_L)
    return exp_L/sum

在神经网络中,描述多类分类问题时,输出层会设置多个节点,常用 softmax 作为输出层的激活函数,称为softmax层,对于这一层来说,输入的是向量,输出的也是向量。相对于 softmax 这么柔和地处理数据,还有一种稍显暴力的 “hard max” 的方法,即将元素最大的位置直接置为1,其余都置为0。



 

链接:https://www.jianshu.com/p/4e967d86a487

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值