用强化学习构建个性化的二维码

这篇具有很好参考价值的文章主要介绍了用强化学习构建个性化的二维码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用强化学习构建个性化的二维码

 

技术概述

AIGC 在图像生成领域如火如荼,StableDiffusion 加各种 LORA,ControlNet,大家玩得不亦乐乎。但是基于扩散模型的方式,仍然存在很多问题,比如抽卡成功率过低,生成图像的细节仍需优化。具体到二维码生成,目前 hugging face 上的几个 ControlNet 确实可以生成不错的二维码和语义融合的图像,但是往往需要大量尝试,并且加上后续的一些迭代修改,才能保证生成的图像能被正确地识别为想要地二维码。我们通过强化学习加课程学习的方式,在保证出图效果的基础上,将二维码识别率从 20%提高至 80%。

强化学习简介

强化学习是机器学习的一种,它是基于让机器不断进行尝试并在尝试中获得的反馈信息指导它如何更优地进行决策。基于马尔可夫决策过程(Markov Decision Process, MDP)是强化学习中一个非常重要的框架。

MDP 体系中包含五个主要部分:状态(State),动作(Action),策略(Policy),奖励(Reward)和折扣因子(discount factor)。状态表示学习系统当前的状态,动作则表示在某个状态下可以进行的操作,策略是指系统在每个状态下选择不同动作的规则,奖励是指在特定状态进行特定动作后获得的反馈,而折扣因子则是用于控制当前和未来奖励之间的权重比。具体流程如下图所示:

用强化学习构建个性化的二维码

在基于 MDP 的强化学习中,学习的目标是找到一个最佳策略使得从起始状态到终止状态累计奖励最大。强化学习算法,就是通过学习环境反馈的奖励,不断地调整策略,最终形成一个最佳的策略。具体过程中,会利用“探索-开发”策略,即在探索新的可能性和利用已知的最佳策略之间找到一种平衡。

这就是基于 MDP 的强化学习的基础概念,可以在很多问题上得到应用,比如自动驾驶、游戏 AI、机器人导航等地方都有广泛的应用。

Stable Diffusion

SD(Stable Diffusion)是最近非常火热的图像生成领域的算法,其核心思想仍然逃离不了下面的这个基本的数学定理:

/任何两个有相同的 support,并且绝对连续的分布 , ,可以找到对应的 transformation,将  转化成  的分布,也可以找到另外的 transformation,将  转化成  的分布/

在图像生成领域,我们可以将  对应成符合一定语义或者条件的图像集合对应的分布。 对应成相同 sample space 的高斯分布。

扩散过程()

对于扩散模型来说,从  到  这一步,使用了经典物理的扩散过程。简单来说,就是不断在图像信号  上一步一步地去叠加高斯噪声,并且同时降低  信号,经过大量步数的叠加,整个图像得信噪比降至无限接近 0 的水平,即获得一组了完全的高斯噪声分布 。

可以参考一篇非常不错的 Blog:https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

去噪过程()

去噪过程,即生成过程是我们使用强化学习主要优化的阶段。既然如此我们就使用 MDP 的语言将整个去噪过程建模一个强化学习能够容易使用的场景。

用强化学习构建个性化的二维码

简单来说,我们从一个高斯噪声  开始,scheduler 采样获得一个 latent。

  1. scheduler 将 latent 发送给 Agent,这边 Agent 由 ControlNet 和 StableDiffusion 的模型构成。
  2. Agent 根据接收到的 latents,和其他的一些 context,例如(positive/negative prompts, conditions)等等预测出当前步数对应的 noise,并将预测的 noise 发送给 scheduler
  3. scheduler 将接受到的 noise,通过去噪的算法进行去噪,得到新的 latents

不断重复上面三个步骤,直至整个去噪过程完毕,最后生成一个图像,计算生成图像对应得 reward,可以是衡量图像质量得 reward,或者其他个性化的 reward。对于上述的这整个去噪过程,我们就可以用强化学习的各种算法去进行优化。

 

强化学习优化二维码生成

现状

当前 hugging face 上公布了大量的 ControlNet,可以用来生成个性化的二维码,例如:

  1. https://huggingface.co/monster-labs/control_v1p_sd15_qrcode_monster
  2. https://huggingface.co/Nacholmo/controlnet-qr-pattern-v2

一般的使用流程即上传自己目标的二维码,然后进行一些 prompts,最后生成具有给定 prompts 语义的二维码。但是目前这些 ControlNet 比较严重的问题,抽卡成功率极低,生成一些融合效果不错,并且能被成功识别的概率不会超过 20%。

对此我们使用强化学习课程学习两大技术手段进行 finetune 已有的 ControlNet,使得最终的模型生成的图像既可以很好地保证融合的效果和识别成功率。

算法介绍

训练框架

我们的强化学习优化二维码生成过程的训练框架图如下所示:

用强化学习构建个性化的二维码

首先整个算法的输入包括三个部分:

  1. 一张底图
  2. 底图对应的 caption
  3. 目标的二维码

这三个部分构成一个训练集 然后将三个部分输入给模型,包括 Diffusion Model 和用于控制的 ControlNet,其中用于 finetune 的 ControlNet 的需要保持在训练模式。在整个生成过程中将数据保存用于后续强化学习训练。

Reward 设置

在获得最终的生成图像之后,我们将用其计算二维码生成这个应用场景下对应的 reward。目前算法的 reward 由三个部分构成:

  • 二维码能否被正确识别
  • 生成图像和原图像的近似度(使用 CLIP 模型)
  • 生成图像和 prompt 的近似度(使用 CLIP 模型)

第一个 reward 是我们这个优化算法最直接的目的,即提高出图的成功率。但是可以想象只有第一个 reward 肯定是不行的,因为强化学习很容易学习到,直接输出输入的目标二维码,而忽略底图和 prompt 所给定的语义信息。这样即使算法能够很好地提高二维码识别成功率,仍然和我们的优化初心背离甚远。因此我们通过增加第二个 reward 来控制生成图像和底图,prompt 之间的语义相似度。这样可以在提高识别成功率的同时极大程度地去将用户给定的语义或者底图信息融合进入二维码。

课程学习

在架构图中,我们发现在 ControlNet 那一层多了一个 红色自循环,这代表我们在训练过程中加入了课程学习的 scheduler。

众所周知,在 ControlNet 和 Diffusion Model 结合的时候,增加 ControlNet 的控制权重,那么生成图像则会向 ControlNet 的所给定的条件靠拢。对于二维码生成这个应用来说也不例外,在原有的 ControlNet 下,你只需要疯狂提高 ControlNet 的权重,那么也是可以保证生成的图像的识别率,但是其融合效果就会越来越差。因此,之前我们只能通过大量的抽卡,抽中一个能够很好 balance 这两者的图像。

我们这边借鉴了课程学习的思想,对于 ControlNet 的控制强度设置了一个 scheduler,保证在整个训练过程中控制强度从高到低按某种方式递减。直觉上,这样很符合强化学习和课程学习结合的想法,先从简单的任务开始,慢慢增加任务的难度,后续的强化学习可以借鉴过去简单任务上的经验。

算法结果

这边展示几张在训练过程中保存的光子二维码。所列出二维码没有进行特别的 Prompt 调优,和后处理,均为随机采样出的 Prompt,直出的图像。

用强化学习构建个性化的二维码
用强化学习构建个性化的二维码
用强化学习构建个性化的二维码
用强化学习构建个性化的二维码

下面展示一下整个训练过程的曲线:

二维码识别成功率:

用强化学习构建个性化的二维码

从这张图上,可以看到随着课程学习的更新,任务难度增加,二维码识别会突然降低,但是随着一段时间的强化学习,二维码的识别会再次上升。

CLIP 提供的语义 Reward:

用强化学习构建个性化的二维码
未来工作

通过使用强化学习优化二维码生成这个工作,展现了强化学习在当下火热的 AIGC 领域的潜力。我们相信未来强化学习的技术会越来越多作为补充加入整个艺术制作流程当中,比如:

  1. 通过在人类标注的数据上学习一个 reward 模型来评判生成图像的质量,并将 RLHF 技术加入扩散模型的调优。
  2. 通过将生成视频的稳定性等等一些评判指标作为 reward,以此提高当下视频生成技术。
  3. 在使用多视角图重建 3D 模型的时候,一致性往往得不到保障,我们也可以在其中加入强化学习,提高多视角图的重建效果。

参考文献

Black, Kevin, et al. "Training diffusion models with reinforcement learning." arXiv preprint arXiv:2305.13301 (2023).

 

 

作者:腾讯游戏光子工作室群 Alex文章来源地址https://www.toymoban.com/news/detail-709920.html

到了这里,关于用强化学习构建个性化的二维码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 唯一客服 -基于ChatGPT和私有数据构建智能知识库和个性化AI

    基于ChatGPT和私有数据构建智能知识库和个性化AI 1.注册开通 2.上传文档 3.智能助理 更智能,基于ChatGPT大模型算法,回答准确,逻辑清晰 更安全,支持私有化部署,文档数据本地化,安全可控 更全面,可用于企业AI客服,企业内部知识查询经验分享,员工自助服务,赋能企业

    2024年02月17日
    浏览(42)
  • 1024程序员节特辑 | ELK+ 用户画像构建个性化推荐引擎,智能实现“千人千面”

    专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow专栏:https://blog.csdn.net/superdangbo/category_869

    2024年02月07日
    浏览(69)
  • 使用ChatGPT进行个性化学习

    推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 在这篇文章中,您将发现 ChatGPT 作为机器学习和数据科学爱好者的个人导师的好处。特别是,您将学习 如何让ChatGPT引导你学习抽象代数 如何让 ChatGPT 帮助您准备数据科学面试 让我们开始吧。 使用ChatG

    2024年02月16日
    浏览(46)
  • ChatGPT颠覆性地改变了个性化学习

    开发者欢呼,ChatGPT开启了教育的新时代 教育者和学生都将从革命性的技术中受益 ChatGPT是由OpenAI开发的强大的语言模型,它在个性化学习领域取得了重大突破。这一新的发展有望彻底改变教育的方式,使其更加定制化、有趣和有效。 开发者和教育者的重大新闻 这一消息对于

    2024年02月04日
    浏览(44)
  • 物联网在教育领域的应用:个性化教学与学习体验

    物联网(Internet of Things, IoT)技术的迅速发展为各行各业带来了深远影响,教育领域也不例外。物联网在教育领域的应用主要体现在个性化教学和学习体验方面,通过实时的数据收集和分析,为学生提供个性化的学习指导和优化学习体验。本文将从以下几个方面进行阐述: 背景

    2024年02月19日
    浏览(38)
  • 个性化学习的未来 - 人工智能在教育领域的应用

    随着人工智能技术的迅猛发展,教育领域也开始逐渐应用人工智能技术,其中个性化学习成为了热门话题。个性化学习利用人工智能的能力,根据学生的个体差异和学习需求,为每个学生量身定制学习计划和教学资源,以提高学习效果。本文将探讨人工智能在教育领域中个性

    2024年02月12日
    浏览(40)
  • 生成艺术:使用Python与深度学习创作个性化AI漫画

    生成AI漫画是一个非常有趣且创意的项目,它涉及到深度学习、图像处理和创意生成等领域的结合。在本篇博客中,我将向你介绍如何使用Python和一些流行的深度学习库来生成AI漫画。 在开始之前,我们需要安装以下库: TensorFlow :一个用于构建和训练深度学习模型的强大库

    2024年02月10日
    浏览(33)
  • 基于联合表示学习、用户聚类和模型自适应的个性化联合推荐

    [Personalized Federated Recommendation via Joint Representation Learning, User Clustering, and Model Adaptation] (https://dl.acm.org/doi/abs/10.1145/3511808.3557668) CIKM2022(CCF-B) 文章主要创新点(消融实验分析的三个点): 联合表示学习 联合表示学习是指通过将用户的协作信息和属性信息结合起来,使用图神经网络

    2024年02月06日
    浏览(51)
  • Python+Django+Mysql开发简单在线课程推荐系统简单教程 基于用户的协同过滤推荐算法 个性化课程推荐系统 爬虫 可视化数据分析 机器学习 人工智能 个性化推荐 相关推荐

    1、开发工具和使用技术 Python3及以上版本,Django3.6及以上版本,mysql8,navicat数据库管理工具或者sqlyog数据库管理工具,html页面,javascript脚本,jquery脚本,echarts.js可视化图表工具,自定义星星评分功能(使用font-awesome星星图标字体)等。 2、实现功能 前台首页地址:http://1

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包