softmax function

概念

softmax函数(归一化的指数函数):”squashes”(maps) a K-dimensional vector z of arbitrary real values to a K-dimensional vector σ(z) of real values in the range (0, 1) that add up to 1 (from wiki)。

  • 向量原来的每个值都转换为指数的概率值: σ ( z ) j = e z j ∑ k = 1 K e z k \sigma(z)_j=\frac{e^{zj}}{\sum_{k=1}^Ke^zk} σ(z)j=k=1Kezkezj

  • 转换后的值是个概率值,在[0,1]之间;

  • 转换后的向量加和为1。

  • 下面是用代码举例子说明是怎么计算的:

  • >>> import math
    >>> z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]
    >>> z_exp = [math.exp(i) for i in z]
    >>> sum_z_exp = sum(z_exp)
    >>> softmax = [i / sum_z_exp for i in z_exp]
    >>> print([round(i, 3) for i in softmax])
    [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]
    

    应用

    • 神经网络的多分类问题,作为最后一层(输出层),转换为类别概率,如下图所示,但是这个图里面e的下标k应该写错了位置,k应该是z的下标(一般最后基于概率值有一个独热编码,对应具体的类别):
    • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

将某个值转换为激活概率,比如增强学习领域,此时的其公式为: P t ( a ) = e q t ( a ) T ∑ i = 1 n e q t ( i ) T P_t(a)=\frac{e^{\frac{q_t(a)}T}}{\sum_{i=1}^ne^{\frac{q_t(i)}T}} Pt(a)=i=1neTqt(i)eTqt(a)

softmax vs logistic

  • 参考这里:logistic函数和softmax函数
  • logistic: 二分类问题,基于多项式分布
  • softmax:多分类问题,基于伯努利分布
  • 因此logistic是softmax函数的一个特例,就是当K=2时的情况。所以在逻辑回归那里,也有softmax regression(多元逻辑回归)用于多分类问题,我在这里也记录了一点。
    6-logistic-regression.html)也记录了一点。
  • 在多分类里面,也可以使用多个one-vs-all的逻辑回归,达到多元回归的目的,这种操作和直接的softmax回归有什么不同?softmax回归输出的类是唯一互斥的,但是多个逻辑回归的输出类别不一定是互斥的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值