700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > softmax函数与交叉熵损失函数

softmax函数与交叉熵损失函数

时间:2020-09-27 11:38:01

相关推荐

softmax函数与交叉熵损失函数

本文主要介绍了当前机器学习模型中广泛应用的交叉熵损失函数与softmax激励函数。

这个损失函数主要应用于多分类问题,用于衡量预测值与实际值之间的相似程度。

交叉熵损失函数定义如下: LCE(y^,y∗)=−∑i=1Nclassesyi∗log(yi^)L_{CE}(\hat{y}, y^*) = - \sum_{i=1}^{Nclasses} y_i^*log(\hat{y_i})LCE​(y^​,y∗)=−i=1∑Nclasses​yi∗​log(yi​^​)

其中 y^\hat{y}y^​ 为预测向量,y∗y^*y∗为真实标签向量。在多分类问题机器学习中,y∗y^*y∗ 一般使用独热编码。例如,在一个三分类问题中, y∗y^*y∗向量的维度就是三维,对应属于某一类则该位为1,其余位为0。第一类对应的真实标签向量即为[1,0,0]T[1, 0, 0]^T[1,0,0]T,第二类对应的真实标签向量为[0,1,0][0,1,0][0,1,0] 等等以此类推。

很显然,对于这个损失函数而言,取到最小值的时候就是当求和部分取得最大值,即预测向量与标签向量相似度最大时,其乘积也最大。以下图为例,例如该类真实标签为Class2,当向量y^\hat{y}y^​的第二项趋向于于1,此时损失函数取得最小值,我们也保证了预测值与真实值之间的误差最小了。

很显然,这里我们有两个问题,其一是为什么要使用预测值的log函数值与真实的标签相乘而不直接使用两者原始值相乘。其原因在于,由于我们的概率范围总是在0-1之间,直接获取乘积往往会使得不同的损失之间的差别不大,不利于我们进一步通过这个误差来优化我们的模型。

第二个问题是,如何保证预测向量满足概率分布。我们都知道标签向量y∗y^*y∗ 由于使用了独热编码,因此他永远满足概率分布即∑p(x)=1\sum p(x) = 1∑p(x)=1,但是我们的预测向量 y^\hat{y}y^​ 却不一定。这里就要用到我们的softmax激励函数了。简单的来说,softmax函数就帮助我们将一个随机数值的向量,转化为了一个所有值在0-1之间,且和为1的向量,以满足概率分布关系。softmax函数的定义如下: yt,k=e(yt,k)∑ke(yt,k)y_{t,k} = \frac{e^{(y_{t,k})}}{\sum_ke^{(y_{t,k})}}yt,k​=∑k​e(yt,k​)e(yt,k​)​

其中下标t对应第t个样本,k对应输出层的第k个神经元。softmax函数首先将所有输出层神经元对应的值通过指数函数转换为正值,再通过归一化处理,除以他们的指数函数值之和,以保证所有项对应的值之和为1。

通过softmax函数构建概率分布再通过交叉熵,我们就构建了交叉熵损失函数。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。