MxNet学习笔记(2)-softmax和log_softmax的区别、CrossEntropyLoss()与NLLLoss()的区别、Log似然代价函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaomifanhxx/article/details/85917258

1  softmax

函数Softmax(x)是一个non-linearity,但它的特殊之处在于它通常是网络中的一次操作,这是因为它接受了一个实数向量并返回一个概率分布,其定义如下,定义x是一个实数的向量(正数或负数都无所谓,没有限制)。然后,第i个Softmax(x)的组成是

输出是一个概率分布:每个元素都是非负的,并且所有元素的总和都是1

2  log_softmax

在softmax的结果上再做多一次log运算

(效果在查)

3  nn.CrossEntropyLoss()与NLLLoss()

NLLLoss的输入是一个对数概率向量和一个目标标签,它不会为我们计算对数概率。适合网络的最后一层是log_softmax。损失函数nn.CrossEntropyLoss()与NLLLoss()相同。唯一不同的是它为我们去做softmax。

4  Log似然代价函数

其中,ak表示第k个神经元的输出值;yk表示第k个神经元对应的真实值,取值为0或1.实际上,做分类的时候,只有一个yi为1,其他均为0,最终结果是C=-yklogak(ak对应着正确的那一个分类,log默认是e为底,ak在[0,1],当ak最大的时候,C=0),即损失为0。

未完待续

参考博客:

https://blog.csdn.net/hao5335156/article/details/80607732

猜你喜欢

转载自blog.csdn.net/xiaomifanhxx/article/details/85917258
今日推荐