Diffuision Policy + RL -------個人部落格_ZSY_20241101

泪水下的笑靥發表於2024-11-01

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上
點選:原作者論文思路講解

1. PPO背景引入

這裡簡要交代PPO的演算法原理及思想過程
image

image

image

image

image

image

image

image

image
 好到這裡就是PPO的基本思想和RL的前期鋪墊工作

2. Diffusion Model回顧(DDPM)

image

image
訓練過程
image
取樣過程
image

3. 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)

具體來說,如果有一個包含各式各樣軌跡 (trajectories) 的資料集 ,離線強化學習的目標便是從軌跡中挖掘構造出一個效能優秀的智慧體 (agent) ,希望它能夠直接部署至環境並獲得不錯的收益。

原論文將資料集每一條軌跡(trajectory)進行拼湊,就像下面這樣:
image

表達為如下的二維陣列,後續的演算法設計就是在這樣定義的軌跡表示上進行最佳化。

那麼它的模型架構是怎樣的?
image
image
image
image
image

演算法思想:其中J是用來進行預測累計軌跡回報的函式,這個函式可以使用神經網路來進行擬合,這樣他的訓練就是一個迴歸問題,用來回歸每一個可能的ti的累計回報。
image

image

(3)鋪墊2 --FiLM

一種特徵層面的線性調節方式,在視覺推理(visual reasoning)任務中有很好的效果,可以用於特徵合併,例如處理模型的多輸入問題。

image

4.公式推導

論文中,首先非常簡明扼要的交代了diffusion演算法的一條公式:
image

就是我下面之前所講的這個:
image
然後是梯度的表示和梯度下降:
image

image

即下圖展示的過程:
image
文章使用了DDPM去逼近條件機率分佈而不是聯合分佈,這也是由之前的論文總結而來。

image

下面正式開始對論文相關進行分析和理解

本質上policy從演示中學習,最簡單的形式可以表述為學習將觀察結果對映到行動的監督迴歸任務。然而,在實踐中,預測機器人動作的獨特性質——例如多模態分佈的存在、序列相關性和高精度的要求——使這項任務與其他監督學習問題相比顯得獨特而具有挑戰性。

第一個圖類似於模仿學習,一個輸入對應一個輸出
第二個圖對應一個能量場(沒看懂-——-)
image

image

(2)為什麼要用Diffusion Policy

a. 解決Multi-Modal(多模態)的問題。

什麼是多模態問題?

E.G.假設現在有100只兔子,前面有一個木樁,可能有30只兔子選擇左轉繞過樁子,有60只選擇右轉繞過樁子,有10只兔子選擇撞死在樁子上。當這些所有的解決方案都合併為一個的時候,問題就變成了一個多模態分佈。

傳統前饋神經網路本質是一種有很多係數(w)的函式,例如使用MSE(均方誤差)進行訓練,即以一個目的進行最佳化為前提,對於給定的輸入,只有一種可能的輸出。然而,在某些情況下,一個輸入可能對應兩種不同的輸出。
image
引入了機率分佈,使得神經網路不再是一個輸入一個輸出的函式,而是一個輸入可以有多個輸出的函式。這種方法提供了更大的靈活性,可以表示各種機率分佈,解決了原有方法的限制。

但和實際中機器人系統需要對機器人動作嚴格控制的思路是相違背的,對於全驅和欠驅系統,無論如何我們都希望可以嚴格控制機器人執行任務的表現,這也是為什麼大多數人沒有把機器人動作生成表現為一個機率分佈的原因。

但實際過程中,舉個例子,如果機器人卡Bug一直撞向樁子,我們如果給他新增機率,有一定機率撞,也有一定機率不撞,這樣就可以提高系統的魯棒性,解決由於嚴格執行而卡bug卡死的情況。

b. Action Space Scalability

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

c. 訓練穩定

image
Checkpoints,可能overfit/overtrain/diverge
訓練期間可能不知道,就必須在機器人上執行並檢查每一個Checkpoints,找到哪一個表現良好。這個過程比較tedious並且是very error-prone process

self-surprising 啟發式(自我驚訝)

(3)Explicit Policy顯式策略和Implicit Policy隱式策略

image

5. DDPM+PPO

未完待續。。。

相關文章