softmax

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能够更好的区分不同类别的计算结果(结果区别比较小)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容