首頁 科技週邊 人工智慧 南大俞揚深度解讀:什麼是「世界模型」?

南大俞揚深度解讀:什麼是「世界模型」?

Feb 27, 2024 pm 07:50 PM
ai 數據

隨著媒體狂炒Sora,OpenAI的介紹資料中稱Sora是「world simulator」,世界模型這個字又進入視野,但很少有文章來介紹世界模型。

這裡回顧一下什麼是世界模型,以及討論Sora是不是world simulator。

什麼是world models/世界模型

#當AI領域中講到世界/world、環境/environment這個字的時候,通常是為了與智能體/agent加以區分。

研究智能體最多的領域,一個是強化學習,一個是機器人領域。

因此可以看到,world models、world modeling最早也最常出現在機器人領域的論文中。

而今天world models這個詞影響最大的,可能是Jurgen 2018年放到arxiv的這篇以“world models”命名的文章,該文章最終以“Recurrent World Models Facilitate Policy Evolution」的title發表在NeurIPS'18。

南大俞揚深度解讀:什麼是「世界模型」?

論文中並沒有定義什麼是World models,而是類比了認知科學中人腦的mental model,引用了1971年的文獻。

南大俞揚深度解讀:什麼是「世界模型」?

mental model是人腦對週邊世界的鏡像

Wikipedia中介紹的mental model,很明確的指出其可能參與認知、推理、決策過程。並且說到mental model主要包含mental representations和mental simulation兩部分。

an internal representation of external reality, hypothesized to play a major role in cognition, reasoning and decision-making. The term was coined by Kenneth Craik in 1943 who sugginded thats small-scale models" of reality that it uses to anticipate events.

到這裡還是說得雲霧繚繞,那麼論文中的結構圖一目了然的說明了什麼是一個world model。

南大俞揚深度解讀:什麼是「世界模型」?

圖中縱向V->z是觀測的低維度表徵,用VAE實現,水平的M->h-> M->h是序列的預測下一個時刻的表徵,用RNN實現,這兩部分加起來就是World Model。

也就是說,World model的主要包含狀態表徵和轉移模型,這也剛好對應mental representations和mental simulation。

看到上面這張圖可能會想,這不是所有的序列預測都是world model了?

其實熟悉強化學習的同學能一眼看出來,這張圖的結構是錯誤(不完整)的,而真正的結構是下面這張圖,RNN的輸入不僅是z,還有動作action,這就不是通常的序列預測了(加一個動作會很不一樣嗎?是的,加入動作可以讓資料分佈自由變化,帶來巨大的挑戰)。

南大俞揚深度解讀:什麼是「世界模型」?

Jurgen的這篇論文屬於強化學習領域。

那麼,強化學習裡不是有很多model-based RL嗎,其中的model跟world model有什麼差別?答案是沒有差別,就是同一個東西。 Jurgen先說了一段

南大俞揚深度解讀:什麼是「世界模型」?

基本意思就是,不管有多少model-based RL工作,我是RNN先驅,RNN來做model是我發明的,我就是要搞。

在Jurgen文章的早期版本中,也說到很多model-based RL,雖然學了model,但並沒有完全在model中訓練RL。

南大俞揚深度解讀:什麼是「世界模型」?

#

沒有完全在model中訓練RL,實際上並不是model-based RL的model有什麼區別,而是model-based RL這個方向長久以來的無奈:model不夠準確,完全在model裡訓練的RL效果很差。這一問題直到近幾年才解決。

聰明的Sutton在很久以前就意識到model不夠準確的問題。在1990年提出Dyna框架的論文Integrated Architectures for Learning, Planning and Reacting based on Dynamic Programming(發表在第一次從workshop變成conference的ICML上),管這個model叫action model,強調預測action執行的結果。

RL一邊從真實資料中學習(第3行),一邊從model中學習(第5行),以防model不準確造成策略學不好。

南大俞揚深度解讀:什麼是「世界模型」?

可以看到,world model對於決策十分重要。如果能獲得準確的world model,那就可以透過在world model中就反覆試錯,找到現實最優決策。

這就是world model的核心作用:反事實推理/Counterfactual reasoning , 也就是說,即使對於資料中沒有見過的決策,在world model中都能推理出決策的結果。

了解因果推理的同學會很熟悉反事實推理這個詞,在圖靈獎得主Judea Pearl的科普讀物The book of why中繪製了一副因果階梯,最下層是「關聯」,也就是今天大部分預測模型主要在做的事;中間層是「幹預」,強化學習中的探索就是典型的干預;最上層是反事實,透過想像回答what if問題。 Judea為反事實推理繪製的示意圖,是科學家在大腦中想像,這與Jurgen在論文中使用的示意圖異曲同工。

南大俞揚深度解讀:什麼是「世界模型」?

左:Jurgen論文中的世界模型示意圖。右:Judea書中的因果階梯。

到這裡我們可以總結,AI研究者對world model的追求,是試圖超越數據,進行反事實推理,回答what if問題能力的追求。這是一種人類天然具備,而目前的AI還做得很差的能力。一旦產生突破,AI決策能力會大幅提升,實現全自動駕駛等場景應用。

Sora是不是world simulator

#simulator這個詞更多出現在工程領域,起作用與world model一樣,嘗試那些難以在現實世界實施的高成本高風險試誤。 OpenAI似乎希望重新組成一個詞組,但意思不變。

Sora產生的視頻,僅能透過模糊的提示詞引導,而難以進行準確的操控。因此它更多的是視頻工具,而難以作為反事實推理的工具去準確的回答what if問題。

甚至難以評價Sora的生成能力有多強,因為完全不清楚demo的影片與訓練資料的差異有多大。

更讓人失望的是,這些demo呈現出Sora並沒有準確的學到物理法則。已經看到有人指出了Sora生成視頻中不符合物理規律之處 [ OpenAI 發布文生視頻模型 Sora,AI 能理解運動中的物理世界,這是世界模型嗎?意味著什麼? ]

我猜OpenAI放出這些demo,應該基於非常足夠的訓練數據,甚至包括CG產生的數據。然而即便如此那些用幾個變數的方程式就能描述的物理規律還是沒有掌握。

OpenAI認為Sora證明了一條通往simulators of the physical world的路線,但看起來簡單的堆砌數據並不是通往更高級智慧技術的道路。

以上是南大俞揚深度解讀:什麼是「世界模型」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1324
25
PHP教程
1272
29
C# 教程
1251
24
C  中的chrono庫如何使用? C 中的chrono庫如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono庫可以讓你更加精確地控制時間和時間間隔,讓我們來探討一下這個庫的魅力所在吧。 C 的chrono庫是標準庫的一部分,它提供了一種現代化的方式來處理時間和時間間隔。對於那些曾經飽受time.h和ctime折磨的程序員來說,chrono無疑是一個福音。它不僅提高了代碼的可讀性和可維護性,還提供了更高的精度和靈活性。讓我們從基礎開始,chrono庫主要包括以下幾個關鍵組件:std::chrono::system_clock:表示系統時鐘,用於獲取當前時間。 std::chron

如何理解C  中的DMA操作? 如何理解C 中的DMA操作? Apr 28, 2025 pm 10:09 PM

DMA在C 中是指DirectMemoryAccess,直接內存訪問技術,允許硬件設備直接與內存進行數據傳輸,不需要CPU干預。 1)DMA操作高度依賴於硬件設備和驅動程序,實現方式因係統而異。 2)直接訪問內存可能帶來安全風險,需確保代碼的正確性和安全性。 3)DMA可提高性能,但使用不當可能導致系統性能下降。通過實踐和學習,可以掌握DMA的使用技巧,在高速數據傳輸和實時信號處理等場景中發揮其最大效能。

怎樣在C  中處理高DPI顯示? 怎樣在C 中處理高DPI顯示? Apr 28, 2025 pm 09:57 PM

在C 中處理高DPI顯示可以通過以下步驟實現:1)理解DPI和縮放,使用操作系統API獲取DPI信息並調整圖形輸出;2)處理跨平台兼容性,使用如SDL或Qt的跨平台圖形庫;3)進行性能優化,通過緩存、硬件加速和動態調整細節級別來提升性能;4)解決常見問題,如模糊文本和界面元素過小,通過正確應用DPI縮放來解決。

C  中的實時操作系統編程是什麼? C 中的實時操作系統編程是什麼? Apr 28, 2025 pm 10:15 PM

C 在實時操作系統(RTOS)編程中表現出色,提供了高效的執行效率和精確的時間管理。 1)C 通過直接操作硬件資源和高效的內存管理滿足RTOS的需求。 2)利用面向對象特性,C 可以設計靈活的任務調度系統。 3)C 支持高效的中斷處理,但需避免動態內存分配和異常處理以保證實時性。 4)模板編程和內聯函數有助於性能優化。 5)實際應用中,C 可用於實現高效的日誌系統。

怎樣在C  中測量線程性能? 怎樣在C 中測量線程性能? Apr 28, 2025 pm 10:21 PM

在C 中測量線程性能可以使用標準庫中的計時工具、性能分析工具和自定義計時器。 1.使用庫測量執行時間。 2.使用gprof進行性能分析,步驟包括編譯時添加-pg選項、運行程序生成gmon.out文件、生成性能報告。 3.使用Valgrind的Callgrind模塊進行更詳細的分析,步驟包括運行程序生成callgrind.out文件、使用kcachegrind查看結果。 4.自定義計時器可靈活測量特定代碼段的執行時間。這些方法幫助全面了解線程性能,並優化代碼。

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 量化交易所排行榜2025 數字貨幣量化交易APP前十名推薦 Apr 30, 2025 pm 07:24 PM

交易所內置量化工具包括:1. Binance(幣安):提供Binance Futures量化模塊,低手續費,支持AI輔助交易。 2. OKX(歐易):支持多賬戶管理和智能訂單路由,提供機構級風控。獨立量化策略平台有:3. 3Commas:拖拽式策略生成器,適用於多平台對沖套利。 4. Quadency:專業級算法策略庫,支持自定義風險閾值。 5. Pionex:內置16 預設策略,低交易手續費。垂直領域工具包括:6. Cryptohopper:雲端量化平台,支持150 技術指標。 7. Bitsgap:

C  中的字符串流如何使用? C 中的字符串流如何使用? Apr 28, 2025 pm 09:12 PM

C 中使用字符串流的主要步驟和注意事項如下:1.創建輸出字符串流並轉換數據,如將整數轉換為字符串。 2.應用於復雜數據結構的序列化,如將vector轉換為字符串。 3.注意性能問題,避免在處理大量數據時頻繁使用字符串流,可考慮使用std::string的append方法。 4.注意內存管理,避免頻繁創建和銷毀字符串流對象,可以重用或使用std::stringstream。

See all articles