【论文系列】Diffuision Policy + RL知识点梳理 -------个人博客_ZSY_20241101

Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

Cheng Chi, Zhenjia Xu, Siyuan Feng, Eric Cousineau, Yilun Du, Benjamin Burchfiel, Russ Tedrake, Shuran Song
原论文链接
投在了IJRR上
点击:原作者论文思路讲解

一. Diffusion Model回顾(DDPM)

image

image
训练过程
image
采样过程
image

二. Diffusion Policy

(1)什么是Diffusion Policy

1.首先Diffusion,它是一种生成方法,如今图像生成领域的成就基本都是基于Diffusion方法,比如常听的Stable Diffusion和Midjourney。

2.其次Policy,它是机器学习算法用来驱动机器人的核心组成部分,它的输入是各种感知信息(比如相机拍到的视频,还有机器人各个关节的位置),而输出的是机器人要执行的动作。

3.简单理解,Diffusion Policy就是应用Diffusion这种方法生成机器人动作的一种Policy。
image
image

(2)铺垫1 --Planning with Diffusion for Flexible Behavior Synthesis (Diffuser)

论文地址

image

scoop 意味着有人在你的想法之前发表了类似的想法
 Diffuser (offline)

1.

具体来说,如果有一个包含各式各样轨迹 (trajectories) 的数据集 ,离线强化学习的目标便是从轨迹中挖掘构造出一个性能优秀的智能体 (agent) ,希望它能够直接部署至环境并获得不错的收益。

原论文将数据集每一条轨迹(trajectory)进行拼凑,就像下面这样:
image
表达为如下的二维数组,后续的算法设计就是在这样定义的轨迹表示上进行优化。
那么它的模型架构是怎样的?
image

2.优化变量

然后说明一下一个优化变量,这是这篇文章的一个关键点:(他是一个布尔类型的值,flag)
image
这个变量是说我有很多的s-a点,但具体我要哪一个我可能需要一个评估指标,用这个优化至来表示,如果优化值为1,那么就说明年我选择了这个s-a点。下面的概率是说我在所有优化值都为1的情况下选择这个策略的概率(也就是最优出现的概率)是可以正比于后面的那个式子的。

3.有关diffusion的地方

image
image
image

4.核心式子

image
image
这个地方说明了什么意思呢?说明了原来我是\(P_{\theta}\),然后增加了优化值变量这个就和后面的那个式子有关系了,那么为什么有关系呢?这就牵扯出了\(\Delta J\),我们可以看到因为增加了奖励函数,所以会存在一个梯度上升的过程,所以这个式子姑且长成那个样子。

5.核心算法

算法思想:
我的个人理解是这样的: 首先现在扩散模型的基础上基于所有可能得trajectory的s-a点训练一个扩散模型\(p_{\theta}(t)\),然后训练一个单独的模型J来预测trajectory的积累奖励R。
其中J是用来进行预测累计轨迹回报的函数,这个函数可以使用神经网络来进行拟合,这样他的训练就是一个回归问题,用来回归每一个可能的ti的累计回报。

image

下面是论文的原话
image
image

6.其它

image
image
diffuser的构成
image

(3)铺垫2 --FiLM

一种特征层面的线性调节方式,在视觉推理(visual reasoning)任务中有很好的效果,可以用于特征合并,例如处理模型的多输入问题。

image

三.公式推导

前情回顾

论文中,首先非常简明扼要的交代了diffusion算法的一条公式:
image

就是我下面之前所讲的这个:
image
然后是梯度的表示:
image
其实这个也可以表示成梯度下降的降噪过程。
image

即下图展示的过程:
image
文章使用了DDPM去逼近条件概率分布而不是联合分布,这也是由之前的论文总结而来。

image
image
下面正式开始对论文相关进行分析和理解

本质上policy从演示中学习,最简单的形式可以表述为学习将观察结果映射到行动的监督回归任务。然而,在实践中,预测机器人动作的独特性质——例如多模态分布的存在、序列相关性和高精度的要求——使这项任务与其他监督学习问题相比显得独特而具有挑战性。

第一个图类似于模仿学习,一个输入对应一个输出,通过模仿输入学习输出,并把概率最大的作为输出。

第二个图对应一个能量场,以观测和动作为输入。个人理解作者想要表达的意思是:有一些策略和签字潜在的能量有关,我们的目的是想要最小化这个能量的消耗。图代表的意思是,一种是我按照最优的策略来执行我的动作这种方式能量最小(图中的那个C,可以看到外面是白色的条带);另一种方式是我不采取行动,这种能量消耗也最小。

第三个图我个人理解是作者采用他自己的方法将能量换成了梯度,让梯度最小,通过学习梯度场将噪声提炼成行动。在此设置中,每个操作都分配了一个能量值,其中动作预测对应于查找最小能量操作的优化问题。由于不同的动作可能被分配低能量,因此隐式策略自然代表多模态分布。

image

核心思想

image

1.首先:

使用一些列相机到观测值
image
image

2.然后:

在t时间步处,根据观测数据作为输入,得到Ta步长的动作。
image
然后之后的时刻再次得到,以此类推

3.实现方式1:

image
在基于CNN的方式中,首先FiLM将观测值条件逐通道的应用到每一个卷积层,从高斯噪声得到的AKt开始,减去噪声预测网络的输出,重复K次得到去噪后的动作序列

4.实现方式2:

不懂的点击跳转
image
在扩散策略中,观测值被嵌入到了每个Transformer解码器的多头交叉注意力层中。
带有噪声 Akt 的操作作为 transformer 解码器块的输入标记传入,扩散迭代的正弦嵌入 k 作为第一个标记。观测 Ot 通过共享 MLP 转换为观测嵌入序列,然后作为输入特征传递到 transformer 解码器堆栈中。“梯度” εθ (Ot ,At k , k) 由解码器堆栈的每个相应输出标记预测。

为什么要用Diffusion Policy

a. 解决Multi-Modal(多模态)的问题。

什么是多模态问题?

E.G.假设现在有100只兔子,前面有一个木桩,可能有30只兔子选择左转绕过桩子,有60只选择右转绕过桩子,有10只兔子选择撞死在桩子上。当这些所有的解决方案都合并为一个的时候,问题就变成了一个多模态分布。

传统前馈神经网络本质是一种有很多系数(w)的函数,例如使用MSE(均方误差)进行训练,即以一个目的进行优化为前提,对于给定的输入,只有一种可能的输出。然而,在某些情况下,一个输入可能对应两种不同的输出。
image
图二、Imitation Learning by Estimating Expertise of Demonstrators
图三、Behavior Transformers: Cloning k modes with one stone
图四、Implicit Behavioral Cloning
引入了概率分布,使得神经网络不再是一个输入一个输出的函数,而是一个输入可以有多个输出的函数。这种方法提供了更大的灵活性,可以表示各种概率分布,解决了原有方法的限制。

但和实际中机器人系统需要对机器人动作严格控制的思路是相违背的,对于全驱和欠驱系统,无论如何我们都希望可以严格控制机器人执行任务的表现,这也是为什么大多数人没有把机器人动作生成表现为一个概率分布的原因。

但实际过程中,举个例子,如果机器人卡Bug一直撞向桩子,我们如果给他添加概率,有一定概率撞,也有一定概率不撞,这样就可以提高系统的鲁棒性,解决由于严格执行而卡bug卡死的情况。、

”解决某一个特定任务的方法是多样的“

b. Action Space Scalability

image
下象棋,想7步,下一步

c. 训练稳定

image
Checkpoints,可能overfit/overtrain/diverge
训练期间可能不知道,就必须在机器人上运行并检查每一个Checkpoints,找到哪一个表现良好。这个过程比较tedious并且是very error-prone process

self-surprising 启发式(自我惊讶)
SUMMARY
image

Ablation Study
消融研究
Acknowledge
鸣谢

四. 3D Diffusion Policy

Obeservation使用深度相机,有深度信息。。

五. Octo

基于大模型大数据

六. DDPM+PPO

未完待续。。。

--2024.11.07 开始更新--

posted @ 2024-11-01 22:08  泪水下的笑靥  阅读(110)  评论(0编辑  收藏  举报