0
本文作者: 楊曉凡 | 2018-03-05 10:29 |
雷鋒網(wǎng) AI 科技評論按:這篇文章來自 Eric Jang 的個(gè)人博客,雷鋒網(wǎng) AI 科技評論授權(quán)轉(zhuǎn)載。
我非常感謝王家興 (Jiaxing Wang) 把這個(gè)博客文章翻譯成中文。
當(dāng)我在閱讀機(jī)器學(xué)習(xí)相關(guān)文獻(xiàn)的時(shí)候, 我經(jīng)常思考這項(xiàng)工作是否 1)提高了模型的表達(dá)能力 2)使模型更易于訓(xùn)練 3)提高了模型的泛化性能。這樣的分類標(biāo)準(zhǔn)是我從我在 Google Brain 的同事 Jascha Sohl-Dickstein 那里借鑒來的,相關(guān)的術(shù)語在這篇文章有介紹。 我發(fā)現(xiàn)這樣的區(qū)分標(biāo)準(zhǔn)有助于我們確定一項(xiàng)研究工作(特別是理論方面的工作)如是何將人工智能的子領(lǐng)域(如機(jī)器人學(xué), 產(chǎn)生式模型, 自然語言處理等)融入到機(jī)器學(xué)習(xí)研究的整個(gè)大圖景里的[1]。
在這篇博文中, 我們討論當(dāng)前(截止到2017年11月)的機(jī)器學(xué)習(xí)研究:監(jiān)督學(xué)習(xí), 無監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)在這些方面的表現(xiàn)。談到模型的泛化性能的時(shí)候, 我把它分為兩類:“弱泛化”和 “強(qiáng)泛化” 。我將會(huì)在后面分別討論它們。 下表總結(jié)了我眼中的研究現(xiàn)狀:
非常感謝 Jascha Sohl-Dickstein 和 Ben Poole 為這篇博文提供反饋和修正。 感謝 Marcin Moczulski 關(guān)于回饋神經(jīng)網(wǎng)絡(luò)(RNN)訓(xùn)練難度的探討以及 Joaquin Ruales 對這篇博文的語法進(jìn)行更正。
這篇博文涵蓋了相當(dāng)寬泛的研究領(lǐng)域,僅表達(dá)我個(gè)人對相關(guān)研究的看法,不反映我的同事和公司的觀點(diǎn)。歡迎讀者進(jìn)行討論以及給出修改的建議, 請?jiān)谠u論中提供反饋或發(fā)送電子郵件給我。
----模型可以進(jìn)行什么樣的計(jì)算, 擬合多么復(fù)雜的函數(shù)?
模型的表達(dá)能力用來衡量參數(shù)化模型如神經(jīng)網(wǎng)絡(luò)的可以擬合的函數(shù)的復(fù)雜程度。深度神經(jīng)網(wǎng)絡(luò)的表達(dá)能力隨著它的深度指數(shù)上升, 這意味著中等規(guī)模的神經(jīng)網(wǎng)絡(luò)就擁有表達(dá)監(jiān)督、 半監(jiān)督、強(qiáng)化學(xué)習(xí)任務(wù)的能力[2]。 深度神經(jīng)網(wǎng)絡(luò)可以記住非常大的數(shù)據(jù)集就是一個(gè)很好的佐證。
神經(jīng)網(wǎng)絡(luò)幾乎可以表達(dá)所有的變量,連續(xù)的、離散的、實(shí)值的、復(fù)數(shù)的,甚至是隨機(jī)變量。近幾年在生成式模型和貝葉斯神經(jīng)網(wǎng)絡(luò)的研究中,利用深度神經(jīng)網(wǎng)絡(luò)取得了令人難以置信的好的結(jié)果。
最近在產(chǎn)生式模型研究上的突破證明了神經(jīng)網(wǎng)絡(luò)強(qiáng)大的表達(dá)能力:神經(jīng)網(wǎng)絡(luò)可以找到幾乎與真實(shí)數(shù)據(jù)難以分辨的極為復(fù)雜的數(shù)據(jù)流形(如音頻, 圖像數(shù)據(jù)的流形)。下面是NVIDIA研究人員提出的新的基于產(chǎn)生式對抗神經(jīng)網(wǎng)絡(luò)的模型的生成結(jié)果:
產(chǎn)生的圖像仍然不是很完美(注意不自然的背景),但是已經(jīng)非常好了。同樣的, 在音頻合成中,最新的WaveNet模型產(chǎn)生的音頻也已經(jīng)非常像人類了。
無監(jiān)督學(xué)習(xí)不僅僅限于產(chǎn)生式模型。 一些研究人員比如 Yann LeCun 將無監(jiān)督學(xué)習(xí)更名為「預(yù)測學(xué)習(xí)」:模型學(xué)習(xí)過去, 推理當(dāng)下,或者預(yù)測未來。但是, 由于大部分的無監(jiān)督學(xué)習(xí)關(guān)注于預(yù)測極其復(fù)雜的聯(lián)合分布(圖像,音頻), 我認(rèn)為產(chǎn)生式模型的能力是一個(gè)很好的無監(jiān)督學(xué)習(xí)中模型表達(dá)能力的評價(jià)基準(zhǔn)。
在強(qiáng)化學(xué)習(xí)中神經(jīng)網(wǎng)絡(luò)看起來也有足夠的表達(dá)能力。 很小的網(wǎng)絡(luò)(2個(gè)卷積層2個(gè)全連接層)就足夠解決 Atari 和 MuJoCo 控制問題了(雖然它們的訓(xùn)練還是一個(gè)問題,我們將在下一個(gè)部分討論)。
模型的表達(dá)能力本身并不是一個(gè)很有趣的問題:通過增加網(wǎng)絡(luò)層數(shù),增加連接等手段我們總可以獲得更強(qiáng)的表達(dá)能力。真正的問題在于我們要讓神經(jīng)網(wǎng)絡(luò)在訓(xùn)練和測試集上都有足夠的表達(dá)能力,而訓(xùn)練的難度仍被控制在可接受的范圍內(nèi)。 比如我們常常使用二維卷積來完成圖像分類任務(wù), 雖然一個(gè)比較深的全連接神經(jīng)網(wǎng)絡(luò)也有足夠的容量來記住整個(gè)訓(xùn)練集。
模型的表達(dá)能力問題是最容易的(增加一些層即可), 但同時(shí)也是最神秘的:我們無法找到一個(gè)很好的方法來度量對于一個(gè)給定的任務(wù)我們需要多強(qiáng)的(或什么類型的)表達(dá)能力。什么樣的問題會(huì)需要比我們現(xiàn)在用的神經(jīng)網(wǎng)絡(luò)大得多的網(wǎng)絡(luò)?為什么這些任務(wù)需要這么大量的計(jì)算?我們現(xiàn)有的神經(jīng)網(wǎng)絡(luò)是否有足夠的表達(dá)能力來表現(xiàn)像人類一樣的智能?要解決更加困難的問題的泛化問題會(huì)需要表達(dá)能力超級強(qiáng)的模型嗎?
人的大腦有比我們現(xiàn)在的大網(wǎng)絡(luò)(Inception-ResNet-V2 有大概 25e6 ReLU結(jié)點(diǎn))多很多數(shù)量級的「神經(jīng)節(jié)點(diǎn)」(1e11)。 這個(gè)結(jié)點(diǎn)數(shù)量上的差距已經(jīng)很巨大了, 更別提 ReLU 單元根本無法比擬生物神經(jīng)元。 一個(gè)生物神經(jīng)元及它的各種神經(jīng)遞質(zhì)、樹突、軸突可以時(shí)變地整合來自多達(dá) 10000 個(gè)其它神經(jīng)元的信號——它的表達(dá)能力之強(qiáng)令人難以置信。 蝗蟲只用的一個(gè)都要好。這樣強(qiáng)大的表達(dá)能力究竟是從何而來?又會(huì)發(fā)展到什么地步?我們還需要多少表達(dá)能力?
----給定一個(gè)有足夠表達(dá)能力的模型結(jié)構(gòu), 我能夠訓(xùn)練出一個(gè)好的模型嗎(找到好的參數(shù))
任何一個(gè)從數(shù)據(jù)中學(xué)習(xí)到一定功能的計(jì)算機(jī)程序都可以被稱為機(jī)器學(xué)習(xí)模型。在「學(xué)習(xí)」過程中, 我們在(可能很大的)模型空間內(nèi)搜索一個(gè)比較好的, 利用數(shù)據(jù)中的知識(shí)學(xué)到的模型來做決策。 搜索的過程常常被構(gòu)造成一個(gè)在模型空間上的優(yōu)化問題。
優(yōu)化的不同類型
通常, 特別是在深度學(xué)習(xí)中, 我們會(huì)定義一些標(biāo)量度量來評價(jià)模型的好壞, 然后使用數(shù)值優(yōu)化技術(shù)來使模型「變好」。
一個(gè)具體的例子:最小化平均交叉熵是訓(xùn)練神經(jīng)網(wǎng)絡(luò)分類圖像的標(biāo)準(zhǔn)方法。我們希望模型在訓(xùn)練集上的交叉熵?fù)p失達(dá)到最小時(shí), 模型在測試數(shù)據(jù)上可以以一定精度或召回來正確分類圖像。 通常我們不能直接優(yōu)化模型的評價(jià)指標(biāo)如分類精度(很明顯, 我們事先并沒有見過測試集), 但訓(xùn)練集上的替代函數(shù)比如交叉熵可以。
搜索好的模型(訓(xùn)練)最終會(huì)變?yōu)橐粋€(gè)優(yōu)化問題——沒有別的途徑! 但是有時(shí)候我們很難去定義優(yōu)化目標(biāo)。 在監(jiān)督學(xué)習(xí)中的一個(gè)經(jīng)典的例子就是圖像下采樣:我們無法定義一個(gè)標(biāo)量可以準(zhǔn)確反映出我們?nèi)搜鄹惺艿降南虏蓸釉斐傻摹敢曈X損失」。同樣地, 超分辨率圖像和圖像合成也非常困難,因?yàn)槲覀兒茈y把效果的好壞寫成一個(gè)標(biāo)量的最大化目標(biāo):想象一下, 如何設(shè)計(jì)一個(gè)函數(shù)來判斷一張圖片有多像一張真實(shí)的照片?事實(shí)上關(guān)于如何去評價(jià)一個(gè)產(chǎn)生式模型的好壞一直爭論到現(xiàn)在。
近年來最受歡迎的的方法是 「協(xié)同適應(yīng)」(co-adaptation)方法:它把優(yōu)化問題構(gòu)造成求解兩個(gè)相互作用演化的非平穩(wěn)分布的平衡點(diǎn)求解問題[3]。這種方法比較「自然」, 我們可以將它類比為捕食者和被捕食者之間的生態(tài)進(jìn)化過程。 捕食者會(huì)逐漸變得聰明, 這樣它可以更有效地捕獲獵物。然后被捕食者也逐漸變得更聰明以避免被捕食。兩種物種相互促進(jìn)進(jìn)化, 最終它們都會(huì)變得更加聰明。
產(chǎn)生式對抗神經(jīng)網(wǎng)絡(luò) GANs 就是這樣工作的, 這樣可以避免我們直接顯式地定義「人感知到的損失」目標(biāo)。同樣地, 強(qiáng)化學(xué)習(xí)中的競爭性自博弈也運(yùn)用了這個(gè)原則來學(xué)習(xí)到更豐富的行為方式。雖然現(xiàn)在沒有顯式定義的優(yōu)化目標(biāo), 這仍然是一個(gè)優(yōu)化問題, 機(jī)器學(xué)習(xí)實(shí)踐者可以使用熟悉的工具比如深度神經(jīng)網(wǎng)絡(luò), 隨機(jī)梯度下降來求解這些問題。
演化策略通常把優(yōu)化看作是仿真。用戶對模型群體指定一些動(dòng)力系統(tǒng), 在仿真過程中的每個(gè)時(shí)間步上, 根據(jù)動(dòng)力系統(tǒng)的運(yùn)行規(guī)則來更新模型群體。 這些模型可能會(huì)相互作用也可能不會(huì)。 隨著時(shí)間的演變, 系統(tǒng)的動(dòng)態(tài)特性可能會(huì)使模型群體最終收斂到好的模型上面。
David Ha所著的 《A Visual Guide to Evolution Strategies》 是一部非常好的演化策略在強(qiáng)化學(xué)習(xí)中應(yīng)用的教材(其中的「參考文獻(xiàn)和延伸閱讀」部分非常棒?。?/p>
研究現(xiàn)狀
監(jiān)督學(xué)習(xí)中前饋神經(jīng)網(wǎng)絡(luò)和有顯式目標(biāo)函數(shù)的問題已經(jīng)基本解決了(經(jīng)驗(yàn)之談, 沒有理論保障)。2015年發(fā)表的一些重要的突破(批歸一化 Batch Norm,殘差網(wǎng)絡(luò) Resnets,良好初始化 Good Init)現(xiàn)在被廣泛使用, 這使得前饋神經(jīng)網(wǎng)絡(luò)的訓(xùn)練變得非常容易。事實(shí)上, 數(shù)百層的深度網(wǎng)絡(luò)已經(jīng)可以把大的分類數(shù)據(jù)集的訓(xùn)練損失減小到零。關(guān)于現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)的硬件和算法基礎(chǔ)結(jié)構(gòu),參考這篇綜述文章。
回饋神經(jīng)網(wǎng)絡(luò)相對更加困難一些, 但是研究人員已經(jīng)取得了重大進(jìn)展。 現(xiàn)在我們不再把直接將 LSTM 放到一個(gè)復(fù)雜的機(jī)器人策略中并期望它取得良好效果看作是一件瘋狂的事情。這很令人難以置信, 回望 2014 年,還只有很少人相信可以訓(xùn)出好的 RNN 模型,而再前些年有很多工作指出 RNN 極其難以訓(xùn)練。有證據(jù)表明很多 RNN 結(jié)構(gòu)有相同的表達(dá)能力 , 模型最終效果的差異僅僅是由于一些結(jié)構(gòu)比另一些更加易于訓(xùn)練[4]。
無監(jiān)督學(xué)習(xí)的模型輸出常常大很多(并不是總是),比如,1024 x 1024 像素的圖片, 很長的語音和文本序列。很不幸, 這導(dǎo)致模型更加難以訓(xùn)練。
2017 年一個(gè)比較大的突破是對抗式生成網(wǎng)絡(luò)的訓(xùn)練難度大大下降了。 現(xiàn)在最受歡迎的改進(jìn)是在對抗式生成網(wǎng)絡(luò)原本的 Jensen-Shannon 距離目標(biāo)函數(shù)上進(jìn)行小的修正:最小二乘(least square), 帶間隔的絕對偏差(absolute deviation with magin)和使用 Wasserstein 距離 。 最近 NVIDA 的工作改進(jìn)了Wasserstein GAN 使之對很多超參, 比如 BN 的參數(shù)、網(wǎng)絡(luò)結(jié)構(gòu)等不再敏感。模型的穩(wěn)定性在實(shí)踐和工業(yè)應(yīng)用中非常重要:穩(wěn)定性讓我們相信它會(huì)和我們未來的研究思路和應(yīng)用相兼容??偟膩碇v, 這些成果令人振奮, 因?yàn)檫@證明了我們的產(chǎn)生網(wǎng)絡(luò)有足夠的表達(dá)能力來產(chǎn)生正確的圖像, 效果的瓶頸在于訓(xùn)練的問題——不幸的是對于神經(jīng)網(wǎng)絡(luò)來講我們很難辯別一個(gè)模型表現(xiàn)較差僅僅是因?yàn)樗谋磉_(dá)能力不夠還是我們沒有訓(xùn)練到位。
基于神經(jīng)網(wǎng)絡(luò)的含有離散隱變量的模型之前同樣難以訓(xùn)練,因?yàn)殡x散變量的蒙特卡洛梯度估計(jì)具有很大的方差。近些年含離散變量的模型在各種結(jié)構(gòu)中都有出現(xiàn),從對抗式生成網(wǎng)絡(luò)到語言模型到記憶增強(qiáng)網(wǎng)絡(luò)到強(qiáng)化學(xué)習(xí)。從模型的表達(dá)能力的角度來看離散的表示是非常有用的,而且我們現(xiàn)在可以非??煽康赜?xùn)練這些模型。
不幸的是, 即使在僅僅考慮可訓(xùn)練性,不考慮泛化的情況下, 強(qiáng)化學(xué)習(xí)也遠(yuǎn)遠(yuǎn)地落在了后面。在有多于一個(gè)時(shí)間步的環(huán)境中, 我們實(shí)際是在首先搜索一個(gè)模型, 這個(gè)模型在推理階段會(huì)最大化獲得的獎(jiǎng)勵(lì)。強(qiáng)化學(xué)習(xí)比較困難,因?yàn)槲覀円靡粋€(gè)外部的(outer loop)、僅僅依賴角色(agent)見過的數(shù)據(jù)的優(yōu)化過程來找到最優(yōu)的模型, 同時(shí)用一個(gè)內(nèi)部的(inner loop)、模型引導(dǎo)的最優(yōu)控制(optimal control)過程來最大化獲得的獎(jiǎng)勵(lì)。
最近我在一個(gè)連續(xù)的機(jī)器人控制任務(wù)上添加了一維,我的強(qiáng)化學(xué)習(xí)模型的效果就從超過 80% 降到了 10%。強(qiáng)化學(xué)習(xí)不僅難以訓(xùn)練, 而且非常不可靠!強(qiáng)化學(xué)習(xí)優(yōu)化目標(biāo)函數(shù)值的大小非常隨機(jī), 用不同的隨機(jī)種子, 我們甚至就不能得到相同的結(jié)果。 這樣我們只能報(bào)告使用不同的隨機(jī)種子多次試驗(yàn)下獎(jiǎng)勵(lì)曲線的平均值。不同環(huán)境下,實(shí)現(xiàn)同樣的算法我們經(jīng)常得到不同的結(jié)果, 因此強(qiáng)化學(xué)習(xí)文章中報(bào)告的結(jié)果我們也不能輕易完全相信。
這很諷刺, 強(qiáng)化學(xué)習(xí)的訓(xùn)練還是一個(gè)很大的問題,因?yàn)槲覀兩晕U(kuò)大一點(diǎn)問題的規(guī)模, 就不能在每次的實(shí)驗(yàn)中得到相同的結(jié)果。
如果我們把強(qiáng)化學(xué)習(xí)看作一個(gè)單純的優(yōu)化問題(先不考慮模型的泛化和復(fù)雜的任務(wù)), 這個(gè)問題同樣非常棘手。假設(shè)現(xiàn)在有一個(gè)環(huán)境, 只有在一個(gè)場景結(jié)束時(shí)才會(huì)有非常稀疏的獎(jiǎng)勵(lì)(例如:保姆照看孩子, 只有在父母回家時(shí)她才會(huì)得到酬勞)。動(dòng)作(action)的數(shù)量(和它相應(yīng)的環(huán)境輸出)會(huì)隨著場景的持續(xù)呈現(xiàn)指數(shù)性的增長, 而實(shí)際上這些動(dòng)作(action)序列中只有極少數(shù)的會(huì)導(dǎo)致成功。
因此, 要想估計(jì)模型優(yōu)化過程中任意一處的策略梯度, 我們都要采樣指數(shù)增長的動(dòng)作空間(action space)中的樣本來獲得一些對學(xué)習(xí)有用的信號。這就像是我們想要使用蒙特卡洛方法關(guān)于一個(gè)分布計(jì)算期望(在所有動(dòng)作序列上), 而這個(gè)分布集中于一個(gè)狄拉克函數(shù)(dirac delta distribution)(密度函數(shù)見下圖)。在建議分布(proposal distribution)和獎(jiǎng)勵(lì)分布(reward distribution)之間幾乎沒有重疊時(shí), 基于有限樣本的蒙特卡洛估計(jì)會(huì)失效,不管你采了多少樣本。
此外, 如果數(shù)據(jù)布不是平穩(wěn)的(比如我們采用帶有重放緩存 replay buffer 的離策略 off-policy 算法), 數(shù)據(jù)中的「壞點(diǎn)」會(huì)給外部的優(yōu)化過程(outer loop)提供不穩(wěn)定的反饋。
不從蒙特卡洛估計(jì)的角度, 而從優(yōu)化的角度來看的話:在沒有關(guān)于狀態(tài)空間的任何先驗(yàn)的情況下(比如對于世界環(huán)境的理解或者顯式地給角色 agent 一些明確的指示), 優(yōu)化目標(biāo)函數(shù)的形狀(optimization landscape)看起來就像「瑞士芝士」——一個(gè)個(gè)凸的極值(看作小孔)周圍都是大面積的平地,這樣平坦的「地形」上策略梯度信息幾乎沒用。這意味著整個(gè)模型空間幾乎不包含信息(非零的區(qū)域幾乎沒有,學(xué)習(xí)的信號在整個(gè)模型空間里是均勻的)。
如果沒有更好的表示方法,我們可能就僅僅是在隨機(jī)種子附近游走,隨機(jī)采樣一些策略,直到我們幸運(yùn)地找到一個(gè)恰好落在「芝士的洞里」的模型。事實(shí)上,這樣訓(xùn)練出的模型效果其實(shí)很好。這說明強(qiáng)化學(xué)習(xí)的優(yōu)化目標(biāo)函數(shù)形狀很有可能就是這樣子的。
我相信像 Atari 和 MuJoCo 這樣的強(qiáng)化學(xué)習(xí)基準(zhǔn)模型并沒有真正提高機(jī)器學(xué)習(xí)的能力極限, 雖然從一個(gè)單純優(yōu)化問題來看它們很有趣。這些模型還只是在一個(gè)相對簡單的環(huán)境中去尋找單一的策略來使模型表現(xiàn)得更好, 沒有任何的選擇性機(jī)制讓他們可以泛化。 也就是說, 它們還僅僅是單純的優(yōu)化問題, 而不是一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)問題。
考慮強(qiáng)化學(xué)習(xí)的泛化性(而不僅僅是訓(xùn)練)會(huì)讓解釋和調(diào)試變得更加復(fù)雜, 但是我認(rèn)為讓角色真正理解環(huán)境和任務(wù)目標(biāo),獲得泛化的能力是讓強(qiáng)化學(xué)習(xí)在真實(shí)世界的機(jī)器人系統(tǒng)中可以工作的唯一途徑。
在監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)中, 不管我們當(dāng)前在模型空間的什么位置,我們可以很容易地獲取到學(xué)習(xí)的信號。批(batch)數(shù)據(jù)梯度給出的建議分布和真實(shí)的梯度分布總會(huì)有重疊。如果我們使用批大?。╞atch size)為 1 的隨機(jī)梯度下降方法, 那么在最差情況下我們采樣到得到有用的訓(xùn)練信號的轉(zhuǎn)移的概率是 1/N,N 是數(shù)據(jù)集的大?。ㄟ@樣每一代的訓(xùn)練都會(huì)可靠地讓模型變好)。為了找到一個(gè)較好的模型, 我們可以暴力地送入更多的數(shù)據(jù)或增加訓(xùn)練代數(shù)。此外, 通過在低層特征上的「自舉」(bootstrapping), 提高低層的感知泛化很可能還有減小方差的效果。
要想解決更高維,更復(fù)雜的強(qiáng)化學(xué)習(xí)問題, 在解決數(shù)值優(yōu)化問題之前,我們必須先考慮模型的泛化和一般的感性認(rèn)知能力。反之就會(huì)愚蠢地浪費(fèi)計(jì)算力和數(shù)據(jù)(當(dāng)然這可能會(huì)讓我們明白僅僅通過暴力計(jì)算我們可以做得多好)。 我們要讓每個(gè)數(shù)據(jù)點(diǎn)都給強(qiáng)化學(xué)習(xí)提供訓(xùn)練信息,也需要能夠在不用指數(shù)增長的數(shù)據(jù)時(shí)就能通過重要性采樣(importance sampling)獲得非常復(fù)雜的問題的梯度。只有在這樣的情況下, 我們才能確保通過暴力計(jì)算我們可以獲得這個(gè)問題的解。
示范學(xué)習(xí)(learning from demonstration)、 模仿學(xué)習(xí)(imitation learning)、逆向強(qiáng)化學(xué)習(xí)(inverse reinforcement learning)以及用自然語言進(jìn)行交互學(xué)習(xí)可能會(huì)快速地讓初始策略可以得到訓(xùn)練信號(得到一個(gè)好的初始化), 或者改變搜索空間的形狀使得每個(gè)場景片段(episode)都可以提供有效的信息來訓(xùn)練策略(policy) (比如說,不給予獎(jiǎng)勵(lì),但是角色的觀察會(huì)提供一些信息來幫助模型進(jìn)行規(guī)劃, 使之傾向于做某些有意義的動(dòng)作)
最后做一個(gè)總結(jié):監(jiān)督學(xué)習(xí)的訓(xùn)練比較容易。 無監(jiān)督學(xué)習(xí)的訓(xùn)練相對困難但是已經(jīng)取得了很大的進(jìn)展。但是對于強(qiáng)化學(xué)習(xí),訓(xùn)練還是一個(gè)很大的問題。
在這三個(gè)問題中, 泛化性能是最深刻的,也是機(jī)器學(xué)習(xí)的核心問題。簡單來講, 泛化性能用來衡量一個(gè)在訓(xùn)練集上訓(xùn)練好的模型在測試集上的表現(xiàn)。
泛化問題主要可以分為兩大類:
1) 訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)來自于同一個(gè)分布(我們使用訓(xùn)練集來學(xué)習(xí)這個(gè)分布)。
2)訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)來自不同的分布(我們要讓在訓(xùn)練集上學(xué)習(xí)的模型在測試集上也表現(xiàn)良好)。
通常我們把(1)稱為「弱泛化」,把(2)稱為「強(qiáng)泛化」。我們也可以把它們理解為「內(nèi)插(interpolation)」和「外推(extrapolation)」,或「魯棒性(robustness)」與「理解(understanding)」。
弱泛化:考慮訓(xùn)練集與測試集數(shù)據(jù)服從兩個(gè)類似的分布
----如果數(shù)據(jù)的分布發(fā)生了較小的擾動(dòng), 模型還能表現(xiàn)得多好?
在「弱泛化」中,我們通常假設(shè)訓(xùn)練集和數(shù)據(jù)集的數(shù)據(jù)分布是相同的。但是在實(shí)際問題中,即使是「大樣本」(large sample limit)情況下,二者的分布也總會(huì)有些許差異。
這些差異有可能來源于傳感器噪聲、物體的磨損、周圍光照條件的變化(可能攝影者收集測試集數(shù)據(jù)時(shí)恰好是陰天)。對抗樣本的出現(xiàn)也可能導(dǎo)致一些不同,對抗的擾動(dòng)很難被人眼分辨,因此我們可以認(rèn)為對抗樣本也是從相同的分布里采出來的。
因此,實(shí)踐中把「弱泛化」看作是評估模型在「擾動(dòng)」的訓(xùn)練集分布上的表現(xiàn)是有用的。
數(shù)據(jù)分布的擾動(dòng)也會(huì)導(dǎo)致優(yōu)化目標(biāo)函數(shù)(optimization landscape)的擾動(dòng)。
不能事先知道測試數(shù)據(jù)的分布為我們優(yōu)化帶來了一些困難。如果我們在訓(xùn)練集上優(yōu)化得過于充分(上圖藍(lán)色曲線左邊的最低的局部極小點(diǎn)), 我們會(huì)得到一個(gè)在測試集上并不是最好的模型(紅色曲線左邊的局部極小點(diǎn))。 這時(shí), 我們就在訓(xùn)練集上過擬合(overfitting)了, 模型在測試集上沒有很好地泛化。
「正則化」包含一切我們用來防止過擬合的手段。我們一點(diǎn)都不知道測試集分布的擾動(dòng)是什么,所以我們只能在訓(xùn)練集或訓(xùn)練過程中加入噪聲,希望這些引入的噪聲中會(huì)包含測試集上的擾動(dòng)。隨機(jī)梯度下降、隨機(jī)剪結(jié)點(diǎn)(dropout)、權(quán)值噪聲(weight noise)、 激活噪聲(activation noise)、 數(shù)據(jù)增強(qiáng)等都是深度學(xué)習(xí)中常用的正則化技術(shù)。在強(qiáng)化學(xué)習(xí)中,隨機(jī)仿真參數(shù)(randomizing simulation parameters)會(huì)讓訓(xùn)練變得更加魯棒。張馳原在 ICLR2017 的報(bào)告中認(rèn)為正則化是所有的可能「增加訓(xùn)練難度」的方法(而不是傳統(tǒng)上認(rèn)為的「限制模型容量」)??偟膩碇v,讓優(yōu)化變得困難一些有助于模型的泛化。
這很令人不安,我們的「泛化」方法太粗糙了,僅僅相當(dāng)于一個(gè)「優(yōu)化阻礙器」。我們基本就是給優(yōu)化器制造一點(diǎn)障礙,干擾訓(xùn)練過程讓它剛剛好可以防止過擬合。還有,更好的訓(xùn)練會(huì)犧牲模型的泛化性能,用這種觀點(diǎn)看待泛化問題會(huì)讓模型的可訓(xùn)練性的研究非常困難。
但是如果更好的優(yōu)化會(huì)導(dǎo)致過擬合,那我們又怎么解釋一些優(yōu)化過程可以同時(shí)降低訓(xùn)練集和測試集上的誤差?事實(shí)上任何一個(gè)優(yōu)化器和優(yōu)化目標(biāo)的組合總會(huì)維持一個(gè) 1)在模型空間中找到更好的模型, 2)過擬合到某一個(gè)特定解 二者的平衡?,F(xiàn)在我們還沒有辦法去控制這個(gè)平衡。
對于弱泛化最大的挑戰(zhàn)可能就是對抗攻擊了。 對抗方法會(huì)產(chǎn)生對模型最糟糕的的干擾,在這些擾動(dòng)下模型會(huì)表現(xiàn)得非常差。 我們現(xiàn)在還沒有對對抗樣本魯棒的深度學(xué)習(xí)方法, 但是我感覺這個(gè)問題最終會(huì)得到解決[5]。
現(xiàn)在有一些利用信息論的工作表明在訓(xùn)練過程中神經(jīng)網(wǎng)絡(luò)會(huì)明顯地經(jīng)歷一個(gè)由 「記住」數(shù)據(jù)到」壓縮」數(shù)據(jù)的轉(zhuǎn)換。這種理論正在興起,雖然仍然有關(guān)于這種理論是不是真的有效的討論。請關(guān)注這個(gè)理論,這個(gè)關(guān)于「記憶」和」壓縮」的直覺是令人信服的。
強(qiáng)泛化:自然流形
在強(qiáng)泛化范疇,模型是在完全不同的數(shù)據(jù)分布上進(jìn)行評估的, 但是數(shù)據(jù)來自于同一個(gè)流形(或數(shù)據(jù)產(chǎn)生過程)
如果測試數(shù)據(jù)分布于訓(xùn)練數(shù)據(jù)分布「完全不同」,我們?nèi)绾蝸碛?xùn)練一個(gè)好的模型呢?實(shí)際上這些數(shù)據(jù)都來自同一個(gè)「自然數(shù)據(jù)流形」(natural data manifold)。只要來源于同一個(gè)數(shù)據(jù)產(chǎn)生過程,訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)仍然含有很多的信息交疊。
現(xiàn)實(shí)可觀察的數(shù)據(jù)可以被看作來源于一個(gè)非常高維的,不斷變化的「自然流形」。一個(gè)數(shù)據(jù)元組(一段敲鈸的的視頻,敲鈸發(fā)出的聲音)是這個(gè)流形上的一個(gè)點(diǎn)。數(shù)據(jù)元組(一段敲鈸的視頻,蛙鳴的聲音)就不是這個(gè)流形上的點(diǎn)——這樣的數(shù)據(jù)元組不符合現(xiàn)實(shí)。正如你感覺到的,這個(gè)自然流形非常巨大,它也是高度結(jié)構(gòu)化的。例如,我們觀察到的所有的數(shù)據(jù)都要遵循物理規(guī)律如重力定律,物體不會(huì)突然出現(xiàn),也不會(huì)突然消失等等。
強(qiáng)泛化可以看作是模型可以多好地學(xué)到這個(gè)「超級流形」,訓(xùn)練這個(gè)模型只使用了流形上的很小一部分樣本。一個(gè)圖像分類器不需要去發(fā)現(xiàn)麥克斯韋方程組——它只需要理解與流形上的數(shù)據(jù)點(diǎn)相一致的事實(shí)。
在 ImageNet 上訓(xùn)練的現(xiàn)代分類器已經(jīng)基本上可以做到強(qiáng)泛化了。模型已經(jīng)可以理解基礎(chǔ)的元素比如邊緣、輪廓以及實(shí)體。這也是為什么常常會(huì)把這些分類器的權(quán)值遷移到其它數(shù)據(jù)集上來進(jìn)行少樣本學(xué)習(xí)(few shot learning)和度量學(xué)習(xí)(metric learning)。這樣的遷移還有提升空間:在 ImageNet 上訓(xùn)練的分類器不是完全通用的,少樣本學(xué)習(xí)任務(wù)還沒有被解決,對抗樣本仍然會(huì)造成很大干擾 。很明顯,我們的模型還不能像人類一樣明白它在看什么,但這是個(gè)開始。
和弱泛化一樣,我們可以對抗地采樣測試集來讓它的數(shù)據(jù)分布與訓(xùn)練集盡量不同。AlphaGo Zero 是我最喜歡的例子:在測試階段,它看到的是與它在訓(xùn)練階段完全不一樣的, 來自人類選手的數(shù)據(jù)。此外,人類選手也在盡力把 AlphaGo Zero 帶到它在訓(xùn)練時(shí)從未見過的地方。雖然 AlphaGo Zero 不能明確地理解抽象的數(shù)學(xué)、對弈心理學(xué)或者綠色是什么意思, 但是很明顯它在圍棋這個(gè)領(lǐng)域理解得很好,足夠擊敗人類選手。 如果一個(gè)人工智能系統(tǒng)可以在有經(jīng)驗(yàn)的人類的干擾下穩(wěn)定地工作, 我認(rèn)為它具有了足夠的強(qiáng)泛化能力。
遺憾的是, 強(qiáng)化學(xué)習(xí)的研究忽略了強(qiáng)泛化問題。 大部分的基準(zhǔn)都基于靜態(tài)的環(huán)境, 沒有多少認(rèn)知的內(nèi)容(比如人型機(jī)器人只知道一些關(guān)節(jié)的位置可能會(huì)帶來獎(jiǎng)勵(lì), 而不知道它的它的世界和它的身體是什么樣子的)。
我相信解決強(qiáng)化學(xué)習(xí)可訓(xùn)練性問題的關(guān)鍵在于解決泛化性。我們的學(xué)習(xí)系統(tǒng)對世界的理解越多,它就更容易獲得學(xué)習(xí)的信號可能需要更少的樣本。這也是為什么說少樣本學(xué)習(xí)(few shot learning)、模仿學(xué)習(xí)(imitation learning)、學(xué)習(xí)如何學(xué)習(xí)(learning to learn)重要的原因了:它們將使我們擺脫采用方差大而有用信息少的暴力求解方式。
我相信要達(dá)到更強(qiáng)的泛化,我們要做到兩件事:
首先我們需要模型可以從觀察和實(shí)驗(yàn)中積極推理世界基本規(guī)律。符號推理(symbolic reasoning)和因果推理(causal inference)看起來已經(jīng)是成熟的研究了, 但是對任何一種無監(jiān)督學(xué)習(xí)可能都有幫助。 我想起了人類通過邏輯推理系統(tǒng)(數(shù)學(xué))推導(dǎo)宇宙物理規(guī)律來理解天體運(yùn)行。有趣的是, 在哥白尼的革命之前, 人類最初可能依賴某種貝葉斯式的啟發(fā)(「迷信」),當(dāng)我們發(fā)現(xiàn)經(jīng)典力學(xué)以后,這些」貝葉斯」式的模型就被拋棄了。
我們的基于模型的機(jī)器學(xué)習(xí)方法(試圖去「預(yù)測」環(huán)境的模型)現(xiàn)在正處于哥白尼革命之前的時(shí)期:它們僅僅是膚淺地基于一些統(tǒng)計(jì)原理進(jìn)行內(nèi)插,而不是提出深刻的,一般性的原理來解釋和推斷可能在數(shù)百萬光年以外或很久遠(yuǎn)的未來的事情。注意人類不需要對概率論有很好的掌握就能推導(dǎo)出確定性的天體力學(xué),這就產(chǎn)生了一個(gè)問題:是否有可能在沒有明確的統(tǒng)計(jì)框架下進(jìn)行機(jī)器學(xué)習(xí)和因果推理?
讓我們的學(xué)習(xí)系統(tǒng)更具適應(yīng)性可以大大降低復(fù)雜性。我們需要訓(xùn)練可以在線實(shí)時(shí)地思考、記憶、學(xué)習(xí)的模型,而不僅僅是只能靜態(tài)地預(yù)測和行動(dòng)的模型。
其次, 我們需要把足夠多樣的數(shù)據(jù)送給模型來促使它學(xué)到更為抽象的表示。只有環(huán)境里有非常豐富的內(nèi)容,正確的表示才能被發(fā)掘出來(AlphaGo Zero 就提出了角色需要使用自然流形中多少的數(shù)據(jù),才能具有一定的理解能力的問題)。沒有這些限制的話,學(xué)習(xí)本身就是欠定義的,我們能夠恰好找到一個(gè)好的解的可能性也非常小。 也許如果人類不能站起來看到天空,就不會(huì)想要知道為什么星星會(huì)以這樣奇怪的橢圓形軌跡運(yùn)行,也就不會(huì)獲得智慧。
我想知道三體文明(出自小說《三體》)擁有如此高的技術(shù)水平是不是因?yàn)樗麄兊纳?jì)取決于他們復(fù)雜的天體力學(xué)的理解。也許我們也應(yīng)該在我們的 Mujoco 和 Bullet 環(huán)境中加入一些天體運(yùn)行(微笑)。
腳注:
[1] 有一些研究領(lǐng)域不能被歸入表達(dá)能力, 訓(xùn)練難度和泛化性能的框架內(nèi)。比如說可解釋性研究試圖去解釋為什么一個(gè)模型會(huì)有特定的行為。不僅僅是高風(fēng)險(xiǎn)領(lǐng)域(醫(yī)療、執(zhí)法)的機(jī)器學(xué)習(xí)技術(shù)用戶關(guān)心這些研究,可解釋性也能幫助解決泛化性問題:如果我們發(fā)現(xiàn)模型提供的診斷的方式或根據(jù)與一個(gè)人類醫(yī)學(xué)專家非常不同,這很可能意味著我們的模型的推理方式并不能夠泛化。確定你的模型學(xué)到了正確的東西比僅僅獲得低的測試誤差更為重要。差分隱私是另一個(gè)我們對機(jī)器學(xué)習(xí)模型的要求。這些話題超出了本文討論的范疇。
[2] 簡單地解釋為什么會(huì)這樣:一個(gè)包含N個(gè)神經(jīng)元的 ReLU 全連接層會(huì)把一個(gè)線性空間切分成 N 個(gè)分段連續(xù)的部分。 再加一個(gè) ReLU 層會(huì)再次切分, 產(chǎn)生 N^2 個(gè)分段線性部分, 三層就會(huì)是 N^3 個(gè)等等。詳細(xì)的分析參見 Raghu et al. 2017.
[3] 這有時(shí)候會(huì)被稱為多層次優(yōu)化問題,它含有一個(gè)「外部」和一個(gè)「內(nèi)部」優(yōu)化過程,而協(xié)同適應(yīng)是同時(shí)進(jìn)行的。比如一個(gè)機(jī)器上并發(fā)進(jìn)程的異步通信,或者生態(tài)系統(tǒng)中相互影響的物種進(jìn)化。在這些例子中,沒有明確的「外部」和「內(nèi)部」優(yōu)化過程。
[4] 序列-序列注意力機(jī)制模型(seq2seq with attention)在剛被提出的時(shí)候達(dá)到了當(dāng)時(shí)最好的水平, 但是我懷疑帶有注意力機(jī)制只是讓模型變得易于訓(xùn)練而不是增加模型的表達(dá)能力和泛化能力??赡軉渭兊男蛄?序列模型在有好的初始化情況下也可以做得一樣好。
[5] 一個(gè)緩解對抗攻擊的想法,雖然無助于解決強(qiáng)泛化問題:讓計(jì)算對抗擾動(dòng)的代價(jià)變得極其高昂。模型和數(shù)據(jù)都是黑盒子。在推理期間每次調(diào)用模型時(shí), 從訓(xùn)練好的模型中隨機(jī)挑選一個(gè)送給對抗者而不告訴他們是哪一個(gè)模型。模型的訓(xùn)練彼此獨(dú)立甚至可以用不同的架構(gòu)。 這使得計(jì)算有限差分梯度變得很困難因?yàn)?f(x+dx)-f(x) 可以有任意大的方差。此外,由于我們采樣不同的模型,連續(xù)模型梯度之間的梯度也會(huì)有很大的方差。另一種可行的方案就是使用多模態(tài)數(shù)據(jù)(視頻、 多視角、圖像+聲音), 對抗攻擊者很難在擾動(dòng)輸入的同時(shí)保持不同模態(tài)輸入的一致性。
(完)
轉(zhuǎn)載自《Expressivity, Trainability, and Generalization in Machine Learning》@ https://blog.evjang.com
相關(guān)文章:
UC 伯克利優(yōu)化理論教授談深度學(xué)習(xí):為了可解釋性,我們可能需要犧牲一些模型表現(xiàn)
實(shí)踐入門NLP:基于深度學(xué)習(xí)的自然語言處理
深度學(xué)習(xí)的爆發(fā)要?dú)w功給誰?Yann LeCun、Fran?ois Chollet各執(zhí)一詞
既要深度學(xué)習(xí)又要符號化推理,DeepMind 新 JAIR 論文小試牛刀
上海交大盧憲凱系列公開課:計(jì)算機(jī)視覺概述和深度學(xué)習(xí)簡介 | 分享總結(jié)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。