當(dāng)前位置:首頁(yè) > 智能硬件 > 人工智能AI
[導(dǎo)讀] 想挑戰(zhàn)馮·諾依曼,就必須從三個(gè)要素入手:基本操作,例如加減乘除;邏輯流程控制,例如if-else-then,for,while;設(shè)存儲(chǔ)器,內(nèi)存和硬盤(pán)的尋址。DeepMind團(tuán)隊(duì)認(rèn)為

想挑戰(zhàn)馮·諾依曼,就必須從三個(gè)要素入手:基本操作,例如加減乘除;邏輯流程控制,例如if-else-then,for,while;設(shè)存儲(chǔ)器,內(nèi)存和硬盤(pán)的尋址。DeepMind團(tuán)隊(duì)認(rèn)為,馮·諾依曼體系中的邏輯流程控制和外設(shè)存儲(chǔ)器使用,都必須在程序中寫(xiě)死,而不能通過(guò)觀察范例,自動(dòng)生成程序。

2016年10月27日 “Nature” 期刊第538卷,發(fā)表了Google旗下的DeepMind團(tuán)隊(duì)寫(xiě)的人工智能的論文,題目是 “Hybrid compuTIng using a neural network with dynamic external memory” [1],用配置了動(dòng)態(tài)外部存儲(chǔ)的神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)雜交計(jì)算。這篇論文介紹了DifferenTIable Neural Computer的實(shí)現(xiàn)細(xì)節(jié)。

DeepMind團(tuán)隊(duì)在倫敦工作,2014年被Google收購(gòu)。DeepMind開(kāi)發(fā)的AlphaGo,2016年年初戰(zhàn)勝了圍棋高手李世乭。

早在2014年12月,DeepMind團(tuán)隊(duì)發(fā)表了一篇論文,“Neural Turing Machines” [2]。后來(lái),他們對(duì)Neural Turing Machines (NTM)的存儲(chǔ)管理方式做了改進(jìn),命名為DifferenTIable Neural Computer(DNC)。DifferenTIable是可訓(xùn)練的意思,尤其是可以用gradient descent的算法來(lái)訓(xùn)練。

馮·諾依曼體系

當(dāng)今世界,所有計(jì)算機(jī)的體系,都源自于馮·諾依曼于1945年設(shè)計(jì)的體系,馮·諾依曼體系有三大要素:

基本操作,例如加減乘除。

邏輯流程控制,例如if-else-then,for,while。

外設(shè)存儲(chǔ)器,內(nèi)存和硬盤(pán)的尋址。

想挑戰(zhàn)馮·諾依曼,就必須從這三個(gè)要素入手。DeepMind團(tuán)隊(duì)認(rèn)為,馮·諾依曼體系中的邏輯流程控制和外設(shè)存儲(chǔ)器使用,都必須在程序中寫(xiě)死,而不能通過(guò)觀察范例,自動(dòng)生成程序。

如果把程序理解為把輸入x轉(zhuǎn)換為輸出y的函數(shù)f(),y = f(x),那么neural network就是模擬任何函數(shù)的通用模型f^()。

但是早期的neural network有兩個(gè)軟肋:

不能實(shí)現(xiàn)variable binding,也就是說(shuō),f() 的內(nèi)部參數(shù),不能隨著輸入x的不同而改變。

不能實(shí)現(xiàn)variable-length structure,也就是說(shuō),輸入x和輸出y的維度都是定長(zhǎng)的,不能改變。

早期neural network的這兩個(gè)軟肋,都不難修補(bǔ)。譬如循環(huán)神經(jīng)網(wǎng)絡(luò)Recurrent Neural Network(RNN),就解決了這兩個(gè)問(wèn)題。換而言之,RNN是Turing-complete的,可以用來(lái)模擬任何函數(shù),當(dāng)然也可以模擬任何程序的功能。

既然馮·諾依曼體系的三大要素中的兩個(gè),基本操作和邏輯流程控制,都能夠被RNN模擬,假如RNN也能夠解決存儲(chǔ)管理的問(wèn)題,那么整個(gè)馮·諾依曼體系,就都能夠被RNN來(lái)實(shí)現(xiàn)了。所以 Differentiable Neural Computer (DNC)的工作重點(diǎn),在于存儲(chǔ)管理。

[3] 深入淺出地解釋了用RNN來(lái)管理存儲(chǔ)的原理。建議先讀 [3],再讀 [2],最后讀 [1]。需要特別注意的,個(gè)人體會(huì)有幾個(gè)方面,1. 存儲(chǔ)的設(shè)置,2. 尋址機(jī)制,3. 需要訓(xùn)練哪些參數(shù),4. 如何把DNC應(yīng)用到Graph操作中。

存儲(chǔ)的設(shè)置

[3] 把NTM/DNC的存儲(chǔ)設(shè)置解釋為the memory is an array of vectors,也就是一個(gè)矩陣,每一行就是一個(gè)vector,每行的vector的長(zhǎng)度一致,所有行集結(jié)起來(lái)就是array。在文中的例子中,[3] 把memory簡(jiǎn)化為an array of scalar, 也就是N行單列的矩陣,每一行只存儲(chǔ)一個(gè)數(shù)值。

什么時(shí)候需要存儲(chǔ)向量呢?如果存儲(chǔ)里存放的是圖像,那么每個(gè)存儲(chǔ)單元上存儲(chǔ)的是一個(gè)像素(r,g,b),像素就是一個(gè)向量,三個(gè)bytes組成的向量。

但是如果需要存儲(chǔ)的是一篇文章,每個(gè)存儲(chǔ)單元上需要存儲(chǔ)一個(gè)詞,而每個(gè)詞的長(zhǎng)度不同,怎么辦?三篇文章都沒(méi)有說(shuō),但是簡(jiǎn)單的辦法有二。

每個(gè)存儲(chǔ)單元上,預(yù)留足夠長(zhǎng)的vector,遇到很短的詞,空著的byte就全部填0。

把每個(gè)詞,無(wú)論長(zhǎng)短,都轉(zhuǎn)換為詞向量,詞向量的長(zhǎng)度定長(zhǎng)。第二個(gè)辦法就是其它論文中說(shuō)的encoding的辦法。

另外要注意的是,存儲(chǔ)矩陣的行數(shù)可能很多。想象一下,把一部長(zhǎng)篇小說(shuō)存放到存儲(chǔ)矩陣?yán)?,每個(gè)詞都占用一行,需要占用存儲(chǔ)矩陣的多少行。

尋址機(jī)制

DNC改進(jìn)了NTM的尋址機(jī)制。NTM的尋址機(jī)制是content-based和location-based的混搭。為什么需要改進(jìn)呢?原因有三。

NTM不能保障多個(gè)存儲(chǔ)單元之間,不相互重疊,不相互干擾。dynamic memory allocation: allocate a free space

NTM不能釋放存儲(chǔ)單元,如果處理很長(zhǎng)的序列時(shí),譬如處理一部超長(zhǎng)的長(zhǎng)篇小說(shuō),搞不好所有存儲(chǔ)都會(huì)被占滿,導(dǎo)致系統(tǒng)崩潰。dynamic memory allocation: free gates

如果連續(xù)做幾個(gè)讀寫(xiě)操作,它們所使用的存儲(chǔ)單元的位置,最好是相鄰的。但是在NTM中,一旦某個(gè)讀寫(xiě)操作,遠(yuǎn)遠(yuǎn)跳到其它存儲(chǔ)區(qū)域,那么后續(xù)操作也跟著去其它區(qū)域,而且失憶,想不起來(lái)原先的存儲(chǔ)區(qū)域在哪里。temporal link matrix

DNC的尋址機(jī)制,把讀操作和寫(xiě)操作分開(kāi)。DNC用content-based和dynamic memory allocation的混搭方式,處理寫(xiě)操作。用content-based和temporal memory linkage的混搭方式,處理讀操作。

1. content-based尋址:

比較需要處理的目標(biāo)vector,與存儲(chǔ)矩陣中每一行的vector,用余弦距離來(lái)計(jì)算兩者相似性。取存儲(chǔ)矩陣中,與目標(biāo)vector距離最短的行。

計(jì)算余弦距離時(shí),需要一個(gè)系數(shù)向量,beta,這個(gè)系數(shù)向量是被訓(xùn)練出來(lái)的。

2. dynamic memory allocation存儲(chǔ)單元分配:

每一個(gè)存儲(chǔ)單元,都是等長(zhǎng)的vector。當(dāng)每一個(gè)存儲(chǔ)單元被free的時(shí)候,整個(gè)vector中的每一個(gè)element,都可以用來(lái)寫(xiě)入新數(shù)據(jù)。但是當(dāng)一個(gè)vector中有若干elements已經(jīng)被占用時(shí),剩下的elements還可以被寫(xiě)入新數(shù)據(jù)。

想象一下,如果每個(gè)vector的長(zhǎng)度是100,又如果某個(gè)vector里,已經(jīng)寫(xiě)入了一個(gè)不長(zhǎng)的詞,但是還有剩余的elements,這些剩余的elements可以用于給這個(gè)詞做詞性標(biāo)注等等。但是如果剩余的elements不多,那么詞性標(biāo)注只好被寫(xiě)到其它行的vector里。

DNC設(shè)計(jì)了一個(gè)存儲(chǔ)單元占用向量u。u(i) = 0時(shí)第i行的vector中,所有element都可以被寫(xiě)入新數(shù)據(jù),而當(dāng)u(i) = 1時(shí)第i行的vector中所有elements都已經(jīng)被占用了。

但是如果存儲(chǔ)矩陣中有兩行,i和j,分別有完全相同的elements可以被寫(xiě)。誰(shuí)先被寫(xiě),取決于權(quán)重向量wt。wt體現(xiàn)了存儲(chǔ)使用的策略,策略既可以是盡可能寫(xiě)入最新釋放的存儲(chǔ)單元,也可以盡可能寫(xiě)入內(nèi)容相似,而且沒(méi)有被完全占用的存儲(chǔ)單元。這個(gè)權(quán)重向量wt,是可以根據(jù)被訓(xùn)練出來(lái)的。

3. Temporal memory linkage讀寫(xiě)時(shí)序的關(guān)聯(lián):

Dynamic memory allocation沒(méi)有記錄歷次寫(xiě)操作時(shí),loc(t) 發(fā)生在哪個(gè)存儲(chǔ)單元,以及l(fā)oc(t+1) 發(fā)生在哪個(gè)存儲(chǔ)單元。而記錄歷次寫(xiě)操作的存儲(chǔ)單元的位置順序,是有用的。

DNC用N^2的方陣,來(lái)記錄temporal link,其中L(i, j) 記錄著t時(shí)寫(xiě)操作發(fā)生在存儲(chǔ)單元j,而t+1時(shí)寫(xiě)操作發(fā)生在存儲(chǔ)單元i的概率。L(i, j) 可以是簡(jiǎn)單的統(tǒng)計(jì)結(jié)果,也可以是加權(quán)的統(tǒng)計(jì)結(jié)果,權(quán)重體現(xiàn)了控制策略。權(quán)重是可以被訓(xùn)練出來(lái)的。

當(dāng)N很大的時(shí),理論上來(lái)說(shuō)L方陣會(huì)占用很多空間。但是鑒于L方陣很稀疏,很多L(i, j) 等于0。根據(jù)DeepMind團(tuán)隊(duì)的估算,L實(shí)際占用空間只有O( N ),計(jì)算成本只有O( N * Log N )。

需要訓(xùn)練哪些參數(shù)?

除了讀寫(xiě)操作、以及尋址操作中的幾個(gè)權(quán)重向量以外,還有作為controller的RNN的參數(shù)。RNN可以選擇結(jié)構(gòu)比較簡(jiǎn)單的neuralnet work,也可以選擇結(jié)構(gòu)更復(fù)雜的LSTM。選用LSTM意味著有更多參數(shù),需要被訓(xùn)練。

訓(xùn)練數(shù)據(jù)通常不包含讀寫(xiě)操作發(fā)生在哪個(gè)存儲(chǔ)空間上的信息。譬如NTM中,Priority Sort實(shí)驗(yàn)的訓(xùn)練數(shù)據(jù),是一連串(輸入,理想輸出)pairs。每個(gè)pair中的輸入,是20個(gè)向量,每個(gè)向量伴隨著priority打分。每個(gè)pair中的理想輸出,是從輸入的20個(gè)向量中,挑選出來(lái)的16個(gè),并且按priority得分排序。

注意,訓(xùn)練數(shù)據(jù)中不包含讀寫(xiě)操作在哪些存儲(chǔ)單元上進(jìn)行的信息。

把DNC應(yīng)用到Graph操作中

文中把DNC用于在倫敦地鐵中,尋找兩站之間最佳路線。坐地鐵本身不重要,重要的是如果RNN學(xué)會(huì)使用Graph以后,能做什么?假如Graph不是地鐵,而是social graph呢?又假如是knowledge graph呢?

參考文獻(xiàn):

[1] Graves, Alex, et al. "Hybrid computing using a neural network with dynamic external memory." Nature 538.7626 (2016): 471-476.

[2] Graves, Alex, Greg Wayne, and Ivo Danihelka. "Neural turing machines." arXiv preprint arXiv:1410.5401 (2014).

[3] Chris Olah & Shan Carter, “Attention and Augmented Recurrent Neural Networks”, Distill, 2016.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉