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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【机器学习】熵与KL散度(Kullback-Leibler divergence) -> 正文阅读

[人工智能]【机器学习】熵与KL散度(Kullback-Leibler divergence)

1. 信息量

1.1 定义

信息量是对一个概率P(θ)中所包含的信息的量化。

1.2 解释

假设我们要判断一个人是好人还是坏人的概率。现在有两个概率PP_{1}(好人)=0.8,P_{1}(好人)=0.5。P1包含的信息量少,P2包含的信息量多。为什么后者信息量多呢??因为我们做出决策所需要的考虑会越多,换句话说就是信息量太多,我们不知道怎么做决策。而前者概率为0.8,判断一个人是好人还是坏人的所需要的额外信息量少,因此越接近1的概率信息量越少。

1.3 数学表达

1.3.1 符号说明

通常信息量表示为一个关于P(\theta)的函数,用子母I表示信息量,I = f(p(\theta))

1.3.2 满足条件

前者表示不同x的概率,后者表示不同概率表达下所包含的信息量

  • p(x_i) = p(x_j) \Leftrightarrow I(x_i) = I(x_j)
  • p(x_i) < p(x_j) \Leftrightarrow I(x_i) > I(x_j)
  • p(x_i) =1 \Leftrightarrow I(x_i) =0
  • I(x_i,y_i) = I(x_i)+I(y_i)

1.3.3 具体公式

对数的表达可以很好的满足1.3.2的条件,是我们将信息量量化的一个方式。

公式:I(x_i) = -logp(x_i),可以将两种不同的概率代入式子,对比是否满足1.3.2中的所有条件。

2. 熵

2.1 定义

熵表示混乱程度,如人在判断是否出门或一个人是否是好人时,大脑是否不容易作出决策,若难以作出决策,表示混乱程度很大,也就是熵很大,这点和信息量类似。不过略有不同的是,熵是信息量的期望,简单来说,熵是信息量的均值。

2.2 数学表达

2.2.1?公式

通常用H来表示熵

H(X) = \sum_{i=1}^{N} -p(x_i)logp(x_i)

2.2.2 案例解释

假设我们有如下数据,代表我们在这个世界上一共只认识14个人,第一列是编号,第二列表示这个人是否是好人,1代表是,0代表不是。

编号是否好人
11
20
30
41
50
60
70
80
91
101
110
121
131
140

那么第二列x_2的熵是多少呢?根据2.2.1的公式,如下:

H(x_2)?= - p(好人)log p(好人) -?p(坏人)log p(坏人),即:

H(x_2) = \frac{1}{6}log \frac{1}{6} + \frac{1}{8}log \frac{1}{8}

其中,1/6和1/8分别是第二列中1和0的频率。

为什么说熵是信息量的期望呢?如果我们将信息量看做是由X映射出来的随机变量就很好理解,如下所示:

随机变量logp(好人)logp(坏人)
频率p1/61/8

这样就可以清晰看出,熵其实就是信息量的期望。

3. KL散度

3.1 定义

KL散度表示两个不同分布间的差异

3.2 数学表达

D_{KL}(p||q) = \sum_{i=1}^{N}p(x_i)log\frac{p(x_i)}{q(x_i)}

通常,p(x)为已知的分布,q(x)是未知的分布。显示中,我们往往将p代表的分布表示为样本中的已知分布y,q(x)是需要经过模型训练出的预测分布,若预测分布和样本中已知分布相同,那么KL散度的值就是0。

需要注意的是:p(x)其实是上帝分布,我们的目的是通过得到q(x)去拟合上帝分布,但是由于上帝分布我们通常是不可知的,所以只能通过抽样的方式来代表上帝分布,样本所代表的的分布即p(x)

3.3 性质

  • D_{KL}(p||q) \geq 0,可以通过jensen不等式证明。
  • D_{KL}(p||q) = 0p(x_i) = q(x_i),即两个分布相同
  • KL散度不可以理解为距离公式,因为若理解为距离公式,当p(x)和q(x)互换位置,得到的值应该一样才对,但是它是非对称的,换位置后得到的值不一样。

3.4 优点

由于KL散度是非对称的,更加有利于我们将q(x)分布推往上帝分布p(x),因为在推动的过程中,上帝分布不会发生改变。

解释:

如果KL散度是对称的,我们在推动q(x)的同时,上帝分布p(x)也会往q(x)的方向前进,换句话说,两个分布在互相靠近。但是当结果收敛时,我们得到的预测分布q(x)已经不是我们想要的那个靠近上帝分布q(x)的分布,因为此时上帝分布已经发生了变化,不是原本的上帝分布。

4. 交叉熵

4.1 定义

交叉熵是指两个分布相互节后的熵值的表示

4.2 数学表达

H(p,q) = p(x_i)log q(x_i)

= D_{KL}(p||q) + H(p_(x_i))

在3.2中我们已知KL散度,其实交叉熵就隐含在KL散度当中,现在将KL散度拆开,如下:

D_{KL}(p||q) = \sum_{i=1}^{N}p(x_i)log\frac{p(x_i)}{q(x_i)}

? ? ? ? ? ? ? ? ? ? ?= \sum_{i=1}^{N}p(x_i)log p(x_i) - p(x_i)log q(x_i)

式子最后的结论中,负号左侧p(x_i)log p(x_i)是我们正常的熵值表达H(p(x_{i})),右侧p(x_i)log q(x_i)即我们所说的交叉熵。

5. 机器学习中的KL散度

那么KL散度如何用语机器学习呢,其实在3.4中也有说明。通过KL散度,我们可以将预测分布q(x)无限逼近样本分布p(x),从而达到我们预测的目的。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:47:52  更:2021-10-15 11:48:09 
 
开发: 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 10:17:39-

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