未经同意,不得转载
在神经网络中,Softmax通常作用于分类模型最后的输出,将分类结果归一化为(0,1)区间,表示各分类结果的概率。它的函数形式为:
对于这个可爱的函数式子,有3个问题:
(1)为什么分母是所有类别的加权和?
其实就是简单的归一化操作,将输入映射为(0,1)之间的概率值。
(2)为什么要引入指数形式?
直观来讲是为了拉开各类别间的差异,怎么理解呢?举个例子:假设输入的得分值为
Z=[1, 4, 2, 3]
- 使用argmax函数,则输出的分类结果为
[0, 1, 0, 0]
这个输出完美地符合实际情况。这个卵很完美,然而并没有什么用,因为argmax函数并不是处处可微的,我们无法用它来训练模型。
- 使用加权归一化函数
输出相应的类别概率为
[0.1, 0.4, 0.2, 0.3]
这跟argmax得出的完美的卵相差有点远。
- 引入以 e 为底的指数并加权归一化,即softmax
输出相应的类别概率为
[0.032, 0.644, 0.087, 0.237]
这个结果将分类概率拉开了距离,富的越富,穷的越穷,最终富的消灭穷的,达到共同富裕,也就更接近期望值(就是那个完美的卵)。这主要得益于引入的指数函数,请看它的曲线,一目了然:
(3)为什么不用2、4、10等自然数为底而要以 e 为底呢?
因为 e 在数学界长得自然且漂亮,所以它叫自然指数。其实主要是在求导的时候足够方便,关于softmax的求导,这里就不展开了。
网友评论