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 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 【机器学习】最大熵模型 -> 正文阅读

[数据结构与算法]【机器学习】最大熵模型

1. 思想

假设所有未知的事件出现概率都相等,在有约束的条件下求最优解。

2. 解释

在投骰子的案例中,我们知道骰子有六个面,若我们不知道骰子每个面朝上的概率,那么最安全的选择是假设每个面朝上的概率都相等,即1/6,这样保留了所有的可能性,确保了最大的不确定性。这样的原理就是最大熵原理,将该原理应用到分类得到找出最大熵模型,也是最好的分类模型。

3. 数学表达

3.1 公式

3.2 解释

3.2.1 最大熵原理

在信息论中,熵用于表示随机变量的不确定性大小,熵越大,不确定性则越大。假设离散型随机变量X的概率分布是 P(X),那么它的熵为:

关于熵的解释可以看笔者的另一篇文章。传送门:熵和KL散度

若每个P(X)都是等可能的,即P(X) = 1/N,则此时H(X) = - logP(X)

?第一个式子表示的是最小化给定X后Y的负的条件熵,换句话说,最大化条件熵。

说说条件熵。假设 Y是一个离散型随机变量,在已知?X的条件下,那么定义?Y?的条件熵为:

?可能比较抽象,简单举个例子会容易理解些,现有X = {x1=下雨, x2=不下雨},Y = {y1=出去玩,y2=不出去玩},在已知X的条件下,Y的条件熵H(Y|X) = P(X=x1)H(Y|X=x1) +?P(X=x2)H(Y|X=x2)。直观上理解这步操作将数据集划分成了两份,一份和x1有关,一份和x2有关,分别计算这两份数据集下y的熵,也就是条件熵。这点和决策树一样,决策树通过计算在已知某个特征的情况下,Y的条件熵,从而计算信息增益,进而找到最优特征进行分枝。

有了目标函数后,现在需要最大化条件熵H(Y|X),也就有了如下式子:

通常,我们会将最大化问题转化为最小化问题,从而推导出3.1中的第一个式子:

?3.2.2 经验分布和特征函数

?根据贝叶斯公式,我们知道后验分布=联合分布/边缘分布,即

P(Y|X) = \frac{P(X|Y)P(Y)}{P(X)}

?转换得到:

P(Y|X)P(X) = P(X|Y)P(Y)=P(X,Y)

通过我们手中的数据集,该式子中P(X)和P(X|Y)P(Y)是可以得知的,被称为经验分布,P(Y|X)是未知的,也是我们要拟合的目标分布。

给定一个训练数据集T=\left \{(x_1,y_1), (x_2,y_2), ... , (x_n,y_n)\right \},我们希望能借助最大熵原理从该数据集中学习到最好的分类模型。

  我们可以从数据集中得到?P(X,Y)P(X)的经验分布,其中v(X=x)表示样本x出现的频数,?[公式]?表示样本数:

往往在真实分布未知的情况下,我们会用经验分布去近似。后验分布P(Y|X)即我们最后得到的近似真实分布的分布。

  我们通过观察数据集往往能发现一些事实,例如在一份扔骰子的数据集中,我们发现6朝上占比为 1/6;再例如一份关于天气的数据集中,我们发现湿度高且多云的天气下,几乎都会下雨。对于这些观察到的事实,往往采用特征函数去表示:

?接着可以通过这些观察到的事实去约束模型,先定义特征函数关于经验分布的期望值和关于联合分布P(X,Y)的期望值E_p(f)

?我们自然希望通过经验分布得到的联合分布(包含后验分布P(Y|X)和经验分布P(X))。如果模型能够获取训练数据中的信息,那么久可以假设这两个期望值相等,即

这是我们的约束条件,即3.1中的第二个式子。

可以发现,两边的未知量只有P(Y|X)?。就这样我们得到了最大熵模型中的约束条件,这些约束条件约束了可选的概率模型集合,假设满足所有约束条件的模型集合为:

最后因为概率之和等于1,再添加多一个约束条件:

?这也是3.1中的最后一个式子。

?3.3 求解最大熵模型

可以定义该问题为有约束的优化问题,这类问题通常可用拉格朗日乘数法解决,通过引入拉格朗日乘数w,得到拉格朗日函数L(P,w),有:

代入具体式子:

在拉格朗日乘数法中,最优化的初始问题为

对偶问题为?

在本案例中,初试问题的解等于对偶问题的解,即上述两式相等。详细展开可以看一下凸优化的相关文章。

在将原始问题转换为对偶问题后,开始求解。

首先对L(P,w)偏导,求偏导为0的P(Y|X)。?如下:?

?本例中,关于L(P,w)的函数虽然有很多累加符号,但实际上我们一次只对其中的一个P(y|x)求偏导,其他与之无关的变量都可看做常数在求偏导后被消去。

?4. 求解后的最大熵模型

?在3.3中,我们通过推导得到了我们需要的后验分布P(Y|X),大家仔细看看这个式子,是不是有一种熟悉感?

没错,这个式子就是逻辑回归的原函数,sigmoid函数,逻辑回归为什么用sigmoid函数来作为激活函数?因为这是通过最大熵模型求解出来的。

?

?

?

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:53:24  更:2021-10-16 19:55:21 
 
开发: 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/26 6:26:41-

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