softmax

作者: 还有下文 | 来源:发表于2019-04-22 00:08 被阅读0次

    0 写在前面

    本文介绍softmax在神经网络中的含义,及个人的理解,见斜体部分

    1 softmax含义

    • 将得分结果转换为概率进行分类
    • 设计初衷:希望特征对概率的影响是乘性的
      得分结果是数值型,不便直接用作分类,而soft之后的概率分布可直观用作分类
      image.png
    • 图上是softmax的具体计算,公式如下所示:


      image.png

    2 softmax在网络中的定位

    输入层经过hidden层之后,得到计算值;
    然后softmax计算后,得到概率分布;
    接着通过交叉熵cross entropy计算损失函数;
    随后利用链式法则,反向传播更新网络权重。
    多次迭代得到分类的预测结果。
    优点:softmax的求导非常简单,反向更新的梯度就是正确分类yi的softmax值

    3 python实现

    import numpy as np
    def softmax(X):
        X = X - np.max(X)
        return np.exp(X) / np.sum(np.exp(X))
    print(softmax([1,2,-3]))
    
    image.png

    这里面为什么要进行 x-np.max呢,因为防止每个数都很大,导致计算出来的结果溢出,计算机是有位数限制的,所以要做一个normalization.

    4 为什么用softmax,而不直接用标准化将确定范围的值转换到区间[0,1]当中呢

    • 如果计算结果里面有很大的值(正、负都有),通过normalization会有部分数会变得非常小。Softmax相较于normalization能够更好的区分不同类别的计算结果(结果区别比较小)

    相关文章

      网友评论

        本文标题:softmax

        本文链接:https://www.haomeiwen.com/subject/lcfjgqtx.html