70页论文,图灵奖得主Yoshua Bengio一作:「生成流网络」拓展深度学习领域

61048dd86e02324b6faa0e1a5135237e.png

来源:机器学习研究组订阅

GFlowNet 会成为新的深度学习技术吗?

近日,一篇名为《GFlowNet Foundations》的论文引发了人们的关注,这是一篇图灵奖得主 Yoshua Bengio 一作的新研究,论文长达 70 页。

在 Geoffrey Hinton 的「胶囊网络」之后,深度学习的另一个巨头 Bengio 也对 AI 领域未来的方向提出了自己的想法。在该研究中,作者提出了名为「生成流网络」(Generative Flow Networks,GFlowNets)的重要概念。

GFlowNets 灵感来源于信息在时序差分 RL 方法中的传播方式(Sutton 和 Barto,2018 年)。两者都依赖于 credit assignment 一致性原则,它们只有在训练收敛时才能实现渐近。由于状态空间中的路径数量呈指数级增长,因此实现梯度的精确计算比较困难,因此,这两种方法都依赖于不同组件之间的局部一致性和一个训练目标,即如果所有学习的组件相互之间都是局部一致性的,那么我们就得到了一个系统,该系统可以进行全局估计。

至于 GFlowNets 作用,论文作者之一 Emmanuel Bengio 也给出了一些回答:「我们可以用 GFlowNets 做很多事情:对集合和图进行一般概率运算,例如可以处理较难的边缘化问题,估计配分函数和自由能,计算给定子集的超集条件概率,估计熵、互信息等。」

dcf909f01f8ec0bf01236d7232ef6f90.png

本文为主动学习场景提供了形式化理论基础和理论结果集的扩展,同时也为主动学习场景提供了更广泛的方式。GFlowNets 的特性使其非常适合从集合和图的分布中建模和采样,估计自由能和边缘分布,并用于从数据中学习能量函数作为马尔可夫链蒙特卡洛(Monte-Carlo Markov chains,MCMC)一个可学习的、可分摊(amortized)的替代方案。

GFlowNets 的关键特性是其学习了一个策略,该策略通过几个步骤对复合对象 s 进行采样,这样使得对对象 s 进行采样的概率 P_T (s) 与应用于该对象的给定奖励函数的值 R(s) 近似成正比。一个典型的例子是从正例数据集训练一个生成模型,GFlowNets 通过训练来匹配给定的能量函数,并将其转换为一个采样器,我们将其视为生成策略,因为复合对象 s 是通过一系列步骤构造的。这类似于 MCMC 方法的实现,不同的是,GFlowNets 不需要在此类对象空间中进行冗长的随机搜索,从而避免了 MCMC 方法难以处理模式混合的难题。GFlowNets 将这一难题转化为生成策略的分摊训练(amortized training)来处理。

本文的一个重要贡献是条件 GFlowNet 的概念,可用于计算不同类型(例如集合和图)联合分布上的自由能。这种边缘化还可以估计熵、条件熵和互信息。GFlowNets 还可以泛化,用来估计与丰富结果 (而不是一个纯量奖励函数) 相对应的多个流,这类似于分布式强化学习。

本文对原始 GFlowNet (Bengio 等人,2021 年)的理论进行了扩展,包括计算变量子集边缘概率的公式(或自由能公式),该公式现在可以用于更大集合的子集或子图 ;GFlowNet 在估计熵和互信息方面的应用;以及引入无监督形式的 GFlowNet(训练时不需要奖励函数,只需要观察结果)可以从帕累托边界进行采样。

尽管基本的 GFlowNets 更类似于 bandits 算法(因为奖励仅在一系列动作的末尾提供),但 GFlowNets 可以通过扩展来考虑中间奖励,并根据回报进行采样。GFlowNet 的原始公式也仅限于离散和确定性环境,而本文建议如何解除这两种限制。最后,虽然 GFlowNets 的基本公式假设了给定的奖励或能量函数,但本文考虑了 GFlowNet 如何与能量函数进行联合学习,为新颖的基于能量的建模方法、能量函数和 GFlowNet 的模块化结构打开了大门。

bf16e6b430069a092f47f01454ee8f8e.png

论文地址:https://arxiv.org/pdf/2111.09266.pdf

机器之心对这篇论文的主要章节做了简单介绍,更多细节内容请参考原论文。

GFlowNets:学习流(flow)

研究者充分考虑了 Bengio et al. (2021)中引入的一般性问题,在这些问题中给出了一些关于流的约束或偏好。研究者的目标是使用估计量 Fˆ(s)和 Pˆ(s→s'|s)找到最能匹配需求的函数,如状态流函数 F(s)或转移概率函数 P(s→s' |s),这些可能不符合 proper flow。因此,他们将这类学习机器称为 Generative Flow Networks(简称为 GFlowNets)。

GFlowNets 的定义如下:

a04e032a9fefaeea92b847a3a52ac92a.png

需要注意的是,GFlowNet 的状态空间(state-space)可以轻松修改以适应底层状态空间,其中转换(transition)不会形成有向无环图(directed acyclic graph, DAG)。

对于从终端流(Terminal Flow)估计转换概率,在 Bengio et al. (2021)的设置中, 研究者得到了与「作为状态确定性函数的终端奖励函数 R 」相对应的终端流:

b92abfe2f9a7f165b28d54f73b086c46.png

这样一来就可以扩展框架并以各种方式处理随机奖励。

GFlowNets 可以作为 MCMC Sampling 的替代方案。GFlowNet 方法分摊前期计算以训练生成器,为每个新样本产生非常有效的计算(构建单个配置,不需要链)。

流匹配和详细的平衡损失。为了训练 GFlowNet,研究者需要构建一个训练流程,该流程可以隐式地强制执行约束和偏好。他们将流匹配(flow-matching)或细致平衡条件(detailed balance condition)转换为可用的损失函数。

对于奖励函数,研究者考虑了「奖励是随机而不是状态确定性函数」的设置。如果有一个像公式 44 中的奖励匹配损失,则终端流 F(s→s_f)的有效目标是预期奖励 E_R[R(s),因为这是给定 s 时最小化 R(s)上预期损失的值。

06e1387ffde44067f23f99285beebbec.png

如果有一个像公式 43 中的奖励匹配损失,终端流 log F(s→s_f)的 log 有效目标是 log-reward E_R[log R(s)]的预期值。这表明了使用奖励匹配损失时,GFlowNets 可以泛化至匹配随机奖励。

9781e49ff11a319179b557379bac5191.png

此外,GFlowNets 可以像离线强化学习一样离线训练。对于 GFlowNets 中的直接信用分配(Direct Credit Assignment),研究者认为可以将使用 GFlowNet 采样轨迹的过程等同于在随机循环神经网络中采样状态序列。让事情变得更复杂的原因有两个,其一这类神经网络不直接输出与某个目标匹配的预测,其二状态可能是离散(或者离散和连续共存)的。

条件流和自由能

本章主要介绍了条件流(Conditional flows)和自由能(Free energies)。

流的一个显著特性是:如果满足细致平衡或流匹配条件,则可以从初始状态流 F(s_0) 恢复归一化常数 Z(推论 3)。Z 还提供了与指定了终端转换流的给定终端奖励函数 R 相关联的配分函数(partition function)。下图展示了如何条件化 GFlowNet,给定状态 s,考虑通过原始流(左)和转移流来创建一组新的流(右)。

5d5ccd0f8d2c5a9fff9495d7d3b49a87.png

自由能是与能量函数相关的边缘化操作(即对大量项求和)的通用公式。研究者发现对自由能的估计为有趣的应用打开了大门,以往成本高昂的马尔可夫链蒙特卡洛(Markov chain Monte Carlo, MCMC)通常是主要方法。

自由能 F(s)的状态定义如下:

b21988d8ef766e2b5dbe6cf652b26e1a.png

如何估计自由能呢?让我们考虑条件式 GFlowNet 的一种特殊情况,它允许网络估计自由能 F(s)。为此,研究者提议训练一个条件式 GFlowNet,其中条件输入 x 是轨迹中较早的状态 s。

状态条件式 GFlowNet 的定义如下,并且将 F(s|s)定义为 conditional state self-flow。

eb74fa5eedec3fca5d8469ab98d652f9.png

研究者表示,使用 GFlowNet 可以训练基于能量的模型。具体地,GFlowNet 被训练用于将能量函数转换为逼近对应的采样器。因此,GFlowNet 可以用作 MCMC 采样的替代方法。

此外,GFlowNet 还可用于主动学习。Bengio et al. (2021)使用的主动学习方案中,GFlowNet 被用于对候选 x 进行采样,其中研究者预计奖励 R(x)通常很大,这是因为 GFlowNet 与 R(x)成比例地采样。

多流、分布式 GFlowNets、无监督 GFlowNets 和帕累托 GFlowNets 

与分布式强化学习类似,非常有趣的一点是,泛化 GFlowNets 不仅可以捕获可实现的最终奖励的预期值,还能得到其他分布式统计数据。更一般地讲,GFlowNets 可以被想象成一个族(family),其中每一个都可以在自身流中对感兴趣的特定的未来环境结果进行建模。

下图为以结果为条件的(outcome-conditioned)GFlowNet 的定义:

b1448a63571604de28afea8cb2aefb29.png

在实践中,GFlowNet 永远无法完美地训练完成,因此应当将这种以结果为条件的 GFlowNet 与强化学习中以目标为条件的策略或者奖励条件颠倒的强化学习(upside-down RL)同等看待。未来更是可以将这些以结果为条件的 GFlowNets 扩展到随机奖励或随机环境中。

此外,训练一个以结果为条件的 GFlowNet 只能离线完成,因为条件输入(如最终返回)可能只有在轨迹被采样后才能知道。

f00c0d7bcfe7978e9a5ee2b1276c9121.png

论文的完整目录如下:

afe58ae7a4b55eb10027317d0ba29462.png

45a4e03a6e49b7b299f0baf726baecba.png

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

db5a67df3d6d28f95f9a1580677e7dcb.png

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

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

相关文章

linux标准I/O——流的打开和关闭

文章目录1.打开流2.mode参数3.fopen举例4.新建文件权限5.处理错误信息6.关闭流1.打开流 2.mode参数 3.fopen举例 #include<stdio.h> int main() {FILE *fp;fpfopen("a.txt","r");if(fpNULL){printf("fopen error\n");return -1;}return 0…

卷积神经网络数学原理解析

来源&#xff1a;海豚数据科学实验室作 者&#xff1a;Piotr Skalski翻 译&#xff1a;通夜&#xff08;中山大学&#xff09;、had_in&#xff08;电子科技大学&#xff09;编 辑&#xff1a;Pita 原标题&#xff1a;Gentle Dive into Math Behind Convolutional Neural N…

【大数据】分布式集群部署

1、集群规划部署 节点名称NN1NN2DN RMNMhadoop01NameNode DataNode NodeManagerhadoop02 SecondaryNameNodeDataNodeResourceManagerNodeManagerhadoop03 DataNode NodeManager2、参考单机部署&#xff0c;拷贝安装目录至相同目录&#xff0c;使用ln -s 建立软连接 3、修改配置…

linux标准I/O——按字符输入和输出

文章目录1.流的读写方式2.按字符输入3.举例3.1 从键盘读取一个字符&#xff0c;并打印到终端上3.2 读取一个文件&#xff0c;并打印文件中的字符数目3.3 自行输入要查看的文件&#xff0c;并打印文件中的字符数目4.按字符输出5.举例5.1 从键盘读入&#xff0c;并打印到终端5.2 …

周志华教授:关于深度学习的一点思考

来源&#xff1a;专知1 引言 深度学习已被广泛应用到涉及图像、视频、语音等的诸多任务中并取得巨大成功。如 果我们问“深度学习是什么&#xff1f;”很可能会得到这样的回答&#xff1a;“深度学习就是深度神经网 络”。至少在目前&#xff0c;当“深度学习”作为一个术语时几…

linux标准I/O——按行输入和输出

文章目录1.按行输入函数2.从键盘读入&#xff0c;并打印3.按行输出4.键盘输入字符串&#xff0c;写入文本5.将文本中的字符串按行读出到buf中&#xff0c;并打印buf1.按行输入函数 2.从键盘读入&#xff0c;并打印 #include<stdio.h> #include<string.h>#define N…

IEEE发布2022年科技趋势全球调研:人工智能和机器学习、云计算及5G将成为下一年最重要的技术...

来源&#xff1a;IEEE电气电子工程师近日&#xff0c;全球最大的专业技术组织IEEE&#xff08;电气电子工程师学会&#xff09;发布了《IEEE全球调研&#xff1a;科技在2022年及未来的影响》。根据本次调研结果显示&#xff0c;人工智能和机器学习、云计算及5G技术将成为影响20…

linux标准I/O——按对象输入和输出

文章目录1.按对象操作函数1.按对象操作函数

为了节省能量,人类演化出了“不合规律”的大脑神经元 | Nature

图片来源&#xff1a;Pixabay来源&#xff1a;麻省理工学院、科研圈神经元通过电脉冲相互交流&#xff0c;而电脉冲是由控制钾和钠等离子流动的离子通道产生的。在一项新研究中&#xff0c;美国麻省理工学院&#xff08;Massachusetts Institute of Technology&#xff09;的神…

linux标准I/O——流的相关操作

文章目录1.刷新流2.不断将键盘内容写入g.txt文件中3.定位流4.定位流的实例1.刷新流 2.不断将键盘内容写入g.txt文件中 #include<stdio.h>#define N 1024 int main() {FILE *fd;char buf[N];fdfopen("./g.txt","a");while(1){fgets(buf,N,stdin);fpu…

国外发明的10大仿生机械,这才是真正的黑科技!

来源&#xff1a;工信头条仿生机械就是模仿生物的形态、结构和控制原理设计制造出的功能更集中、效率更高并具有生物特征的机械。研究仿生机械的学科称为仿生机械学&#xff0c;它是20世纪60年代末期由生物学、生物力学、医学、机械工程、控制论和电子技术等学科相互渗透、结合…

linux标准I/O——格式化输出

文章目录1.格式化输出函数2.输出日期到文本文档和数组中3.练习3.1 题目3.2 提示3.3 实现1.格式化输出函数 2.输出日期到文本文档和数组中 #include<stdio.h>int main() {int year2021,month4,date8;FILE *fd;char buf[64];fdfopen("data.txt","a");…

如何让css与js分离

在 webpack 我们如何让 css 与 js 分离&#xff1b; 我们需要安装插件&#xff1a;extract-text-webpack-plugin 1. 用&#xff1a;npm 下载插件 npm install extract-text-webpack-plugin --save-dev 2.在官网上查看用法&#xff1a;https://www.npmjs.com/ less 的配置&#…

钱学森在30年前对虚拟现实和元宇宙的思考

以下文字是钱学森在1990年给汪成为院士的信中对虚拟现实技术的科学意义和未来发展给与的思考和建议&#xff0c;他也提出可以将虚拟现实技术成为灵境技术。

SpringBoot项目部署到独立的Tomcat上

1.修改启动类 1 SpringBootApplication2 MapperScan("com.wm.springboot.dao")3 public class SpringbootApplication extends SpringBootServletInitializer {4 5 Override6 protected SpringApplicationBuilder configure(SpringApplicationBuilder builde…

一图读懂:中国科学院“基础研究十条”

来源&#xff1a;中科院之声未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;大脑研究计划&#xff0c;构建互联网&#xff08;城市&#xff09;大脑技术和企业图…

linux文件IO——文件IO介绍

文章目录1.文件IO和标准IO区别2.什么是文件IO3.文件描述符4.open函数5.close函数1.文件IO和标准IO区别 \qquad标准IO遵从ANSIC&#xff0c;文件IO遵从POSIX&#xff1b; \qquad标准IO有缓冲机制&#xff0c;文件IO没有&#xff1b; \qquad标准IO通过流FILE来操作&#xff0c;文…

量化因果涌现表明:宏观可以战胜微观

来源&#xff1a;集智俱乐部作者&#xff1a;Erik P. Hoel, Larissa Albantakis, Giulio Tononi 译者&#xff1a;赵婷婷 审校&#xff1a;梁金 编辑&#xff1a;邓一雪 导语复杂系统内的因果关系可以从不同时空尺度来分析。通常认为&#xff0c;由于微观尺度包含了所有细节&am…

SpringBoot RabbitMQ 延迟队列代码实现

场景 用户下单后&#xff0c;如果30min未支付&#xff0c;则删除该订单&#xff0c;这时候就要可以用延迟队列 准备 利用rabbitmq_delayed_message_exchange插件&#xff1b; 首先下载该插件&#xff1a;https://www.rabbitmq.com/community-plugins.html 然后把该插件放到rabb…

linux文件IO——编程接口

文章目录1.read函数2.使用read函数计算文本文件中字符总数3.write函数4.复制文本文件5.指定文件名的方式复制文件6.lseek函数1.read函数 2.使用read函数计算文本文件中字符总数 #include<stdio.h> #include<stdlib.h> #include <sys/types.h> #include <…