IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 数学基础_4——信息论 -> 正文阅读

[人工智能]数学基础_4——信息论

本篇博客不包含深度学习中所有的数学知识,只是我在学习过程中,对不会或者不熟悉的数学知识的记录,因此部分内容和推导我会省略掉。

自信息

任何事件都会承载着一定的信息量,包括已经发生的事件和未发生的事件,只是它们承载的信息量会有所不同。

如昨天下雨这个已知事件,因为已经发生,既定事实,那么它的信息量就为0。如明天会下雨这个事件,因为未有发生,那么这个事件的信息量就大。

从上面例子可以看出信息量是一个与事件发生概率相关的概念,而且可以得出,事件发生的概率越小,其信息量越大。

定义事件 X = x X=x X=x 的自信息为
I ( x ) = ? log ? 2 P ( x ) I\left(x\right)=-\log_2 P\left(x\right) I(x)=?log2?P(x)

香农熵(Shannon Entropy)

当一个事件发生的概率为 p ( x ) p\left(x\right) p(x),那么它的信息量是 ? log ? p ( x ) -\log{p\left(x\right)} ?logp(x)

如果把这个事件的所有可能性罗列出来,就可以求得该事件信息量的期望

信息量的期望就是熵,所以熵的公式为
H ( x ) = E x ~ P [ I ( x ) ] = ? E x ~ P [ log ? P ( x ) ] H\left(\mathrm{x}\right)=\mathbb{E}_{\mathrm{x}\sim P}\left[I\left(x\right)\right]=-\mathbb{E}_{\mathrm{x}\sim P}\left[\log{P\left(x\right)}\right] H(x)=ExP?[I(x)]=?ExP?[logP(x)]
也可以表述为
H ( x ) = ? ∑ i = 1 n p ( x i ) log ? p ( x i ) H\left(\mathrm{x}\right)=-\sum_{i=1}^{n}p\left(x_i\right)\log{p\left(x_i\right)} H(x)=?i=1n?p(xi?)logp(xi?)
对于 0-1 分布问题,熵的计算可以简化为
H ( x ) = ? p ( x ) log ? ( p ( x ) ) ? ( 1 ? p ( x ) ) log ? ( 1 ? p ( x ) ) H\left(\mathrm{x}\right)=-p\left(x\right)\log{\left(p\left(x\right)\right)}-\left(1-p\left(x\right)\right)\log\left(1-p\left(x\right)\right) H(x)=?p(x)log(p(x))?(1?p(x))log(1?p(x))

相对熵(KL 散度)(Kullback-Leibler divergence)

对于同一个随机变量 x \mathbf{x} x,如果其有两个单独的概率分布 P ( x ) P(\mathbf{x}) P(x) Q ( x ) Q(\mathbf{x}) Q(x),可以使用 KL 散度来衡量这两个分布的差异。KL 散度越小,真实分布与近似分布之间的匹配就越好。
D K L ( P ∥ Q ) = E x ~ P [ log ? P ( x ) Q ( x ) ] = E x ~ P [ log ? P ( x ) ? log ? Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x} \sim P}\left[\log \frac{P(x)}{Q(x)}\right]=\mathbb{E}_{\mathrm{x} \sim P}[\log P(x)-\log Q(x)] DKL?(PQ)=ExP?[logQ(x)P(x)?]=ExP?[logP(x)?logQ(x)]
在机器学习中, P P P 往往用来表示样本的真实分布, Q Q Q 用来表示模型所预测的分布,那么 KL 散度就可以计算两个分布的差异,也就是 Loss
D K L ( P ∥ Q ) = ∑ i = 1 n P ( x i ) log ? 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?(PQ)=i=1n?P(xi?)logQ(xi?)P(xi?)?
因为 KL 散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离

然而,它并不是真的距离因为它不是对称的:对于某些 P P P Q Q Q D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) D_{KL}(P\|Q)\ne D_{KL}(Q\|P) DKL?(PQ)?=DKL?(QP)

这种非对称性意味着选择 D K L ( P ∥ Q ) D_{KL}(P\|Q) DKL?(PQ) 还是 D K L ( Q ∥ P ) D_{KL}(Q\|P) DKL?(QP) 影响很大。

对于 KL 散度的直观解释可以看这篇文章:初学机器学习:直观解读KL散度的数学概念

如何证明 KL 散度大于等于 0 0 0 (未解决)

交叉熵(Cross Entropy)

两个分布 P P P Q Q Q 之间的交叉熵定义为:
H ( P , Q ) = ? E x ~ P log ? Q ( x ) H\left(P,Q\right)=-\mathbb{E}_{x\sim P}\log{Q\left(x\right)} H(P,Q)=?ExP?logQ(x)

将 KL 散度公式变形:
D K L ( P ∥ Q ) = E x ~ P [ log ? P ( x ) ? log ? Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x} \sim P}[\log P(x)-\log Q(x)] DKL?(PQ)=ExP?[logP(x)?logQ(x)]
D K L ( P ∥ Q ) = E x ~ P [ log ? P ( x ) ] ? E x ~ P [ log ? Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathrm{x}\sim{P}}[\log{P(x)}]-\mathbb{E}_{\mathrm{x}\sim{P}}[\log{Q(x)}] DKL?(PQ)=ExP?[logP(x)]?ExP?[logQ(x)]
D K L ( P ∥ Q ) = ? H ( P ) ? E x ~ P [ log ? Q ( x ) ] D_{\mathrm{KL}}(P \| Q)=-H(P)-\mathbb{E}_{\mathbf{x}\sim P}[\log Q(x)] DKL?(PQ)=?H(P)?ExP?[logQ(x)]
D K L ( P ∥ Q ) = ? H ( P ) + H ( P , Q ) D_{\mathrm{KL}}(P \| Q)=-H(P)+H(P,Q) DKL?(PQ)=?H(P)+H(P,Q)

所以可得到交叉熵和 KL 散度的关系:
H ( P , Q ) = H ( P ) + D K L ( P ∥ Q ) H(P,Q)=H(P)+D_{KL}(P\|Q) H(P,Q)=H(P)+DKL?(PQ)
在机器学习中,需要评估 label 和 predicts 之间的差距,使用 KL 散度刚刚好,即 D K L ( y ∥ y ^ ) D_{KL}(\mathbf{y}\|\hat{\mathbf{y}}) DKL?(yy^?)

由于 KL 散度中的前一部分 ? H ( y ) ?H(y) ?H(y) 不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用交叉熵做 loss,评估模型。

在信息论中, lim ? x → 0 x log ? x = 0 \lim_{x\to 0}x\log x=0 limx0?xlogx=0

JS 散度(Jensen-Shannon divergence)

JS 散度度量了两个概率分布的相似度,基于 KL 散度的变体,解决了 KL 散度非对称的问题。

一般地,JS 散度是对称的,其取值是 0 到 1 之间。定义如下:
J S ( P 1 ∥ P 2 ) = 1 2 K L ( P 1 ∥ P 1 + P 2 2 ) + 1 2 K L ( P 2 ∥ P 1 + P 2 2 ) JS(P_1\|P_2)=\frac{1}{2}KL(P_1\|\frac{P_1+P_2}{2})+\frac{1}{2}KL(P_2\|\frac{P_1+P_2}{2}) JS(P1?P2?)=21?KL(P1?2P1?+P2??)+21?KL(P2?2P1?+P2??)

Wasserstein 距离

KL 散度和 JS 散度的问题

如果两个分布 P , Q P,Q P,Q 离得很远,完全没有重叠的时候,那么 KL 散度值是没有意义的,而 JS 散度值是一个常数。这在学习算法中是比较致命的,这就意味着这一点的梯度为 0 0 0,梯度消失了。

Wasserstein距离 度量两个概率分布之间的距离,定义如下
W ( P 1 , P 2 ) = inf ? γ ~ ∏ ( P 1 , P 2 ) E ( x , y ) ~ γ [ ∥ x ? y ∥ ] W(P_1,P_2)=\inf_{\gamma\sim\prod(P_1,P_2)}\mathbb{E}_{(x,y)\sim\gamma}[\left\|x-y\right\|] W(P1?,P2?)=γ(P1?,P2?)inf?E(x,y)γ?[x?y]

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:24:05  更:2021-10-18 17:25:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 8:31:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码