神经网络学习中的SoftMax与交叉熵

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络学习中的SoftMax与交叉熵相关的知识,希望对你有一定的参考价值。

简 介: 对于在深度学习中的两个常见的函数SoftMax,交叉熵进行的探讨。在利用paddle平台中的反向求微分进行验证的过程中,发现结果 与数学定义有差别。具体原因还需要之后进行查找。

关键词 交叉熵SoftMax

定 义
文章目录
函数
交叉熵
求 导
梯度求解
对比MSE
对比Sigmoid
实验验证
对比SoftMax与MSE
总 结

  在深度学习网络中,SoftMax 以及Cross Entropy(交叉熵)是最常见到神经网络输出级的数据处理以及计算损失函数。

 

§01   义


1.1 函数

  SoftMax函数往往使用在分类神经网络的最后一层的处理中,它将分类神经网络的输出转换成网络对于输入样本所属类别的概率。

1.1.1 类别概率

  如果神经网络 N ( φ ; X ) N\\left( \\varphi ;X \\right) N(φ;X)在输入样品 x i x_i xi的作用下,输出输出向量为 [ z 1 , z 2 , ⋯   , z M ] \\left[ z_1 ,z_2 , \\cdots ,z_M \\right] [z1,z2,,zM]。分别表示该样本属于 1 ~ M 个类别的概率。但属于概率必须满足:

  • z i ≥ 0 ,    i = 1 , 2 , ⋯   , M z_i \\ge 0,\\,\\,i = 1,2, \\cdots ,M zi0,i=1,2,,M
  • ∑ i = 1 M z i = 1 \\sum\\limits_i = 1^M z_i = 1 i=1Mzi=1

  为了达到概率条件,需要进行处理。SoftMax处理方式是其中一种。

▲ 图1.1.1 神经网络输入输出示意图

1.1.2 SoftMax

  在 详解softmax函数以及相关求导过程 中,给出了SoftMax的定义:

y i = e z i ∑ i = 1 M e z i y_i = e^z_i \\over \\sum\\limits_i = 1^M e^z_i yi=i=1Meziezi

  数据计算过程中的流程图参见下图:

▲ 图1.1.2 SoftMax结构示意图

  可以看到输出的 y i , i = 1 , 2 , ⋯   , M y_i ,i = 1,2, \\cdots ,M yi,i=1,2,,M满足:

  • y i ≥ 0 ,    i = 1 , 2 , ⋯   , M y_i \\ge 0,\\,\\,i = 1,2, \\cdots ,M yi0,i=1,2,,M
  • ∑ i = 1 M y i = 1 \\sum\\limits_i = 1^M y_i = 1 i=1Myi=1

(1)举例

a = [0.1,0.2,0.3,-1,5]
b = sum([exp(aa) for aa in a])
c = [exp(aa)/b for aa in a]
print("a: ".format(a), "b: :0.2f".format(b), "c: ".format(c))
a: [0.1, 0.2, 0.3, -1, 5]
b: 152.46
c: [0.007249044016189045, 0.008011432630542426, 0.008854002355397775, 0.0024129971374439265, 0.9734725238604267]

1.2 交叉熵

  根据 一文搞懂熵(Entropy),交叉熵(Cross-Entropy)中的定义,对于一组样本所出现的概率分布: p i ,    i = 1 , 2 , ⋯   , M p_i ,\\,\\,i = 1,2, \\cdots ,M pi,i=1,2,,M,所对应的信息熵为:
E e n t r o p y ( P ) = E ( P ) = − ∑ i = 1 M p i log ⁡ ( p i ) E_entropy \\left( P \\right) = E\\left( P \\right) = - \\sum\\limits_i = 1^M p_i \\log \\left( p_i \\right) Eentropy(P)=E(P)以上是关于神经网络学习中的SoftMax与交叉熵的主要内容,如果未能解决你的问题,请参考以下文章

softmax交叉熵损失函数求导

Softmax函数与交叉熵

简简单单了解一下softmax与交叉熵

交叉熵 相关链接

神经网络 - Softmax 交叉熵损失减少对应于准确性降低

Softmax 交叉熵损失爆炸式增长