脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network, SNN)被譽(yù)為第三代神經(jīng)網(wǎng)絡(luò),使用更低層次的生物神經(jīng)系統(tǒng)的抽象,既是神經(jīng)科學(xué)中研究大腦原理的基本工具,又因其稀疏計(jì)算、事件驅(qū)動、超低功耗的特性而備受計(jì)算科學(xué)的關(guān)注。隨著深度學(xué)習(xí)方法的引入,SNN的性能得到大幅度提升,脈沖深度學(xué)習(xí)(Spiking Deep Learning)成為新興的研究熱點(diǎn)。傳統(tǒng)SNN框架更多的關(guān)注生物可解釋性,致力于構(gòu)建精細(xì)脈沖神經(jīng)元并仿真真實(shí)生物神經(jīng)系統(tǒng),并不支持自動微分,無法充分利用GPU的大規(guī)模并行計(jì)算能力,也缺乏對神經(jīng)形態(tài)傳感器和計(jì)算芯片的支持,難以用于脈沖深度學(xué)習(xí)任務(wù)。
圖1:SpikingJelly(驚蜇)框架的整體結(jié)構(gòu)、示例代碼、仿真速度、生態(tài)位以及典型應(yīng)用
為了解決上述問題,北京大學(xué)計(jì)算機(jī)學(xué)院田永鴻教授團(tuán)隊(duì)構(gòu)建并開源了脈沖神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)框架SpikingJelly(中文名:驚蜇)。SpikingJelly(驚蜇)提供了全棧式的脈沖深度學(xué)習(xí)解決方案,提供神經(jīng)形態(tài)數(shù)據(jù)處理、深度SNN的構(gòu)建、替代梯度訓(xùn)練、ANN轉(zhuǎn)換SNN、權(quán)重量化和神經(jīng)形態(tài)芯片部署等功能。SpikingJelly(驚蜇)框架的主要優(yōu)勢如下:
簡單易用:脈沖深度學(xué)習(xí)作為計(jì)算神經(jīng)科學(xué)與深度學(xué)習(xí)的交叉學(xué)科,要求研究者同時掌握兩個領(lǐng)域的知識體系,但實(shí)際情況是研究者可能只對一個領(lǐng)域有深度了解。SpikingJelly(驚蜇)框架提供了簡單易用的PyTorch風(fēng)格的API、中英文雙語編寫的教程、活躍友善的討論社區(qū),常用的網(wǎng)絡(luò)模型和訓(xùn)練腳本也一并給出,研究者可以快速進(jìn)行跨領(lǐng)域的學(xué)習(xí)和使用,通過寥寥數(shù)行代碼輕松構(gòu)建并訓(xùn)練深度SNN。
擴(kuò)展性強(qiáng):通過模仿真實(shí)生物神經(jīng)系統(tǒng)或借鑒人工神經(jīng)網(wǎng)絡(luò)的成熟經(jīng)驗(yàn),改進(jìn)和提出新的SNN算法和模型,這種研究范式已經(jīng)被廣泛使用,成果頗豐。研究者期望能夠自由地定義和擴(kuò)展新模型,僅需少量代碼改動就對模型行為產(chǎn)生巨大改變,這一開發(fā)理念與SpikingJelly(驚蜇)的設(shè)計(jì)哲學(xué)不謀而合。SpikingJelly(驚蜇)中的絕大多數(shù)模塊都是通過層次清晰的多重繼承實(shí)現(xiàn),這既為開發(fā)者降低了開發(fā)成本,也給用戶提供了完美的定義新模型的范例。
超高性能:深度學(xué)習(xí)涉及大規(guī)模數(shù)據(jù)處理、大尺度模型訓(xùn)練,脈沖深度學(xué)習(xí)亦不例外。SNN特有的額外的時間維度,使其具有更高的計(jì)算復(fù)雜度,因而脈沖深度學(xué)習(xí)對計(jì)算資源的需求更高。考慮到ImageNet這樣百萬規(guī)模樣本的數(shù)據(jù)集已經(jīng)在SNN中廣泛使用,研究者愈發(fā)關(guān)注網(wǎng)絡(luò)的訓(xùn)練速度。SpikingJelly(驚蜇)充分利用SNN的特性,通過計(jì)算圖遍歷順序優(yōu)化、JIT (just-in-time compilation, 即時編譯)、半自動CUDA代碼生成等技術(shù)來加速SNN仿真,與其他框架相比可達(dá)11倍的訓(xùn)練加速。第三方獨(dú)立社區(qū)Open Neuromorphic組織對多個SNN框架進(jìn)行了精細(xì)的速度基準(zhǔn)測試,參與評測的框架除了SpikingJelly(驚蜇)還包括來自Intel、SynSense時識科技、加州大學(xué)圣克魯斯分校、海德堡大學(xué)、瑞典皇家理工學(xué)院等科技公司和學(xué)術(shù)機(jī)構(gòu)的框架,結(jié)果表明SpikingJelly(驚蜇)具有最快的仿真速度,“more than 10 times faster than libraries that rely on pure PyTorch acceleration (比其他純PyTorch加速的框架快10倍以上)”。
圖2:SpikingJelly(驚蜇)框架中的典型模塊
SpikingJelly(驚蜇)框架自2019年冬季一經(jīng)推出就受到了研究者們的歡迎和廣泛使用,基于SpikingJelly(驚蜇)的研究工作已經(jīng)大量出版,將SNN的應(yīng)用從簡單的MNIST數(shù)據(jù)集分類擴(kuò)展到人類水平的ImageNet圖像分類、網(wǎng)絡(luò)部署、事件相機(jī)數(shù)據(jù)處理等實(shí)際應(yīng)用。此外,一些尖端前沿領(lǐng)域的探索也被報道,包括可校準(zhǔn)的神經(jīng)形態(tài)感知系統(tǒng)、神經(jīng)形態(tài)憶阻器、事件驅(qū)動加速器硬件設(shè)計(jì)等。目前有超過123篇公開論文使用SpikingJelly(驚蜇)框架進(jìn)行實(shí)驗(yàn),其中包括3篇ICCV、3篇IJCAI、5篇NeurIPS、4篇CVPR、4篇ICLR、3篇AAAI、2篇ICML、3篇ECCV、1篇TMLR、1篇ACM MM、1篇PR、7篇IEEE Transactions (含1篇TPAMI),以及1篇子刊Nature Communications,此外還有3篇非計(jì)算機(jī)領(lǐng)域的一區(qū)期刊文章。以上應(yīng)用和研究表明,SpikingJelly(驚蜇)的開源,極大促進(jìn)了脈沖深度學(xué)習(xí)領(lǐng)域的發(fā)展。
圖3:SpikingJelly(驚蜇)框架的典型應(yīng)用
SpikingJelly(驚蜇)框架的論文 “SpikingJelly: An open-source machine learning infrastructure platform for spike-based intelligence” 已經(jīng)正式發(fā)表于Science子刊《科學(xué)·進(jìn)展》(Science Advances)。北京大學(xué)計(jì)算機(jī)學(xué)院田永鴻教授、中國科學(xué)院自動化所李國齊教授為共同通訊作者,北京大學(xué)計(jì)算機(jī)學(xué)院2019級直博生方維、2019級直博生陳彥騏、2020級直博生丁健豪分別為第一、第二、第三作者,2020級直博生黃力煒亦為共同作者并對該研究做出重要貢獻(xiàn)。本文的作者還包括北京大學(xué)人工智能研究院余肇飛研究員、法國國家科學(xué)研究中心Timothée Masquelier研究員、上海交通大學(xué)計(jì)算機(jī)科學(xué)與工程系2019級直博生陳鼎、鵬城實(shí)驗(yàn)室研究員周暉暉等人。國家自然科學(xué)基金、鵬城云腦網(wǎng)絡(luò)智能重大科技基礎(chǔ)設(shè)施項(xiàng)目、北京市自然科學(xué)基金為此項(xiàng)研究提供了資助。SpikingJelly(驚蜇)框架在2020-2022連續(xù)三年獲得科技部領(lǐng)導(dǎo)的啟智社區(qū)優(yōu)秀開源項(xiàng)目,啟智社區(qū)亦為框架的發(fā)展提供了大力支持。
論文網(wǎng)址:https://www.science.org/doi/10.1126/sciadv.adi1480
框架GitHub主頁: https://github.com/fangwei123456/spikingjelly
框架啟智社區(qū)主頁: https://openi.pcl.ac.cn/OpenI/spikingjelly
框架出版物:https://github.com/fangwei123456/spikingjelly/blob/master/publications.md
還沒有評論,來說兩句吧...