softmax是如何被设计出来的?
问题:sigmoid参数只能处理二分类问题,比如对某个对象的概率的计算结果是0.6,但对多个对象计算结果之和就不一定为一。
所以要解决多分类问题,就要求激活函数满足以下条件:
1,计算结果>=0
2,计算结果和为一
如上图,softmax函数就解决了上述问题,用e作为底,使结果始终大于零,再用累加的方法,使所有结果之和始终为一。
上述图片为softmax计算损失函数的过程。
sigmoid和softmax之间有什么关系?
通过上述图片可以看出,softmax和sigmoid函数经过变换的形式是十分相似的,sigmoid函数可以看作softmax的一个特殊形式。
softmax与最大熵之间的联系。
根据上述图片,从正态分布出发,一阶矩到n阶矩,可以拟合成任意概率模型。
上述图片表示通过比较,两个概率模型的期望,就可以比较两个概率模型是否相同。
条件概率
但在实际情况中,我们只有数据集,相当于只有一个概率模型,如何进行比较呢?
上述图片表示的是借助经验概率,表示条件概率。
上述图片表示借助拉格朗日乘法,经过一系列数学计算,就可以得到,条件概率的计算公式。
然后经过归一化操作后就可以得到,softmax函数,这样我们就知道了,softmax函数中的e是在引入熵的时候带入的。
上图表示,在实际训练过程中概率模型的范围一定是需要大于训练集,在衡量训练集内部的数据时可以借助经验概率,而超过训练集,就要借助最大熵进行衡量了。
而经过数学变换,可以发现,无论是极大似然估计,还是交叉熵和最大熵,都可以化简成同一种形式,数学中,他们本质是一样的。
上述内容来自于:【softmax是为了解决归一问题凑出来的吗?和最大熵是什么关系?最大熵对机器学习为什么非常重要?-哔哩哔哩】 https://b23.tv/2HligsT