softmax是深度学习任务中常用于计算最终输出类别的函数。
1. softmax概念
- softmax和我们普通意义上的max函数不同,每一个元素都有一个概率,而不是其中一个元素为1,其余为0。它的含义是对于输入向量,有多大的概率去选择元素1、元素2、元素3等,主要的目的是使得概率计算过程可导。
2. softmax计算公式
3. softmax可能遇到的问题
- 因为softmax函数中存在指数,所以可能会出现上溢和下溢问题,导致最终结果错误但是不会报错,因此使用softmax函数时候一定要考虑该问题,否则后续出问题了是难以定位的。
- 上溢就是说当softmax的输入值很大时,由于是指数函数,会导致输出过大,从而导致向上溢出。
- 下溢与之类似,当指数函数接收一个很小的负数作为输入时候,可能会导致输出为0,在后续的使用中可能会出现除0错误,得到NAN结果。
- 解决方法就是利用softmax的冗余性,让他们全部减去一个值a,a的选取是a=max(x)。