老饼讲解:一步一步上手深度学习
好了,我们这节再来好好详细说说下softmax回归中所使用的softmax函数,加深对它的理解和用途,以后我们可是天天要跟它打交道的。
好了,我们先来仔细看看softmax具体的运算是怎么样的。
先看一个例子:
上述softmax运算,实际可以拆为两部分:

1. 指数化:先将每个元素进行exp指数化。
2. 然后除以它们的总和来进行归一化,使得各个元素之和为1。
与sigmoid类似,softmax具有业务意义上的用途,也有单从数学性质出发的用途。
softmax在业务意义上,它一般用来将"判别向量"转换为概率。

例如判别向量代表样本属于类别1、2、3的判别量,那么可以通过softmax来将它转换为各个类别的判别概率:。
为什么softmax可以将"量"转换为概率呢?可以追溯到热力学中的玻尔兹曼分布,这里我们不再深究。但总的来说,softmax的业务作用就是将量转换为概率。
为什么softmax称为softmax(软最大化)呢,这来源自它的数学意义。
往往我们需要求出向量的最大者是哪一个,即:
在一些传统神经网络中也称它为竞争函数,即胜者为王,哪个最大就为1,其余为0
由于argmax函数是不连续的,有点"硬",而softmax呢,则是"软最大化",它是连续函数。在元素差异相对明显时,softmax的最大元素会非常接近1,示例如下:
为啥这么神奇呢,其实比较容易理解,无非就是softmax先将元素的差异通过exp来指数倍放大,再进行归一化就会达到这一效果了。
好的,这节我们进一步加深对softmax函数的认识了。总的来说,在数学上它可以"软最大化",而在业务意义上,它可以用来将判别向量转换为概率向量。它的运算过程就是先exp,后归一化就行了。
评论