Slow Feature Analysis

 神経系を模した教師なし学習の枠組みとして、Slow Feature Analysis (SFA) というのがあるらしい。これかなり良い感じなんじゃないだろうか。


 感覚神経系の役割は、生存に合目的な行動を行えるように外界の状況を推定することにある。感覚器から得られる生の感覚入力自体はノイズや(視覚系なら)眼球運動などの影響で高速に(〜数十ミリ秒)変化するけど、外界の状況(特定の場所にいる、目の前に熊がいる、等。)はより低速に(〜数秒)変化する。このことから、神経系は自然感覚入力のうちの低速に変化する特徴(slow feature)を抽出するように自己組織化すると仮定し、モデル神経系に自然感覚入力を与えて学習させてみましたと。


 そうすると、視覚野で見られる受容野構造や、海馬で見られる場所細胞に相当する情報表現を獲得させることができたと。さらに面白い点は、この学習則をミクロに考えるとそれは STDP として実装できる、ということ。
 つまり、単純な学習則ながら生理学的な知見の再現もある程度出来ているし、階層的に組むことで高次の神経表現も獲得でき、さらに生理学的にも結構 plausible なように思える。



Slow feature analysis yields a rich repertoire of complex cell properties.
Berkes P, Wiskott L.
J Vis. 2005 Jul 20;5(6):579-602.


 モデル神経系に自然動画(連続する2枚の自然画像)を入力として与えて SFA で学習させると、V1 受容野みたいなものが出てくる。特定の動きのみを含む動画(回転だけとか拡大縮小だけとか)で学習させると non-cartesian grating みたいなの(V4 野細胞の特徴選択性を調べるのに使われた刺激。 Gallant et al. 1993)が出てきたりする。


Slowness and sparseness lead to place, head-direction, and spatial-view cells.
Franzius M, Sprekeler H, Wiskott L.
PLoS Comput Biol. 2007 Aug;3(8):e166.


 モデル神経系を階層的に組み、それに仮想3次元空間内を動き回る仮想ネズミの視点から見た動画(いわば仮想 cat cam みたいな)を入力して SFA で学習させてやると、いわゆるグリッド細胞(Hafting et al. 2005)みたいなのが出てくる。さらに最終層でスパースコーディング(Olshausen and Field 1996) をやらせると場所細胞が出てくる。仮想ネズミの動き方を変える(つまりモデル・学習則は固定で入力の統計的な性質だけを変化させる。)と、同じモデル神経系が spatial view 細胞(特定の場所を見ているときに発火する細胞。霊長類の海馬で見つかっている。Rolls et al. 1998)のような神経表現を獲得したと。


Slowness: an objective for spike-timing-dependent plasticity?
Sprekeler H, Michaelis C, Wiskott L.
PLoS Comput Biol. 2007 Jun;3(6):e112.


 Slow Feature Analysis と STDP の関係を解析的に考察したもの。EPSP の時定数によって STDP の形が変わってくるはずだ、という話も。



Slow feature analysis for modeling place cells in the hippocampus and its relationship to spike timing dependent plasticity (2007)
Internet Archive

http://ia351441.us.archive.org/1/items/Redwood_Center_2007_10_29_Laurenz_Wiskott/Redwood_Center_2007_10_29_Laurenz_Wiskott.gif

 SFA の発案者 Laurenz Wiskott さんが2007年秋に UC バークレーで行ったトーク。ちなみにホストは Sparse coding の Bruno Olshausen さん。



sfa-tk : Slow Feature Analysis Toolkit for Matlab
P.Berkes @ HUMBOLDT-UNIVERSIT〓T ZU BERLIN


 SFAmatlab で試してみるための toolbox。



Modular toolkit for Data Processing
sourceforge


 SFApython で行うためのモジュールが入っている。これは他にも ICA や LLE 等も入っているのでいろいろ遊べるかも。