近期,DeepMind發(fā)表論文,稱(chēng)受Marta Garnelo和 Murray Shanahan的論文“Reconciling deep learning with symbolic artificial intelligence: representing objects and relations”啟發(fā),他們提出了一種新的架構(gòu),可將目前人工智能的兩大流派符號(hào)派和神經(jīng)網(wǎng)絡(luò)派相結(jié)合,并取得良好效果。但是對(duì)于如此重要的論文,在國(guó)內(nèi)的主流技術(shù)論壇上竟然沒(méi)有什么的解讀與評(píng)論,經(jīng)過(guò)了兩天的研究,筆者先將我對(duì)PrediNet的一些成果發(fā)布出來(lái),供各位參考。
人工智能的兩大流派的優(yōu)劣比較
人工智能主要分為符號(hào)流、神經(jīng)網(wǎng)絡(luò)、遺傳等幾個(gè)流派,目前是神經(jīng)網(wǎng)絡(luò)和符號(hào)流比較占上峰,但是由于幾個(gè)流派間基本前提不盡相同,如何將幾個(gè)流派的思想整合,一直是個(gè)比較難以解決的問(wèn)題,這里簡(jiǎn)要介紹一下符號(hào)和神經(jīng)網(wǎng)絡(luò)兩大流派。
符號(hào)流派認(rèn)為,一組對(duì)象之間存在關(guān)系可以用符號(hào)表示,符號(hào)的組合(and, or, not,等等),可以參與推理過(guò)程,但是在DeepMind之前,符號(hào)與邏輯推理的關(guān)系都是通過(guò)專(zhuān)家人工指定的,而不是通過(guò)對(duì)計(jì)算機(jī)進(jìn)行訓(xùn)練獲取相應(yīng)的模型。
神經(jīng)網(wǎng)絡(luò)學(xué)派則是受到神經(jīng)元之間相互連接的作用為啟發(fā),尤其是以神經(jīng)網(wǎng)絡(luò)為代表的算法,其實(shí)是先隨機(jī)給予每個(gè)神經(jīng)元一個(gè)權(quán)重(weights),然后通過(guò)與最終結(jié)果的比較,不斷訓(xùn)練得到最終的模型。
神經(jīng)網(wǎng)絡(luò)學(xué)派的優(yōu)勢(shì)是在海量數(shù)據(jù)處理及預(yù)測(cè)方面表現(xiàn)非常好,/root但是其模型復(fù)用性不強(qiáng),比如識(shí)別人臉的模型只能用于訓(xùn)練人臉,而不能用來(lái)識(shí)別人手或者貓臉等其它特征;而符號(hào)學(xué)派的命題型結(jié)論可以推廣,但是由于過(guò)于依賴(lài)人力,所以發(fā)展緩慢。
PrediNet結(jié)合兩大流派思想的方式
在PrediNet引用的論文“Reconciling deep learning with symbolic artificial intelligence: representing objects and relations”提出了這樣一種架構(gòu),先由Relation Network處理,其中Relation(關(guān)系)是由one-hot向量表示的,也就是每個(gè)relation都是彼此獨(dú)立的,彼此不相關(guān),比如性別中的男、女就是彼此獨(dú)立的,用one-hot向量表示就是(0,1)和(1,0),而如果這時(shí)把他們放入同一維度表示為1和2,就會(huì)出現(xiàn)一些問(wèn)題,因?yàn)?和2在數(shù)學(xué)就有倍數(shù)關(guān)系存在相關(guān)性了。如果讀者不好理解,可以把relation簡(jiǎn)單理解為符號(hào)(symbol),輸入序列經(jīng)過(guò)關(guān)系網(wǎng)絡(luò)(Relation Network)的處理,輸出給MLP(多層感知機(jī)),得到最終輸出。
這次DeepMind提出的PrediNet方案,與之前的架構(gòu)不盡相同,輸入先經(jīng)過(guò)CNN(卷積神經(jīng)網(wǎng)絡(luò))處理,再由PrediNet處理,最后由MLP(多層感知機(jī))進(jìn)行輸出如下圖所示,讀者可以把PrediNet看做是一個(gè)管道,連接在CNN和MLP之間。而實(shí)驗(yàn)的結(jié)果也說(shuō)明,PrediNet訓(xùn)練完成后是可以被復(fù)用到的。
所以劃重點(diǎn),這次 DeepMind 提出的 PrediNet 是一種可以被神經(jīng)網(wǎng)絡(luò)派算法所使用的管道層,而且 PrediNet 這個(gè)管道層還具備一定的通用性。
PrediNet的工作原理簡(jiǎn)述
PrediNet其實(shí)是一種降維的手段,將高維數(shù)據(jù)(如圖像)轉(zhuǎn)換為低維的命題表示形式。這里先把論文的原文翻譯一下:
PrediNet的工作分為三個(gè)階段:注意、綁定和評(píng)估。注意階段,其實(shí)就是使用注意力算法選取對(duì)象,綁定階段用計(jì)算一組三個(gè)位置關(guān)系的前兩個(gè),評(píng)估階段計(jì)算每個(gè)謂詞剩余參數(shù)的值,使結(jié)果命題為真。
具體地講,PrediNet模塊由k個(gè)頭組成,每個(gè)頭計(jì)算對(duì)象對(duì)之間的j個(gè)關(guān)系。對(duì)于給定的輸入L,每個(gè)頭h使用共享權(quán)重的WS,計(jì)算相同的關(guān)系集合,但是每個(gè)頭h都基于匹配鍵查詢(xún)(key-query matching)的點(diǎn)積(dot-product)注意力算法,去選取對(duì)象序列的。
每個(gè)頭h計(jì)算一對(duì)單獨(dú)的查詢(xún)Qh 1和Qh 2(通過(guò)Wh Q1和Wh Q2),但是key space K(由WK定義)在heads之間共享。將得到的注意力掩碼(attention mask)對(duì)直接應(yīng)用于L,得到E1和E2,再將E1和E2由一個(gè)線性映射(Ws)到一維空間,將繼續(xù)送入一個(gè)元素比較器(element-wise comparation),得到一個(gè)差分向量D, 最后,將所有k個(gè)頭的輸出連接起來(lái),得到最終的向量R。向量R是表示k個(gè)頭和j個(gè)關(guān)系的PrediNet模塊的最終輸出。
cmake --build .
這里我做一下解釋?zhuān)紫萈rediNet將工作分配N(xiāo)個(gè)HEAD去完成,其中每個(gè)HEAD使用了兩個(gè)獨(dú)立的WQ和WQ2以及一個(gè)共享的KEY,基于匹配鍵查詢(xún)(key-query matching)的點(diǎn)積(dot-product)注意力算法得到一個(gè)掩碼(mask),這也就是注意階段,然后將掩碼()mask)應(yīng)用到輸入L上,得到E1和E2,這也就是綁定階段。接下來(lái)使用WS對(duì)于E1和E2將降維,送入比較器得到D,并結(jié)合所有HEAD得到最終結(jié)果。
如果要深入理解PrediNet,其實(shí)關(guān)鍵是要理解基于WQ(實(shí)際上是查詢(xún)),WK(實(shí)際是鍵值)的匹配鍵查詢(xún)的點(diǎn)積注意力算法(key-query matching dot-product),不過(guò)鑒于博主這種技術(shù)前沿的解讀與分享閱讀量一直很低,所以也就不再展開(kāi)了。不過(guò)如果本篇閱讀能超過(guò)520的表白秘笈(https://blog.csdn.net/BEYONDMA/article/details/90300624),那么下周我就來(lái)繼續(xù)分享注意力算法的相關(guān)內(nèi)容。
-
人工智能
+關(guān)注
關(guān)注
1793文章
47566瀏覽量
239415 -
神經(jīng)元
+關(guān)注
關(guān)注
1文章
363瀏覽量
18486 -
DeepMind
+關(guān)注
關(guān)注
0文章
131瀏覽量
10901
原文標(biāo)題:AlphaGo之父DeepMind再出神作,PrediNet原理詳解
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論