一文读懂卷积神经网络中softmax,softmaxloss, 交叉熵的理解
softmaxloss, 交叉熵损失函数的理解
-
信息量
-
- 意义
- 公式
-
信息熵
-
- 意义
-
Kullback-Leibler散度
-
cross-entropy
-
数学表达式及其核心作用
-
在深度学习框架中的应用场景
-
Softmax损失函数的解析
-
softmax
-
总结与反思部分
信息量
意义
用来衡量信息量的大小。
公式
I(x)=−log(P(x))
香农对信息量大小的定义指出:如果某一事件发生的概率越大,则该事件所携带的信息量反而越小;反之,则该事件所携带的信息量越大。由此可知,在这种情况下(即事件发生概率p),信息量I与其发生概率p之间呈反比关系。为了满足这一定义的需求,在数学上我们通常采用对数函数,并在其结果前取其负值后即可实现对信息量I的定义:即在事件发生概率p与对应的自变量范围内(0到1),通过对数运算并取其负值来实现对事件所携带的信息量I进行量化计算。
信息熵
意义
信息熵也被认为是信息熵的平均值或均值(即信息量的平均水平),通常用H(x)表示。
其计算公式与概率论中的期望计算方式一致,
具体为各个事件的信息量与其对应概率的乘积之和。
softmax:应用于分类问题,位于卷积神经网络层的最后一层。
softmax意义:输出输入图片,对应概率最大的类别,以及属于该类别的可能性概率。
softmax作用:将N分类的问题,转化为一个N×1维的向量,概率和为1。
softmaxloss:计算预测结果的损失,预测结果与label值越接近,损失越小,反之则越大。
信息熵:衡量获得信息的多少。
交叉熵:刻画两个概率分布之间的距离。
损失函数:可以使用tensorflow给定的损失函数,也可以根据实际应用场景自定义损失函数。
对于相同的神经网络,不同的损失函数会对训练得到的模型产生重要影响。
注:1.训练数据的正确答案符合一个概率分布,神经网络的前向传播结果通过softmax回归变成一个概率分布。然后就可以通过交叉熵来衡量这两个概率分布之间的距离,即softmax loss。
2.交叉熵表征真实的概率分布(训练数据的标签值)和模型预测的概率分布之间的差异,值越小,模型的预测结果越好。
3.刻画的是用模型预测的概率分布表示真实的概率分布的困难程度,值越小,刻画得越好,值越大,刻画得越差。
:你的概率是通过softmax公式得到的,那么cross entropy就是softmax loss。
相对熵(KL散度)
如果有一个共同的随机变量X同时遵循两个独立的概率分布P(x)和Q(x),那么我们可以利用KL散度这一工具来比较这两个概率分布之间的差异性。
公式如下:
D_{KL}(p||q) = \sum_{i=1}^{n}p(x_{i})log\left(\frac{p(x_{i})}{q(x_{i})}\right)
其中,P(x)代表样本的真实概率分布模式,而Q(x)则代表基于模型预测的概率分布情况。
例如,在一个分类任务中,当模型用于区分猫、狗和马时(如图像分类),假设真实情况是猫(即p(x)=1, q(x)=0的情况),那么p([1,0,0])=1表示输入属于猫类;而q([0.7,0.2,0.1])= [0.7, 0.2, 0.1]则代表模型对各分类的概率预测结果。
计算过程如下:
D_{KL}(p||q) = \sum_{i=1}^{n}p(x_{i})log\left(\frac{p(x_{i})}{q(x_{i})}\right) = 1*log\left(\frac{1}{0.7}\right) ≈ 0.36
可以看出,在这个例子中当p([1,0,0])=1时(即输入确实是猫),计算得到的结果表明模型对猫类别的预测较为准确(因为此时q(猫)=0.7)。通过持续训练模型参数\theta以最小化这一散度值(即让q(X)尽可能接近p(X)),我们能够提升模型在区分不同类别上的准确性。
交叉熵
公式
D_{\text{Kullback-Leibler}}(p||q) = \sum\limits p(x_i)\cdot\ln\left(\frac{p(x_i)}{q(x_i)}\right) = \sum\limits p(x_i)\cdot\ln p(x_i) - \sum\limits p(x_i)\cdot\ln q(x_i) = -H(p) + [-\sum\limits p(x_i)\cdot\ln q(x_i)]
其中,[- \sum_{i=1}^{n}p(x_{i})logq(x_{i})]即为交叉熵。
前一者,-H(x)代表信息论中的信息熵这一概念;而后一者则为交叉熵这一指标。两者的差值即为Kullback-Leibler散度。深入理解交叉熵的概念时,请注意其与信息论中其他关键指标之间的关系。具体而言,在研究过程中需要明确以下几点:首先掌握"信息量"这一信息论中的基本概念;其次深入理解概率论中的期望值这一核心理论;最后建立不同概率分布之间的差异评估体系。这些要素共同构成了对KL散度这一指标的整体认识框架。
在深度学习模型中的应用
交叉熵用于衡量两个不同的概率分布之间的差异程度,在机器学习领域通常表示为真实概率分布与预测概率分布之间的差异情况。当交叉熵的数值越小时,则表明模型的预测效果更为优异。
在分类问题中,交叉熵常与softmax配作常用损失函数。为了使各类预测结果能够合理分配概率资源,softmax会对输出结果进行归一化处理。经过此处理后使得各类预测值总和归一化为1,在此基础上再通过交叉熵损失函数计算出模型的损失值。
softmaxloss的理解
softmaxloss是交叉熵的一种特殊情况。
softmax
对全连接的输入归一化。
以下文献对softmax有很好的解释:
《tensorflow实战Google深度学习框架》4.2节
后记
概念的学习是一个逐步深化的过程,在运用5why法时需分层深入才能全面 grasp 该知识点的核心内涵。例如,在深入理解交叉熵的过程中(如KL散度),必须先掌握散度的概念(如KL散度),进而需要理解信息熵的计算方法(如条件概率)。为了全面 grasp 信息论的核心概念(如互信息),还需深入学习信息量与期望的关系(如条件概率)。
借助举例的方式可以直观地理解公式的含义;实际上,任何数学公式本质上都是基于这些实例的总结.
