首先思考一下我们用这个作什么呢,需要什么特性的函数呢?
假如我们有三个数 0、1、2,我让你归一化一下怎么做?我们知道softmax是为了和概率分布统一一下,你可能会用0/3、1/3、2/3归一化得到一个概率分布,但这不是我们神经网络里可以使用的,也是不符合要求的。考虑对minist数据集分类,输出端10个神经元的其中三个激活值就是0,1,2,那么我们反馈训练的时候能告诉网络说为‘0’的这个是永远取不到的吗?显然不是,它虽然小,但也应该能取到,同样2比1大,我们说2有2/3的概率是正确的?这也不符合,因为如果必须做出判断的时候,显然就是取2,那么怎么办?
用softmax,它可以让0加进指数后变成非0,虽然也很小,但仍然有可能取到,只是取到的概率小。而2加入指数后,后指数级增长,比1增长的快,所以使得2的概率变得比2/3大,符合要求。