まえがき#

何故このサイトを作ろうと思ったか,というと鬱憤が溜まっていたためである.物理シミュレーションの本はあるのに神経科学のシミュレーションの本は何故無いのか? もちろん,洋書を探せば何冊かあるが,ブラックボックス的なライブラリを用いたり,幅広い分野の内容を扱っていなかったりする.数理モデルを扱う洋書・和書の名著は多数あるが,実装まで記述してくれない本がほとんどである.そのくせ,関連分野のニューラルネットワークの本は腐るほど出版されている (というと著者の方々に大変失礼だが).有名な論文でも再現するためのパラメータの記載が不足していたり,著者実装がなかったり,あっても古いMATLAB実装は動かない.シミュレーションを実施する講義を受けたいと思っても医学部のカリキュラムで試験と被る.潜りも難しい.所属している研究室は理論や数値計算がメインではないので研究室の「秘伝のタレ」があるわけでもない.Twitterで流れてくる講義の情報を見ても「どうして資料を公開してくれないんだ」と嘆きながら枕を濡らすしかない.

「本が無いなら本を書けばいいじゃない」という言葉は…今作った言葉だが,一先ずこれまでに自分が書いてきたコードやノート (ブログ同人誌 (SNN本)などを含む)をまとめるだけでも良い資料になるのではないか,という中々思い上がった考えからこのサイトを始めた (目次を見るとかなり無謀なことが察せられる.何事も勢いで初めてはいけない).このサイトの元となったSNN本が「SNNを如何に学習させるか」ということに重きを置いた同人誌であったため,このサイトでも「学習」に重きを置く予定である.

目標とするのは幅広い分野を取り扱い,数式や理論も書いていて,実装を掲載しているサイトである.実装も線形代数の演算は許容するが,できるだけブラックボックスな演算を無くし,「手を動かして学ぶ」を基本とする.また,可読性が高く,高速に実行出来て研究にも使える実装が望ましい (もちろん,現時点でこれが実現できているとは思わない).

問題はサイトで使用するプログラミング言語であった.一体何を使えばいいだろうか?神経科学ではMATLABがよく使われているし,関連分野の機械学習ではPythonがよく使われる.ただ,MATLABはライセンスが必要だし,Pythonが数値計算に向いているとは思えない.高速に実行したいし,これらのユーザーが簡単に移行できる言語を考えたとき,Juliaが望ましいという結論に至った.

欲張りな言語であるJuliaは欲張りなこのサイトの理念に合致している.Juliaはまだ発展途上ではあるが,ユーザーも増えており,このサイトが一通り完成するころ (3~5年後?) にはかなり良い環境が整っているはずである.

サイトの作成に関してはJupyter bookを用いている.Jupyter bookはJupyter notebookやmarkdownをちゃんとしたサイトの形式に変換してくれ,大変便利である.

内容に関しての疑問点や指摘に関しては,各記事末尾のコメント欄からお願いしたい (utterances.esを用いているためGitHubアカウントが必要である).他に,もしこのサイトに協力してくれるという方がいれば,Twitter(@tak_yamm)でDMをしていただければ幸いである.

なお,知り合いの方向けに言っておくと,このサイトはあくまで趣味であって,勉強や研究や仕事の方を優先するので安心してほしい.などという言葉を試験3日前に書いている私であった.

2020年7月24日
山本 拓都