通俗理解softmax

2019-01-04  本文已影响0人  多问Why

深度神经网络离不开softmax与cross_entropy,这篇就通俗的说下softmax.
首先softmax是一种算法,算法是要解决某种问题呢,所以明白了什么情况用它最好,也就是明白它的作用。

作用一

假如我们用数学考试成绩来判断学生的数学水平。你肯定不能说考20分的同学水平是考5分的人4倍,考100分的人和考98的人水平差不多。就像跑步一样,你刚开始练,进步很快,但到了一定水平,少0.1秒都是巨大的进步。
所以需要一个算法,给它的是[5,20,98,100]这样的数,经过转换后,数值小时,它们的差距会压缩,数值大时,差距会拉大。比如转成这样[0.1, 0.12 ,0.7, .0.9],也就是说考5分与考20分可能都是蒙的,水平差距不大,但考满分的要比考98的水平强出很多。

作用二

解决分类问题时,比如一个数字的图片,只知它肯定是0到9中的一个,是哪个数字的可能性有大有小,但每个的概率加起来要等于1.并且每个概率也都在0到1之间。

softmaxt定义

\alpha_j = \frac{e^{x_j}}{\sum_{k=1}^N e^{x_k}}

首先输入是一个向量,只输入一个数字没有意义,输出也是一个对应输入元素的向量。
将输入的每个元素取指数,求和是分母。每个输入元素指数为分子。这样可以算出每个元素的输出。
由于指数函数的特点,这个公式满足了刚才所说的两个作用。

上一篇下一篇

猜你喜欢

热点阅读