机器学习笔记之玻尔兹曼机(三)基于平均场理论变分推断的梯度求解(续)

news/2024/4/25 13:51:48/文章来源:https://blog.csdn.net/qq_34758157/article/details/128428871

机器学习笔记之玻尔兹曼机——基于平均场推断梯度求解[续]

引言

基于玻尔兹曼机(三)梯度求解(基于平均场理论的变分推断)的思路继续求解Λ3\Lambda_3Λ3的梯度。

Λ3\Lambda_3Λ3梯度求解

Λ3\Lambda_3Λ3进行化简。其就是一个的形式:
Λ3=−∑h(i)Q(h(i)∣v(i);ϕ)log⁡Q(h(i)∣v(i);ϕ)\Lambda_3 = - \sum_{h^{(i)}} \mathcal Q(h^{(i)} \mid v^{(i)};\phi) \log \mathcal Q(h^{(i)} \mid v^{(i)};\phi)Λ3=h(i)Q(h(i)v(i);ϕ)logQ(h(i)v(i);ϕ)
由于平均场假设作为条件,将上式进行展开:
这里暂时先将负号带回去了~
Λ3=∑h(i){∏j=1PQ(hj(i)∣v(i);ϕ)log⁡∏j=1P[1Q(hj(i)∣v(i);ϕ)]}=∑h(i){∏j=1PQ(hj(i)∣v(i);ϕ)∑j=1Plog⁡[1Q(hj(i)∣v(i);ϕ)]}\begin{aligned} \Lambda_3 & = \sum_{h^{(i)}} \left\{\prod_{j=1}^{\mathcal P} \mathcal Q(h_j^{(i)} \mid v^{(i)};\phi) \log \prod_{j=1}^{\mathcal P} \left[\frac{1}{\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)}\right]\right\} \\ & = \sum_{h^{(i)}} \left\{\prod_{j=1}^{\mathcal P} \mathcal Q(h_j^{(i)} \mid v^{(i)};\phi) \sum_{j=1}^{\mathcal P}\log \left[\frac{1}{\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)}\right]\right\} \end{aligned}Λ3=h(i){j=1PQ(hj(i)v(i);ϕ)logj=1P[Q(hj(i)v(i);ϕ)1]}=h(i){j=1PQ(hj(i)v(i);ϕ)j=1Plog[Q(hj(i)v(i);ϕ)1]}
继续将∑h(i)=∑h1(i),h2(i),⋯,hP(i)\sum_{h^{(i)}} = \sum_{h_1^{(i)},h_2^{(i)},\cdots,h_{\mathcal P}^{(i)}}h(i)=h1(i),h2(i),,hP(i)展开,并与相关项进行归纳
Λ3=∑j=1P∑hj(i)Q(hj(i)∣v(i);ϕ)⋅log⁡[1Q(hj(i)∣v(i);ϕ)]\Lambda_3 = \sum_{j=1}^{\mathcal P} \sum_{h_j^{(i)}} \mathcal Q(h_j^{(i)} \mid v^{(i)};\phi) \cdot \log \left[\frac{1}{\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)}\right]Λ3=j=1Phj(i)Q(hj(i)v(i);ϕ)log[Q(hj(i)v(i);ϕ)1]
继续观察∑hj(i)Q(hj(i)∣v(i);ϕ)⋅log⁡[1Q(hj(i)∣v(i);ϕ)]\sum_{h_j^{(i)}} \mathcal Q(h_j^{(i)} \mid v^{(i)};\phi) \cdot \log \left[\frac{1}{\mathcal Q(h_j^{(i)} \mid v^{(i)};\phi)}\right]hj(i)Q(hj(i)v(i);ϕ)log[Q(hj(i)v(i);ϕ)1],基于hj(i)h_j^{(i)}hj(i)伯努利分布,该式可表示为如下形式:
Q(hj(i)=1∣v(i);ϕ)⋅log[1Q(hj(i)=1∣v(i);ϕ)]+Q(hj(i)=0∣v(i);ϕ)⋅log[1Q(hj(i)=0∣v(i);ϕ)]=ϕj⋅log⁡[1ϕj]+(1−ϕj)log⁡[11−ϕj]\begin{aligned} & \quad \mathcal Q(h_j^{(i)}=1 \mid v^{(i)};\phi) \cdot log \left[\frac{1}{\mathcal Q(h_j^{(i)}=1 \mid v^{(i)};\phi)}\right] + \mathcal Q(h_j^{(i)}=0 \mid v^{(i)};\phi) \cdot log \left[\frac{1}{\mathcal Q(h_j^{(i)}=0 \mid v^{(i)};\phi)}\right] \\ & = \phi_j \cdot \log \left[\frac{1}{\phi_j}\right] + (1 - \phi_j) \log \left[\frac{1}{1 - \phi_j}\right] \end{aligned}Q(hj(i)=1v(i);ϕ)log[Q(hj(i)=1v(i);ϕ)1]+Q(hj(i)=0v(i);ϕ)log[Q(hj(i)=0v(i);ϕ)1]=ϕjlog[ϕj1]+(1ϕj)log[1ϕj1]
至此,Λ3\Lambda_3Λ3可表示为:
Λ3=∑j=1P{ϕj⋅log⁡[1ϕj]+(1−ϕj)log⁡[11−ϕj]}\Lambda_3 = \sum_{j=1}^{\mathcal P}\left\{\phi_j \cdot \log \left[\frac{1}{\phi_j}\right] + (1 - \phi_j) \log \left[\frac{1}{1 - \phi_j}\right]\right\}Λ3=j=1P{ϕjlog[ϕj1]+(1ϕj)log[1ϕj1]}

求解最优参数ϕ^j\hat {\phi}_jϕ^j

至此,Λ1,Λ2,Λ3\Lambda_1,\Lambda_2,\Lambda_3Λ1,Λ2,Λ3全部化简完毕,将这三项分别对ϕj\phi_jϕj求偏导。具体结果如下:
{∂∂ϕj[∑i=1D∑l=1Pϕl⋅vi(i)⋅Wil]=∑i=1Dvi(i)⋅Wij∂∂ϕj[∑j=1P∑l≠jPϕi⋅ϕl⋅Jil]=∑l≠jPϕl⋅Jil∂∂ϕj[∑j=1P{ϕj⋅log⁡[1ϕj]+(1−ϕj)log⁡[11−ϕj]}]=−log⁡ϕj1−ϕj\begin{cases} \frac{\partial}{\partial \phi_j} \left[\sum_{i=1}^{\mathcal D}\sum_{l=1}^{\mathcal P} \phi_l \cdot v_i^{(i)} \cdot \mathcal W_{il}\right] = \sum_{i=1}^{\mathcal D} v_i^{(i)} \cdot \mathcal W_{ij} \\ \frac{\partial}{\partial \phi_j} \left[\sum_{j=1}^{\mathcal P}\sum_{l\neq j}^{\mathcal P} \phi_i \cdot \phi_l \cdot \mathcal J_{il}\right] = \sum_{l \neq j}^{\mathcal P} \phi_l \cdot \mathcal J_{il} \\ \frac{\partial}{\partial \phi_j} [\sum_{j=1}^{\mathcal P}\left\{\phi_j \cdot \log \left[\frac{1}{\phi_j}\right] + (1 - \phi_j) \log \left[\frac{1}{1 - \phi_j}\right]\right\}] = -\log \frac{\phi_j}{1 - \phi_j} \end{cases}ϕj[i=1Dl=1Pϕlvi(i)Wil]=i=1Dvi(i)Wijϕj[j=1Pl=jPϕiϕlJil]=l=jPϕlJilϕj[j=1P{ϕjlog[ϕj1]+(1ϕj)log[1ϕj1]}]=log1ϕjϕj
三项之和为0,求解ϕj\phi_jϕj
∂∂ϕj[Λ1+Λ2+Λ3]≜0⇔∑i=1Dvi(i)⋅Wij+∑l≠jPϕl⋅Jil−log⁡ϕj1−ϕj=0\frac{\partial}{\partial \phi_j} [\Lambda_1 + \Lambda_2 + \Lambda_3] \triangleq 0 \Leftrightarrow \sum_{i=1}^{\mathcal D} v_i^{(i)} \cdot \mathcal W_{ij} + \sum_{l \neq j}^{\mathcal P} \phi_l \cdot \mathcal J_{il} - \log \frac{\phi_j}{1 - \phi_j} = 0 ϕj[Λ1+Λ2+Λ3]0i=1Dvi(i)Wij+l=jPϕlJillog1ϕjϕj=0
因而有:
ϕj[1+exp⁡(∑i=1Dvi(i)⋅Wij+∑l≠jPϕl⋅Jil)]=exp⁡(∑i=1Dvi(i)⋅Wij+∑l≠jPϕl⋅Jil)⇒ϕj=11+exp⁡(∑i=1Dvi(i)⋅Wij+∑l≠jPϕl⋅Jil)=Sigmoid[∑i=1Dvi(i)⋅Wij+∑l≠jPϕl⋅Jil]\phi_j \left[1 + \exp \left(\sum_{i=1}^{\mathcal D} v_i^{(i)} \cdot \mathcal W_{ij} + \sum_{l \neq j}^{\mathcal P} \phi_l \cdot \mathcal J_{il}\right)\right] = \exp \left(\sum_{i=1}^{\mathcal D} v_i^{(i)} \cdot \mathcal W_{ij} + \sum_{l \neq j}^{\mathcal P} \phi_l \cdot \mathcal J_{il}\right) \\ \begin{aligned} \Rightarrow \phi_j & = \frac{1}{1 + \exp \left(\sum_{i=1}^{\mathcal D} v_i^{(i)} \cdot \mathcal W_{ij} + \sum_{l \neq j}^{\mathcal P} \phi_l \cdot \mathcal J_{il}\right)} \\ & = \text{Sigmoid} \left[\sum_{i=1}^{\mathcal D} v_i^{(i)} \cdot \mathcal W_{ij} + \sum_{l \neq j}^{\mathcal P} \phi_l \cdot \mathcal J_{il}\right] \end{aligned} ϕj1+expi=1Dvi(i)Wij+l=jPϕlJil=expi=1Dvi(i)Wij+l=jPϕlJilϕj=1+exp(i=1Dvi(i)Wij+l=jPϕlJil)1=Sigmoidi=1Dvi(i)Wij+l=jPϕlJil
很明显,这是一个迭代方程——用ϕj\phi_jϕj的其他结果的线性运算∑l≠jP\sum_{l \neq j}^{\mathcal P}l=jPϕj\phi_jϕj进行表示。并且它是一个不动点方程。它的具体求解方式是:在初始状态下给定随机结果,固定住ϕj\phi_jϕj之外的其他项,求解当前迭代步骤下ϕj\phi_jϕj的最优解;以此类推,直到所有的ϕj(j=1,2,⋯,P)\phi_{j}(j=1,2,\cdots,\mathcal P)ϕj(j=1,2,,P)均固定一遍,此时一次迭代结束,继续迭代下去,基于不动点方程的性质,ϕj(j=1,2,⋯,P)\phi_j(j=1,2,\cdots,\mathcal P)ϕj(j=1,2,,P)均会收敛至某一结果,至此ϕ={ϕ1,ϕ2,⋯,ϕP}\phi = \{\phi_1,\phi_2,\cdots,\phi_{\mathcal P}\}ϕ={ϕ1,ϕ2,,ϕP}可以被近似出来,最终求解Q(h(i)∣v(i);ϕ)\mathcal Q(h^{(i)} \mid v^{(i)};\phi)Q(h(i)v(i);ϕ)的分布结果,并最终替代Pmodel(h(i)∣v(i);θ)\mathcal P_{model}(h^{(i)} \mid v^{(i)};\theta)Pmodel(h(i)v(i);θ)对模型参数的梯度进行描述
这实际上就是‘坐标上升思想’。

返回要求解的模型参数梯度:
{∇W=η(EPdata[v(i)(h(i))T]−EPmodel[v(i)(h(i))T])Pdata⇒Pdata(v(i)∈V)⋅Pmodel(h(i)∣v(i))Pmodel=Pmodel(v(i),h(i))\begin{cases} \nabla_{\mathcal W} = \eta \left(\mathbb E_{\mathcal P_{data}} \left[v^{(i)}(h^{(i)})^T\right] - \mathbb E_{\mathcal P_{model}} \left[v^{(i)}(h^{(i)})^T\right]\right)\\ \mathcal P_{data} \Rightarrow \mathcal P_{data}(v^{(i)} \in \mathcal V) \cdot \mathcal P_{model}(h^{(i)} \mid v^{(i)}) \\ \mathcal P_{model} = \mathcal P_{model}(v^{(i)},h^{(i)}) \end{cases}W=η(EPdata[v(i)(h(i))T]EPmodel[v(i)(h(i))T])PdataPdata(v(i)V)Pmodel(h(i)v(i))Pmodel=Pmodel(v(i),h(i))
此时关于隐变量的后验概率Pmodel\mathcal P_{model}Pmodel并不需要使用MCMC采样方法进行求解,通过变分推断的方式也可以进行求解。
关于负相的处理方式,依然需要使用采样方法,随着技术的迭代,采样方式也得到了更新,例如对比散度方法,同样可以加快采样速度。

至此,关于玻尔兹曼机的介绍到此结束。

相关参考:
(系列二十八)玻尔兹曼机7-平均场推断3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_239748.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web前端105天-day63-HTML5_CORE

HTML5CORE03 目录 前言 一、复习 二、SVG 三、Echarts 四、Webworker 五、回调地狱 六、Promise 七、promiseajax 八、promise_axios 九、async_await 总结 前言 HTML5CORE03学习开始 一、复习 跨域 浏览器的同源策略限定: 网页中利用 AJAX 请求数据, 必须访问同源…

ICMP V6(计算机网络-网络层)

IPv6 使用的 ICMP IETF 制定的与IPv6配套使用的ICMP新版本,即ICMPv6 ICMPv6报文作为IPv6分组有效载荷进行传输,对应的IPv6“下一个首部字段”的值为58 ICMPv6 的报文格式和 IPv4 使用的 ICMP 的相似,即前 4 个字节的字段名称都是一样的&…

Akka 进阶(二)Mailbox 邮箱

目录一 默认邮箱配置二 内置邮箱三 自定义邮箱四 配置邮箱五 RequiresMessageQueue接口Actor中的邮箱是一个队列结构,所有发送过来的消息都会在该队列进行排队,在默认情况下,它遵循先进先出(FIFO)的模式,假…

Linux-5 基础命令

Linux-5 基础命令 查看类命令 此类命令仅能查看文件中的内容 ls是用来查看目录中的内容cat是用来查看文件中的内容 查看文件 cat 选项 -n:显示文件内容的行数-A:显示文件中的特殊字符(如果从Windows拷贝配置文件到Linux,很容易出…

自然语言处理NLP——图神经网络与图注意力模型(GNN、GCN、GAT)

目录 系列文章目录 一、图神经网络 1.图与图嵌入 2.GNN动机 2.1 CNN的缺陷与非结构性数据 2.2 图嵌入的缺陷 3.GNN详解 3.1 GNN简介 3.2 GNN模型 3.3 GNN框架 3.4 GNN局限与优化 二、图卷积神经网络 1.卷积 2.GCN详解 2.1 GCN动机 2.2 GCN简介 2.3 GCN思想与模…

Qt之悬浮球菜单

一、概述 最近想做一个炫酷的悬浮式菜单,考虑到菜单展开和美观,所以考虑学习下Qt的动画系统和状态机内容,打开QtCreator的示例教程浏览了下,大致发现教程中2D Painting程序和Animated Tiles程序有所帮助,如下图所示&a…

论文投稿指南——中文核心期刊推荐(自然科学总论)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

Nginx学习笔记2【尚硅谷】

host文件修改时,可以更改用户组权限或者复制到某个有权限的位置修改完再复制替换之前的文件。 在server{}中,listenserver_name两个加一起是唯一的。 代理服务器就是一个网关。 配置Nginx反向代理: 注意:在写proxy_pass时&#xf…

化学试剂Biotin-PEG-COOH,Biotin-PEG-acid,生物素-聚乙二醇-羧基

英文名称:Biotin-PEG-COOH,Biotin-PEG-acid 中文名称:生物素-聚乙二醇-羧基 生物素-PEG-COOH是一种含有生物素和羧酸的线性杂双功能PEG试剂。它是一种有用的带有PEG间隔基的交联或生物结合试剂。生物素能以高特异性和亲和力与亲和素和链霉亲…

MySQL实现主从复制(Windows)的明细操作步骤

文章目录一、教学视频地址二、设计思路三、具体步骤一、教学视频地址 视频地址:视频链接 二、设计思路 准备两个5.7版本的MySQL,一个用作主数据库,另一个用作从数据库。 把主数据库做为写入数据库,从数据库作为读数据库。 三…

linux篇【12】:计算机网络<后序>

一.tcp接入线程池(使用线程池) 1.tcp初步接入线程池 我们设置了对应的任务是死循环,那么线程池提供服务,就显得有不太合适。我们给线程池抛入的任务都是短任务 因为他并没有访问任何类内成员,所以可以把执行方法提到…

seo综合查询,怎么看网站在移动端权重高低

移动权重就是指在手机、IPAD等的流量,数值越大流量越多。 未来百度流量一定会更倾向于移动端,移动端搜索将是百度搜索引擎的主要阵地。这一点和用户上网习惯有关系,因为移动网络无处不在。 那么怎么看网站在移动端权重高低?最…

了解学习node中著名的co模块原理,生成器+promise实现async+await

***内容预警*** 新手内容,菜鸟必看,大佬请绕道 首先 co 是一个npm第三方模块,我们需要npm install 之后才能使用它。 作为一个菜鸟我相信你肯定没有用过这个模块,但是据说这个模块很有名,那么我们就有必要来了解一下它…

为什么企业要注重数据安全?六大优势分析

数据加密是将数据从可读格式转换为编码格式。两种最常见的加密方法是对称加密和非对称加密。这些名称是指是否使用相同的密钥进行加密和解密: ●对称加密密钥:这也称为私钥加密。用于编码的密钥与用于解码的密钥相同,使其最适合个人用户和封…

使用Docker搭建Nacos的持久化和集群部署

1. 准备 1.1 mysql安装 下载镜像 docker pull mysql/mysql-server:5.7 在宿主机中相关目录,用于挂载容器的相关数据 mkdir -p /data/mysql/{conf,data} 编写my.cnf配置文件,在/data/mysql/conf目录中 (或下载 直接上传即可) my.cnf.txt - 蓝奏云 / …

BIT.4 Linux进程控制

目录进程创建fork函数初识写实拷贝fork常规用法fork调用失败的原因补充知识进程终止进程退出场景进程常见退出方法exit函数与_exit函数return 退出补充知识进程等待进程等待必要性进程等待的方法wait方法waitpid方法wait / waitpid 阻塞代码WIFEXITEDwait / waitpid 非阻塞代码…

客快物流大数据项目(九十八):ClickHouse的SQL函数

文章目录 ClickHouse的SQL函数 一、​​​​​​​​​​​​​​类型检测函数

Redis集群之AKF架构原理

当我们搭建集群之前,先要想明白需要解决哪些问题,搞清楚这个之前先回想一下单节点、单实例、单机有哪些问题? 单点故障:只有一台Redis的话,如果出现故障,那么整个服务都不可用缓存容量:单台Red…

【Django】第一课 基于Django超市订单管理系统开发

概念 django服务器开发框架是一款基于Python编程语言用于web服务器开发的框架,采用的是MTV架构模式进行分层架构。 项目搭建 打开pycharm开发软件,打开开发软件的内置dos窗口操作命令行 在这里指定项目存放的磁盘路径,并使用创建django项…

54三数之和55 56有无重复元素的全排列

54 三数之和 首先想到的就是之前的两数之和,只要在外层遍历一遍,对每个元素用之前的两数之和的哈希做法,就刚好是O(n^2) 但是有坑的地方在于需要去重,并且输出的三元组也是需要顺序的!!然后我用set去重和重…