ゼロから学ぶスパイキングニューラルネットワーク Spiking Neural Networks from Scratch

B!

7. おわりに

さて,ここまでSNNについて色々と書いてきましたが,いかがでしたか?

広く浅くと言いつつ深堀りした部分もあり,読みづらい部分もあったかと思いますが,とにかく少しでもSNNについて情報を提供できたなら幸いです.

最後に,私の持論として今後の展望などをお話ししたいと思います.

7-1. 今後の展望

今後,SNNは今のANNにとって変わるのか否か,それは微妙なところです.

前章で紹介したモデルのように,現在わかっている学習則だけではどうにもならず,戦略的に,理詰めでモデルを構築していくしかありません.

さらに色々な論文を見てみても,SNNの利点を十分に活かせている研究はなかなかありません

それでも,現在のANNを超える性能を得られたら良いのですが,今のAIモデルが優秀であるが故にSNNを使うメリットがなかなか見つかりづらい現状です.

今ある利点としては,生物学的妥当性とNeuromorphicなハードウェア実装に適している,程度です.

さらには,生物学でも分かっていることも限られるので,手探りな状況も多いと思います.

では今後のSNNの研究はどう進んでいくのか.

私の考えとしては,SNN研究はどんどん発展していくと思います.

手探りでも,本物の神経回路と同じような構造のモデルを作って,小さな利点を見つけていく,それで良いと思います.

もしかしたら,工学モデルを通して分かっていない脳のメカニズム解明に役立つかもしれません.

そう言った研究がいくつも積み重なって,いつか報われるときが来ると私は信じています.

とりあえず今は,SNN分野を多くの方々に知ってもらい,そして研究してもらって,少しずつ発展して欲しいと願っています.

7-2. ライブラリ・フレームワーク

SNNの研究がどれだけ捗るかは使うフレームワークに大きく左右されると思います.

一から実装しても良いのですが,よほどプログラミングスキルがないと,実験に時間がかなりかかってしまいます.

SNNのフレームワークはいくつかありますが,私はBindsNET [15]を使っていました.

BindsNETは,PyTorchと呼ばれる機械学習フレームワークを元に構築されたSNNライブラリですが一番使い勝手が良いと思います.

他にもBRIAN2なども有名ですが,ドキュメント等を見て自分のやりたいことが実現できそうなライブラリを探してみてください.

  • BindsNET
    ... PyTorchベース.NumPyライクな使い心地で使用できるが,細かくネットワーク定義するのは困難か.
  • BRIAN2
    ... 自分で膜電位算出式を定義して使用するライブラリ.仕様にクセがあり好みが分かれそう (プログラマは嫌がりそう).おそらく神経科学者向け?

7-3. あとがき

ここまで,お付き合いいただきありがとうございました.

このような長編記事は私も書くことはなかなか無いのですが,自分の行ってきた研究をアウトプットできるということで楽しく書けました.

何度も言うように,このサイトの目的は多くの人にSNN研究を知ってもらうことと,SNN研究をやろうとしている人の役に立つことです.

3年間,この分野の研究をしてきましたが,その1~2割はSNN啓蒙活動に費やしたかもしれません.笑

SNN研究は正直難しく,わかりにくく,そして思ったよりも華がない研究かもしれません.

しかし,この分野の研究はいわゆる基礎研究に該当し,今は華がないように感じても,いつか華開く種になる可能性があります.

何%が華になるかわからないですが,種がなければ咲くことはありません.

ですので,いろいろな人に (頭の良い人はなおさら),SNN研究に挑戦してもらいたいと私は思っています.

偉そうなことを言っていますが,私も挫折しそうになりながらもなんとかやってきた身で,私の研究が華になる種かどうかもわかりません.

本サイトは,SNN研究の一歩目として作っていますが,もし誤りや質問,要望等あれば以下のメールアドレスもしくはTwitterのDMで受け付けていますので遠慮なくどうぞ!

ご清覧ありがとうございました.

HiroshiARAKI