谷歌复用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 的有效性。

相关文章
|
1月前
|
机器学习/深度学习 算法 Python
【Python强化学习】时序差分法Sarsa算法和Qlearning算法在冰湖问题中实战(附源码)
【Python强化学习】时序差分法Sarsa算法和Qlearning算法在冰湖问题中实战(附源码)
52 1
|
1月前
|
机器学习/深度学习 人工智能 算法
【PyTorch深度强化学习】TD3算法(双延迟-确定策略梯度算法)的讲解及实战(超详细 附源码)
【PyTorch深度强化学习】TD3算法(双延迟-确定策略梯度算法)的讲解及实战(超详细 附源码)
666 1
|
1月前
|
机器学习/深度学习 敏捷开发 算法
算法人生(1):从“强化学习”看如何“战胜拖延”
算法人生系列探讨如何将强化学习理念应用于个人成长。强化学习是一种机器学习方法,通过奖励和惩罚促使智能体优化行为策略。它包括识别环境、小步快跑、强正避负和持续调优四个步骤。将此应用于克服拖延,首先要识别拖延原因并分解目标,其次实施奖惩机制,如延迟满足和替换刺激物,最后持续调整策略以最大化效果。通过这种动态迭代过程,我们可以更好地理解和应对生活中的拖延问题。
|
1月前
|
机器学习/深度学习 算法 Python
使用Python实现强化学习算法
使用Python实现强化学习算法
24 1
使用Python实现强化学习算法
|
1月前
|
机器学习/深度学习 算法
算法人生(2):从“强化学习”看如何“活在当下”
本文探讨了强化学习的原理及其在个人生活中的启示。强化学习强调智能体在动态环境中通过与环境交互学习最优策略,不断迭代优化。这种思想类似于“活在当下”的哲学,要求人们专注于当前状态和决策,不过分依赖历史经验或担忧未来。活在当下意味着全情投入每一刻,不被过去或未来牵绊。通过减少执着,提高觉察力和静心练习,我们可以更好地活在当下,同时兼顾历史经验和未来规划。文章建议实践静心、时间管理和接纳每个瞬间,以实现更低焦虑、更高生活质量的生活艺术。
|
1月前
|
机器学习/深度学习 存储 算法
数据结构与算法 动态规划(启发式搜索、遗传算法、强化学习待完善)
数据结构与算法 动态规划(启发式搜索、遗传算法、强化学习待完善)
23 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
|
7月前
|
算法 测试技术 计算机视觉
2023年秋招算法面经:Tp-link cv图像算法面经
2023年秋招算法面经:Tp-link cv图像算法面经
48 0
|
8月前
|
机器学习/深度学习 算法 自动驾驶
基于Qlearning强化学习的路径规划算法matlab仿真
基于Qlearning强化学习的路径规划算法matlab仿真
|
1月前
|
机器学习/深度学习 算法 算法框架/工具
OpenAI Gym 中级教程——深入强化学习算法
OpenAI Gym 中级教程——深入强化学习算法
204 6