新智元專訪:清華大學深度強化學習框架“天授”開源

新智元專訪:清華大學深度強化學習框架“天授”開源|900星

日前,清華大學人工智能研究院基礎理論研究中心發佈了深度強化學習框架“天授”,代碼已在GitHub開源(https://github.com/thu-ml/tianshou)。這也是繼“珠算”可微分概率編程庫之後,該中心推出的又一個面向複雜決策任務的編程庫。

天授的核心開發者接受了新智元專訪,團隊成員著重強調了天授系統的5大技術優勢:代碼簡潔、模塊化、可復現性、接口靈活以及訓練速度快。相較於其他PyTorch強化學習框架,天授0.2具有結構簡單、二次開發友好的特點,整個框架代碼1500行左右,支持主流的強化學習算法DQN、A2C等,同時設計了靈活的接口,用戶可以定製自己的訓練方法。針對現有平臺訓練速度慢的缺點,天授通過將並行採樣與緩存機制相結合提高了採集數據的速度。同時,整個框架基於模塊化的原則進行設計,在其上實現常見的強化學習算法僅需不到100行的代碼。天授開源後引起很大關注,在GitHub上很快獲得超過900個星標

新智元專訪:清華大學深度強化學習框架“天授”開源|900星

天授和幾大主流強化學習框架性能對比

“天授”一詞來源於《史記》,意為“取天所授而非學自人類”,刻畫了強化學習通過與環境進行交互自主學習,而不需要像監督學習一樣需要大量人類標註數據。清華大學團隊針對目前多數既有強化學習框架(如RLLib和BaseLine)等無法支持高效、定製化的訓練場景的問題,繼承了首版TensorFlow“天授0.1”版在模塊化等方面的優勢,推出了基於PyTorch框架的“天授0.2”版本。

天授團隊閻棟博士和翁家翌同學已入駐新智元小程序,歡迎大家點擊下方小程序參與互動。

小升初開始寫代碼,大三進入Bengio實驗室

在“天授”0.2的優化設計過程中,清華大學的大四學生翁家翌起到了關鍵作用。

說起來,翁家翌確實是履歷優秀,小升初的暑假就開始寫代碼。高二作為全國青少年信息學奧林匹克競賽(NOI)選手進入省隊。高中時期就開始鑽研微積分、線性代數,大一的基礎課程輕車熟路拿高分。

“我高中的時候非常熱衷於打競賽,打競賽用的是c++,比如說在一個公開的OJ上面刷題,然後我非常熱衷於用盡量少的代碼寫出儘量快的程序,我一直對自己有這種寫代碼的要求。” 翁家翌談到自己高中時期的愛好時如是說,正是這種深厚的積累為日後開發天授奠定了基礎。

大二上學期翁家翌加入了朱軍教授領導的TSAIL實驗室,正式開始了RL的漫長征程。大三暑假期間更是去到加拿大圖靈獎獲得者Bengio教授的實驗室,深入開展了RL和NLP的研究。

我的目標就是要實現一下對方教授給的 idea,這個 idea就是有點類似於如何把人的意識給實現出來。這個有點難,其實大家都在做這個東西,只不過看誰先能做出來,雖然離實現還挺遙遠,但是我們在努力。” 翁家翌告訴新智元。

新智元專訪:清華大學深度強化學習框架“天授”開源|900星


翁家翌

大四科研階段十分辛苦,經常都要忙到很晚。課餘時間,翁家翌和所有人一樣,喜歡聽音樂,上B站看視頻刷知乎。

值得一提的是,翁家翌師從的Yoshua Bengio是深度學習三巨頭之一,因其在深度神經網絡(deep neural network)領域的開創性貢獻剛剛獲得了ACM 圖靈獎。

受困VizDoom,開啟強化學習框架的自研之路

在2018年的 IEEE CIG 計算智能與遊戲大會上,朱軍教授領導的人工智能創新團隊 TSAIL 在第一人稱射擊類遊戲《毀滅戰士》(Doom)AI 競賽 VizDoom(Visual Doom AI Competition)上榮獲競賽 Track 1 的預賽和決賽冠軍,及 Track 2 預賽冠軍、決賽亞軍,成為賽事歷史上首箇中國區冠軍。當時翁家翌作為團隊核心成員之一也參與其中。

新智元專訪:清華大學深度強化學習框架“天授”開源|900星

VizDoom AI競賽

“從17到18年,我們積累了兩年的比賽經驗,除了成績上的進步,我們對強化學習算法在實踐中的表現,及其背後的數學機制都有了更深入的瞭解,我們把這些經驗和教訓放在了天授0.1和0.2裡面。”團隊成員閻棟博士告訴新智元。“也正是在比賽過程中,我們產生了做天授的動力,我們發現對於這種高度特化的複雜強學習的訓練場景,像baseline、RLlib這樣現有的框架很難滿足我們的要求。”

在老師和同學的評價中,翁家翌不論是在比賽還是天授開發過程中都起到了非常核心的作用。蘇航老師評價說,“他是一個科研能力很出色,動手能力很強的學生。”

“我們清華大學TSAIL團隊,希望能夠在不確定性、不完全信息的決策方面能夠做出貢獻,推動以強化學習為代表的智能決策方法的發展。” 蘇航老師說。

新智元專訪:清華大學深度強化學習框架“天授”開源|900星

關於未來的工作,團隊負責人朱軍教授表示,將在既有工作基礎上,從三個維度拓展“天授”框架,從算法層面來講,將對目前主流強化學習算法進行更加全面的支持,包括model-based RL, imitation learning等;從任務層面來講,將進一步支持包括Atari、VizDoom等複雜任務;從性能上來講,將進一步提升框架在模型性能、訓練速度、魯棒性等方面的核心指標,更好地為學術界服務。

天授0.1到天授0.2 ,1500行代碼實現所有功能

天授從16年開始迭代,2017年底正式開發0.1版本,項目的初衷是發現當時現存的強化學習框架用起來很不方便:不夠模塊化,很難在其上做修改和二次開發,所以0.1版本開發的核心宗旨是模塊化。

“天授0.1的主要工作是將不同論文中共用的infrastructure,比如memory、optimizer,都給抽象出來,在結構設計和工程實踐上做了很多考慮,2017年的時候PyTorch還不成熟,所以團隊選擇的是Tensorflow。” 閻棟說。

強化學習社區是一個非常豐富的社區,他們所要解決的不同任務和場景之間差異巨大,比圖像分類等任務要複雜得多,所以說它的模塊化更加困難,天授0.1解決了部分挑戰,但並沒有完全解決。

天授0.1可以同時支持四個算法,它們的核心組件是相同的比如replay memory,以及optimizer。只需給每個算法設置自己的損失函數,然後去指定自己的網絡結構就可以了。

開發過程遠非一蹴而就,天授0.1的代碼編寫的過程可謂是“批閱十稿,增刪五次”。在之前的天授版本中,實驗室成員閻棟、鄒昊晟、任桐正都做出了大量貢獻,經過多次的刪減打磨出了天授0.1。“第1版的時候我提交了17,000行代碼,刪去了8000多行。” 閻棟表示。最終優化後的天授0.2,1500行代碼就實現了現存幾乎所有的強化學習的流行的算法。

天授0.2繼承了天授0.1的模塊化特性。相比之下,最主要的改變是家翌使用了PyTorch。從去年以來PyTorch底層框架逐漸變得非常成熟,它更靈活,跟Python綁定的更多,具有更多動態支持,便於調試,於是他用PyTorch繼承了天授0.1的模塊化設計,然後在0.2中用PyTorch重新實現了底層的基本組成模塊,對replay memory積累數據、多個環境並行訓練,以及trainer從環境中採樣策略等多個部分都進行了優化。

在所測試的典型任務中,天授平均來說會比其他框架快一個量級。翁家翌憑藉著他豐富的實踐經驗對天授0.1進行了重新設計和實現,使其在訓練速度和性能上實現了大幅提升

翁家翌強調,“我借鑑了之前一版天授的設計理念,比如說把各種replay buffer全部併成一起,還有比如用collector來統一各個數據,各個策略跟環境交互的過程等等。這些給我開發天授第2版帶來了很大的啟發,讓我少走很多彎路。”

說到AI方向的理想,翁家翌說,“我想在計算機領域多實現一些能夠改變我們日常生活方式的一些項目,然後真正能夠應用到千家萬戶。” 目前他已經收到卡內基梅隆大學(CMU)的錄取通知書。


分享到:


相關文章: