深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

您所在的位置:网站首页 ctc检测结果 深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

2023-04-21 13:05| 来源: 网络整理| 查看: 265

1.交叉熵损失函数

在物理学中,“熵”被用来表示热力学系统所呈现的无序程度。香农将这一概念引入信息论领域,提出了“信息熵”概念,通过对数函数来测量信息的不确定性。交叉熵(cross entropy)是信息论中的重要概念,主要用来度量两个概率分布间的差异。假定 p和 q是数据 x的两个概率分布,通过 q来表示 p的交叉熵可如下计算:

H(p,q)=−∑xp(x)log⁡q(x)H\left(p,q\right)=-\sum\limits_{x}p\left(x\right)\log q\left(x\right)H(p,q)=−x∑​p(x)logq(x)

交叉熵刻画了两个概率分布之间的距离,旨在描绘通过概率分布 q来表达概率分布 p的困难程度。根据公式不难理解,交叉熵越小,两个概率分布 p和 q越接近。

这里仍然以三类分类问题为例,假设数据 x属于类别 1。记数据x的类别分布概率为 y,显然 y=(1,0,0)代表数据 x的实际类别分布概率。记y^\hat{y}y^​代表模型预测所得类别分布概率。那么对于数据 x而言,其实际类别分布概率 y和模型预测类别分布概率 y^\hat{y}y^​的交叉熵损失函数定义为:

crossentryy=−y×log⁡(y^)cross entryy=-y\times\log(\hat{y})crossentryy=−y×log(y^​)

很显然,一个良好的神经网络要尽量保证对于每一个输入数据,神经网络所预测类别分布概率与实际类别分布概率之间的差距越小越好,即交叉熵越小越好。于是,可将交叉熵作为损失函数来训练神经网络。

图1 三类分类问题中输入x的交叉熵损失示意图(x 属于第一类)

在上面的例子中,假设所预测中间值 (z1,z2,z3)经过 Softmax映射后所得结果为 (0.34,0.46,0.20)。由于已知输入数据 x属于第一类,显然这个输出不理想而需要对模型参数进行优化。如果选择交叉熵损失函数来优化模型,则 (z1,z2,z3)这一层的偏导值为 (0.34−1,0.46,0.20)=(−0.66,0.46,0.20)。

可以看出,SoftmaxSoftmaxSoftmax和交叉熵损失函数相互结合,为偏导计算带来了极大便利。偏导计算使得损失误差从输出端向输入端传递,来对模型参数进行优化。在这里,交叉熵与Softmax函数结合在一起,因此也叫 SoftmaxSoftmaxSoftmax损失(Softmax with cross-entropy loss)。

2.均方差损失(Mean Square Error,MSE)

均方误差损失又称为二次损失、L2损失,常用于回归预测任务中。均方误差函数通过计算预测值和实际值之间距离(即误差)的平方来衡量模型优劣。即预测值和真实值越接近,两者的均方差就越小。

计算方式:假设有 n个训练数据 xix_ixi​,每个训练数据 xix_ixi​ 的真实输出为 yiy_iyi​,模型对 xix_ixi​的预测值为 yi^\hat{y_i}yi​^​。该模型在 n 个训练数据下所产生的均方误差损失可定义如下:

MSE=1n∑i=1n(yi−y^i)2MSE=\dfrac{1}{n}\sum\limits_{i=1}^n\left(y_i-\hat{y}_i\right)^2MSE=n1​i=1∑n​(yi​−y^​i​)2

假设真实目标值为100,预测值在-10000到10000之间,我们绘制MSE函数曲线如 图1 所示。可以看到,当预测值越接近100时,MSE损失值越小。MSE损失的范围为0到∞。

3.CTC损失 3.1 CTC算法算法背景-----文字识别语音等序列问题

CTC 算法主要用来解决神经网络中标签和预测值无法对齐的情况,通常用于文字识别以及语音等序列学习领域。举例来说,在语音识别任务中,我们希望语音片段可以与对应的文本内容一一对应,这样才能方便我们后续的模型训练。但是对齐音频与文本是一件很困难的事,如 图1 所示,每个人的语速都不同,有人说话快,有人说话慢,我们很难按照时序信息将语音序列切分成一个个的字符片段。而手动对齐音频与字符又是一件非常耗时耗力的任务

图1 语音识别任务中音频与文本无法对齐

在文本识别领域,由于字符间隔、图像变形等问题,相同的字符也会得到不同的预测结果,所以同样会会遇到标签和预测值无法对齐的情况。如 图2 所示。

图2 不同表现形式的相同字符示意图

总结来说,假设我们有个输入(如字幅图片或音频信号)X ,对应的输出是 Y,在序列学习领域,通常会碰到如下难点:

X和 Y都是变长的;

X和 Y的长度比也是变化的;

X和 Y相应的元素之间无法严格对齐。

3.2 算法概述

引入CTC主要就是要解决上述问题。这里以文本识别算法CRNN为例,分析CTC的计算方式及作用。CRNN中,整体流程如 图3 所示。

图3 CRNN整体流程

CRNN中,首先使用CNN提取图片特征,特征图的维度为m×Tm×Tm×T,特征图 x可以定义为:

x=(x1,x2,...,xT)x=(x^1,x^2,...,x^T)\quad\text{}x=(x1,x2,...,xT)

然后,将特征图的每一列作为一个时间片送入LSTM中。令 t为代表时间维度的值,且满足 1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3