3
本文作者: 矽說(shuō) | 2017-01-21 12:26 |
雷鋒網(wǎng)按:本文作者癡笑,矽說(shuō)(微信號(hào):silicon_talks)主筆。本文為《腦芯編:窺腦究竟,織網(wǎng)造芯》系列第五篇。
不知不覺(jué),《腦芯編》已經(jīng)走過(guò)了上半闕。默默揮手告別那些棄劇的看官,也由衷感謝仍然愿意用手指點(diǎn)進(jìn)來(lái)的您。你們是撐住腦芯編不爛尾的重要力量,與其肉麻,不如再念一遍詩(shī)的上半闕:
昨夜神風(fēng)送層云,(神經(jīng)元與網(wǎng)絡(luò))
幾重卷積幾重生。(卷積神經(jīng)網(wǎng)絡(luò))
夢(mèng)里不知形與令,(計(jì)算體系結(jié)構(gòu))
燭臺(tái)簇華照單影。(單指令多數(shù)據(jù))
上次我們講到,現(xiàn)行的計(jì)算機(jī)體系結(jié)構(gòu)——“馮諾依曼”結(jié)構(gòu)是阻礙深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的一個(gè)重要瓶頸。其計(jì)算和存儲(chǔ)分離的特點(diǎn),使得神經(jīng)元計(jì)算的效率低下。合理改變指令集,加入乘累加指令和SIMD(單指令多數(shù)據(jù))指令可以緩解該問(wèn)題,但仍然指標(biāo)不治本。
此時(shí),革“馮諾依曼”的命變成了很多懵逼騷年(講的是心態(tài),年紀(jì)可是很大哦)的選項(xiàng)。非馮架構(gòu)的深度學(xué)習(xí)硬件一時(shí)間成為了洛陽(yáng)紙貴的一時(shí)之選。這個(gè)過(guò)程自然有資本主義的糖衣炮彈加持,美國(guó)國(guó)防部先進(jìn)項(xiàng)目研究局(傳說(shuō)中的DARPA,可以理解為神盾局?)便在非馮架構(gòu)上與世界頂級(jí)研究機(jī)構(gòu)——IBM合作,搞了個(gè)叫SyNAPSE (System of Neuromophic Adaptive Plastic Scalable Electronics,其實(shí)synapse在字面上也“突觸”的拼法)的項(xiàng)目。從第一階段到最終,DARPA贊助了IBM 4千2百萬(wàn)刀,打響了深度學(xué)習(xí)抗馮的第一槍——TrueNorth(真北)。
當(dāng)然,很多人也把TrueNorth看作深度學(xué)習(xí)硬件發(fā)展史上打得最響的水花。
Neuromophic,替天行道?
任何革命都要師出有名,就算水泊梁山也有個(gè)“替天行道”的名頭。那真北的“名”在哪里呢?很簡(jiǎn)單,我們要造一個(gè)真“大腦”,而不是計(jì)算機(jī)這樣給馮老爺子當(dāng)傀儡的“偽電腦”。英語(yǔ)叫做Neuromophic,神經(jīng)形態(tài)的硬件。于是就有了這張圖:
真北的設(shè)計(jì)理念,以人腦為起藍(lán)本,依葫蘆畫(huà)瓢,不帶點(diǎn)兒差的。
IBM的工程獅從微觀到宏觀,將人的大腦分成三個(gè)層次——神經(jīng)核團(tuán)、腦功能區(qū)和腦皮層。每個(gè)核團(tuán)由很多個(gè)神經(jīng)元組成,每個(gè)功能區(qū)由很多核團(tuán)組成,一個(gè)能完整地進(jìn)行一項(xiàng)任務(wù)的皮層由很多個(gè)功能區(qū)組成。(是不是好久沒(méi)有上過(guò)碼農(nóng)老師的生物課了,有沒(méi)有點(diǎn)懷念呢?下面還有。)
對(duì)應(yīng)的,真北架構(gòu)下,也分為這三個(gè)層次。先做了一個(gè)核團(tuán)對(duì)應(yīng)的硬件——neurosynaptic core,每個(gè)core由256個(gè)輸出與輸入、以及對(duì)應(yīng)的系數(shù)存儲(chǔ),并集成了神經(jīng)信號(hào)的路由器(router)使得信號(hào)可以在長(zhǎng)距離上游走;在此基礎(chǔ)上,一塊芯片有64乘64個(gè)這樣的核團(tuán),共4096個(gè),組成了一個(gè)“功能區(qū)”。而很多完整的應(yīng)用和復(fù)雜的任務(wù),還需要芯片與芯片間的互聯(lián),實(shí)現(xiàn)一個(gè)完整的皮層功能???,這才是真正的神經(jīng)形態(tài)的“電腦”。
TrueNorth還追求了一個(gè)大腦的特點(diǎn),沒(méi)有全局時(shí)鐘控制的信號(hào)傳遞。真北只有幀時(shí)鐘(1KHz,和intel的3.6GHz比慢了幾百萬(wàn)倍哦~),并沒(méi)有控制信號(hào)流的時(shí)鐘,數(shù)據(jù)和數(shù)據(jù)之間采用異步的方式進(jìn)行通訊,尋求高能效和低功耗。
這里留給讀者一個(gè)問(wèn)題:為什么是非馮呢?(提示:memory在哪里?)如果各位看官到這里眼皮還沒(méi)有搭起來(lái),可以考慮去讀讀TrueNorth的Science原著,保證一夜睡到天明。
SpikeNN,致命缺陷?
如果有一件事情,可以把昏昏欲睡的人們從周公的世界里拉回來(lái),那一定是——撕逼。
當(dāng)所有人都覺(jué)得TrueNorth要改變?nèi)祟惖臅r(shí)候,驚天一聲雷從華山之巔劈下來(lái)。出手的,是在神經(jīng)網(wǎng)絡(luò)中有“東邪西毒南帝北丐”之稱呼的Yann LeCun。(我們?cè)?a href="http://www.ozgbdpf.cn/news/201612/E4eY2HYElJIC0be5.html" target="_blank">腦芯編(一)中提到過(guò)他。)
深度學(xué)習(xí)的“東邪西毒南帝北丐”F4
Yann大人在Facebook上發(fā)了一篇長(zhǎng)長(zhǎng)的博客來(lái)表達(dá)自己對(duì)True North的不屑。這里節(jié)錄部分。(冬天了,小編最近比較懶,所以靠復(fù)制黏貼湊字?jǐn)?shù))
Now, what wrong with TrueNorth? My main criticism is that TrueNorth implements networks of integrate-and-fire spiking neurons. This type of neural net that has never been shown to yield accuracy anywhere close to state of the art on any task of interest (like, say recognizing objects from the ImageNet dataset).
簡(jiǎn)單的說(shuō),問(wèn)題出在Spiking Neural Networks。Spiking的中文可以叫做脈沖,用現(xiàn)代的生物醫(yī)學(xué)技術(shù)發(fā)現(xiàn),spike是人腦中信息傳遞的真實(shí)電學(xué)過(guò)程。下圖就是人腦中一個(gè)神經(jīng)元附近測(cè)到spike信號(hào):
醫(yī)學(xué)上,也叫這個(gè)信號(hào)為細(xì)胞膜動(dòng)作電位(Action Potential)。事事以腦科學(xué)為準(zhǔn)繩的TrueNorth,自然在這基礎(chǔ)理論上一定是向生物學(xué)看齊的??墒牵瑔?wèn)題便在于,在神經(jīng)網(wǎng)絡(luò)被提出來(lái)的前幾十年,就是這spike NN的英魂不散,才導(dǎo)致了其早期“食之無(wú)味,棄之可惜”的尷尬地位。
就像那個(gè)最有名的比喻:因?yàn)轼B(niǎo)的翅膀,讓人類渴望飛翔;但放棄對(duì)翅膀的模仿,才讓飛機(jī)真正飛上藍(lán)天。很多事物只能賜予靈感,卻無(wú)法100%照搬,否則下場(chǎng)就是那些個(gè)鳥(niǎo)人。(這話也不是我這種小輩敢說(shuō)的,同樣來(lái)自Yann大人)
Memristor,吳下阿蒙?
一方面,如果spike完成神經(jīng)信號(hào)的傳遞與運(yùn)算真的有問(wèn)題,那人類為什么聰明? 另一方面,如果SpikeNN真的100%模仿了我們的腦子,為什么連個(gè)ImageNet分類都分不清楚?一定是哪里出了問(wèn)題。答案是后者。
首先,在我們通常使用的神經(jīng)網(wǎng)絡(luò)里面有個(gè)假設(shè)——系數(shù)(Weight)在訓(xùn)練完成后是固定,不改變的。這個(gè)假設(shè)在CNN/RNN等一系列架構(gòu)中顯得天下太平,因?yàn)橄禂?shù)位寬大么。但是到了SpikeNN就是個(gè)大麻煩,所有的信號(hào)是二進(jìn)制的,所謂的系數(shù)只改變鏈接關(guān)系、延時(shí),不改變幅度,自由度大大衰減。那我們的腦子真的是這樣的么?
唉,生物課又來(lái)了。
雖然我們的大腦的神經(jīng)元看上去是二元的,但是神經(jīng)元通路還有一個(gè)可塑性維度,叫STDP (Spike Timing Dependent Plasticity),就是突觸的連接強(qiáng)度(Plasticity,可塑性)收到輸入輸出脈沖(Spikie)間的時(shí)間先后(Time Dependent)關(guān)系,其本質(zhì)核心如下圖。
如果輸入將將早于輸出,代表輸入輸出間是完美的因果關(guān)系,神經(jīng)元聯(lián)系會(huì)被增強(qiáng);如果輸入的脈沖稍晚于輸出,那么他們之間是果因關(guān)系,神經(jīng)元的聯(lián)系應(yīng)該要減弱。STDP被認(rèn)為是我們大腦的主要學(xué)習(xí)機(jī)制,而且在不同動(dòng)物上都經(jīng)過(guò)了實(shí)驗(yàn)驗(yàn)證。
問(wèn)題來(lái)了,這種學(xué)習(xí)機(jī)制和CS里面主流的學(xué)習(xí)機(jī)制——Stochastic Gradient Descent (SGD,中文叫做隨機(jī)梯度最速下降?) 的后饋算法有著天壤之別。小編覺(jué)得這也是目前神經(jīng)網(wǎng)絡(luò)算法與神經(jīng)科學(xué)的最大分歧。
沒(méi)有STDP的真北就這樣陷入了SpikeNN的坑。但話說(shuō)回來(lái),STDP這么高級(jí)的操作模型,用傳統(tǒng)模數(shù)混合集成電路實(shí)現(xiàn)是非常浪費(fèi)面積,且不劃算的。好巧不巧,人類突然造出了一個(gè)除了電阻電容電感之外的第四類電學(xué)器件——Memristor,憶阻器。仿佛是上帝要有光,就有一縷陽(yáng)光照進(jìn)SpikeNN的黑暗的胡同里。
對(duì)于一個(gè)電阻,兩端的電壓和電流成正比,對(duì)于一個(gè)電容,兩段的電荷和電壓正比,對(duì)于一個(gè)電感,兩端的磁通量和電流正比,對(duì)于一個(gè)憶阻器,就應(yīng)該是兩端的磁通量和電荷成正比。雖然很抽象,但是憶阻器的實(shí)際效果就是其電阻(導(dǎo)通強(qiáng)度)受流過(guò)的電流調(diào)制。這個(gè)效果已經(jīng)非常接近STDP了。
試想,連在憶阻器兩端的突觸,當(dāng)設(shè)定為上一層的神經(jīng)元先發(fā)生spike,而下一層后發(fā)生spike,那一個(gè)正向的電路流過(guò)憶阻器,減小憶阻器阻值,加強(qiáng)鏈接。反之,負(fù)向電流流過(guò)憶阻器,增大阻值,減緩鏈接。
于是,大家逐漸開(kāi)始相信,在真北架構(gòu)上如果能用可隨摩爾定律減小的微納尺寸憶阻器,或許才是Brain Inspired Computer真正煥發(fā)春天時(shí)候。
于是,兼容先進(jìn)集成電路的高性能憶阻器就成了問(wèn)題的關(guān)鍵。但是,作為memristor的發(fā)明者和最努力的推廣者——HP,最近好像有點(diǎn)無(wú)奈。
但是也不要太灰心,最近intel和micron聯(lián)合推得風(fēng)聲水起的3D Xpoint Memory被認(rèn)為是某種程度的RRAM/memristor。究竟憶阻器是吳下阿蒙,還是未來(lái)的江左梅郎,還在未定之天呢。
這一期可能是腦心編目前為止最為干貨滿滿的一期,牽涉好多paper,如果看官您的目光移駕到這里,小編我也是要這廂有禮的,不容易啊。
”真北路上初相見(jiàn)“,告訴你采用非馮架構(gòu)的IBM TrueNorth(真北)的出生、虐緣和不明亮也不灰暗的未來(lái)。下一次,我們要來(lái)講講以GPU為代表的協(xié)處理器深度學(xué)習(xí)架構(gòu)——“一見(jiàn)泰坦誤終身”。
特別鳴謝復(fù)旦大學(xué)腦芯片研究中心提供技術(shù)咨詢,歡迎有志青年報(bào)考。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。