机器学习——softmax函数-天天通讯
【资料图】
在二分类问题中,我们常用sigmoid函数作为激活函数,但是由于sigmoid在自变量x离0较远时曲线过于平滑,在深度神经网络中可能会出现梯度消失的情况,需要选择一个新的函数来替代。
a表示每一层的输出值,z表示每一层的输入值,二者之间需要经过激活函数σ的运算,在这a(l)(k)表示最终的输出值,l层一共有i个感知机,a(l)就是一个i维向量,k表示第k个样本数据。J函数就是损失函数。
多分类问题中,输出层的每个感知机输出的值表示对应分类的概率值大小,一定大于等于0,并且和为1,组合到一起就是一个i维的a(l)(k)的向量。
softmax函数如上所示,首先保证没个输出值都大于等于0 ,使用以e为底的指数函数形式,然后在进行归一化处理就是softmax的函数了。
与softmax函数相比来说,sigmoid更像是一种特殊形式,只有一个分类情况下的特殊形式,并且由于梯度消失的问题,现在一般逐渐选择softmax函数至少作为输出层的激活函数使用。
以下为单分类与多分类的情况对比,激活函数分别使用sigmoid和softmax。
单分类问题中使用的sigmoid函数,就是把t2=1为常量,形式上与softmax保持一致。从损失函数等式上看二者基本上一样,但是二者本质上是不一样的,第一个是0/1问题,不同的输入对应着y1的大小发生变化,而第二个是多分类问题,不同的输入对应的是y1和y2一起产生变化。
数值上相同,但对应不同的问题模型。
标签: