熵、交叉熵、KL散度

这里写目录标题

熵,是一个物理上的概念,表示一个系统的不确定性程度,或者表示一个系统的混乱程序。

下边是信息熵 的演示:

信息熵的公式如下:
H ( x ) = − ∑ i = 1 ) n p ( x i ) l o g p ( x i ) H(x)=-\sum_{i=1)}^{n}p(x_i)logp(x_i) H(x)=−∑i=1)np(xi)logp(xi)

其中 P ( x ) 表示随机变量 x 的概率函数 P(x)表示随机变量x的概率函数 P(x)表示随机变量x的概率函数看数值可知道班花A的头脑更加混乱,那么多个帅哥,不知选择哪一个,不像班花B只需要选择第一个大帅哥即可。

KL散度

KL散度就是相对熵,相对熵就是KL散度

KL散度 = 相对熵,相对熵 = KL散度。

KL 散度:是两个概率分布间差异的非对称性 度量。

怎么理解这句话呢?

KL散度其实是用来衡量同一个随机变量的两个不同分布之间的距离。

KL散度的公式如下:
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q) =\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)}) DKL(p∣∣q)=∑i=1np(xi)log(q(xi)p(xi))

在这补充一下 条件概率

条件概率公式如下:
P ( B ∣ A ) = P ( A B ) P ( A ) P(B|A)=\frac{P(AB)}{P(A)} P(B∣A)=P(A)P(AB)

理解:就是说,在A发生的条件下呢,AB也同时 发生。

上述公式也可写成:
P ( B ∣ A ) = P ( A , B ) P ( A ) P(B|A)=\frac{P(A,B)}{P(A)} P(B∣A)=P(A)P(A,B)

KL散度的特性:

特点1:非对称性。

即D_KL(p||q) 不等于D_KL(q||p)

只有当p 和q的概率分布完全一样时才会相等。

特点2:非负性。

DKL的值永远大于0

只有当p 和q的概率分布完全一样时才会等于0.

看看b站老表老师的例子,笑着理解。哈哈哈

KL散度公式的变形:

引入交叉熵。

交叉熵公式如下:
H ( P , Q ) = − ∑ i = 1 n p ( x i ) l o g q ( x i ) H(P,Q) = -\sum_{i=1}^{n} p(x_i)logq(x_i) H(P,Q)=−∑i=1np(xi)logq(xi) 经过简单变形:

=> H ( P , Q ) = ∑ i = 1 n p ( x i ) l o g ( 1 q ( x i ) ) H(P,Q) = \sum_{i=1}^{n} p(x_i)log(\frac{1}{q(x_i)}) H(P,Q)=∑i=1np(xi)log(q(xi)1)

其中 p ( x i ) 是真实分布的概率, q ( x i ) 是预测的概率 p(x_i)是真实分布的概率,q(x_i)是预测的概率 p(xi)是真实分布的概率,q(xi)是预测的概率

同样看下b站老师的例子,笑着理解吧!

观测交叉熵的数值可知:

1、预测越准确,交叉熵越小。

2、交叉熵只跟真是标签的预测概率值有关。

所以你就能推断出交叉熵的最简公式:
C r o s s E n t r o p y ( p , q ) = − l o g q ( c i ) Cross_Entropy(p,q)=-logq(c_i) CrossEntropy(p,q)=−logq(ci)

交叉熵的二分类公式:

H ( P , Q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(P,Q)=-\sum_{i=1}^{n}p(x_i)log(q(x_i)) H(P,Q)=−∑i=1np(xi)log(q(xi))
= − p ( x 1 ) l o g q ( x 1 ) + p ( x 2 ) l o g q ( x 2 ) =-p(x_1)logq(x_1)+p(x_2)logq(x_2) =−p(x1)logq(x1)+p(x2)logq(x2)
= − p l o g q + ( 1 − p ) l o g ( 1 − q ) =-plogq+(1-p)log(1-q) =−plogq+(1−p)log(1−q)
= − ( p l o g q − ( 1 − p ) l o g ( 1 − q ) ) =-(plogq-(1-p)log(1-q)) =−(plogq−(1−p)log(1−q))

怎么推到第四步的呢?
p ( x 1 ) + p ( x 2 ) = 1 ,我们假设 p(x_1)+p(x_2)=1,我们假设 p(x1)+p(x2)=1,我们假设 p ( x 1 ) = p ,那么 p ( x 2 ) = 1 − p p(x_1) = p,那么p(x_2) = 1-p p(x1)=p,那么p(x2)=1−p

同理:
q ( x 1 ) + q ( x 2 ) = 1 ,我们假设 q(x_1)+q(x_2)=1,我们假设 q(x1)+q(x2)=1,我们假设 q ( x 1 ) = q ,那么 q ( x 2 ) = 1 − q q(x_1) = q,那么q(x_2) = 1-q q(x1)=q,那么q(x2)=1−q

继续看b站老师的例子,帮助理解。

继续观摩老师的PPT:

再次理解SoftMax函数

按照老师的话来说:

softMax就是将数字转换成概率的大杀器,进行数据归一化的大杀器。

结束

对于该为b站老师的视频,我感觉讲的非常好哇,很适合小白入门,可惜后续没再更新,不知在哪还能找到勒

相关推荐
SEU-WYL17 分钟前
基于深度学习的任务序列中的快速适应
人工智能·深度学习
萧鼎37 分钟前
Python调试技巧:高效定位与修复问题
服务器·开发语言·python
OCR_wintone4211 小时前
中安未来 OCR—— 开启文字识别新时代
人工智能·深度学习·ocr
学步_技术1 小时前
自动驾驶系列—全面解析自动驾驶线控制动技术:智能驾驶的关键执行器
人工智能·机器学习·自动驾驶·线控系统·制动系统
IFTICing1 小时前
【文献阅读】Attention Bottlenecks for Multimodal Fusion
人工智能·pytorch·python·神经网络·学习·模态融合
大神薯条老师1 小时前
Python从入门到高手4.3节-掌握跳转控制语句
后端·爬虫·python·深度学习·机器学习·数据分析
程序员爱德华1 小时前
Python环境安装教程
python
huanxiangcoco1 小时前
152. 乘积最大子数组
python·leetcode
chiikawa&q1 小时前
深度学习的未来:推动人工智能进化的新前沿
人工智能·深度学习
萧鼎2 小时前
Python常见问题解答:从基础到进阶
开发语言·python·ajax