OpenAI 元學習與自我對弈: Ilya Sutskever 超級前瞻的MIT講座2018

文:城主

前言

熟悉OpenAI發展史的同學都知道,在2018年大舉進軍生成式AI(GPT-1誕生於2018年)之前,OpenAI花了很大的精力去做強化學習和遊戲的AI自我對弈, 這在另外一位大神Andrej Karpathy的多次談話裡都提到。

今天分享的是一個有承前啓後意義的講座,OpenAI首席科學家Ilya在2018年2月在MIT所做:“OpenAI元學習和自我對弈”。講座總結了OpenAI在這個領域所做出的結果,在這之後,OpenAI就轉而投入到生成式AI的大道了。

如果細讀這個講座內容,讀者會驚訝的發現,當年OpenAI在強化學習/自我對弈方面所做的事情,很多都爲後面生成式AI的進展做了技術鋪墊,比如,這裡居然看到了RLHF “Learn from Human Feedback”! 再比如,這裡居然大量使用了最近因爲Qstar神秘模型而大火的Q-learning技術;這講座還大量提到了現在最流行的“智能體”概念。。。

而在最後的問答環節裡,更是有讀者詢問“目前生成語言模型的狀況非常糟糕。您認爲生成語言模型最有成效的研究方向是什麼?”

Ilya高瞻遠矚的回答:

“我想說的是,僅僅訓練更大、更深的語言模型就會取得令人驚訝的效果,擴大規模。”

神一般的判斷。

對於關心OpenAI發展軌跡的同學,這是一個特別好的補齊OpenAI早期研究路線和思考體系拼圖的一次講座,非常推薦!

慣例有B站傳送門:【Ilya Sutskever MIT講座2018 OpenAI 元學習與自我對弈【中英】-嗶哩嗶哩】

https://b23.tv/ECfFw9h

=以下是根據講座重寫彙總的天空之城文字版=

今天,我們非常榮幸地邀請到了OpenAI的聯合創始人兼研究總監伊利亞·蘇茨克維。伊利亞的職業生涯始於與傑弗裡·辛頓一同在多倫多的機器學習小組工作,隨後他在斯坦福大學與吳恩達共同創建了DNN Research。在Google Brain擔任研究科學家三年後,他參與創立了OpenAI。

雖然引用次數並非衡量一切的標準,但它們確實能夠反映一個人的學術影響力。伊利亞過去五年的研究成果已經被引用超過46,000次,他一直是深度學習和人工智能領域中一些最重大突破性思想的關鍵創新者和推動者。非常歡迎伊利亞的加入。

感謝您的介紹,Lex。也感謝大家參加我的演講。今天,我將向大家介紹我們在OpenAI過去一年在元學習和自我對戰方面的一些研究成果。在我詳細闡述這些工作的技術細節之前,我想先花些時間討論一下深度學習的原理,以及爲什麼它能夠起效。事實上,深度學習之所以有效,並不是顯而易見的。

有一個事實,也是一個可以證明的數學定理,那就是如果你能找到一個對你的數據效果很好的最短程序,那麼你就能獲得儘可能最好的泛化效果。稍作修改,這個觀點可以被轉化爲一個精確的定理。在直觀層面上,這是容易理解的。如果你能找到一個生成特定數據的更短程序,那麼你實際上已經將所有可想象的規律提取到了你的程序中,從而可以使用該程序做出最佳預測。如果你的數據如此複雜,以至於無法被簡化爲一個更短的程序,那麼這意味着你的數據是完全隨機的,無法從中提取任何規律。

然而,這背後的數學理論並不廣爲人知,而且這些陳述的證明實際上並不複雜。但有些許令人失望的是,至少以目前的工具和理解來看,尋找最佳短程序來解釋、生成或解決你的問題是不可能的,因爲這個問題在計算上是非常困難的。程序的空間是非常龐大且複雜的,程序的微小變化可能導致行爲的巨大變化,這是不可避免的。例如,你改變了一個循環的內部,自然會得到完全不同的結果。因此,在如此龐大的程序空間中進行搜索似乎是完全不可能的。

那麼,如果我們放棄尋找短程序,轉而尋找小回路會怎樣呢?幸運的是,事實證明,當涉及到小回路時,我們可以通過使用反向傳播來找到解決問題的最佳小回路。這是人工智能領域的一個神奇事實,其他所有的研究都是基於這一點。實際上,當你對一個迴路施加限制,並使用數據來迭代地通過反向傳播微調神經網絡的權重,直到其預測滿足數據要求時,你就找到了解決計算問題的方法。

這是迴路搜索的過程。我們知道並不總是能解決這個問題,但有時你可以,尤其是當我們擁有實用的數據集時。雖然設計一個人工數據集很容易,但你可能找不到最佳的神經網絡,但在實踐中,這似乎並不是問題。在許多情況下,你可以將訓練神經網絡視爲求解一系列方程,例如f(xi, theta) = yi。你有你的參數,它們代表了你所有的自由度。然後,你可以使用梯度下降將這些方程中的信息推入參數中,以滿足所有這些方程。

神經網絡假設有50層,基本上是一臺並行計算機,給定50個時間步來運行。你可以用一臺非常強大的大規模並行計算機的50個時間步來完成許多任務。例如,人們可能不知道,你可以使用一個只有兩個隱藏層的中等大小的神經網絡來學習排序,對n位數字進行排序,這是相當不錯的成就。這並不是顯而易見的,特別是因爲我們被告知排序需要使用神經網絡執行log n個並行步驟,而你只需要兩個並行步驟就可以成功排序。所以,有一些不太明顯的事情正在發生。現在,這些是閾值神經元的並行步驟,因此它們完成了更多的工作。這就是謎底的答案。但如果你有50個這樣的層,你就可以在神經網絡內部完成相當多的邏輯和推理。這就是它起作用的原因。給定數據,我們能夠找到最好的神經網絡。因爲神經網絡很深,因爲它可以在其層內運行計算,最好的神經網絡值得尋找。因爲這確實是你所需要的。你需要一個模型類,這是值得優化的。但它也需要是可優化的。深度神經網絡滿足這兩個條件。這就是一切正常運作的原因。這是其他一切的基礎。

現在,我想談談強化學習。強化學習是一個框架,用於評估代理在複雜的隨機環境中實現目標的能力。你有一個代理插入環境中,如圖所示。對於任何給定的代理,你只需要多次運行它,並計算其平均獎勵。強化學習框架的有趣之處在於,它存在有趣且有用的強化學習算法。這個框架已經存在了很長時間,一旦我們意識到好的算法是存在的,事情就變得有趣了。這些算法並不完美,但它們足以完成有趣的任務。你所面臨的數學問題是需要最大化預期回報的地方。

強化學習框架還不完全完善的一個重要方面是,它假設獎勵是由環境給出的。你看這張圖片,代理髮送一個動作,而環境則將觀察結果和獎勵一起返回。這就是環境返回的信息。然而,在現實世界中,情況並非如此,因爲我們有一個框架來從觀察中找出獎勵是什麼。我們獎勵自己。我們沒有被告知。環境並沒有說,嘿,這裡有一些負面獎勵。這是我們對感官的詮釋,讓我們可以確定獎勵是什麼。生命中只有一種真正的回報,那就是存在或不存在,其他一切都是其必然結果。

那麼,我們的代理應該是什麼?你已經知道答案了。它應該是一個神經網絡,因爲每當你想做某事時,答案將是一個神經網絡,並且你希望代理將觀察結果映射到行動。因此,你可以使用神經網絡對其進行參數化,然後應用學習算法。

所以,我想向你解釋一下強化學習是如何運作的。這就是無模型強化學習。強化學習實際上已經在各地得到了實際應用。但它也很深刻,非常堅固。這個過程非常簡單。它的效率並不特別高。因此,其工作原理如下:這實際上可以用一句話來描述正在發生的事情。簡單來說,就是嘗試一些新事物。爲你的行動引入隨機性,並將結果與你的預期進行比較。如果結果讓你感到驚訝,如果你發現結果超出了你的預期,那麼就調整你的參數,以便在將來採取這些行動時能夠得到改進。就是這麼簡單。這就是強化學習的核心思想。嘗試一下,看看你是否喜歡它,如果你喜歡,那麼以後就多做一些。字面上就是這個意思。這是核心概念。

事實證明,將這個過程用數學形式化並不困難,但這確實是正在發生的事情。如果你在神經網絡中,在常規神經網絡中,你可能會問,目標是什麼?你運行神經網絡,你就會得到一個答案。你將這個答案與所需的答案進行比較。無論兩者之間有什麼差異,你都可以將其反饋回去以更改神經網絡。這就是監督學習。在強化學習中,你運行一個神經網絡,你爲你的行動添加了一些隨機性,然後如果你喜歡這個結果,實際上,你的隨機性就變成了期望的目標。就是這樣了。這很簡單。現在,數學已經存在。在不解釋這些方程的含義的情況下,重點並不是要真正推導它們,而只是證明它們存在。

強化學習算法有兩大類。其中之一是策略梯度,你所做的基本上就是使用這個表達式,期望的總和,獎勵的總和,你只需要計算導數。你展開項,你運行,你做一些代數,你就得到了一個導數。奇蹟般的是,導數的形式正好是我告訴你的,那就是嘗試一些行動,如果你喜歡它們,就增加這些行動的對數概率。這實際上是從數學上得出的。直觀的解釋與你在等式中得到的內容完美對應,即使你不熟悉它,你也必須相信我。這就是頂部的等式。

還有一類不同的強化學習算法,它稍微複雜一些,解釋起來有點困難。它被稱爲基於Q學習的算法。它們的穩定性稍差一些,樣本效率更高一些,它具有這樣的特性:它不僅可以從參與者生成的數據中學習,而且還可以從任何其他數據中學習。因此,它具有不同的穩健性特徵,這有點重要,但這只是一個技術問題。是的,這就是策略內和策略外的區別,但這有點技術性,所以如果你發現這很難理解,請不要擔心。如果你已經知道了,那麼你就已經知道了。

那麼現在強化學習的潛力是什麼?承諾是什麼?它到底是什麼,我們爲什麼要對此感到興奮?現在,有兩個原因。今天的強化學習算法已經非常有用和有趣,特別是如果你對你的世界有一個很好的模擬,你可以訓練智能體做很多有趣的事情。但真正令人興奮的是,如果你能夠構建一個超級驚人的樣本高效強化學習算法。我們只給它少量的數據,算法只是對它進行處理並從中提取每一點熵,以便以儘可能最快的方式學習。現在,我們的算法的數據效率並不是特別高。他們的數據效率低下。但隨着我們的領域不斷進步,這將會改變。

接下來,我想深入探討元學習的主題。元學習的目標是一個很好的主意,這並沒有真正起作用,但它確實有效。而且它也確實很有前途。這是另一個有前途的想法。那麼夢想是什麼?我們有一些學習算法。也許我們可以使用這些學習算法來學會學習。如果我們能學會學習就好了。那麼你會怎麼做呢?你會採用一個系統,你不是在一項任務上訓練它,而是在多項任務上訓練它,你問它是否學會快速解決這些任務。這實際上可能就足夠了。

所以它看起來是這樣的。這是大多數傳統元學習的工作原理和外觀。你有一個模型,它是一個大的神經網絡。但你所做的是對待每一個,你有訓練任務,而不是訓練案例。你擁有的不是測試用例,而是測試任務。所以你的輸入可能是,它不僅僅是你當前的測試用例,而是有關測試任務的所有信息加上測試用例,你將嘗試輸出該測試用例的預測或操作。所以基本上你會說,是的,我會給你10個例子作爲你模型輸入的一部分,弄清楚如何充分利用它們。所以這是一個非常簡單的想法。你將神經網絡轉變爲學習算法,將訓練任務轉化爲訓練案例。所以訓練任務等於訓練案例。這就是元學習。

因此出現了一些我認爲非常有趣的成功案例。元學習的成功案例之一是學習快速識別字符。麻省理工學院的Lake等人制作了一個數據集。這是一個數據集。我們有大量不同的手寫字符。人們已經能夠爲此訓練極其強大的元學習系統。元學習的另一個非常成功的例子是神經架構搜索,由來自谷歌的Zoph和Le提出,他們發現了一種神經架構可以很好地解決一個問題,一個小問題,然後它也能成功解決大問題。所以這是一種少量比特元學習。這就像當你學習架構,甚至學習一個程序、一個小程序或學習算法時,你可以將其應用於新任務。所以這是進行元學習的另一種方式。

無論如何,但重點是正在發生的事情大多數情況下元學習中到底發生了什麼就是你把一個訓練任務變成一個訓練案例並假裝這是完全正常的深度學習。就是這樣。這就是元學習的全部。其他一切都只是小細節。接下來,我想深入。

現在我已經完成了介紹部分,我想開始討論不同的工作來自OpenAI的不同人,我想首先談談事後經驗回放。安德烈等人付出了巨大的努力開發強化學習的學習算法,這不僅僅解決了一項任務,但它解決了許多任務,並且學會利用其經驗以更有效的方式。

我想討論強化學習中的一個問題。我想,這實際上是一系列相互關聯的問題。但你需要學會做的一件非常重要的事情就是探索。你從一個環境開始,你不知道該怎麼辦。你做什麼工作?所以必須發生的一件非常重要的事情就是你必須時不時地獲得獎勵。如果你嘗試某件事但沒有得到回報,那你怎樣才能學習呢?所以我說這就是問題的癥結所在。你怎麼學習?與此相關的是,有沒有什麼方法可以讓我們受益匪淺?來自經驗,來自你的嘗試,來自你的失敗?如果你嘗試實現一個目標但失敗了,你還能從中吸取教訓嗎?

你告訴你,不要要求你的算法實現單一目標,你想要學習一項可以實現一系列目標的策略。例如,不是達到一種狀態,你想了解一項適用於每個狀態的策略,你的系統的。現在,這意味着什麼?每當你做某事時,你就會達到某種狀態。假設我表達了一個目標,即我希望達成狀態A。我付出了極大的努力,但最終只能達到狀態B。從這個結果來看,我可以得出結論,這是一種令人失望的結果。我幾乎沒有學到任何東西,我仍然不清楚如何實現狀態A。然而,我也可以換個角度思考,暫時停下來,我實際上已經達到了一個非常良好的狀態,即狀態B。我可以從中學習如何實現狀態B,而這正是我原本試圖達到狀態A的過程中意外獲得的。答案是肯定的,這是有效的。

我想強調的是,這是一個案例,它包含了一個微妙之處,對於那些非常瞭解策略內和策略外學習差異的人來說,這可能是一個有趣的點。當你嘗試實現狀態A時,你正在進行策略內學習。但是,當你實際上達到狀態B時,你正在進行策略外學習,因爲如果你真的在嘗試達到狀態B,你會採取不同的行動。這就是爲什麼選擇能夠支持策略外學習的算法非常重要。這只是一個小的技術細節。關鍵的想法是,你通過讓問題變得更簡單,表面上看似更加困難,通過訓練一個系統去渴望並學習達到每一個狀態,實現每一個目標,從而在整體上掌握其環境,你就建立了一個能夠不斷學習的系統。它能夠從成功和失敗中學習,因爲如果它嘗試做一件事卻完成了另一件事,那麼它就獲得瞭如何實現那另一件事的訓練數據。

我想展示一個視頻,向您演示這個概念在實踐中是如何運作的。強化學習系統面臨的挑戰之一是需要塑造獎勵。這意味着什麼呢?當系統剛開始學習,知之甚少時,它可能無法實現你設定的目標。因此,設計一個逐漸遞增的獎勵函數是非常重要的,使其平滑且連續,這樣即使系統的表現不佳,它也能實現目標。如果你給系統一個非常稀疏的獎勵,只有在達到最終狀態時纔給予獎勵,那麼傳統的強化學習算法就很難解決問題,因爲它幾乎永遠不會得到獎勵,從而無法學習。沒有獎勵就意味着沒有學習。但在這裡,因爲你可以從失敗和成功中學習,這個問題就不復存在了。這是非常好的。我認爲,我們應該再看一下視頻,看看它是如何自信且充滿活力地將綠色的小冰球移動到目標位置的,這真是太棒了。

現在,讓我們跳過這個部分,如果你在物理機器人上實施這個策略也是可行的,但我們可以跳過這個。

我認爲重點是事後經驗重播算法的方向是正確的,因爲你想要利用所有的數據,而不僅僅是一小部分。現在,一個巨大的問題是,你如何獲得高級狀態?高級狀態是從哪裡來的?因爲在我迄今爲止向你們展示的例子中,系統被要求達到低級狀態。所以,我認爲對於這些方法來說,表示學習和無監督學習將變得非常重要,它們能夠發現正確的狀態,確定值得實現的目標狀態空間。

現在,我想要查看一些真實的元學習結果,並告訴你一個非常簡單的方法,即如何通過元學習從模擬轉移到物理機器人。這是Peng等人在2017年完成的一個非常出色的實習項目。所以,我認爲我們可以同意,在機器人領域,如果你能夠在模擬器中訓練你的策略,然後以某種方式將這些知識轉移到物理機器人上,那將是非常理想的。現在,我們可以構建沒有問題的模擬器,但它們永遠無法完美地匹配現實世界,除非你願意接受一個極其緩慢的模擬器。原因是,事實證明模擬接觸是非常困難的,我在某個地方聽說,如果我錯了,請糾正我,模擬摩擦力是NP完全問題。我不確定這是否準確,但就是這樣的情況。所以你的模擬器和現實世界總是會有所不同。會有一些相似之處,但僅此而已。

我們該如何解決這個問題呢?我想向您展示一個簡單的想法。假設有一件事情會很好,那就是如果你能學習一項策略,它能夠迅速適應現實世界。那麼,如果你想學習一個能夠快速適應的策略,我們需要確保它在訓練期間有機會適應。那麼我們該怎麼辦?我們不僅僅在一個模擬器中解決問題,而是爲模擬器添加了大量的變異性。我們說,我們將隨機化摩擦力,我們將隨機化質量,我猜還有不同物體的長度和尺寸。所以你嘗試以多種不同的方式隨機化物理模擬器。然後重要的是,你不會告訴策略是如何隨機化的。那麼接下來它會做什麼呢?你將你的策略放入一個環境中,它會發現這真的很困難。我不知道質量是多少,也不知道摩擦力是多少。當我從環境中得到反饋時,我需要嘗試一些事情並找出摩擦力是什麼。所以你學會了讓策略具有一定程度的適應性。這確實是有效的。

我只是想給你看一下。當你在模擬器中訓練策略並將其部署到物理機器人上時,會發生什麼。這裡的目標是將冰球推向紅點的方向。你會發現它會掙扎。它陷入困境的原因是模擬器和真正的物理機器人之間的系統差異。因此,即使是基本的運動對於策略來說也是困難的,因爲假設被嚴重違反了。因此,如果你按照我所討論的方式進行訓練,我們就會訓練一個循環神經網絡策略,它學會快速推斷模擬器的屬性,以完成任務。然後你可以給它真實的東西,真正的物理環境,它會做得更好。現在,這不是一個完美的技術,但它絕對是非常有前途的。每當你能夠充分隨機化模擬器時,它都是有希望的。因此,很高興看到該策略的閉環性質。你可以看到它會推動冰球,並且會非常非常輕柔地糾正冰球的方向,使其到達球門。是的,你看到了嗎?這太酷了。所以這是元學習的一個很酷的應用。

我想討論元學習的另一個應用,即學習動作的層次結構。這是Franz等人完成的工作。事實上,當時完成這項工作的實習生Kevin Franz還在讀高中。他寫了這篇論文。所以,有一件事情會很好,那就是強化學習是否是分層的。如果不是簡單地採取微小的動作,而是有一些可以部署的小子程序。也許子程序這個術語有點過時了,但如果你知道哪些動作原語是值得采用的,那將是非常有幫助的。現在,沒有人能夠證明分層強化學習確實帶來了真正的增值。到目前爲止,所有真正酷的結果、所有真正令人信服的強化學習結果都沒有使用它。那是因爲我們還沒有完全弄清楚強化學習、分層強化學習的正確方法是什麼。

我只想向您展示一種非常簡單的方法,在這種方法中,我們使用元學習來學習動作的層次結構。所以這就是你要做的。在這項具體的工作中,你有一定數量的低級原語。假設你有10個,並且你有任務分配。你的目標是學習低級原語,這樣當它們在一些強化學習算法的非常簡短的運行中使用時,你會取得儘可能多的進步。所以這個想法是你想要獲得最大程度的進步,你想要學習能夠帶來最大進步的策略,抱歉,你想要學習能夠帶來最大程度進步的原語。在學習過程中的應用中,我們面對的是一個元學習的場景,因爲你需要分配不同的任務。這裡有一個小型迷宮的例子。你面對的是一個迷宮分佈。在這種情況下,小蟲子學會了三種不同的策略,使其能夠朝着一個固定的方向移動。得益於這種層次化結構,你可以迅速地解決問題。但這隻有在層次結構設置得當時才成立。因此,分層強化學習是一個持續進行中的研究領域。這項研究是一個有趣的證明點,展示了分層強化學習的概念以及它在有效時的樣子。

現在,我想通過一張幻燈片來討論高容量元學習的侷限性。具體來說,訓練任務的分佈必須與測試任務的分佈相同。我認爲這是一個真正的限制,因爲實際上你想要學習的新任務在某些方面將與你迄今爲止所見的任務完全不同。例如,當你上學時,你會學到很多有用的東西。但當你開始工作時,你會發現只有一小部分所學知識是有用的,你需要從頭開始學習很多東西。因此,元學習面臨的問題在於它實際上假設訓練任務的分佈必須與測試任務的分佈相同。這是一個限制。我相信,隨着我們開發出更好的算法,使得在測試任務超出訓練任務分佈時仍能保持穩健,元學習的效果將會更好。

現在,我想談談自我對弈。我認爲自我對弈是一個非常酷的話題,現在纔開始引起人們的關注。我想首先回顧一下一項非常古老的研究,名爲TD Gammon。這項研究可以追溯到1992年,現在已經有26年的歷史了。這是由Jerry Tesauro完成的。這項工作非常不可思議,因爲它在今天仍然具有重要的意義。他們所做的基本上是,讓兩個神經網絡相互對弈,讓它們玩雙陸棋,並接受Q-learning訓練。這是一種非常現代的方法。你可能會以爲這是2017年的論文,但當你看到圖表顯示只有10個、20個、40個和80個隱藏單元的不同顏色時,你會發現最大的神經網絡效果最好。在某些方面,並沒有太多的變化,這就是證據。事實上,他們能夠在雙陸棋中擊敗世界冠軍,並發現了最優秀的人類雙陸棋玩家沒有注意到的新策略,他們確定TDGammon所涵蓋的策略實際上更好。這就是純粹的自我對弈Q-learning,它一直處於休眠狀態,直到與DeepMind的Atari合作出現DQN。

其他自我對弈的例子包括AlphaGo Zero,它能夠在不使用任何外部數據的情況下學會擊敗圍棋世界冠軍。這種思路的另一個成果是OpenAI的Dota 2機器人,它能夠在1v1版本的遊戲中擊敗世界冠軍。

所以我想花一點時間談談自我對弈的魅力以及爲什麼我認爲這令人興奮。當我們嘗試構建真正的智能系統時,我們必須面對的一個重要問題是任務是什麼?我們究竟在教系統做什麼?自我對弈的一個非常有吸引力的特點是主體創造了環境。通過代理在環境中的作用,環境對於其他智能體來說變得更加困難。這裡有一個鬣蜥和試圖吃掉它的蛇的互動的例子,這次蛇沒有成功。我們可以看到接下來會發生什麼。鬣蜥正在盡力而爲。實際上,蛇和鬣蜥之間的軍備競賽激勵了它們的發展,可能沒有界限。這就是在生物進化中實際發生的情況。

Carl Sims在1994年在這個方向上做了有趣的工作。YouTube上有一個由Carl Sims製作的非常酷的視頻。你應該去看看,這確實展示了他所做的所有工作。在這裡,代理之間存在一些競爭,你可以進化行爲和形態,當智能體試圖獲得綠色立方體的所有權時。所以你可以看到代理們互相創造了挑戰。這就是他們需要發展的原因。

所以我們做了一件事,這是OpenAI的Dan Salerno的工作,我們問自己,我們能否在自我對弈中展示一些不尋常的結果,讓我們真正相信其中存在某些東西?我們在這裡所做的是創建一個小環境,並有兩個人形角色。他們的目標只是將對方推出擂臺。他們對摔跤一無所知,他們對站立或相互平衡一無所知,他們對重心一無所知。他們只知道如果你做得不好,那麼你的競爭對手就會做得更好。

自我對弈真正有吸引力的一點是,你總是有一個與你實力相當的對手。爲了學習,你需要有時贏,有時輸。你不可能總是贏。有時你必須失敗,有時你必須成功。讓我們看看這裡會發生什麼。是的,綠色人形能夠擋住球。在一個平衡良好的自我對弈環境中,競爭始終是公平的。不管你的水平如何,你面臨的競爭對你來說都是恰到好處的挑戰。

哦,還有一件事。這個視頻展示了遷移學習。你帶着小摔跤人形,然後你把它的夥伴帶走了。然後你開始對它施加很大的隨機力,看看它是否能保持平衡。答案是,是的,它可以,因爲它經過了針對推動它的對手的訓練。這就是爲什麼,即使它不明白壓力施加在哪裡,它仍然能夠自我平衡。所以這是自我對弈環境的一個潛在的有吸引力的特徵,你可以學習一系列廣泛的技能,雖然技能的內容有點難以控制。

因此,這項研究最大的懸而未決的問題是,如何在自我對弈環境中學習代理,以便他們無論做什麼,但隨後他們能夠解決一系列對我們有用的任務,這些任務是外部明確指定的?

我還想強調一下我們在Dota機器人中觀察到的自我對弈環境的一個特點。也就是說,我們看到機器人的能力快速提高。因此,在大約五個月的時間裡,我們已經看到機器人從完全隨機地玩遊戲變成了現實,一路走向世界冠軍。原因是一旦你有了自我對弈的環境,如果你投入計算資源,你就可以將其轉化爲數據。自我對弈允許你將計算轉化爲數據。我認爲我們會認爲這是一件極其重要的事情,能夠將計算本質上轉化爲數據泛化,僅僅是因爲神經網絡處理器的速度將在未來幾年內顯著提高。因此,神經網絡循環將變得非常便宜,並且利用這些新發現的過量循環將變得非常重要。

現在,我還想談談自我對戰方法的結局。關於人類大腦,我們知道的一件事是它的大小在過去兩百萬年裡增長得非常快。我的理論是,這種現象發生的原因是因爲我們的祖先已經達到了一個點,在這個點上,對你的生存最重要的東西是你在部落中的地位,而不是老虎和獅子。在處理那些具有高度智能的其他實體時,擁有一個稍大的大腦確實有其優勢。我相信這正是我們所觀察到的現象。至少有一篇科學論文支持了這一點。顯然,社會性的靈長類動物和鳥類之間存在着一種趨同進化,儘管它們的行爲多種多樣,而且人類與鳥類在進化的時間線上早已分道揚鑣,人類、靈長類動物和鳥類的大腦結構也大相徑庭。因此,我認爲,如果我們能夠成功地沿着這條道路前進,我們應該能夠創造出一個具有語言和心智理論的主體社會,擁有談判、社交技巧、貿易、經濟、政治和司法系統。所有這些都應該在一個多代理體環境中發生。同時,我們還會面臨一致性問題,即如何確保我們所訓練的智能體按照我們所期望的方式運作。

現在,我想做一個推測性的題外話,即我想提出一個觀點。如果你認爲代理人社會是一個合理的場所,那裡可能會出現完全通用的智能,而且如果你接受我們在DotaBot方面的經驗,我們已經見證了能力的快速提升,那麼一旦所有細節都得到妥善處理,我們就可以繼續這種經驗。如果你假設這兩個條件成立,那麼我們應該看到我們的代理人在代理社會中生活時能力的迅速提升。

現在我們已經討論了一個有潛力提高能力並教授代理人社交技能和語言的有趣方法,以及許多真實存在於人類社會中的東西,我們想要探討的是如何向代理人傳達目標。向智能體傳達目標的問題是一個技術問題,但這一點非常重要,因爲我們所訓練的智能體最終可能會比我們更加聰明。這是Paul Christiano等人以及OpenAI安全團隊的工作。

因此,我將向您展示這段視頻,它基本上解釋了整個過程是如何運作的。你會看到一些你希望觀察到的行爲,作爲人類,你可以看到成對的行爲,並通過點擊來選擇看起來更好的那個。經過極少量的點擊,你就可以讓這個模擬的小腿做後空翻。在這個例子中,爲了獲得這種特定的行爲,人類註釋者需要點擊大約500次。

這個方法的工作原理是,你收集所有的點擊,這些點擊表明了一種行爲比另一種行爲更好。你需要擬合一個獎勵函數來滿足這些點擊,然後通過強化學習來優化這個獎勵函數。這種方法確實有效。因此,這需要大約500次信息輸入。我們還能夠使用數千次信息輸入來訓練大量的Atari遊戲。

在所有這些情況下,都有人類註釋者或評判,就像之前的幻燈片所示,他們查看成對的軌跡,然後點擊他們認爲更好的軌跡。這是一個不尋常目標的例子,在一場賽車遊戲中,目標是讓代理訓練白色汽車緊跟在橙色汽車後面。使用這種方法傳達目標非常簡單。

最後,對齊是一個技術問題,它必須得到解決。但當然,確定我們希望人工智能系統具有的正確目標將是一個非常具有挑戰性的政治問題。在此,我非常感謝您的關注,並想說今晚8點45分將在Cambridge Brewing Company舉行歡樂時光,如果你想更多地討論人工智能和其他話題,請加入我們。

=QnA環節=

關於反向傳播,雖然神經網絡是受生物啓發的,但反向傳播並不像是大腦中發生的事情,因爲大腦中的信號沿着軸突單向傳播,而反向傳播則需要將誤差沿着神經途徑傳回。這看起來大腦正在做一些與我們非常成功的算法有些不同的事情。一旦我們弄清楚大腦在做什麼,算法是否會得到改進?還是大腦確實在發送信號,儘管它沒有明顯的方法來做到這一點?

這是一個很好的問題。首先,我要說的是,真正的答案是我不知道,但我有我的看法。

所以,我要說兩件事。首先,如果我們同意反向傳播解決了迴路搜索問題,這個問題看起來像是一個極其根本的問題。出於這個原因,我認爲它不太可能消失。你也說得對,大腦顯然不會進行反向傳播,儘管已經有多種關於它如何進行反向傳播的建議。例如,Tim Lillicrap和其他人的研究已經證明,如果你學習一組不同的連接,它們可以用於反向傳遞,並且可以導致成功的學習。現在,這並沒有被從業者真正推向極限,因爲他們會說,我有tf.gradients,我不需要擔心這個。但你說得對,這是一個重要的問題,而且,有兩種可能的情況。所以我個人的觀點是,反向傳播將一直伴隨我們直到最後,在我們瞭解大腦如何運作之前,我們實際上將建立完全人類水平和超越的系統。這就是我所相信的,但是,當然,這是必須承認的差異。

你認爲Dota機器人與人類的對決公平嗎?考慮到系統的限制?

所以我想說,電腦在這樣的遊戲中最大的優勢之一就是它們顯然有更好的反應時間,儘管特別是在Dota中,頂級玩家的每秒點擊次數相當少,這與星際爭霸不同。星際爭霸是一個機械性非常重的遊戲,由於單位數量較多,所以頂級玩家他們只是一直點擊。而在Dota中,每個玩家只控制一個英雄,這大大減少了他們需要採取的行動總數。現在,精度仍然很重要。我認爲我們會發現,但我認爲真正會發生的是,我們會發現計算機在任何領域都具有優勢,或者更確切地說,每個領域。目前還沒有。

你是否認爲智能體的緊急行爲實際上是有指導的,因爲約束已經就位,所以它是被迫去發現這些,或者你認爲這實際上是某種東西非常新奇,哇,它實際上自己發現了這些。你實際上並沒有添加限制它的偏見。

所以毫無疑問,我們發現了新的策略,我可以分享一個軼事,我們的測試人員,我們有一個專業人士可以測試機器人,他和它對抗了很長時間,機器人會針對玩家(人類玩家)做各種各樣的事情,這些事情都很有效。然後在某個時候,該職業選手決定與更好的職業選手比賽,他決定模仿機器人正在做的事情之一,通過模仿,他能夠擊敗更優秀的職業選手。所以我認爲他發現的策略是真實的,這意味着,存在着非常真實的轉移,我想說,我認爲這意味着,因爲機器人發現的策略可以幫助人類,所以這意味着基本的遊戲玩法是密切相關的。

長期以來,我瞭解到強化學習的目的是確定一種策略,即選擇一個行動以最大化預期獎勵,正如你之前所述。你是否希望考慮可能獎勵的標準差?這個想法還合理嗎?

是的,我相信這是肯定的。我認爲這確實取決於具體的應用場景。追求最大化預期獎勵的一個原因是,設計算法時更爲簡便。因此,你可以寫下一個方程或公式,進行一些推導,最終得到一個看起來非常優雅的算法。現在,我確實認爲,在某些應用中,你永遠不希望犯錯,同時你也希望考慮標準偏差。但在實際操作中,似乎只考慮預期獎勵就能覆蓋大多數你想要應用這種方法的情況。謝謝你。

在上週的討論中,我們談到了動機,這與強化學習有很大的關聯。有些理論認爲,我們的動機實際上與與他人的聯繫和合作有關。我很好奇,我知道讓計算機玩競技遊戲非常流行,但是讓代理進行自我協作,比如在協作遊戲中,這有什麼用處呢?

是的,我認爲這是一個非常好的問題。我們可以從合作的演變中獲得一些啓示。我認爲我們最終會選擇合作,因爲合作比不合作對我們更有利。所以我認爲,如果你有一個足夠開放的遊戲,合作將成爲一種勝利策略。因此,我認爲無論我們是否願意,我們都將看到合作的出現。

你提到了模擬摩擦的複雜性。我想知道你是否認爲存在與人工智能相關的開放性複雜性理論問題,或者這只是尋找人類行爲良好近似的問題,即人類傾向於解決的問題類型。

是的,所以在複雜性理論方面,在非常基礎的層面上,我們知道無論我們運行什麼算法,它都會在某些硬件上非常有效地運行。這爲我們正在解決的問題的真實複雜性設定了一個相當嚴格的上限。從定義上講,我們正在解決的問題在複雜性理論上並不是特別困難。現在,也有很多問題出現,儘管我們所做的事情在複雜性理論上並不難,而且實際上,人類通常無法解決NP完全問題,但是,從神經網絡優化本身開始,我們對算法提出的許多優化問題在一般情況下都是棘手的。很容易爲具有少量神經元的神經網絡創建一系列數據集,使得找到全局最優解是NP完全問題。那麼,我們如何避免這個問題呢?好吧,無論如何我們都只是嘗試使用梯度下降,不知怎的它就起作用了。但是,毫無疑問,我們沒有解決真正困難的問題。所以,我希望這能回答你的問題。

似乎通向通用人工智能(AGI)的道路上一個重要的子問題是理解語言,而目前生成語言模型的狀況非常糟糕。您認爲生成語言模型最有成效的研究方向是什麼?

首先,我要說的是,你說的完全正確,我們在語言方面的情況還遠未達到理想狀態,儘管已經取得了一些進展。即使沒有任何特定的創新,僅僅是在更大的數據集上擴展現有模型也會取得驚人的效果。甚至不是更大的數據集,而是更大、更深的模型。例如,如果你訓練了一個具有一千層的語言模型,並且它是同一類型的層,我認爲這將是一個非常驚人的語言模型。我們還沒有達到那個階段,但我認爲這種情況很快就會改變。現在,我也同意你的觀點,即我們目前對深度學習的理解缺乏一些基本的東西,這使我們無法真正解決我們想要的問題。所以,我認爲其中一個問題,缺少的東西之一是,或者看起來顯然是錯誤的,事實是我們訓練一個模型,然後停止訓練,我們將其凍結。儘管真正的魔法發生在訓練過程中。魔法在於,如果你仔細想想,訓練過程是整個故事的真正通用部分,因爲你的TensorFlow代碼並不關心要優化哪個數據集。它只是說,給我數據集就行,我不在乎要解決哪個問題,我會解決所有問題。所以,能夠做到這一點感覺真的很特別,我認爲我們在測試時沒有利用它。很難推測我們不知道答案的事情,但我想說的是,僅僅訓練更大、更深的語言模型就會取得令人驚訝的效果,擴大規模。但我認爲,在測試時進行訓練和在測試時進行推理之類的事情將是性能的另一個重要提升。

謝謝你的演講。因此,現在解決強化學習問題的另一種有趣方法可能是採用進化策略。儘管它們有自己的侷限性,我想知道你在OpenAI是否正在從事相關的工作,以及你對它們的總體看法是什麼?

就目前而言,我認爲像進化策略這樣的方法對於強化學習來說並不是特別好。我認爲傳統的強化學習算法,尤其是大規模策略的算法,更爲有效。但如果你想進化出一個小而緊湊的實體,比如一段代碼,我認爲這將是一個值得認真考慮的方向。但是,開發一段有用的代碼是一個很酷的想法,它還沒有實現,所以在我們達到那個目標之前還有很多工作要做。

非常感謝你的到來。我的問題是,你提到確定正確的目標是一個政治問題。所以我想知道你是否可以詳細說明一下,然後你認爲我們可以採取什麼方法來實現這一目標?

好吧,我真的不能過多評論,因爲現在我們在OpenAI有一些人全職思考這個問題。我沒有足夠強烈的意見來發表任何明確的聲明。我所能說的是,在非常高的層面上,如果你進入未來,無論何時,或者,每當你建造一臺可以比人類做得更好的機器時,這將會發生,因爲大腦是物理的,它對社會的影響將是巨大且壓倒性的。即使你非常努力,這也是很難想象的。我認爲這意味着人們會非常關心,這就是我所暗示的,事實上這將是許多人會強烈關心的事情。而且,隨着自動駕駛汽車和更多自動化的影響逐漸增加,我認爲我們會看到更多的人關心。

我們是否需要擁有一個非常準確的物理世界模型,然後對其進行模擬,以便讓這些代理最終能夠進入現實世界並執行一些接近人類水平的智能任務?

這是一個很好的問題。所以我認爲如果是這樣的話,我們就有麻煩了。我非常確定這是可以避免的。所以具體來說,真正的答案必須是,看,你學會解決問題,你學會談判,你學會堅持,你在模擬中學到很多不同的有用的人生教訓。是的,你也學了一些物理。但隨後你就脫離了現實世界,你必須在某種程度上重新開始,因爲你的許多根深蒂固的假設將是錯誤的。這是目標之一,這就是我如此關心永不停止訓練的原因之一。你已經積累了知識,現在你進入了一個違反某些假設的環境,你繼續訓練,嘗試將新數據與舊數據聯繫起來。這是我們算法的一個重要要求,在一定程度上已經得到滿足,但還需要更多地滿足,這樣你就可以利用你所獲得的部分知識進入新的情況,繼續學習。一個直觀的例子是,你去學校,你學到有用的東西,然後你就去工作。它並不完美,它不是完全一樣的,但是你能夠應用你在學校學到的東西,並在工作中繼續學習和適應。對於你們這些學習了四年計算機科學的本科生來說,這段教育經歷並不會讓你們完全準備好掌握工作中所需瞭解的所有知識。它確實有助於你們的起步,但你們還需要學習許多新事物。這正是教育的本質。我認爲這是學校應該做的事情。

你們在演講的早期階段提到的一點是,強化學習風格的一個侷限性是缺乏自我組織能力。因此,你必須指導它何時做得好或做得不好。這在嘗試教導老鼠穿越迷宮時,實際上也是神經科學領域的一個問題。你必須人爲地指示它應該做什麼。那麼,既然我們在教學中已經面臨這個問題,你認爲未來的方向是什麼?你知道,這不僅僅是關於學習,還有教學的問題。你認爲這方面的研究進展如何?我們如何引入自我組織的概念?

我認爲,無疑,一件非常重要的事情是能夠通過觀察其他代理來推斷它們的目標和策略。這是一項基本技能,需要被學習並嵌入到代理中。比如,假設有兩個代理,一個代理正在執行某項任務,另一個代理觀察到這一行爲並認爲這非常酷,也希望能夠做到同樣的事情。然後它就會開始模仿。所以,我想說,這是在設定獎勵機制時的一個非常重要的組成部分。你觀察到他們的行爲,從而推斷出獎勵。現在我們有一個調節器,上面標有:“你看到他們在做什麼嗎?現在去嘗試做同樣的事情。”所以,據我所知,這是人類與其他動物的一個重要區別,我們模仿他人行爲的規模和範圍。

你介意我追問一個問題嗎?因此,這在競爭環境中如何運作是顯而易見的,但在任意任務中又是如何呢?比如我在上數學課,看到有人用特定的方式解決問題,我會想:“哦,這是一個很好的策略。也許我應該嘗試一下。”在非競爭環境中,這是如何運作的?

所以我認爲,這將是一個與競爭環境相區分的問題,但它也必須以某種方式融入系統中,也許是通過進化。如果你有其他代理在執行任務,他們產生了你所觀察到的數據,那麼真正理解你所看到的數據的唯一方法是推斷出代理的目標、策略以及他們的信念狀態。這對於與他們溝通也是至關重要的。如果你想與某人成功溝通,你必須瞭解他們的目標以及他們的信念和知識狀態。因此,我認爲你會發現,理解其他智能體在做什麼、推斷他們的目標、模仿他們以及與他們成功溝通之間存在着聯繫。

好的,讓我們爲伊利亞和愉快的時光熱烈鼓掌。謝謝。