0
| 本文作者: 岑大師 | 2017-11-25 12:54 | 專題:NIPS 2017 |
2017年11月13日,北京大學信息科學技術學院的黃哲威同學發布了這樣一條朋友圈:
"結束了一個多月的雜交煉丹,業余RL選手最后兩天被吊打,Juergen Schmidhuber搶我核彈,顯卡拿好QAQ"
他所說的“核彈”,指的是來自于“核彈廠”NVIDIA的新一代超級計算機、售價6.9萬美元起的DGX Station,是NIPS 2017“Learning to Run”競賽的優勝獎品,而二三名的獎品是NVIDIA Titan Xp。比賽第一輪結束后,PKU-hzwer (黃哲威的參賽帳號)排名第二,第一名的 USTC-IMCL 來自中國科學技術大學,前幾名幾乎全是中國選手;第二輪最后兩天卻全被來自于NNAISENSE(“LSTM之父”Juergen Schmidhuber所創辦的人工智能公司)的Wojciech Jaskowski反超。
“第一名隱藏了實力,我們一度認為勝利在望。”黃哲威無不遺憾地告訴雷鋒網。最終他們屈居亞軍。
“Learning to Run”是即將在長灘召開的機器學習頂級學術會議NIPS 2017的5個官方挑戰賽之一,比賽共有595支隊伍報名。挑戰賽由斯坦福神經肌肉生物力學實驗室(MNBL)主辦,要求參賽者開發一個控制器,使符合生理學的人體模型能夠盡可能快地在復雜的障礙物中進行奔跑。比賽提供人體肌肉骨骼模型和基于物理的模擬環境,參賽者可以在其中合成物理和生理上精確的運動,最終根據在規定的時間內跑動的距離和韌帶拉伸懲罰來計分。
從比賽官網雷鋒網了解到,本次比賽的目標是:
利用深度強化學習解決醫學問題;
推動增強學習中的開源工具研究(物理模擬器,增強學習環境和競賽平臺等);
在具有隨機性和高度維度的行動空間的復雜計算環境中推進增強學習的研究。

根據比賽要求,參賽者需要建立一個采用當前狀態觀察(41維向量)為輸入的函數f,并以最大化獎勵的方式輸出肌肉的激勵行為(18維向量)。其中,總回報是最后一次迭代后X軸上的骨盤位置(即跑動的距離)減去過度使用韌帶力量帶來的懲罰(韌帶的作用是防止關節過度彎曲,如果跑動幅度過大會導致韌帶受到傷害,而這是在比賽中需要避免的)。
賽后雷鋒網也在第一時間聯系了黃哲威,向他請教第一次參賽就取得好成績的奧秘。
雷鋒網(以下用Q代表):你是怎么注意到這個比賽的?
黃哲威(以下用A代表):我在曠視Face++的研究院實習,9月份的時候,我的Mentor向我推薦了這個比賽,正好入門一下各種煉丹工具。
Q:介紹一下你的Mentor的情況,以及他給了哪些有益的解決問題的思路?
A:我的Mentor(周舒暢)和另外一些研究員提供了許多思路,包括網絡模型、激活函數,動作噪聲等等,以及科學的實驗管理方法。
Q:你認為這個比賽最大的難點在哪里?
A:最大的難點是官方提供的模擬器的計算速度很慢,每輪障礙跑在單核 cpu 上的模擬時間超過一個小時,獲取訓練數據代價很高;連續動作空間的決策本來就是強化學習的一個難題,在這個任務中,環境提供的輸入信息是41維的0到1實數向量,包括下肢關節的位置,角度,速度,障礙信息等,根據這些信息我們需要輸出18維的0到1實數向量,決策下肢肌肉的動作;環境具有隨機性,障礙的大小和位置是不確定的,而且輸入信息中只有模型前方最近的一個障礙。
Q:模擬慢的問題最后是怎么解決的?
A:一位中國選手(@qing-yongliangaka)為大家提供了模擬器并行的框架,這個框架讓我們能夠在多臺服務器上并行模擬器然后訓練,節約了大量的訓練時間。這位選手也獲得了比賽方頒發的特別獎。
Q:你們是如何搭建模型的?
A:1) 我參考了一些開源的代碼,并嘗試在OpenAI gym上訓練了一些簡單的任務,正確實現了 DDPG 之后,我們通過比較多的對比實驗確定了各種參數和網絡結構;
2) 發現訓練出的模型瘸腿(拖著一條腿)和重心靠后的情況比較多,我們針對這兩個問題設計了一些懲罰。
Q:在你看來,參與比賽的過程中有哪些比較重要的節點?
A:1) 由于我缺乏并行處理的知識,單個模擬器速度又極其緩慢,剛開始數天毫無進展,后來發現有參賽者開源了并行模擬器的框架,使得我們能在數百個 cpu 上開展訓練;
2) 加入了比賽的討論組之后,驚訝地得知一些選手從隨機網絡參數開始,不到一天就能訓練出表現很不錯的模型,而我對著一份網絡參數折騰許多天也沒什么進展,于是開始了提高訓練速度的探索;
3) 通過以及降低控制幀率并將多幀獎勵合并,還有一些其它技巧,數十倍地加快了訓練,比賽后期我們訓練一個40分的模型只要幾個小時,使得大量的對比實驗變得可行。
Q:第二輪比賽中,障礙物從3個增加到了10個,這給訓練帶來了什么樣的變化?
A:因為增加的障礙離起點比較遠,AI要學會控制模型在高速奔跑時避開障礙,后腿很容易被絆到。模型的摔倒概率上升到接近30%,使得我們不得不花費精力在穩定性上下工夫,后來通過多個actor和 critic 群策群力的方法將摔倒概率降低到5%以下。這方面的工作我們之后會寫一個實驗報告。
Q:除了DDPG,你們是否還有采用其他方式,例如PPO(雷鋒網注:PPO是OpenAI強化學習的默認算法)來實現?
A:我們隊伍沒有采用其它的訓練方式,主要是我能力和精力有限,一些選手嘗試了許多方法,似乎也沒有本質提高。值得一提的是,有選手使用進化算法獲得了很不錯的結果。
Q:第一次參加比賽就取得好成績,有什么想和其他初學者分享的經驗嗎?
A:多和其它參賽選手交流討論,獲取靈感,及時反思;提高工程能力,將理論和實踐結合;注重代碼管理和實驗的可重現性。
盡管黃哲威一再強調自己是“業余選手”,“能力和精力有限”,但從其認定了一個方向后不斷持續深挖的做法來看,最終取得好成績也有著一定的必然性。有的時候,選擇過多不一定是好事,從人工智能發展的歷史來看,正是有著一批在人工智能發展遇冷時仍然堅持研究的先驅的不斷努力,才迎來了當下以機器學習推動的又一波人工智能的春天。在恭喜黃哲威首次參賽就取得好成績的同時,也希望有更多機器學習的初學者們能夠不畏困難和努力鉆研,共同進步。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。