【深入浅出向】从自信息到熵、从相对熵到交叉熵,nn.CrossEntropyLoss, 交叉熵损失函数与softmax,多标签分类

本文深入探讨信息论的基础概念,包括信息、自信息、熵、联合熵和条件熵。重点讲解交叉熵在机器学习中的应用,特别是在多分类问题中如何使用softmax和交叉熵损失函数。同时,通过Pytorch中的nn.CrossEntropyLoss和nn.BCELoss实例,阐述了这两个损失函数的计算过程和差异。


先给出本文的主要参考: 国防科技大学-信息论与编码基础(国家级精品课) 1
两年前我写过 softmax回归与交叉熵损失函数, 但是理解远远不够,本篇我们会从信息论最根本的信息出发,一步步看到为什么多分类问题中用softmax+交叉熵作为损失函数,最后会给一个多标签分类的例子加深这一认知。

什么是信息

信息是事物运动状态或存在方式的不确定性的描述(Shannon信息)

信息与消息的区别

消息:用文字、符号、语言、数据、音符、图片等能被人们感觉器官所感知的形式,把客观物质的运动和主观思维活动表达出来就称为消息。
Alt
通过消息的传递,使得我们消除不确定性(由于随机性而没有把握的因素),从而获得信息。

以通信过程为例:要传递的是信息,但是信息是抽象的东西难以捕捉,于是进行有形的实体进行搭载描述,这样说明就会方便一些。这个用来搭载描述的就是消息。以前不知道的东西,通过消息的传递,现在知道了,这个时候就会说我们获得了信息。

信息测度:自信息

信息量的大小,该用什么样的函数进行描述?这就涉及到了信息测度,也就是我需要定量的找一个函数来描述这个信息量的大小。下面先介绍自信息:
Alt
一个满足上述性质的函数 I I I即为
I ( a i ) = l o g r 1 P ( a i ) I(a_i)=log_r\frac{1}{P(a_i)} I(ai)=logrP(ai)1
不同对数底,自信息函数有不同的单位bit, nat, hart. r=2 bit; r=e nat; r=10 hart

自信息有两个含义:
(A)当 a i a_i ai发生以前,表示 a i a_i ai的不确定性
(B)当 a i a_i ai发生以后,表示 a i a_i ai提供的信息量

同样地,也会有联合自信息,条件自信息。这些我们会和后面的熵放到一起讲。

熵:信源的信息测度

信息熵

熵是平均自信息,对给定的信源分布,信息熵是一个固定值

为什么要引入信息熵?用前面提到的自信息不是也可以作为信息测度吗?举个例子:一个离散的随机变量,有0.99和0.01的概率输出不同的值,比如我们要反映这个变量的信息量大小,我看到一个输出值我计算 − l o g 0.99 -log0.99 log0.99,没问题。但是问题是再来一个输出值呢?我重新算一个 − l o g 0.01 -log0.01 log0.01嘛,这对一个随机变量整出两个度量,不太友好,合理的做法是取他们的数学期望
Alt

Alt
由于其是平均自信息,所以表示的是随机变量X每个具体取值所提供的平均信息量,单位是bit/sig
Alt
与自信息类比,其也有两个含义:
(A)描述信源X的平均不确定性,一个随机变量的熵越大,它的不确定性越大,正确估计其值的可能性越小
(B)平均每个信源符号所携带的信息量

联合熵与条件熵

  • 联合熵(joint entropy):如果X,Y是一对离散型随机变量X,Y~p(x, y),X,Y的联合熵为
    H ( X , Y ) = − ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g 2 p ( x , y ) H(X,Y)=-\sum_{x \in X}\sum_{y \in Y}p(x,y)log_2p(x,y) H(X,Y)=xXyYp(x,y)log2p(x,y)表示的是一对随机变量平均所需要的信息量

  • 条件熵(conditional entropy):给定随机变量X的情况下,随机变量Y的条件熵定义为:
    H ( Y ∣ X ) = ∑ x ∈ X p ( x ) H ( Y ∣ X = x ) = ∑ x ∈ X p ( x ) [ − ∑ y ∈ Y p ( y ∣ x ) l o g 2 P ( y ∣ x ) ] = − ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g 2 p ( y ∣ x ) \begin{aligned} H(Y \mid X)&=\sum_{x \in X}p(x)H(Y \mid X=x) \\ &= \sum_{x \in X}p(x)\left[ -\sum_{y \in Y}p(y \mid x)log_2P(y \mid x)\right] \\ &=-\sum_{x \in X}\sum_{y \in Y}p(x,y)log_2p(y \mid x) \end{aligned} H(YX)=xXp(x)H(YX=x)=x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值