信息论中的各种熵

本文简单介绍了信息论中的各种熵,包括自信息、熵;联合熵、条件熵、互信息;KL散度、交叉熵。并在最后用信息论中的交叉熵推导了逻辑回归,得到了和最大似然法相同的结果。

熵是信息的关键度量,通常指一条信息中需要传输或者存储一个信号的平均比特数。熵衡量了预测随机变量的不确定度,不确定性越大熵越大。

针对随机变量XX,其信息熵的定义如下:

H(X)=E[log2(X)]=∑−p(x)log2(p(x))

H(X) = E[\log_2 (X)] = \sum -p(x) \log_2 (p(x))

信息熵是信源编码中,压缩率的下限。当我们使用少于信息熵的信息量做编码,那么一定有信息的损失。

联合熵

联合熵是一集变量之间不确定的衡量手段。

H(X,Y)=∑∑−p(x,y)log(p(x,y))

H(X,Y) = \sum \sum -p(x,y) \log(p(x,y))

条件熵

条件熵描述变量Y在变量X确定的情况下,变量Y的熵还剩多少。

H(Y|X)=∑∑−p(x,y)log(p(y|x))

H(Y|X) = \sum \sum -p(x,y) \log(p(y|x))

联合熵和条件熵的关系是:

H(X,Y)=H(X)+H(Y|X)=H(Y)+H(X|Y)=H(Y,X)

H(X,Y) = H(X) +H(Y|X) = H(Y) + H(X|Y) = H(Y,X)

自信息

自信息表示概率空间中与单一事件或离散变量的值相关的信息量的量度。

I(x)=−log(p(x))

I(x) = -\log(p(x))

平均的自信息就是信息熵。

H(X)=E[log2(X)]=∑−p(x)log2(p(x))

H(X) = E[\log_2 (X)] = \sum -p(x) \log_2 (p(x))

互信息

两个随机变量的互信息,是变量间相互依赖性的量度,不同于相关系数,互信息不限于实值随机变量,其更加一般。

I(X;Y)=∑∑−p(x,y)log(p(x)p(y)p(x,y))

I(X;Y) = \sum\sum -p(x,y) \log(\frac{p(x)p(y)}{p(x,y)})

I(X;Y)=H(X)−H(X|Y)=H(Y)−H(Y|X)=H(X)+H(Y)−H(X,Y)=H(X,Y)−H(X|Y)−H(Y|X)

\begin{split} I(X;Y) &= H(X)-H(X|Y) \\ &= H(Y)-H(Y|X) \\ &=H(X)+H(Y)-H(X,Y) \\ &=H(X,Y)-H(X|Y)-H(Y|X) \end{split}

其意义为,若我们想知道Y包含多少X的信息,在尚未得到 Y之前,我们的不确定性是 H(X),得到Y后,不确定性是H(X|Y)。所以一旦得到Y后,我们消除了 H(X)-H(X|Y)的不确定量,这就是Y对X的信息量。

KL散度(信息增益)

KL散度,又称为相对熵(relative entropy)、信息散度(information divergence)、信息增益(information gain)。

KL散度是两个概率分布P和Q差别非对称性的度量。KL散度用来度量基于Q的编码来编码来自P的样本平均所需的额外的位元数。典型情况下,P表示数据的真实分布,Q表述数据的模型分布。

DKL(P||Q)=∑iP(i)logP(i)Q(i)

D_{KL} (P||Q)= \sum_i P(i) \log \frac{P(i)}{Q(i)}

交叉熵

交叉熵衡量了在真实分布是P的情况的情况下,使用分布Q去编码数据,需要的平均比特。

H(p,q)=Ep[−logq]=H(p)+Dkl(p|q)

H(p,q) = E_p [-\log q] = H(p) + D_{kl} (p|q)

H(p,q)=∑−p(x)log(q(x))

H(p,q) = \sum -p(x)\log(q(x))

交叉熵与逻辑回归的关系如下:

逻辑回归中:

  • qy=1=y^=g(wx)q_{y=1} = \hat{y} = g(wx)
  • qy=0=1−y^=1−g(wx)q_{y=0} = 1-\hat{y} = 1-g(wx)

数据的真实分布中:

  • py=1=yp_{y=1} = y
  • py=0=1−yp_{y=0} = 1-y

因此,可以用交叉熵去衡量估计分布q与真实分布p的相似性,交叉熵越小那么越相似。

H(p,q)=∑−p(x)logq(x)=−ylog(y^)−(1−y)log(1−y^)

H(p,q) = \sum -p(x) \log q(x) = -y\log(\hat{y})-(1-y)\log(1-\hat{y})

因此,损失函数为,得到了和最大似然推导相同的结果:

L(w)=1N∑n=1NH(pn,qn)=1N∑n=1N[−ylog(y^)−(1−y)log(1−y^)]=1N∑n=1Nlog(1+exp(−ynwxn))

\begin{split} L(w) &= \frac{1}{N} \sum_{n=1}^N H(p_n,q_n) \\ &= \frac{1}{N} \sum_{n=1}^N [- y\log(\hat{y})-(1-y)\log(1-\hat{y})] \\ &= \frac{1}{N} \sum_{n=1}^N \log(1+\exp(-y_nw x_n)) \end{split}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

从零开始掌握Python机器学习(附不可错过的资源)

01 基 础 篇 01 基本Python 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。幸运的是,因为 ...

3435
来自专栏AI研习社

问答 | 损失函数的不同会对神经网络带来什么影响?

损失函数是表示神经网络性能的‘恶略程度’的指标,即当前的神经网络对监督数据在多大程度上不拟合,在多大程度上不一致。这个损失函数可以使用任意函数,但一般采用均方误...

1243
来自专栏Python中文社区

ALI的Tensorflow炼成与GAN科普

專 欄 ❈那只猫,Python中文社区专栏作者,Python中文社区新Logo设计人,纯种非CS科班数据分析人,沉迷Keras。在Cambridge做了点小事...

19510
来自专栏人工智能头条

大规模主题模型:对Spark LDA算法的改进

1795
来自专栏数据科学学习手札

(数据科学学习手札15)DBSCAN密度聚类法原理简介&Python与R的实现

DBSCAN算法是一种很典型的密度聚类法,它与K-means等只能对凸样本集进行聚类的算法不同,它也可以处理非凸集。 关于DBSCAN算法的原理,笔者觉得下面这...

33912
来自专栏数据科学与人工智能

tensorflow高质量资料汇总

tensorflow高质量资料,让您又快又好地学习和应用tensorflow。 本文汇总tensorflow的高质量资料,包括:文档、论文、书籍、课程和案例。 ...

3395
来自专栏量化投资与机器学习

高效灵活的概率建模方法基于Python

前言 在今天给大家介绍一个研究工具:pomegranate。它比其他软件包更加灵活,更快,直观易用,并且可以在多线程中并行完成。 The API 主要模型介绍 ...

1965
来自专栏鸿的学习笔记

神经网络结构(下)

• use ELU non-linearity without batchnorm or ReLU with it.

854
来自专栏AI派

重磅!谷歌发布基于TensorFlow机器学习速成课程(中文)

今天谷歌上线了基于 TensorFlow 的机器学习速成课程(Machine Learning Crash Course ,MLCC),它包含 40 多项练习、...

3049
来自专栏AI研习社

用 TensorFlow 目标检测 API 发现皮卡丘!

在 TensorFlow 众多功能和工具中,有一个名为 TensorFlow 目标检测 API 的组件。这个库的功能正如它的名字,是用来训练神经网络检测视频帧中...

815

扫码关注云+社区