之前一直很奇怪这个名字,本身是做一个类似归一化的动作,把整体一个vector“压缩”成一个符合概率分布的样子,为什么叫softmax呢?
今天查了下,看了下部分答案,大概写一下理解。
softmax,是和hard-max来对应的。
他完成了两个功能,一个是max,一个是soft。
max部分:softmax函数处理之后,整体最大的值还是最大值,这个排序顺序没有变化,相当于大小顺序的信息没有丢失;
soft部分:soft意味着,是一种可以反向恢复的一种转换。与之对应的,是hard转换。比如说,我们定义对一个vector的hard-max函数,要求也是转变成一个概率分布,单项在[0,1]之间,sum为1。那么,可以定义hard-max为:
Hard-max(vector) = [1 if x is max else 0 for x in vector]
可以看出,这个定义的hard-max也满足概率分布的条件,但它是不可逆的。算是“硬转换”。
因此,对比起来,这个soft-max函数算是一种soft(可逆的)max函数转换为一个概率分布的vector。
参考:
1. https://math.stackexchange.com/questions/1888141/why-is-the-softmax-function-called-that-way