最大熵模型
1. 简介
最大熵模型由最大熵原理推导实现。
2. 最大熵原理
最大熵原理是概率模型学习的一个原则。最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,因此最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
假设离散随机变量 XXX 的概率分布是 P(X)P(X)P(X),则其熵为 H(P)=−∑xP(x)logP(x)H(P) = - \sum_{x} P(x) \log{P(x)} H(P)=−x∑P(x)logP(x) 熵满足下列不等式: 0≤H(P)≤log∣X∣0 \leq H(P) \leq \log{|X|} 0≤H(P)≤log∣X∣ 式中,∣X∣|X|∣X∣ 是 XXX 的取值个数,当且仅当 XXX 的分布是均匀分布时右边的等号成立。
直观上来看,最大熵原理认为要选择的概率模型首先必须满足已有事实,即约束条件。在没有更多信息的情况下,那些不确实的部分都是「等可能的」。最大熵原理通过熵的最大化来表示等可能性。
3. 最大熵模型
假设分类模型是一个条件概率分布 P(Y∣X)P(Y | X)P(Y∣X),X∈X⊆RnX \in \mathcal{X} \subseteq \mathbf{R}^nX∈X⊆Rn 表示输入,Y∈YY \in \mathcal{Y}Y∈Y 表示输出,X\mathcal{X}X 和 Y\mathcal{Y}Y 分别是输入和输出的集合。这个模型表示的是对于给定的输入 XXX,以条件概率 P(Y∣X)P(Y | X)P(Y∣X) 输出 YYY。给定一个训练数据集 T={(x1,y1),(x2,y2),⋯ ,(xN,yN)}T = \{(x_1, y_1), (x_2, y_2), \cdots, (x_N, y_N)\}T={(x1,y1),(x2,y2),⋯,(xN,yN)},学习的目标是用最大熵原理选择最好的分类模型。
给定训练数据集,可以确实联合分布 P(X,Y)P(X, Y)P(X,Y) 的经验分布和边缘分布 P(X)P(X)P(X) 的经验分布,分别以 P~(X,Y)\tilde{P}(X, Y)P~(X,Y) 和 P~(X)\tilde{P}(X)P~(X) 表示: P~(X=x,Y=y)=ν(X=x,Y=y)NP~(X=x)=ν(X=x)N\tilde{P}(X = x, Y = y) = \frac{\nu(X = x, Y = y)}{N} \\ \tilde{P}(X = x) = \frac{\nu(X = x)}{N} P~(X=x,Y=y)=Nν(X=x,Y=y)P~(X=x)=Nν(X=x) 其中,ν(X=x,Y=y)\nu(X = x, Y = y)ν(X=x,Y=y) 表示训练数据中样本 (x,y)(x, y)(x,y) 出现的频数,ν(X=x)\nu(X = x)ν(X=x) 表示训练数据中输入 xxx 出现的频数,NNN 表示训练样本容量。 用特征函数 f(x,y)f(x, y)f(x,y) 描述输入 xxx 和输出 yyy 之间的某一个事实,其定义是 f(x,y)={1,x 与 y 满足某一事实 0,否则f(x, y) = \begin{cases} 1, x \text{ 与 } y \text{ 满足某一事实 } \\ 0, \text{否则} \end{cases} f(x,y)={1,x 与 y 满足某一事实 0,否则 特征函数 f(x,y)f(x, y)f(x,y) 关于经验分布 P~(X,Y)\tilde{P}(X, Y)P~(X,Y) 的期望值,用 EP~(f)E_{\tilde{P}}(f)EP~(f) 表示: EP~(f)=∑x,yP~(x,y)f(x,y)E_{\tilde{P}}(f) = \sum_{x, y} \tilde{P}(x, y) f(x, y) EP~(f)=x,y∑P~(x,y)f(x,y) 特征函数 f(x,y)f(x, y)f(x,y) 关于模型 P(Y∣X)P(Y | X)P(Y∣X) 与经验分布 P~(X)\tilde{P}(X)P~(X) 的期望值,用 EP(f)E_P(f)EP(f) 表示: EP(f)=∑x,yP~(x)P(y∣x)f(x,y)E_P(f) = \sum_{x, y} \tilde{P}(x) P(y | x) f(x, y) EP(f)=x,y∑P~(x)P(y∣x)f(x,y) 如果模型能够获取到训练数据中的信息,那么就可以假设这两个期望值相等,即 EP(f)=EP~(f)E_{P}(f) = E_{\tilde{P}}(f)EP(f)=EP~(f)。
- 定义:假设满足所有约束条件的模型集合为 C≡{P∈P∣EP(fi)=EP~(fi),i=1,2,⋯ ,n}C \equiv \{ P \in \mathcal{P} | E_P (f_i) = E_{\tilde{P}} (f_i), i = 1,2,\cdots,n \} C≡{P∈P∣EP(fi)=EP~(fi),i=1,2,⋯,n} 定义在条件概率分布 P(Y∣X)P(Y | X)P(Y∣X) 上的条件熵为 H(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)H(P) = -\sum_{x, y} \tilde{P}(x) P(y | x) \log{P(y | x)} H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x) 则模型集合 C\mathcal{C}C 中条件熵 H(P)H(P)H(P) 最大的模型称为最大熵模型。
- 模型学习:最大熵模型的学习可以形式化为约束最优化问题。对于给定训练数据集 T={(x1,y1),(x2,y2),⋯ ,(xN,yN)}T = \{(x_1, y_1), (x_2, y_2), \cdots, (x_N, y_N)\}T={(x1,y1),(x2,y2),⋯,(xN,yN)},以及特征函数 fi(x,y),i=1,2,⋯ ,nf_i(x, y), i=1,2,\cdots,nfi(x,y),i=1,2,⋯,n,最大熵模型的学习等价于约束最优化问题: maxP∈CH(P)=−∑x,yP~(x)P(y∣x)logP(y∣x)s.t.EP(fi)=EP~(fi),i=1,2,⋯ ,n∑yP(y∣x)=1\begin{aligned} \max_{P \in \mathbf{C}} \qquad& H(P) = -\sum_{x,y} \tilde{P}(x) P(y | x) \log{P(y | x)} \\ \mathrm{s.t.} \qquad& E_P(f_i) = E_{\tilde{P}}(f_i), i=1,2,\cdots,n \\ & \sum_y P(y | x) = 1 \end{aligned} P∈Cmaxs.t.H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)EP(fi)=EP~(fi),i=1,2,⋯,ny∑P(y∣x)=1 可以使用拉格朗日乘子法求解该问题的对偶问题。最后求得的最大熵模型为: Pw(y∣x)=1Zw(x)exp(∑i=1nwifi(x,y))Zw(x)=∑yexp(∑i=1nwifi(x,y))P_w(y | x) = \frac{1}{Z_w(x)} \exp{\left( \sum_{i=1}^n w_i f_i(x, y) \right)} \\ Z_w(x) = \sum_{y} \exp{\left( \sum_{i=1}^n w_i f_i(x, y) \right)} Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))Zw(x)=y∑exp(i=1∑nwifi(x,y)) 其中,Zw(x)Z_w(x)Zw(x) 称为规范化因子,fi(x,y)f_i(x, y)fi(x,y) 是特征函数,wiw_iwi 是特征函数的权值。然后,便可使用极大似然估计估计模型参数,上述最大熵模型的对数似函数如下: LP~(Pw)=log∏x,yP(y∣x)P~(x,y)=∑x,yP~(x,y)logP(y∣x)L_{\tilde{P}}(P_w) = \log{\prod_{x,y} P(y | x)^{\tilde{P}(x, y)}} = \sum_{x, y} \tilde{P}(x, y) \log P(y | x) LP~(Pw)=logx,y∏P(y∣x)P~(x,y)=x,y∑P~(x,y)logP(y∣x) 最后再使用梯度下降法或拟牛顿法进行求解。
附录
- 《统计学习方法》by 李航
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023