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