交叉熵损失函数

前言

交叉熵损失函数是一种在分类问题中常用的损失函数,它衡量的是模型输出的概率分布与真实标签的概率分布之间的差异。在初学时,仅仅通过调包实现交叉熵损失的计算,对其背后的概念和计算原理认识比较模糊。而各种”熵“的概念在深度学习算法中有非常广泛的用途。这里参考了一些教程,重新梳理一遍交叉熵这个概念,并提供了实现代码。

一、熵是什么?

熵的概念来源于信息论,用来衡量信息量的大小。信息量与事件发生的概率有关,概率越小的事情发生,信息量越大。假设 X X X是一个离散型随机变量,其取值集合为 χ \chi χ,概率分布函数 p ( x ) = P r ( X = x ) , x ∈ χ p(x)=Pr(X=x),x\in\chi p(x)=Pr(X=x),xχ,则定义事件 X = x 0 X=x_0 X=x0的信息量为:
I ( x 0 ) = − l o g ( p ( x 0 ) ) I(x_0)=-log(p(x_0)) I(x0)=log(p(x0))
熵是用来表示所有信息量的期望,即:
H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(X)=-\sum_{i=1}^n p(x_i)log(p(x_i)) H(X)=i=1np(xi)log(p(xi))

二、交叉熵

交叉熵用 H ( P , Q ) H(P,Q) H(P,Q)来表示,用于衡量两个概率分布之间的差异。具体来说,假设有两个概率分布 P P P Q Q Q,交叉熵定义为:
H ( P , Q ) = − ∑ P ( x ) l o g Q ( x ) H(P,Q)=-\sum P(x)log Q(x) H(P,Q)=P(x)logQ(x)
其中, P ( x ) P(x) P(x)是真实分布, Q ( x ) Q(x) Q(x)是预测分布。
在机器学习中,交叉熵用于衡量模型预测值与真实值之间的差异。以二分类问题为例,交叉熵损失函数为:
L = − y l o g p − ( 1 − y ) l o g ( 1 − p ) L=-y logp-(1-y)log(1-p) L=ylogp(1y)log(1p)
其中, y y y为真实标签, p p p为模型预测的概率。
对于多分类问题,交叉熵损失函数表示为:
L = − ∑ y i l o g p i L=-\sum y_i log p_i L=yilogpi
其中, y i y_i yi是真实标签的one-hot编码, p i p_i pi是模型预测的概率。关于交叉熵损失在实际多分类问题中的应用,可以看下面这个链接2.5节:交叉熵损失

交叉熵损失代码如下:

三、互信息

四、KL散度

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值