STDP学習ベースのSNNでMNISTを分類する
雑に論文みて勉強したので何も保証しません.SNNの情報全然無いような気がするのでしんどい.
Spiking Neural Network(SNN)
ニューロンの活動電位(スパイク)に注目したニューラルネットワーク.現状,計算量が多いのでチップを作ったりなどのハードウェアの研究が盛んな傾向にあるような気がする.IBMのTruneNorthとかIntelのLoihiなどはSNNにあたる.
Spike-Timing-Dependent Plasticity(STDP)
STDPはスパイクタイミングに依存してシナプスの重みが変わる仕組みである. ざっくり言うと細胞Aが発火して,細胞Bが発火するとA->B間のシナプス結合が強まるLTP(長期増強)が起きて,逆に細胞Bが発火して,細胞Aが発火するとA->B間のシナプス結合が弱まるLTD(長期抑圧)が起きる.
シナプス前細胞の発火時間を,シナプス後細胞の発火時間をとする.を以下のように定義する.
シナプスの結合の重みの更新は以下の式で表される.STDPの式は色々提案されているが今回は基本的なものを使用する
ニューロンモデル
ネットワーク
入力はMNISTのそれぞれのピクセルデータを最大60Hzのポアソンスパイクモデルにして入力させる. よってneural codingはrate codingを使用する. 入力を受け取る興奮性の細胞が発火した場合,他の細胞を抑制させる(winner-take-all).
学習後,最終的により多くの反応(発火回数)を示すニューロンをその教師ラベルと紐づける. テストでは,入力に対して最も多くの反応を示したニューロンを抽出し,そのニューロンと紐付けられているラベルと比較する.
結果
以下が学習させた900個のニューロンの重みを表した図である.
accuracy: 0.775
ソースコード
参考
- Frontiers | Unsupervised learning of digit recognition using spike-timing-dependent plasticity | Frontiers in Computational Neuroscience
- Simplified spiking neural network architecture and STDP learning algorithm applied to image classification
- github.com
- Spike-timing dependent plasticity - Scholarpedia