交叉熵损失函数和似然估计_交叉熵和极大似然估计的再理解

本文介绍了在多分类问题中如何使用极大似然估计来建立模型,并通过交叉熵作为损失函数来评估模型性能。交叉熵是衡量真实分布与模型预测分布之间距离的指标,它等价于最小化负对数似然函数。在信息论中,熵和KL散度被用来量化信息和分布之间的差异。理解这些概念对于优化深度学习模型至关重要。
摘要由CSDN通过智能技术生成

对于一个多分类问题(假设为

equation?tex=K+ 类),有数据集

equation?tex=+D%3D%5C%7B%28x_i%2Cy_i%29%7C%7Bi%7D%5C%7D 。我们希望建立模型去建模概率分布

equation?tex=+p%7B_%5Ctheta%7D%28y%7Cx%29 ,模型参数为

equation?tex=+%5Ctheta

我们使用损失函数评估模型的好坏,可以采用两种方式来导出。

极大似然估计

由于是多分类问题,故样本空间上的

equation?tex=p%28y%7Cx%29 满足某个Categorical distribution。由Categorical distribution定义知,

equation?tex=p%28y%7Cx%3Bp%29%3D%5Cprod_%7Bk%3D1%7D%5EKp_k%5E%7By_k%7D

其中,

equation?tex=p+ 是分布的参数,也是分布的输出概率向量。

equation?tex=y 是one-hot编码的标签向量。

例如对于一个天气4分类问题,输出概率向量如下:

p = {'rain': .14, 'snow': .37, 'sleet': .03, 'hail': .46}

则分类为snow的概率为

equation?tex=%5Crm%7BPr%7D%28y%3Dsnow%3D%5B0%2C1%2C0%2C0%5D%29%3D.14%5E0.37%5E1.03%5E0%2A.46%5E0%3D0.37+

我们使用极大似然估计去估计分布参数

equation?tex=p

假设有

equation?tex=n 个样本:

equation?tex=%28x%5E%7B%28i%29%7D%2Cy%5E%7B%28i%29%7D%29 ,则似然函数为

equation?tex=%5Cmathcal%7BL%7D%28%28x%5E%7B%28i%29%7D%2Cy%5E%7B%28i%29%7D%29%3Bp%29%3D%5Cprod_%7Bi%3D1%7D%5En%5Cprod_%7Bk%3D1%7D%5EK%7Bp_k%5E%7By_k%7D%7D

我们期望最大化似然估计,即最小化负对数似然函数:

equation?tex=%5Cmin%7B-%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Csum_%7Bk%3D1%7D%5EK%7Dy_k%5Clog+p_k

由于采用one-hot编码,故

equation?tex=+y_k%3D0 的项乘积均为0,只需考虑

equation?tex=+y_k%3D1 时。故上述函数可变形为:

equation?tex=%5Cmin%7B-%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Clog+P_k%28y_k%3D1%29%7D

交叉熵

信息论背景知识补习In information theory, chaos processes more information.

信息一般可以被表述为不确定性的程度,有如下特性一定发生的事件没有信息

很有可能发生的事件几乎没有信息

随机事件拥有更多的信息

独立事件可以增加信息——抛两次正面的骰子的信息量大于抛一次正面骰子的信息量

事件的信息可以形式化为:

equation?tex=I%28x%29%3D-%5Clog%28P%28x%29%29+

熵用于衡量信息的多少,被定义为:

equation?tex=H%28x%29%3D%5Cmathbb%7BE%7D%7Bx%5Csim+P%7D%28I%28x%29%29%3D-+%5Cmathbb%7BE%7D%7Bx%5Csim+p%7D%5B%5Clog+P%28x%29%5D

离散随机变量$x$的熵即:

equation?tex=H%28x%29%3D-%5Csum_%7Bx%7DP%28x%29%5Clog+P%28x%29

equation?tex=%5Clog 以2为底,则可以衡量编码信息的比特数多少。在信息论中,信息与随机性是正相关的。高熵等于高随机性,需要更多的比特来编码。

例如,计算丢一枚硬币的熵:

equation?tex=H%28x%29%3D-p%28%E6%AD%A3%E9%9D%A2%29%5Clog_2+p%28%E6%AD%A3%E9%9D%A2%29-p%28%E5%8F%8D%E9%9D%A2%29%5Clog_2+p%28%E5%8F%8D%E9%9D%A2%29%3D-%5Clog_2%5Cfrac%7B1%7D%7B2%7D%3D1+

则我们可以用1位比特来编码。

KL Divergence常用于衡量两个分布

equation?tex=P%2CQ 的距离,被定义为

equation?tex=+D_%7BKL%7D%28P%7C%7CQ%29%3D%5Cmathbb%7BE%7D_%7Bx%5Csim+P%7D%5Clog+%5Cfrac%7BP%28x%29%7D%7BQ%28x%29%7D

故对于离散型随机变量而言,

equation?tex=D_%7BKL%7D%28P%7C%7CQ%29%3D%5Csum_%7Bx%7DP%28x%29%28%5Clog+P%28x%29-%5Clog+Q%28x%29%29

注意,KL距离并不对称。

熵可以衡量编码信息的最少比特数,交叉熵则可以衡量使用Q的错误优化编码方案对具有分布P的x进行编码的最小比特数。其被定义为:

equation?tex=+H%28P%2CQ%29%3D-%5Csum_%7Bx%7DP%28x%29%5Clog+Q%28x%29

同时,其可以被写为:

equation?tex=H%28P%2CQ%29%3D-%5Csum+P%5Clog+Q%3D-%5Csum+P%5Clog+P%2B%5Csum+P+%5Clog+P-%5Csum+P%5Clog+Q%3DH%28P%29%2B%5Csum+P+%5Clog+%5Cfrac%7BP%7D%7B+Q%7D%3DH%28P%29+%2B+D_%7BKL%7D%28P%7C%7CQ%29

由于

equation?tex=H%28P%29 与模型参数无关,可以视为常数。故最小化KL距离等价于最小化交叉熵。

在深度学习中,

equation?tex=P 一般为真实标签的分布,

equation?tex=+Q 一般为模型预测输出的分布。

交叉熵损失函数

我们希望能够最小化真实分布

equation?tex=P%28y%7Cx%29 与模型输出分布

equation?tex=P%28%5Chat%7By%7D%7Cx%29 的距离,等价于最小化两者的交叉熵,其被定义为:

equation?tex=-%5Csum_%7By%7DP%28y%7Cx%29%5Clog+Q%28%5Chat%7By%7D%7Cx%29%3D-%5Csum_%7Bk%3D1%7D%5EK+y_k+%5Clog+%5Chat%7By_k%7D

由此可见,最小化交叉熵和最小化负对数似然函数是等价的。

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值