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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习-信息熵 -> 正文阅读

[人工智能]机器学习-信息熵

  • 熵? ?

? ? 熵是信息论中的一个基本概念,也称香农熵或信息熵,它衡量了一个概率分布的随机性程度,或者说它包含的信息量的大小。

? ? 考虑随机变量取某一特定值所包含的信息量大小,假设随机变量X取值x的概率为p(x), 取这个值的概率很小而它又发生了,则包含的信息量大。 考虑下面两个随机事件。

(1)明天要下雨

(2)奥巴马登上火星了

? 显然后者所包含的信息量要大于前者,因为后者的概率要远小于前者但却发生了。

? ? 如果定义一个函数h(x)来描述随机变量取值为x时的信息量大小,则h(x) 应为p(x)的单调减函数。但单调减函数有很多,如何确认呢?

? ? ?假设有两个相互独立的随机变量X和Y,他们取值为x和y的概率分别为p(x)何p(y)。因为相互独立,因此他们的联合概率为:

? p(x,y) = p(x)p(y)

? ? ?它们取值为(x,y)的信息量应该是X取值为x且Y取值为y的信息量之和,即h(x,y) = h(x) +h(y)。

因此要求h(x)能把p(x)的乘法转换为加法运算,可满足的基本函数为对数函数,可以把信息量定义为:

h(x) = -lnp(x)

? ? ?取负数是因为要满足h(x)为p(x)的单调减函数。而且由于0\leqslant p(x) \leqslant1?,lnp(x)值为负的,加上负号后也保证了信息量h(x) \geq0

? ? ?上面只考虑了随机变量取某一个值时包含的信息量,随机变量可以取多个值,因此需要计算它取所有各种值时所包含的信息量。随机变量取每一个值有一个概率,因此可以计算它取各个值时信息量的数学期望,这个均值就是熵。

?H(p) = E_{p}[-ln p(x))] = - \sum_{i=1}^{n}p_{i}lnp_{i}?

对于离散型随机变量,当它服从均匀分布时(各概率都一样,随机性最强),熵有极大值。取某一个值的概率为1,取其他值的概率为0时,熵有极小值(此时随机变量退化成确定的变量)。

  • 联合熵

? ? 联合熵是熵对于多维概率分布的推广,它描述了一组随机变量的不确定性,以二维随机变量为例:

? ?H(X,Y) = - \sum_{x}\sum_{y}p(x,y)lnp(x,y)

  • 交叉熵

? ? 交叉熵与熵类似,但它定义于两个概率分布之上,反映了它们之间的差异程度。对于离散型随机变量X,p(x) 和q(x) 是两个概率分布的概率质量函数,交叉熵定义为:

H(p,q) = E_{p}[-lnq(x)] = -\sum_{x}p(x)lnq(x)

? ? 交叉熵同样是数学期望,衡量了两个概率分布的差异。其值越大,两个概率分布的差异越大;其值越小,则两个概率分布的差异越小。

? ? ?交叉熵广泛应用于分类问题的神经网络训练中,用于定义损失函数。

? 以softmax处理多分类为例,在进行类别预测时,会使用softmax进行归一化,得到每个类别的概率y*:

y^{*} = \frac{e^{w_{i}x}}{\sum_{i=1}^{k}e^{w_{i}x}}

训练样本的真实标签为One-Hot编码的向量,如果样本属于第i类,则向量的第i分量为1,其他的值均为0,将这个标签记为y.则样本的概率质量函数可以统一写成:

\prod_{i=1}^{k}(y*)^{y_{i}}

可使用最大似然估计确定参数模型,因此似然函数为:

\prod_{j=1}^{l}\prod_{j=1}^{k}( \frac{e^{w_{i}x}}{\sum_{i=1}^{k}e^{w_{i}x}})^{y_{ij}}

其中yij 为第i个训练样本标签向量的第j个分量。对上式取对数(乘法不好算,转加法),添加负号(求极大值转求极小值(最小化损失函数)),可得如下损失函数:

L(\Theta ) = - \sum_{i=1}^{l}\sum_{j=1}^{k}{y_{ij}( \frac{e^{w_{i}x}}{\sum_{i=1}^{k}e^{w_{i}x}})}

目标函数称为交叉损失函数,与交叉熵的定义一致,反映了预测值y*与真实值y的差距,二者均为多项分布。这里对所有训练样本的交叉熵求和,实现时也可以使用均值。

  • KL散度(相对熵)

KL散度也称相对熵,同样用于衡量两个分布之间的差异。其值越大,则两个概率分布的差异越大;当两个概率分布完全相等时,KL散度为0。

? 对应两个离散型概率分布p和q,它们之间的KL散度定义为:

D_{KL}(p||q) = \sum_{x}p(x)ln\frac{p(x)}{q(x)}

与交叉熵的关系

D_{KL}(p||q) = \sum_{x}p(x)ln\frac{p(x)}{q(x)} = -\sum_{x}p(x)lnq(x) + \sum_{x}p(x)lnp(x) = H(p,q) - H(p)

?因此KL散度是交叉熵与熵之差。在机器学习中,通常要以概率分布p(x)为目标,拟合一个概率分布q(x)来近似它。此时H(p)是不变的,可以之间用交叉熵H(p,q)来作为优化目标。

  • JS散度

? ? JS散度衡量两个概率分布之间的差异。对于两个概率分布p和q,它们的JS散度定义为:

D_{JS}(p||q) = \frac{1}{2}D_{KL}(p||m) + \frac{1}{2}D_{KL}(q||m)? ?

m(x) = \frac{1}{2}(p(x)+q(x))

  • 互信息?

? ? 互信息定义了两个随机变量的依赖程度。对于两个离散型随机变量X和Y,它们之间的互信息定义为:

I(X,Y) = \sum_{x}\sum_{y}p(x,y)ln\frac{p(x,y)}{p(x)p(y)}

其中p(x,y)为联合概率,p(x)和p(y)分别为X和Y的边缘概率。互信息反映了联合概率与边缘概率之积的差异程度。如果两个随机变量相互独立,则p(x,y) =p(x)p(y),因此它们越接近相互独立。

? ?互信息定义于两个随机变量之间,反映了两个随机变量的依赖程度,即相关性程度。她可用于机器学习中的特征选择及目标函数构造。

与熵的关系:

H(X,Y) = H(X)+H(Y)-I(X,Y)

  • 条件熵

? ? 条件熵定义于两个随机变量之间,用于衡量在已知一个随机变量的取值的条件下另一个随机变量的信息量。其公式为:

H(Y|X)=-\sum_{x}\sum_{y}p(x,y)ln\frac{p(x,y)}{p(x)}

与熵的关系

I(X,Y) = H(x)-H(X|Y)

参考:《机器学习的数学》

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

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