谷歌复用30年前经典算法,CV引入强化学习,网友:视觉RLHF要来了?

简介: 谷歌复用30年前经典算法,CV引入强化学习,网友:视觉RLHF要来了?


模型预测和预期使用之间存在错位,不利于 CV 模型的部署,来自谷歌等机构的研究者用强化学习技术的奖励函数,从而改善了计算机视觉任务。


ChatGPT 的火爆有目共睹,而对于支撑其成功背后的技术,监督式的指令微调以及基于人类反馈的强化学习至关重要。这些技术也在逐渐扩展到其他 AI 领域,包括计算机视觉(CV)。

我们知道,在处理计算机视觉中的复杂输出时,成功的主要标准不在于模型对训练目标的优化程度,而在于预测能力与任务的吻合程度,即模型在预期用途上的表现效果。

为了追求这种一致性,有研究者在模型架构、数据、优化、采样、后处理等方面进行了一些改进。例如,在物体检测任务中,研究人员使用了 NMS(non-maximum suppression )、基于集合的全局损失(set-based global loss)以及改变输入数据来获得在测试时具有改进行为的模型。虽然这些方法带来了显著的收益,但它们往往只对特定任务有用,仅仅是间接地对任务风险进行了优化。

不仅 CV,包括自然语言处理(NLP)、强化学习(RL)等领域也在广泛研究这一现象。在这些领域中,对于目标不太明确的任务,如翻译或生成摘要,制定优化目标非常困难。在处理这类问题时,一种流行的方法是学习模仿例子的输出,然后进行强化学习,使模型与奖励函数保持一致。使用这种方法,NLP 领域产生了令人兴奋的结果,该方法使用大型预训练语言模型和由人类反馈定义的奖励来处理原本难以指定的任务。

此外,同样的方法被广泛用于图像字幕任务中,其中 CIDEr(Vedantam 等人 2015 年提出)被用来作为奖励。尽管如此,据了解,奖励优化以前还没有在(非文本)计算机视觉任务中进行过探索。

近日,谷歌大脑团队的研究者在论文《Tuning computer vision models with task rewards》中证明了,使用 REINFORCE 算法(Williams 于 1992 提出)来调整(Tuning)具有奖励函数的预训练模型可以开箱即用地用于各种计算机视觉任务

其实许多关于强化学习任务的研究都会提及 Williams 的 REINFORCE 算法,可见这个算法的重要性。可以说 REINFORCE 算法是策略梯度乃至强化学习的典型代表。

论文地址:https://arxiv.org/pdf/2302.08242v1.pdf

图 1 展示了一些关键结果,主要包括目标检测、全景分割和图像着色的奖励优化带来的定量和定性改进。该研究所提出的方法在处理各种 CV 任务上简单而有效,证明了它的多功能性和适应性。尽管本文主要采用评估指标形式的奖励,但这些初步结果显示了该方法用来优化计算机视觉模型也不失为一种有效途径,这些模型具有更复杂和更难指定的奖励,例如人的反馈或整体系统性能。

推特网友对这篇文章给了一个比较全面的总结,即本文实现的功能是使用 RL 调整预训练视觉模型。研究的动因是受到 LLM 强化学习成功的启发;其效果是在目标检测、全景分割等方面性能大幅提升。并表示,这项研究可能是实现视觉 RLHF (Reinforcement Learning from Human Feedback)的有效途径。图源:https://twitter.com/johnjnay/status/1627009121378598912

奖励

在不丧失泛化性的情况下,该研究将 CV 任务描述为学习一个函数的过程,该函数将输入 x(即图像)映射到输出 y = [y_1, y_1,……, y_n](文本 token 序列、bounding box 序列等)。该研究旨在学习以 θ 为参数的条件分布 P (y|x, θ),使奖励函数 R 最大化。用抽象的公式来形容,就是本文要解决以下优化问题。

问题有了,接下来就是怎么解决了,本文分两步走:首先用最大似然估计对模型进行预训练;然后使用 REINFORCE 算法对模型进行 Tuning 。下面我们看看这两步的具体过程:

最大似然预训练

首先使用最大似然原理估计参数 θ 并捕获训练数据的分布。实现这一目标可采用梯度下降算法,该算法通过最大化训练数据的 log-likelihood来实现。算法 1 和图 2 描述了 MLE(最大似然估计)优化步骤,这是训练模型最常用的方法。完成这一步将得到 MLE 模型。

REINFORC 算法将奖励最大化

为了更好的优化 MLE 模型以适应任务风险,还需要最大化奖励函数。对于给定输入 x,该研究利用 REINFORCE 算法来估计对给定 x 期望奖励的梯度,公式如下所述:

算法 2 提供了伪代码,图 3 说明了该过程:

实验结果

接下来我们看看本文提出的方法在视觉任务上的表现。

全景分割

如下表 1 所示,Tuning 过程显著改善了 MLE 模型。视觉检查(visual inspection)后的结果表明,Tuning 后的模型在避免不连贯预测方面更好,特别是对于小尺度物体,可参见图 1。

目标检测

表 2 显示,通过优化,该研究将原始 MLE 模型的 mAP 分数从 39.2% 大幅提高到 54.3%。在 Pix2seq 中,具有稍大的 1333×1333 分辨率和许多启发式的相同大小的 ViT-B 模型达到了 47.1%。当使用更大的 ViT-L 主干时,Pix2seq 报告的最佳目标检测结果为 50.0%。

上色

图 4 给出的定性结果清楚地表明,新模型始终能产生更丰富多彩的图像。

图像描述

表 3 结果表明,应用所提出的方法可以改进 MLE 模型,这与先前文献中的观察结果一致,证明了该方法针对特定任务风险进行 tuning 的有效性。

相关文章
|
7月前
|
机器学习/深度学习 算法 Python
【Python强化学习】时序差分法Sarsa算法和Qlearning算法在冰湖问题中实战(附源码)
【Python强化学习】时序差分法Sarsa算法和Qlearning算法在冰湖问题中实战(附源码)
116 1
|
2月前
|
机器学习/深度学习 算法 机器人
多代理强化学习综述:原理、算法与挑战
多代理强化学习是强化学习的一个子领域,专注于研究在共享环境中共存的多个学习代理的行为。每个代理都受其个体奖励驱动,采取行动以推进自身利益;在某些环境中,这些利益可能与其他代理的利益相冲突,从而产生复杂的群体动态。
272 5
|
11天前
|
机器学习/深度学习 算法
强化学习之父Richard Sutton给出一个简单思路,大幅增强所有RL算法
Richard Sutton领导的团队提出了一种称为“奖励中心化”的方法,通过从观察到的奖励中减去其经验平均值,使奖励更加集中,显著提高了强化学习算法的性能。该方法在解决持续性问题时表现出色,尤其是在折扣因子接近1的情况下。论文地址:https://arxiv.org/pdf/2405.09999
42 15
|
28天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法与应用
探索人工智能中的强化学习:原理、算法与应用
|
1月前
|
算法 测试技术 量子技术
时隔5年,谷歌再创量子霸权里程碑!RCS算法让电路体积增加一倍
谷歌在量子计算领域取得重大突破,通过随机电路采样(RCS)算法,成功将量子电路体积翻倍,实现了量子霸权的里程碑。这一成果发表于《自然》杂志,展示了量子动力学与噪声交互作用下的相变现象,推动了量子计算在密码学、材料科学等领域的应用潜力。尽管如此,量子计算仍面临错误率高、可扩展性差等挑战。
46 3
|
1月前
|
算法 测试技术 量子技术
时隔5年,谷歌再创量子霸权里程碑!RCS算法让电路体积增加一倍
谷歌在量子计算领域取得新突破,其研究人员在《自然》杂志上发表论文《随机电路采样中的相变》,介绍了一种名为随机电路采样(RCS)的算法。该算法通过优化量子关联速度、防止经典简化和利用相变现象,使量子电路体积在相同保真度下增加一倍,为量子计算的发展树立了新的里程碑。实验结果显示,RCS算法在67个量子比特和32个周期的条件下,实现了1.5×10^-3的保真度。这一成果不仅提升了量子计算的效率,也为解决噪声问题提供了新思路。
90 3
|
28天前
|
机器学习/深度学习 人工智能 算法
探索人工智能中的强化学习:原理、算法及应用
探索人工智能中的强化学习:原理、算法及应用
|
4月前
|
机器学习/深度学习 算法 TensorFlow
深入探索强化学习与深度学习的融合:使用TensorFlow框架实现深度Q网络算法及高效调试技巧
【8月更文挑战第31天】强化学习是机器学习的重要分支,尤其在深度学习的推动下,能够解决更为复杂的问题。深度Q网络(DQN)结合了深度学习与强化学习的优势,通过神经网络逼近动作价值函数,在多种任务中表现出色。本文探讨了使用TensorFlow实现DQN算法的方法及其调试技巧。DQN通过神经网络学习不同状态下采取动作的预期回报Q(s,a),处理高维状态空间。
76 1
|
4月前
|
机器学习/深度学习 存储 算法
强化学习实战:基于 PyTorch 的环境搭建与算法实现
【8月更文第29天】强化学习是机器学习的一个重要分支,它让智能体通过与环境交互来学习策略,以最大化长期奖励。本文将介绍如何使用PyTorch实现两种经典的强化学习算法——Deep Q-Network (DQN) 和 Actor-Critic Algorithm with Asynchronous Advantage (A3C)。我们将从环境搭建开始,逐步实现算法的核心部分,并给出完整的代码示例。
358 1
|
4月前
|
测试技术 数据库
探索JSF单元测试秘籍!如何让您的应用更稳固、更高效?揭秘成功背后的测试之道!
【8月更文挑战第31天】在 JavaServer Faces(JSF)应用开发中,确保代码质量和可维护性至关重要。本文详细介绍了如何通过单元测试实现这一目标。首先,阐述了单元测试的重要性及其对应用稳定性的影响;其次,提出了提高 JSF 应用可测试性的设计建议,如避免直接访问外部资源和使用依赖注入;最后,通过一个具体的 `UserBean` 示例,展示了如何利用 JUnit 和 Mockito 框架编写有效的单元测试。通过这些方法,不仅能够确保代码质量,还能提高开发效率和降低维护成本。
60 0

热门文章

最新文章