(2024,强化学习,扩散,奖励函数)扩散模型的大规模强化学习

Large-scale Reinforcement Learning for Diffusion Models

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 方法

3.1. 使用多步骤 MDP 的策略梯度

3.2. 基于分布的奖励函数

3.3. 多任务联合训练

4. 奖励函数和实验 


0. 摘要

文本到图像扩散模型是一类深度生成模型,展示了令人印象深刻的高质量图像生成能力。然而,这些模型容易受到源自网络规模文本-图像训练对的隐含偏见的影响,可能不准确地建模我们关心的图像方面。这可能导致次优的样本、模型偏见以及与人类伦理和偏好不符的图像。在本文中,我们提出了一种有效的可扩展算法,使用强化学习(RL)改进扩散模型,涵盖人类偏好、组成性和公平性等多种奖励函数,涉及数百万张图像。我们说明了我们的方法如何显著优于现有方法,使扩散模型与人类偏好保持一致。我们进一步说明了如何显著改进预训练的稳定扩散(SD)模型,生成被人类喜爱的样本,比基础 SD 模型的样本被人类喜爱的时间多 80.3%,同时提高了生成样本的组成和多样性。

项目网站:https://pinterest.github.io/atg-research/rl-diffusion/

3. 方法

在这一部分,我们描述了我们应用大规模强化学习(RL)训练到扩散模型的方法。我们的目标是微调现有扩散模型的参数 θ,以最大化从采样过程中生成的图像的奖励信号 r:

其中,p(c) 是上下文分布,pθ(x0|c) 是样本分布,而 r(x0, c) 是应用于最终样本图像的奖励函数。 

3.1. 使用多步骤 MDP 的策略梯度

在遵循 Black 等人的方法 [5] 的基础上,我们重新构思了扩散模型的迭代去噪过程,将其视为多步骤马尔可夫决策过程(Markov decision process,MDP),其中在每个时间步 t,策略、动作、状态和奖励定义如下:

我们将扩散模型的反向采样过程 p_θ(x_(t−1) | x_t, c) 视为策略。从采样的初始状态 x_T 开始,策略在任何时间步t的动作是产生下一个时间步x_(t−1) 的更新。奖励在最终时间步被定义为 r(x0, c),在其他情况下为 0。

策略梯度的估计可以使用似然比方法(也称为 REINFORCE)[33, 48] 进行:

我们还应用重要性采样以便从旧策略收集样本来提高训练效率,并结合剪切的信任区域,以确保新策略不会偏离旧策略太远 [41] 。最终剪切的替代目标函数可以写成: 

这里 ϵ 是确定剪切区间的超参数,而 ^A(x0, c) 是样本的估计优势(estimated advantage)。为了进一步防止对奖励函数的过度优化,我们还将原始扩散模型目标作为损失函数的一部分纳入考虑。因此,我们的完整训练目标是: 

一个额外的细节是,在梯度更新过程中,通常将奖励值归一化为零均值和单位方差,以提高训练稳定性。在基于策略的强化学习中,一种通用的方法是从奖励中减去基线状态值函数,以得到优势函数 [45]:

在 DDPO 的原始实现中,Black 等人通过独立跟踪每个提示的运行均值和标准差,在每个上下文的基础上对奖励进行归一化 [5]。然而,如果训练集大小是无界的或不固定的,这种方法仍然不切实际。

与他们有限的训练提示大小(最多只有 398 个)形成对比,我们的大规模微调实验涉及数百万个训练提示。我们改为使用每个 batch 的均值和方差,在批次的基础上对奖励进行归一化。

3.2. 基于分布的奖励函数

在先前概述的扩散 MDP 公式中,每一次生成被视为独立的,因此由生成样本产生的奖励彼此独立。这种公式对于只关心单个图像的内容的奖励函数是自然的选择,比如图像质量或文本图像对齐。然而,有时我们关心的不是任何特定图像的内容,而是扩散模型整体的输出分布。例如,如果我们的目标是确保模型生成多样化的输出,仅考虑单个生成是不够的——我们必须考虑所有输出,以了解我们模型的这些分布属性。

为此,我们还研究了在扩散模型强化学习中使用基于分布的奖励函数。然而,构建真实生成分布是不可行的。因此,我们通过在强化学习过程中跨小批次计算的经验样本来近似奖励。在训练期间,获得的奖励在每个小批次上计算,然后小批次奖励通过样本进行反向传播,以执行模型更新。在第4.2 节中,我们通过学习基于分布的奖励函数,优化生成样本中的公平性和多样性,验证了这种方法。

3.3. 多任务联合训练

我们还进行多任务联合训练,同时优化单一模型以实现多样的目标。如下一节详细说明,我们将来自人类偏好、肤色多样性、目标组合的奖励函数全部纳入联合优化。由于每个任务涉及不同分布的训练提示,在每次训练迭代中,我们从所有任务中随机抽取多个提示,并独立运行采样过程。每个奖励模型都应用于相应提示的样本图像。然后,对每个任务依次执行方程 7 中的梯度步骤。我们在附录 A 中提供了可用的超参数,并在算法 1 中概述了训练框架。

4. 奖励函数和实验 

为了在各种设置中验证我们的方法,我们进行了三个独立的奖励函数的实验:人类偏好、图像组合以及多样性和公平性。

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

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

相关文章

正则表达式初版

一、简介 REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通…

Docker部署

Docker简介 Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。 &a…

数据结构奇妙旅程之二叉树题型解法总结

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

影响可变利差有几个因素,Anzo Capital先说两个

了解利差的变化规律,盈利赚钱还不是轻轻松松的事情,但Anzo Capital想问各位投资者,你们知道影响可变利差的价值有几个因素吗?今天就先抛砖引玉,先说两个影响可变利差的因素。 首先就是交易工具的流动性——商品快速买…

精通 VS 调试技巧,学习与工作效率翻倍!

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ ​ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 ​ 所属专栏:C语言学习 ​ 贝蒂的主页:Betty‘s blog 1. 什么是调试 当我们写代码时候常常会遇见输出结果不符合我们预…

【三维重建】双目立体视觉

通过极几何可以求得极线,现在我们需要将左边的图变成右边的平行视图。 所有的极线都经过极点(e/e),如果极点位于无穷远处,那所有的极线都平行。 (极几何的基础知识可以参考这篇文章:【三维重建】对极几何-CSDN博客) 平行视图中&…

modbus poll测试工具测试modbus tcp与PLC设备连接使用方法

socket默认端口是502,socket连上之后, 按照modbuspoll工具设置的读写参数 生成的RTU命令格式去组装读PLC的设备数据 modbuspoll工具配置,以v9.9.2中文破解版为例: 首先点连接菜单(connection)建立连接&…

基于springboot+vue的IT技术交流和分享平台系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

【latex】在Overleaf的IEEE会议模板中,快速插入参考文献

【LaTeX】在Overleaf的IEEE会议模板中,快速插入参考文献 写在最前面第一步:在文献检索网站导出引用文献的bib文件第二步:编辑overleaf模版方法二:EduBirdie生成参考文献(补充)使用LaTeX在Overleaf的IEEE会议…

《Linux高性能服务器编程》笔记07

Linux高性能服务器编程 本文是读书笔记,如有侵权,请联系删除。 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第14章 多线程编程14.1 Linux线程概述14…

汇编实验报告

汇编实验 实验4 分支程序设计实验5 循环程序设计 实验4 分支程序设计 一、实验目的 理解分支程序结构的特点,掌握分支结构程序的编写。 二、实验内容 (1)验证单分支结构的字母判断程序(教材例4-10),编写数…

基于蒙特卡洛模拟的家用电动汽车充电负荷预测(MATLAB实现)

采用蒙特卡洛模拟法,对家用电动汽车充电负荷进行预测,电动汽车分为快、中、慢三种充电功率,且分为一天一充、一天两充、一天三充三种类型。全部MATLAB代码在下方给出,可以直接运行。 %%%%%%%%%%%%%%%%%%%%%%%%输入电动汽车相关原…

前端开发WebStorm

WebStorm是一款功能强大的JavaScript集成开发环境,凭借智能代码补全、实时分析和代码重构、集成版本控制、强大的调试和测试工具、实时预览和集成前端工具以及自定义配置和插件支持等功能,成为开发者首选的利器。 前端开发WebStorm WebStorm是一款功能强…

使用POI生成word文档的table表格

文章目录 使用POI生成word文档的table表格1. 引入maven依赖2. 生成table的两种方式介绍2.1 生成一行一列的table2.2 生成固定行列的table2.3 table合并列2.4 创建多个table存在的问题 使用POI生成word文档的table表格 1. 引入maven依赖 <dependency><groupId>org.…

【QT】MDI应用程序设计

目录 1 MDI简介 2 文档窗口类QFormDoc的设计 3 MDI主窗口设计与子窗口的使用 3.1 主窗口界面设计 3.2 MDI子窗口的创建与加入 3.3 QMdiArea常用功能函数 3.4 MDI的信号 1 MDI简介 传统的应用程序设计中有多文档界面&#xff08;Multi-documentInterface&#xff0c;MDI…

Spring源码学习-Spring流程概述(一)

Spring启动的流程 public class Test {public static void main(String[] args) {ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext("applicationContext.xml");Student bean context.getBean(Student.class);context.close();} }调用…

php低版本(7.4)配置过程中遇到的问题及基本解决手段

目前php不支持较低版本的安装&#xff0c;如果安装低版本必须借助第三方库shivammathur //将第三方仓库加入brewbrew tap shivammathur/php //安装PHPbrew install shivammathur/php/php7.4 可能出现的问题 像这样突然中止然后报错&#xff0c;一般是网络问题&#xff0c;或…

JOSEF约瑟 漏电继电器 JHOK-ZBG1 φ25mm AC220V 30-500ma 1S

系列型号 JHOK-ZBG1一体式漏电&#xff08;剩余&#xff09;继电器 JHOK-ZBG2一体式漏电&#xff08;剩余&#xff09;继电器 JHOK-ZBG1漏电继电器原为分体式固定式安装&#xff0c;为适应现行安装场合需要&#xff0c;上海约瑟继电器厂在产品原JHOK-ZBG漏电继电器基础上进行产…

Python中元祖的用法

元祖tuple(,) 元祖就是不可变的列表&#xff0c;元祖用()表示,元素与元素之间用逗号隔开,数据类型没有限制。 tu (科比,詹姆斯,乔丹) tu tuple(123) 小括号中有一个元素,有逗号就是元祖,没有就是它本身。 空的小括号就是元祖 索引和切片与列表和字符串相同 不可变指的是,…

Centos使用Docker搭建自己的Gitlab社区版16.8.0-ce.0(设置汉化 修改密码 设置SSH秘钥 添加拉取命令端口号 备份至网盘和恢复)

根据我的经验 部署Gitlab&#xff08;社区版&#xff09; 至少需要2核4g的服务器 带宽3~4M 1. 在自己电脑上安装终端&#xff1a;宝塔ssl终端 或者 FinalShell&#xff0c;根据喜好安装即可 http://www.hostbuf.com/t/988.html http://www.hostbuf.com/downloads/finalshell_w…