苦痛的教訓

作者:Rich Sutton

最近看了多篇文章,都有提到這篇 Sutton 寫的文章。就找來看看,而似乎也沒見人翻譯,就動手翻了下。Sutton 何人,有了解那本鼎鼎大名的教科書 Reinforcement Learning 的,估計都知道,也算是強化學習領域裏面教父級別的人。

說實話,作爲一個對人類幾千年知識充滿迷戀的NLP從業者(姑且算),要捨棄掉這一切,承認這些不過是shit,大力才真正出奇蹟,真的很難,正如文中提到的“錯誤背後強大的吸引力”。其實,之前翻的一篇文章裏面也有說到類似的利用人類知識的觀點,NLU 不是 NLP++

但裏面也說了,知識和計算並不是對立的,所以更多的是應該讓自己對計算這一塊更加關注,其實最近接觸預訓練模型也有些體會。此外,最後提到的元方法,我是非常同意的。

題外話,讀這篇文章的時候,莫名地腦袋裏就跳出了一羣人各種招式,天花亂墜打來打去。最後跳出來一個百年內力的掃地僧,一套太祖長拳,秒殺所有。

從70多年來的人工智能研究中,我們可以看到一個最大的教訓,那便是,能充分利用計算資源的通用方法往往是最有效的。這一現象的終極原因是摩爾定律,或者說是每單位計算成本呈指數下降的局勢。

而大多人工智能研究都是在假設智能體可用計算資源不變的前提下進行的(於是利用人類知識將是提高性能的唯一方法)然而,在比一個通常研究項目稍長的時間內,更多大量的計算資源卻是可能的。

研究人員往往通過利用領域內的人類知識,在短期內獲得一定提升,然而長期來看,真正重要的其實是如何利用好計算資源。這兩者其實並不對立,但實際上卻彷彿是對立的。在一個上面花時間就不能在另一個上花時間。對一種方法或另一種方法的投入都會有一個相應的心理承諾。

而利用人類知識的方法往往使得方法更復雜,使其不太適合成爲能利用更多計算資源的一般方法。很多人工智能研究員過晚才學習到這一苦痛的教訓,這裏有很多相關例子,其中一些值得我們去回顧。

首先,在國際象棋AI中,1997年擊敗世界冠軍卡斯帕羅夫的,是基於大規模深度搜索的方法。在當時,大多數國際象棋AI研究人員都沮喪地看着這一點,因爲他們所追求的是如何充分利用人類對國際象棋特殊結構的理解。

而當一個簡單的,只是結合了特殊軟硬件的,基於搜索的方法被證明非常有效時,這些基於人類知識的國際象棋AI研究人員卻不服輸。還說這次“蠻力”搜索或許取得了成功,但這不是一般策略,不管怎麼說這不是人類下棋的方式。這些研究人員希望基於人類輸入的方法來獲勝,而當獲勝方法不是這個時,當然會大失所望。

圍棋AI中也出現類似模式,只是晚了20年。通過利用人類知識或遊戲特點,研究人員們進行了大量的初步嘗試,以避免搜索方式,但所有這些努力卻被證明是無關緊要的,更要命的是,之後發現搜索一旦結合了大規模計算效果會非常好。

同樣重要還有通過自我學習來學習價值函數(儘管學習在1997年首次擊敗世界冠軍的程序中沒有發揮太重要用處)。通過自我遊戲還有一般的學習技巧來學習,就像搜索一樣,是可以實現大規模的計算資源利用的。

於是,搜索學習就成了AI研究中能充分利用大量計算資源的兩種最重要技術。在圍棋AI中,與國際象棋AI一樣,研究人員最初的努力都是先注重於如何利用人類對遊戲的理解(所以需要較少搜索),而很久以後纔開始通過擁抱搜索和學習獲得更大的成功。

語音識別方面,DARPA在20世紀70年代有贊助過一場比賽。參賽者包括一系列利用了人類知識的特殊方法,包括詞彙,音素,人類聲道知識等等。而另一方面,還有一些更具統計性,計算量更大,基於隱馬爾可夫模型(HMM)的方法。

和之前一樣,統計方法勝過了基於人類知識的方法。這導致自然語言處理領域發生了重大變化,幾十年來統計和計算慢慢在該領域占主導地位。最近語音識別中深度學習的興起也是這一大趨勢的最新進展。

深度學習方法甚至更少依賴人類知識,並能利用更多計算資源,加上對大量訓練集的學習,就能獲得非常棒的語音識別系統。

正如在之前的棋類遊戲中一樣,研究人員總是試圖使系統按照研究人員認爲自己的思想方式來運作,他們試圖將這些知識放入系統中,但事實證明這往往適得其反,並且極大地浪費了研究人員的時間。特別是在之後,當通過摩爾定律大規模計算變得可用,找到了一種能很好地利用計算資源的方法時。

計算機視覺中,也存在類似模式。早期的方法將視覺設想爲搜索邊緣或廣義化的圓柱體,也就是SIFT特徵。但今天這一切都被拋棄了。現代深度學習神經網絡僅使用卷積和某些不變性的假設,並且性能很好。

這是一個很大的教訓。作爲一個領域,我們卻仍然沒有徹底學習到這個教訓,因爲我們還在持續不斷地犯着同樣的錯誤。要看到這一點,並有效地抵制它,就必須深刻理解這些錯誤背後強大的吸引力

但,我們還是必須要學習到這個苦痛的教訓,那就是,在長遠來看按照自認爲自己的思考方式來搭建系統往往是沒用的。這一苦痛的教訓是基於以下歷史觀察:

  1. AI研究人員經常試圖將知識建立在他們的智能系統上;

  2. 這在短期內總是有用的,並可以讓研究人員獲得個人滿意;

  3. 但從長遠來看,這減緩,甚至是抑制了進一步的發展;

  4. 突破性的進展,往往卻來自相反的方法,那就是通過搜索和學習來利用大規模的計算資源的方法。

最終的成功充滿了苦澀,並讓人難以接受,因爲它踩在了,人們更青睞的以人爲本的方法上。

從這個痛苦的教訓中,應該學到的一件事是通用方法的強大性,在即使可用計算變得非常大時,這些方法仍可以通過增加計算量來進一步提高。目前。這種似乎可以隨意擴展的兩種方法就是搜索(search)和學習(learning)。

從這個痛苦的教訓中汲取的第二件事是,思想的實際內容有着難以想象的複雜;我們應停止嘗試用簡單方法來思考這些思想內容,諸如我們思考空間,對象,多代理或對稱性時的一些簡單方法。所有這些都只是任意外部世界(本質上很複雜)的一部分。它們不應該被內置,因爲它們複雜性是無窮無盡的;相反,我們應該只構建可以找到並捕獲這種任意複雜性的元方法

這些方法的關鍵在於能找到很好的近似解,而對這些解的搜索就在於我們的方法了,而不是我們自己。我們希望AI能夠像我們一樣發現新東西,而不是去發現我們已經發現的東西。在我們自己的發現中來構建系統,這隻會讓人更難以瞭解如何完成這一發現過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章