0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是神經(jīng)算術(shù)邏輯單元?

電子工程師 ? 來源:未知 ? 作者:胡薇 ? 2018-08-07 08:27 ? 次閱讀

眾所周知,神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)如何表示和處理數(shù)字式信息,但是如果在訓(xùn)練當(dāng)中遇到超出可接受的數(shù)值范圍,它歸納信息的能力很難保持在一個(gè)較好的水平。為了推廣更加系統(tǒng)化的數(shù)值外推,我們提出了一種新的架構(gòu),它將數(shù)字式信息表示為線性激活函數(shù),使用原始算術(shù)運(yùn)算符進(jìn)行運(yùn)算,并由學(xué)習(xí)門控制。我們將此模塊稱為神經(jīng)算術(shù)邏輯單元(NALU),類似于傳統(tǒng)處理器中的算術(shù)邏輯單元。實(shí)驗(yàn)表明,增強(qiáng)的NALU神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)時(shí)間追蹤,使用算術(shù)對(duì)數(shù)字式圖像進(jìn)行處理,將數(shù)字式信息轉(zhuǎn)為實(shí)值標(biāo)量,執(zhí)行計(jì)算機(jī)代碼以及獲取圖像中的目標(biāo)個(gè)數(shù)。與傳統(tǒng)的架構(gòu)相比,我們?cè)谟?xùn)練過程中不管在數(shù)值范圍內(nèi)還是外都可以更好的泛化,并且外推經(jīng)常能超出訓(xùn)練數(shù)值范圍的幾個(gè)數(shù)量級(jí)之外。

▌簡(jiǎn)介

對(duì)數(shù)值表示和處理的能力在許多物種中普遍可見,這表明基本的定量推理是智力的一個(gè)組成部分。雖然神經(jīng)網(wǎng)絡(luò)可以在給定適當(dāng)?shù)膶W(xué)習(xí)信號(hào)的情況下成功地表示和處理數(shù)值量,但它們的學(xué)習(xí)行為缺乏系統(tǒng)的泛化。具體而言,當(dāng)測(cè)試階段的數(shù)值超出了訓(xùn)練階段的數(shù)值范圍,即使目標(biāo)函數(shù)很簡(jiǎn)單也會(huì)導(dǎo)致出錯(cuò)。這表明學(xué)習(xí)行為的特點(diǎn)是記憶而不是系統(tǒng)抽象。

在本文中,我們?cè)O(shè)計(jì)了一個(gè)偏向于學(xué)習(xí)系統(tǒng)數(shù)值計(jì)算的新模塊,該模塊可以與標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)結(jié)合使用。我們的策略是將數(shù)值表示為無非線性的單個(gè)神經(jīng)元,其中這些單值神經(jīng)元采用的是類似于加減乘除的運(yùn)算符來表示,運(yùn)算符由參數(shù)來控制。

神經(jīng)網(wǎng)絡(luò)中的數(shù)值外推失效

為了說明標(biāo)準(zhǔn)網(wǎng)絡(luò)中的系統(tǒng)性失效,我們展示了各種MLPs在學(xué)習(xí)標(biāo)量恒等函數(shù)的表現(xiàn)。圖1表明即使采用簡(jiǎn)單的框架,所有非線性函數(shù)都無法學(xué)習(xí)到超出訓(xùn)練范圍外的數(shù)量表示。

圖1 MLPs在學(xué)習(xí)標(biāo)量恒等函數(shù)時(shí)的表現(xiàn)

▌神經(jīng)累加器和神經(jīng)算術(shù)邏輯單元

本文,我們提出了兩種能夠?qū)W習(xí)以系統(tǒng)的方式去表示和處理數(shù)字式信息的模型。第一種模型有支持對(duì)積累量進(jìn)行累加的能力,這是線性外推的理想偏置項(xiàng)。該模型構(gòu)成了第二個(gè)模型的基礎(chǔ),即支持乘法外推。此模型還闡述了如何將任意算術(shù)函數(shù)的偏置項(xiàng)有效地融合到端到端模型中。

第一個(gè)模型是神經(jīng)累加器(NAC),它是線性(仿射)層的一種特殊應(yīng)用,其變換矩陣W只由-1,0和1組成。也就是說,它的輸出是輸入向量中行的加減算法,這也能夠預(yù)防層在將輸入映射到輸出時(shí)改變數(shù)字的表示比例。

由于硬性的約束W矩陣中的每個(gè)元素都為{-1,0,0},這使得模型在學(xué)習(xí)中變得更加困難。為此我們提出了一種W在無參數(shù)約束條件下的連續(xù)可微分參數(shù)化方法: 。該方法給梯度下降學(xué)習(xí)帶來了很大的方便,同時(shí)產(chǎn)生一個(gè)元素在[-1,1]?并且趨向于-1,0或1的矩陣。圖2描述了一個(gè)神經(jīng)算術(shù)邏輯單元(NALU),它可以學(xué)習(xí)兩個(gè)子單元間的加權(quán)和,一個(gè)能夠進(jìn)行加減運(yùn)算,另一個(gè)則可以執(zhí)行乘除以及冪運(yùn)算,如 。更重要的優(yōu)點(diǎn)是,其能夠展示如何在門控的子操作中擴(kuò)展NAC,從而增強(qiáng)了新類型數(shù)值函數(shù)的端到端學(xué)習(xí)。

圖2(a)神經(jīng)累加器(b)神經(jīng)算術(shù)邏輯單元

圖2中,NAC是輸入的一次線性變換,變換矩陣是tanh(W)和 元素的乘積。NALU?使用兩個(gè)帶有固定系數(shù)的NACs?來進(jìn)行加減運(yùn)算(圖2中較小的紫色單元)?以及乘除運(yùn)算(圖2中較大的紫色單元),并由門(圖2中橙色的單元)來控制。

▌實(shí)驗(yàn)

我們跨域各種任務(wù)領(lǐng)域 (圖像、文本、代碼等),學(xué)習(xí)信號(hào) (監(jiān)督和強(qiáng)化學(xué)習(xí)),結(jié)構(gòu) (前饋和循環(huán)) 進(jìn)行實(shí)驗(yàn),結(jié)果表明我們提出的模型可以學(xué)習(xí)到數(shù)據(jù)中潛在數(shù)值性質(zhì)的表示函數(shù),并推廣到比訓(xùn)練階段的數(shù)值大幾個(gè)數(shù)量級(jí)的數(shù)值。相比于線性層我們的模塊有更小的計(jì)算偏差。在一個(gè)具體實(shí)例中,我們的模型超過了目前最先進(jìn)的圖像計(jì)數(shù)網(wǎng)絡(luò),值得一提的是,我們所做的修改僅是用我們的模型替換了其最后一個(gè)線性層。

簡(jiǎn)單的函數(shù)學(xué)習(xí)任務(wù)

在這些初始合成實(shí)驗(yàn)中,我們展示了NAC和NALU在學(xué)習(xí)選擇相關(guān)輸入并應(yīng)用不同算術(shù)函數(shù)的能力。其中測(cè)試任務(wù)分為兩類:第一類為靜態(tài)任務(wù),即以單個(gè)向量一次性輸入;第二類是循環(huán)任務(wù),即輸入按時(shí)間順序來呈現(xiàn)。通過最小化平方損失來端到端地訓(xùn)練模型,模型的性能評(píng)估由兩個(gè)部分組成:訓(xùn)練范圍內(nèi)(插值)的留存值和訓(xùn)練范圍外(外推)的值。表1表明了幾種標(biāo)準(zhǔn)體系結(jié)構(gòu)在插值情況下成功完成任務(wù),但在進(jìn)行外推時(shí)都沒有成功。而不管是在插值還是外推上,NAC都成功地建立加法和減法模型,NALU在乘法運(yùn)算上也獲得成功。

表 1 靜態(tài)和循環(huán)任務(wù)的插值和外推誤差率

MNIST 計(jì)數(shù)和算術(shù)任務(wù)

在這項(xiàng)任務(wù)中,我們給模型10個(gè)隨機(jī)選擇的MNIST數(shù)字,要求模型輸出觀察到的數(shù)值和每種類型的圖像數(shù)量,在MNIST數(shù)字加法任務(wù)中,模型還必須學(xué)會(huì)計(jì)算所觀察到的數(shù)字之和。在插值(長(zhǎng)度為10)和外推(長(zhǎng)度為100和長(zhǎng)度為1000)任務(wù)上測(cè)試模型的計(jì)數(shù)和算術(shù)的性能。表2表明標(biāo)準(zhǔn)體系結(jié)構(gòu)在插值任務(wù)上成功,但在外推任務(wù)上失敗。但是NAC和NALU都能很好地完成插值和外推任務(wù)。

表2 長(zhǎng)度為1,100,1000的序列的 MNIST 計(jì)數(shù)和加法任務(wù)的準(zhǔn)確度

語言到數(shù)字的翻譯任務(wù)

為了測(cè)試數(shù)字詞語的表示是否是以系統(tǒng)的形式來學(xué)習(xí),我們?cè)O(shè)計(jì)了一個(gè)新的翻譯任務(wù):將文本數(shù)字表達(dá)式(例如五百一十五)轉(zhuǎn)換為標(biāo)量表示(515)。訓(xùn)練和測(cè)試的數(shù)字范圍在0到1000之間,其中訓(xùn)練集、驗(yàn)證集和測(cè)試集的示例分別為169、200和631。在該數(shù)據(jù)集上訓(xùn)練的所有網(wǎng)絡(luò)都以embedding層開始,通過LSTM進(jìn)行編碼,最后接一個(gè)NAC或NALU。表3表明了LSTM + NAC在訓(xùn)練和測(cè)試集上都表現(xiàn)不佳。LSTM + NALU可以大幅度地實(shí)現(xiàn)最佳的泛化性能,這說明乘數(shù)對(duì)于此任務(wù)來說非常重要。這里還給出了一個(gè)NALU測(cè)試的例子如圖3所示。

表3將數(shù)字串轉(zhuǎn)換為標(biāo)量的平均絕對(duì)誤差(MSE)比較

圖3 NALU的預(yù)測(cè)樣例

程序評(píng)估

程序評(píng)估部分我們考慮兩個(gè)方面:第一個(gè)為簡(jiǎn)單地添加兩個(gè)大整數(shù),第二個(gè)為包含若干個(gè)操作(條件聲明、加和減)。此次評(píng)估專注于外推部分即:網(wǎng)絡(luò)是否可以學(xué)習(xí)一種推廣到更大數(shù)值范圍的解決方案。用[0,100)范圍內(nèi)的兩位數(shù)整數(shù)來訓(xùn)練,并用三位或四位的隨機(jī)整數(shù)來評(píng)估。圖4比較了四種不同模型(UGRNN、LSTM、DNC和NALU)的評(píng)估結(jié)果,其中只有NALU是能夠推廣到更大的數(shù)字。我們可以看到即使域增加了兩個(gè)數(shù)量級(jí),外推效果也是較為穩(wěn)定。

圖4簡(jiǎn)單的程序評(píng)估,外推到更大的值

學(xué)習(xí)在網(wǎng)格世界環(huán)境中追蹤時(shí)間

到目前為止,在所有實(shí)驗(yàn)中,我們訓(xùn)練的模型已經(jīng)可以進(jìn)行數(shù)值預(yù)測(cè)了。然而,正如引言部分所說,系統(tǒng)化的數(shù)值推算似乎是各種智能行為的基礎(chǔ)。因此,我們進(jìn)行了一項(xiàng)任務(wù),測(cè)試NAC能否被RL-trained智能體“內(nèi)部”使用。

如圖5所示,該任務(wù)中,每一幀都是從初始值開始(t=0),紅色的目標(biāo)隨機(jī)定位于5*5的網(wǎng)絡(luò)世界方格中。每個(gè)時(shí)間步中,智能體接收一個(gè)56*56像素網(wǎng)格以表示整個(gè)網(wǎng)格世界環(huán)境狀態(tài),并且必須從{上移,下移,左移,右移,忽略}選擇其中的一個(gè)操作。測(cè)試開始前,智能體還會(huì)接收一個(gè)數(shù)字(整數(shù))指令T ,用來傳達(dá)代理到底目的地的確切時(shí)間。

達(dá)到最大幀時(shí),獎(jiǎng)勵(lì)m,智能體必須選擇操作并四處移動(dòng)。第一次移動(dòng)至紅色區(qū)域時(shí)就是t=T的時(shí)候,當(dāng)智能體到達(dá)紅色區(qū)域或者時(shí)間結(jié)束時(shí)(t=L)訓(xùn)練結(jié)束。

圖5網(wǎng)格世界環(huán)境中時(shí)間追蹤任務(wù)

MNIST 奇偶校驗(yàn)預(yù)測(cè)任務(wù)和消融研究

在我們的最后一項(xiàng)任務(wù):MNIST奇偶校驗(yàn)中,輸入和輸出都不是直接用數(shù)字提供的,而是隱式地對(duì)數(shù)字量進(jìn)行推理。在這個(gè)實(shí)驗(yàn)中,NAC或其變體取代了由Segui等人提出的模型中的最后一個(gè)線性層。我們系統(tǒng)地研究了每個(gè)約束的重要性。表4總結(jié)了變體模型的性能,我們可以看到去除偏置項(xiàng)和運(yùn)用非線性權(quán)重的方法顯著提高了端到端模型的準(zhǔn)確性,NAC將先前最佳結(jié)果的誤差減少了54%。

表4關(guān)于MNIST奇偶校驗(yàn)任務(wù)的affine層和NAC之間的消融研究

▌結(jié)論

目前,神經(jīng)網(wǎng)絡(luò)中數(shù)值模擬方法還不夠完善,因?yàn)閿?shù)值表示方法不能夠?qū)ζ溆?xùn)練觀察到的數(shù)值范圍外對(duì)信息進(jìn)行較好的概括。本文,我們已經(jīng)展示了NAC與NALU是如何解這兩個(gè)不足之處,它改善了數(shù)值表示方法以及數(shù)值范圍外的函數(shù)。然而,NAC或NALU不太可能很完美的解決每一個(gè)任務(wù)。但它們可以被作為解決創(chuàng)建模型時(shí)目標(biāo)函數(shù)存在偏置項(xiàng)的一種通用策略。該策略是由我們提出的單元神經(jīng)數(shù)值表示方式實(shí)現(xiàn)的,它允許將任意(可微)數(shù)值函數(shù)添加到模塊中,并通過學(xué)習(xí)門進(jìn)行控制。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:前沿 | DeepMind 最新研究——神經(jīng)算術(shù)邏輯單元,有必要看一下!

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于可編程邏輯器件和VHDL語言實(shí)現(xiàn)算術(shù)邏輯單元的設(shè)計(jì)

    的青睞,并得到了廣泛的應(yīng)用。由于算術(shù)邏輯單元(ALU)在運(yùn)算中對(duì)系統(tǒng)性能要求很高,而采用中小規(guī)模的集成電路設(shè)計(jì)的系統(tǒng)既龐大又存在穩(wěn)定性的問題。
    發(fā)表于 01-04 10:36 ?2268次閱讀
    基于可編程<b class='flag-5'>邏輯</b>器件和VHDL語言實(shí)現(xiàn)<b class='flag-5'>算術(shù)</b><b class='flag-5'>邏輯</b><b class='flag-5'>單元</b>的設(shè)計(jì)

    FPGA基礎(chǔ)學(xué)習(xí)筆記--組合邏輯電路-算術(shù)運(yùn)算電路

    `FPGA基礎(chǔ)學(xué)習(xí)筆記--組合邏輯電路-算術(shù)運(yùn)算電路+、-、*、/、%電路(1)加法電路:每1位大約消耗1個(gè)LE,示例代碼如下module arithmetic (input [7:0] iA
    發(fā)表于 02-23 16:45

    C語言里的邏輯移位與算術(shù)移位分別是什么

    C語言里的邏輯移位與算術(shù)移位C語言的移位操作符>>
    發(fā)表于 07-14 06:31

    如何實(shí)現(xiàn)C語言里的邏輯移位與算術(shù)移位?

    如何實(shí)現(xiàn)C語言里的邏輯移位與算術(shù)移位?
    發(fā)表于 10-15 06:27

    算術(shù)邏輯單元ALU四個(gè)要素

    算術(shù)邏輯單元ALU四個(gè)要素— 操作數(shù):operands— 運(yùn)算:operation— 標(biāo)志位:flag— 運(yùn)算結(jié)果:result標(biāo)志位在哪里?標(biāo)志位成為PSR或CCR程序狀態(tài)寄存器:PSR
    發(fā)表于 10-29 09:32

    恩智浦eIQ? Neutron神經(jīng)處理單元

    可通過多種方式,其中最有效的是將專門構(gòu)建的專用神經(jīng)處理單元(NPU),或稱為機(jī)器學(xué)習(xí)加速器(MLA)或深度學(xué)習(xí)加速器(DLA)集成到器件中,以補(bǔ)充CPU計(jì)算核心。恩智浦提供廣泛的產(chǎn)品組合,從傳統(tǒng)
    發(fā)表于 02-17 13:51

    算術(shù)邏輯部件設(shè)計(jì)

    算術(shù)邏輯部件設(shè)計(jì) 
    發(fā)表于 05-25 23:48 ?40次下載

    TMS320F24X 指令集累加器、算術(shù)邏輯指令附件

    TMS320F24X 指令集累加器、算術(shù)邏輯指令附件 TMS320F24X 指令集累加器、算術(shù)邏輯指令 助記
    發(fā)表于 10-17 22:41 ?1163次閱讀

    集成算術(shù)/邏輯單元舉例

    集成算術(shù)/邏輯單元舉例   集成算術(shù)邏輯單元(ALU)能夠完成一系列的
    發(fā)表于 04-07 10:39 ?1345次閱讀
    集成<b class='flag-5'>算術(shù)</b>/<b class='flag-5'>邏輯</b><b class='flag-5'>單元</b>舉例

    多功能算術(shù)/邏輯運(yùn)算單元(ALU) ,什么是多功能算術(shù)/邏輯

    多功能算術(shù)/邏輯運(yùn)算單元(ALU) ,什么是多功能算術(shù)/邏輯運(yùn)算單元(ALU)   由一位全
    發(fā)表于 04-13 11:24 ?2.8w次閱讀

    低功耗時(shí)鐘門控算術(shù)邏輯單元在不同F(xiàn)PGA中的時(shí)鐘能量分析

    低功耗時(shí)鐘門控算術(shù)邏輯單元在不同F(xiàn)PGA中的時(shí)鐘能量分析
    發(fā)表于 11-19 14:50 ?0次下載

    DeepMind最新提出“神經(jīng)算術(shù)邏輯單元”,旨在解決神經(jīng)網(wǎng)絡(luò)數(shù)值模擬能力不足的問題

    雖然加法和減法使得許多有用的系統(tǒng)泛化成為可能,但是可能需要學(xué)習(xí)更復(fù)雜的數(shù)學(xué)函數(shù)(例如乘法)的強(qiáng)健能力。 圖2描述了這樣一個(gè)單元神經(jīng)算術(shù)邏輯單元
    的頭像 發(fā)表于 08-05 09:54 ?3474次閱讀

    51單片機(jī)的算術(shù)邏輯運(yùn)算功能介紹

    A)算術(shù)邏輯運(yùn)算,可對(duì)半字節(jié)(一個(gè)字節(jié)是8位,半個(gè)字節(jié)就是4位)和單字節(jié)數(shù)據(jù)進(jìn)行操作。 B)加、減、乘、除、加1、減1、比較等算術(shù)運(yùn)算。 C)與、或、異或、求補(bǔ)、循環(huán)等邏輯
    發(fā)表于 09-14 17:20 ?4635次閱讀

    詳解邏輯單元的內(nèi)部結(jié)構(gòu)

    邏輯單元(Logic Element,LE)在FPGA器件內(nèi)部,用于完成用戶邏輯的最小單元。一個(gè)邏輯陣列包含16個(gè)
    的頭像 發(fā)表于 06-15 16:50 ?3766次閱讀

    用VHDL語言創(chuàng)建一個(gè)8位算術(shù)邏輯單元(ALU)

    在這個(gè)項(xiàng)目中,我們用 VHDL 語言創(chuàng)建一個(gè) 8 位算術(shù)邏輯單元 (ALU),并在連接到帶有輸入開關(guān)和 LED 顯示屏的定制 PCB 的 Altera CPLD 開發(fā)板上運(yùn)行。
    的頭像 發(fā)表于 10-24 17:05 ?1872次閱讀
    用VHDL語言創(chuàng)建一個(gè)8位<b class='flag-5'>算術(shù)</b><b class='flag-5'>邏輯</b><b class='flag-5'>單元</b>(ALU)