4、交叉熵与softmax
1、交叉熵的来源
一条信息的信息量大小和它的不确定性有很大的关系,一句话如果需要很多外部信息才能确定,我们就称这句话的信息量比较大。比如你听到“云南西双版纳下雪了”,那你需要去看天气预报、问当地人等等查证(因为云南西双版纳从没下过雪)。相反,如果和你说“人一天要吃三顿饭”,那这条信息的信息量就很小,因为这条信息的确定性很高。
将事件x_0的信息量定义如下(其中p(x_0)表示事件x_0发生的概率):
熵是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望。公式如下:
相对熵又称KL散度,用于衡量对于同一个随机变量x的两个分布p(x)和q(x)之间的差异。在机器学习中,p(x)常用于描述样本的真实分布,例如[1,0,0,0]表示样本属于第一类,而q(x)则常常用于表示预测的分布,例如[0.7,0.1,0.1,0.1]。显然使用q(x)来描述样本不如p(x)准确,q(x)需要不断地学习来拟合准确的分布p(x)。 KL散度的公式如下:KL散度的值越小表示两个分布越接近。
我们将KL散度的公式进行变形,得到: 前半部分就是p(x)的熵,后半部分就是我们的交叉熵: 机器学习中,我们常常使用KL散度来评估predict和label之间的差别,但是由于KL散度的前半部分是一个常量,所以我们常常将后半部分的交叉熵作为损失函数,其实二者是一样的。 2、分类问题中,loss函数不使用MSE而使用CE的原因 【https://github.com/HAOzj/Classic-ML-Methods-Algo/blob/master/ipynbs/appendix/loss_function/MSE%20vs%20Cross-entropy.ipynb】 2.1、mse实际就是高斯分布的最大似然,crossEntropy是多项式分布的最大似然,分类问题当然得用多项式分布!(多分类问题的分布符合多项式分布,二分类问题的分布符合伯努利分布(二项分布)) 【 MSE是假设数据符合高斯分布时,模型概率分布的负条件对数似然;交叉熵是假设模型分布为多项式分布时,模型分布的负条件对数似然. 】 2.2、MSE 多分类模型下损失函数:从MSE loss可以看出, MSE无差别得关注全部类别上预测概率和真实概率的差;从交叉熵损失来看,交叉熵关注的是正确类别的预测概率.
3、softmax函数 【https://www.jianshu.com/p/1536f98c659c】
指数形式的原因:如果使用max函数,虽然能完美的进行分类但函数不可微从而无法进行训练,引入以 e 为底的指数并加权归一化,一方面指数函数使得结果将分类概率拉开了距离,另一方面函数可微。