最近、スパイキングニューラルネットワーク(以下、SNN)関連の研究を行っています。
日本語情報などがいまいち充実していなく、良さげな資料を探すのに苦労したので、まとめておきます。
上から優先して読んだ方がいい順に置いてあります。
※ この記事は高頻度で更新される予定です
SNNの概略
日本語資料
スパイキングニューラルネットワークにおける深層学習
https://www.jstage.jst.go.jp/article/seisankenkyu/71/2/71_159/_pdf
学習則の全体像が理解できます。
“Pulsed Neural Networks”の要約
http://neuro.sfc.keio.ac.jp/~masato/study/pulse/index.htm
「Wolfgang Maass and Christopher M. Bishop, “Pulsed Neural Networks”, The MIT Press, (1998).」の日本語要約したページです。
Chapter 1の途中で止まっています。
私は、Spike Response Modelを理解するために利用しました。
トランジスタ技術 2020年 10 月号
トラ技でハードウェアAI特集が組まれたものです。
付属のDVDにシリコンチップによるSNN実装の講義が収録されています。
電気回路の知識がないと、全ての内容を理解することは難しいですが、
現在のSNN概要、現状と限界を手っ取り早く理解することができるのでオススメです!
英語資料
A Survey of Neuromorphic Computing and Neural Networks in Hardware
https://arxiv.org/abs/1705.06963
私が見た中では、もっとも包括的にSNNについて議論されたサーベイ論文。
SNNについて前提知識が少ない人は、論文のAbstruct、Introductonと図を見るだけでも、この分野の全体像がわかると思います。
Spiking Neural Networks Hardware Implementations and Challenges: a Survey
https://arxiv.org/abs/2005.01467
SNNのハードウェアチップの実装に関するサーベイ論文ですが、
第2章のSNNに関する概要は、図などを含めて非常にわかりやすいので、この章だけでも読んでみてください。
Rethinking the performance comparison between SNNS and ANNS
https://www.sciencedirect.com/science/article/abs/pii/S0893608019302667
ANN(通常のニューラルネットワーク)とSNNのパフォーマンスを様々な要素で比較した論文です。
実験結果も面白いですが、ANNとSNNを比較しながらそれぞれの手法を説明しているので、Deep Learning経験者にとって非常にわかりやすい論文です。
Neuronal Dynamics
https://neuronaldynamics.epfl.ch/online/index.html
SNNの教科書を公式が無料公開してくれています。
ちゃんとした教科書なので、かなりボリューミーな内容ですが、非常に勉強になります。
私の場合は、論文で読んでわからない内容などを参照するなどして使っていました。
Spiking Neural Networks and online learning: An overview and perspectives
https://arxiv.org/abs/1908.08019
Online LearningとSNNに関するサーベイ論文です。
箇条書きが多用されており、英語も読みやすいので、おすすめです。
個人的には、Figure 4の生物におけるニューロンと、SNNにおける擬似ニューロンの対応関係がわかりやすくて気に入っています。
論文の完成度としては、下で紹介している「A survey of robotics control based on learning-inspired spiking neural networks」の方が高いと思います。
A survey of robotics control based on learning-inspired spiking neural networks
https://www.frontiersin.org/articles/10.3389/fnbot.2018.00035/full
RoboticsにおけるSNNを利用した手法についてのサーベイ論文です。
ロボットに興味がなくても、SNNの概要は非常にわかりやすくまとまっているので、初学者は参考になるかと思います。
Event-based Vision: A Survey
https://arxiv.org/abs/1904.08405
イベントカメラに関するサーベイ論文です。
イベントカメラは、SNNをVision系で応用しようとすると避けては通れません。
これは輝度変化があった部分のピクセルのみを出力するカメラで、センサから直接スパイク信号が出力されるためSNNと非常に相性がいいです。
SNNの実装
SNNを理解するための実装
Hiroshi ARAKIさんのQiita記事
基礎的なSNNの実装例が乗っており、手をつけやすく、理解しやすいです。
Rate-codingについては、SNNを始めたばかりではなかなか理解しづらいので、個人的には、ポアソンスパイクの記事が勉強になりました。
ゼロから作るSpiking Neural Networks
https://booth.pm/en/items/1585421
その名の通り、SNNをゼロから実装する様子を書いた同人誌です。
かなり充実した内容ですが、初学者には難しいかも知れないです(僕は挫折しました)。
SNNを利用するためのライブラリ
SNNを実装するためのライブラリは複数あり、しかもあまりよく知られていないので、初手でライブラリ選択をミスると積みます。
ソースコード付き論文
XDUSPONGE/SNN_benchmark
https://github.com/XDUSPONGE/SNN_benchmark
すごい人のGitHubです。最近の論文とコードが公開されているなら、そのリンクも紹介されています。