編者按:Microsoft Semantic Machines資深研究科學(xué)家、UC Berkeley計算機(jī)科學(xué)博士Jacob Andreas指出,神經(jīng)網(wǎng)絡(luò)不應(yīng)視為模型,因為神經(jīng)網(wǎng)絡(luò)的模型和推理過程不可分割。應(yīng)該將推理過程視為機(jī)器學(xué)習(xí)問題的一等公民。
在大多數(shù)介紹人工智能的材料中,模型和推理過程的區(qū)分很關(guān)鍵。例如,HMM(隱馬爾可夫模型)是一類模型;維特比算法則是用于推理過程的一種算法,前向傳播算法是另一種推理算法,粒子濾波又是一種推理算法。
很多人將神經(jīng)網(wǎng)絡(luò)描述為一類模型(他們大概也把神經(jīng)網(wǎng)絡(luò)視作模型)。我主張這種觀點(diǎn)很有誤導(dǎo)性,將神經(jīng)網(wǎng)絡(luò)看成糾纏不清的模型-推理對(model-inference pairs)會更有用?!澳P?推理對”是一個長而拗口的詞,看起來現(xiàn)在也沒有什么很好的現(xiàn)成的簡稱,因此我將用模推(monferences)來指代這一概念。我主張我們應(yīng)該將神經(jīng)網(wǎng)絡(luò)視為模推的一個例子。(搭配某種特定的HMM參數(shù)的維特比算法的一種實現(xiàn),同樣是模推。)
我將引用一些現(xiàn)有的論文,這些論文自然而然地符合將神經(jīng)網(wǎng)絡(luò)視為模推這一視角——看起來這一想法對許多人來說已經(jīng)是顯然的了。但我認(rèn)為這一想法未曾被命名,也未曾經(jīng)過系統(tǒng)的處理。我希望其他人會像我一樣,覺得下面的內(nèi)容是有用的(或者至少厘清了一些東西)。
將神經(jīng)網(wǎng)絡(luò)視作模型的后果是什么?讓我舉一個自己的例子來說明:
我第一次看到循環(huán)神經(jīng)網(wǎng)絡(luò)的時候,我覺得“這是一個有趣的模型,搭配一個糟糕的推理過程”。循環(huán)網(wǎng)絡(luò)看起來像HMM。HMM有離散的隱藏狀態(tài),而循環(huán)網(wǎng)絡(luò)有隱藏狀態(tài)向量。在HMM中進(jìn)行推理時,我們保持和輸出分布相一致的隱藏狀態(tài),但在循環(huán)網(wǎng)絡(luò)中進(jìn)行推理時,我們僅僅保持單個向量——單個假設(shè),加上貪婪推理過程。如果采用某種建模不確定性的方法,不是更好嗎?為什么不像卡爾曼濾波一樣對待RNN推理?
這完全錯了。探索為什么這是錯的,正是本文剩下部分的目標(biāo)。
簡單來說,將循環(huán)網(wǎng)絡(luò)的隱藏狀態(tài)視作單個假設(shè)是毫無理由的。畢竟,一個足夠大的隱藏向量可以輕而易舉地表示前向傳播算法中的整張概率表——甚至可以表示粒子濾波的狀態(tài)。“HMM隱藏狀態(tài) = RNN隱藏狀態(tài)”這一類比不好;“HMM解碼器狀態(tài) = RNN隱藏狀態(tài)”這一類比更好。
讓我們通過實驗來探索這一點(diǎn)。(本節(jié)中的完整代碼見git.io/fN91L)。
我隨機(jī)生成了一個HMM,從中取樣了一組序列,并應(yīng)用經(jīng)典的最小化風(fēng)險過程。最終得到的“在線標(biāo)簽”精確度為62.8。
針對這一在線標(biāo)簽問題,另一種完全可以接受(但某種程度上更費(fèi)力)的生成模推的方法是從HMM中抽取更多樣本,然后使用(觀測, 隱藏)序列作為RNN網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)(x, y):
(其中每個箭頭表示內(nèi)積加ReLU激活或log損失)。這一情形下取得的精確度為62.8。
兩個精確度是一樣的,這僅僅是個巧合?讓我們查看一些預(yù)測:
所以,甚至當(dāng)兩個模推犯錯的時候,都犯了一樣的錯。
當(dāng)然,我們知道,就這一問題而言,如果我們應(yīng)用完整的前向-后向算法,并且同樣做出最大化邊際概率的預(yù)測,能得到稍好的結(jié)果。改進(jìn)的經(jīng)典過程得到的精確度為63.3。如我們所料,這比上面兩種在線模型的表現(xiàn)要好。另一方面,在取自HMM的樣本上訓(xùn)練一個雙向循環(huán)網(wǎng)絡(luò)同樣得到63.3的精確度。
預(yù)測取樣:
注意,我們這里使用的神經(jīng)網(wǎng)絡(luò)沒有編碼任何關(guān)于經(jīng)典消息傳遞的規(guī)則,并且絕對沒有編碼任何HMM內(nèi)部的生成過程。然而在兩種情形下,神經(jīng)網(wǎng)絡(luò)都成功取得了和結(jié)構(gòu)相同的經(jīng)典消息傳遞過程一樣好(但沒有更好)的精確度。實際上,該神經(jīng)訓(xùn)練過程相當(dāng)于一段代碼,這段代碼和前向-后向算法做出一致的預(yù)測,卻對前向-后向算法毫無所知!
神經(jīng)網(wǎng)絡(luò)不是魔法——當(dāng)我們的數(shù)據(jù)實際上是由HMM生成的時候,我們無法指望神經(jīng)模推擊敗(信息論上最優(yōu)的)經(jīng)典模推。但經(jīng)驗告訴我們,兩者的表現(xiàn)一樣好。隨著我們增強(qiáng)神經(jīng)架構(gòu),以匹配更強(qiáng)大的經(jīng)典推理過程的算法結(jié)構(gòu),它們的表現(xiàn)提升了。雙向循環(huán)網(wǎng)絡(luò)優(yōu)于前向循環(huán)網(wǎng)絡(luò);每個“真”隱藏向量間具有多層的雙向網(wǎng)絡(luò)(arXiv:1602.08210)可能在一些任務(wù)上表現(xiàn)更好。
更妙的是,我們也許可以少操心更困難的情形,也就是原本需要手工調(diào)整某種逼近推理方案的情形。(例如:假設(shè)我們的轉(zhuǎn)移矩陣是一個巨大的排列組合。在經(jīng)典推理中,重復(fù)相乘可能非常昂貴,而嘗試取得轉(zhuǎn)移矩陣的低秩逼近則會損失信息。而一個神經(jīng)模推卻具備緊湊地表達(dá)模型動力學(xué)的潛力。)
目前為止我們討論的是序列,但在更多結(jié)構(gòu)化數(shù)據(jù)上同樣存在對應(yīng)。就樹形問題而言,我們可以應(yīng)用某種類似固定樹上的內(nèi)向算法(aclweb/P13-1045),或者整個稀疏化解析表上的內(nèi)向-外向算法(aclweb/D15-1137)。而對任意圖而言,我們可以應(yīng)用“圖卷積”(arXiv:1509.09292),隨著圖卷積的重復(fù),它開始看起來像是置信傳播。
這里有一條一般原則:任何保持離散狀態(tài)分布的推理算法,都可以轉(zhuǎn)換:
將表單元或離散分布替換為向量
將單元間的信息替換為循環(huán)網(wǎng)絡(luò)
展開“推理”過程(選擇一個合適的迭代數(shù))
通過反向傳播進(jìn)行訓(xùn)練
所得的模推至少和相應(yīng)的經(jīng)典過程具備同樣的表達(dá)能力。在有必要逼近的地方,我們可以(至少從經(jīng)驗上說)通過在數(shù)據(jù)上端到端地訓(xùn)練,學(xué)習(xí)正確的逼近。
這種通過反向傳播逼近推理過程,但并不嘗試學(xué)習(xí)推理函數(shù)本身的想法已經(jīng)提出了有一段時間了。(doi/10.1.1.207.9392、 arXiv:1508.02375)
我認(rèn)為結(jié)合這一框架的各部分至少可以寫一篇句法分析的論文,而圖結(jié)構(gòu)數(shù)據(jù)方面還有很多工作可以做。
我說明了模推這一角度是有用的。但是果真如此嗎?神經(jīng)網(wǎng)絡(luò)確實是模推,而不是模型,這有準(zhǔn)確的意義嗎?
不。這里有一個基礎(chǔ)性的可識別問題——我們無法真正區(qū)分“酷炫的模型搭配微不足道的推理”和“神秘的模型搭配復(fù)雜的推理”。因此,給定訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),詢問它進(jìn)行推理的模型是哪個同樣毫無意義。另一方面,通過蒸餾法訓(xùn)練的神經(jīng)網(wǎng)絡(luò)(arXiv:1503.02531)看起來倒挺像“同一模型,不同模推”的良好人選。同時,將神經(jīng)網(wǎng)絡(luò)視作模型這一角度也不應(yīng)該完全忽略:它形成了成果累累的系列工作,將CRF中的對數(shù)線性回歸模型替換為神經(jīng)網(wǎng)絡(luò)(arXiv:1507.03641)。盡管這些方法通常的賣點(diǎn)之一是“你可以保留動態(tài)程序”,我們之前論證了這一點(diǎn)在恰當(dāng)組織的神經(jīng)網(wǎng)絡(luò)上同樣成立。
不管怎么說,由于機(jī)器學(xué)習(xí)社區(qū)這一角落的研究重點(diǎn)在向計劃、推理和困難算法問題(nips2015/4G4h)轉(zhuǎn)變,我認(rèn)為將神經(jīng)網(wǎng)絡(luò)視作模推的角度將占統(tǒng)治地位。
除此以外,當(dāng)我們回顧十年前的“深度學(xué)習(xí)革命”時,我認(rèn)為最重要的經(jīng)驗教訓(xùn)是端到端訓(xùn)練解碼器的重要性和推理過程,甚至在幾乎看起來完全不像是神經(jīng)網(wǎng)絡(luò)的系統(tǒng)(arXiv:1601.01705)中也是如此。所以在創(chuàng)建學(xué)習(xí)系統(tǒng)的時候,不要問:“我的變量的概率關(guān)系是什么?”而問:“我如何逼近我的問題的推理函數(shù)?”,并嘗試直接學(xué)習(xí)這一逼近。為了高效地達(dá)成這一點(diǎn),我們可以使用我們所知道的關(guān)于經(jīng)典推理過程的一切知識。不過,我們同時也應(yīng)該開始將推理視作學(xué)習(xí)問題的一等公民。
感謝Matt Gormley(他的EMNLP演講讓我開始思考這一問題),以及Robert Nishihara和Greg Durrett的反饋。
同樣感謝Jason Eisner的金玉良言:“一個拙劣的混成詞,因為monference應(yīng)該是一個像model一樣的可數(shù)名詞,但它的后綴卻取自inference這個集合名詞。我可沒說infedel要好太多……”
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4772瀏覽量
100808 -
人工智能
+關(guān)注
關(guān)注
1791文章
47314瀏覽量
238652 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8420瀏覽量
132687
原文標(biāo)題:神經(jīng)網(wǎng)絡(luò)不應(yīng)視為模型,推理過程當(dāng)為機(jī)器學(xué)習(xí)問題一等公民
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論