>  > ■エスペリア スーパーダウンサスラバー【BR-1766F】フロント 三菱 ミニキャブ バン DS17V 4WD ブラボーターボ / ブラボー / G / M R06A H27/3~
225/40R18 サマータイヤ タイヤホイールセット 【送料無料】Stich LEGZAS FAUVEX 18x7.0 +48 100x5 MB/P + DIREZZA DZ101 (225-40-18 225/40/18 225 40 18)夏タイヤ 18インチ 4本セット 新品

H27/3~ R06A / ブラボーターボ G / ブラボー 三菱 M ■エスペリア スーパーダウンサスラバー【BR-1766F】フロント / バン 4WD / ミニキャブ DS17V ブラボー

某国公立大学の医学部の学生です。

複数人で書いています。 個々の紹介

 

アクセスカウンター

最近の記事

LaTeXのenumitemカウンタあれこれ (土, 30 3月 2019)
>> 続きを読む

LaTeXの数式番号を丸数字・非右寄にする (Sat, 30 Mar 2019)
>> 続きを読む

Spiking Neural UnitをChainerで実装してみた (Tue, 19 Mar 2019)
>> 続きを読む

matplotlibで棒グラフ間の有意差の描画をする (Mon, 11 Feb 2019)
>> 続きを読む

matplotlibのみで線形回帰の信頼区間を描画する (Mon, 11 Feb 2019)
>> 続きを読む

Qiita

神経科学  ·  19日 3月 2019

■エスペリア スーパーダウンサスラバー【BR-1766F】フロント 三菱 ミニキャブ バン DS17V 4WD ブラボーターボ / ブラボー / G / M R06A H27/3~

(著)山たー

Spiking Neural Unit (SNU)をChainer-v5で実装しました。

Paper: https://arxiv.org/abs/1812.07040

 

コードはhttps://github.com/takyamamoto/SNU_Chainerにあります。

 

SNUは通常のNeural NetworkのフレームワークでSpiking Neural Networkが実装できる(ついでにBack-propagationを用いて学習もできる)という、面白いユニットです。

 

ユニットをpaper通り実装するのはすぐできたのですが、学習が全く進まなかったので、数カ月放置しました。もう一度チャレンジし、色々いじくってたら学習が進んだので結果をまとめました。

 

■エスペリア スーパーダウンサスラバー【BR-1766F】フロント 三菱 ミニキャブ バン DS17V 4WD ブラボーターボ / ナチュラルギャザー×ライトグレー ブラボー 460-57224 / G / M R06A H27/3~

SNUはstateを持つfeed-forwardのユニットです。他にstateを持つユニットとしてはLSTMやGRUなどがあります。

(Wozniak, et al., 2018; Fig.1)

 

構造はLeaky-integrate and fire(LIF)ニューロンの式を離散化し、 スパイクが生じる($y=1$)と、膜電位を想定した$s$が0にリセットされるというものです。式としては \begin{align*} s_t&=g\left(Wx_t+l(\tau)\odot s_{t-1}\odot (1-y_{t-1})\right)\\ y_t&=h(s_t + b) \end{align*} と2つでかけます。ここで$g(\cdot)$はReLU, $h(\cdot)$はStep関数です。$l(\tau)=(1-\frac{\Delta t}{\tau})$は1step前の膜電位をどれだけ引き継ぐかの割合です 165/55R15 TOYO TIRES トーヨー タイヤ TRANPATH LuK トランパス LuK JP STYLE Vercely JPスタイル バークレー サマータイヤホイール4本セット。学習可能なパラメータとして実装も可能ですが、paperでは定数が用いられています。なお、実装では$\Delta t=1 \text{ms}, \tau=5 \text{ms}$としました。

上の式にはバイアスがありませんが、これは静止膜電位を0mVと設定しているためです 16インチ サマータイヤ セット【適応車種:アリオン(240系)】HOT STUFF エクシーダー E03 ダークシルバー 6.0Jx16ヨコハマ エコス ES31 205/55R16。下の式はバイアスを足して(実際には閾値との差を計算して)、0を超えればスパイクが生じます($y=1$)。

学習させずに挙動を試してみると下図のようになります。上から入力(ポアソンスパイク)、SNUの膜電位$s_t$、SNUの出力$y_t$です。なお、ここのパラメータは学習させるものと異なり、Paper中のBrianとの比較における設定と同じです。

コード:check_snu_layer.py

LIFニューロンと同じ挙動をしていることが確認できます。

 

ここで問題となるのは、Step関数があるということです。Step関数は微分するとDiracのデルタ関数となり、誤差逆伝搬できません。そこでpaperでは疑似勾配(pseudo-derivative)としてtanhの微分を用いたそうです。ただし、学習できなかったので、これに手を加えました(後述) 【H065】モビリオ [H16/1-H17/11][GB1 / GB2] ワイルドステッチアルファ ライトベージュ Bellezza ベレッツァ シートカバー。

 

また、Step関数の代わりにSigmoidを用いたsoft-SNUも提案されていました。

 

実装上の変更点

toy-problemとして、後述するJittered MNIST(スパイク列に変換したMNIST)の分類を学習させました。ただし、うまくいかなかったので、以下の4点を変更しました。

変更点1

ReLUだとdying ReLUが起こっているようで学習がうまく進みませんでした。そこで、活性化関数としてExponential Linear Unit (ELU)を代わりに用いました。この変更は発火特性に影響を与えません。

 

変更点2

Step関数の疑似勾配(pseudo-derivative)について。

■エスペリア スーパーダウンサスラバー【BR-1766F】フロント 三菱 ミニキャブ バン DS17V 4WD ブラボーターボ / ブラボー / G / M R06A H27/3~

[吉永鰹節店] 超鰹力 ちょうかつおりょく 全2箱セット(全40本) 【当店在庫品/送料無料】, 【ヨンカ】【YONKA】ミセラー ウォーター 200mLスキンケア クレンジング 植物, 資生堂 フィト アンド ローズ スカムレスボディシャンプー 10L [専用コック付き]※空容器は付属しておりません。 【送料無料】, 【お年玉コフレ・正規品・送料無料】COSMEお年玉コフレSET&ルナソル スキンモデリングパウダーグロウ<レフィルのみ>(10.5g), 【お年玉コフレ・正規品・送料無料】COSMEお年玉コフレSET&アナスイ スタンプ チークカラー 400(3g) クラッツィオ シートカバー クラッツィオ アルカンターラ ET-0245 3列シート車 全席分 トヨタ VOXY AZR60G/65G X-Vエディション ワンタッチタンブルシート, 【関西、関東限定】取付サービス品エアロ 3点キットC / ( FRハーフタイプ )【ロエン / トミーカイラ】【 PRIUS(プリウス) G’s RR ZVW30 2011.12~2015.11 】 PREMIUM STYLE KIT A [材質] FRP + ウェットカーボン(塗装済), 【受注生産】【アドミレイション/Admiration】 プリウスPHV/PRIUS 等にお勧め アルタモーダ シートカバー LUXURY ラグジュアリー・スクエア (SSPU×SSPU) 型式等:ZVW52 品番:CS-T113-D, コンチネンタル UltraContact TM UC6 215/55R17 ブリヂストン BALMINUM KR10 ホイールセット 4本 17 X 7 +38 5穴 114.3, ミシュラン Pilot Sport PS2 N2 サマータイヤ 235/35R19 WEDS ウェッズ Kranze クレンツェ Weaval 100EVO ホイールセット 4本 19インチ 19 X 8 +42 5穴 114.3 アドミレイション アルタモーダ ラグマット エクセレントダイヤ 2列目L GRWN033B-I ニッサン エルグランド 後期 2004年08月~2010年08月

■エスペリア スーパーダウンサスラバー【BR-1766F】フロント 三菱 ミニキャブ バン DS17V 4WD ブラボーターボ / ブラボー / G / M R06A H27/3~:アドミレイション アルタモーダ ラグマット エクセレントスクエア 2列目L GRWT032B-I トヨタ アルファード GGH/ANH20系 後期 2011年11月~ RSR RS-R ダウンサス ニッサン セレナ C25 19/12~21/9 FF Ti2000 HALF DOWN N700THD 一台分 RS-R ローダウン サス

■エスペリア スーパーダウンサスラバー【BR-1766F】フロント 三菱 ミニキャブ バン DS17V 4WD ブラボーターボ / ブラボー / G / M R06A H27/3~.EKチェーン 江沼チェーン モトクロスレース用 ノンシールチェーン 520MRD7 リンク数:144L ヘッドライト ANZO 111127 Set of 2 Black CCFL Halo Projector Headlights for 02-09 Trailblazer ANZO 111127 02-09トレイルブレイカー用の黒色CCFLハロープロジェクターヘッドライト2個セット

シグマ(90.10~95.9)F25A[4WD,4WS] ■アクレブレーキパッド フォーミュラ800C 前後1台分セット■適合詳細要確認■代引き不可■ [S600TS] RSR Ti2000 SUPER DOWN ダウンサス 1台分セット ワゴンRワイド MB61S 9/2~11/4 4WD K10A 1000 TB

。tanhの微分では学習が進まなかったので、 $ f'(x) = \begin{cases} 1 & (-0.5<x<0.5) \\ 0 & (\text{otherwise}) \end{cases} $ としました 。気持ちとしてはhard sigmoidのような関数の微分です ★送料無料★(一部離島等除く) 【エスペリア】DAIHATSU ハイゼットデッキバン HIJET DECKVAN S320W S330W S321W S331W スーパーダウン タイプ2 S320W EF-SE H16/12~19/12 2WD スーパーダウンサスラバー フロント。この考えは自分で思いついたものでないはずですが、どこで見たのか思い出せません…。

変更点3

Loss functionについて。MSEだと学習が進まなかったので、出力ユニットの全スパイク数を加算し、softmaxをかけて、labelとのcross entropyを取りました。

 

また出力ユニットの発火数を抑えるため、代謝コスト(metabolic cost)を損失に加えました。これはANNを脳のモデルとして捉える研究ではよく用いられるコストです。正則化の効果もあります。出力層の $i$ 番目のユニットの出力を $y_t^{(i)}$とすると、代謝コスト $C_{\text{met}}$は $ C_{\text{met}}=\frac{10^{-2}}{N_t \cdot N_{\text{out}}}\sum_{t=1}^{N_t}\sum_{i=1}^{N_{\text{out}}} \left(y_t^{(i)}\right)^2 $ となります。ただし、$N_t$はシミュレーションの総タイムステップ数、$N_{\text{out}}$は出力ユニットの数(今回だと10個)です。あまり大きくすると、分類誤差よりも代謝コストの方が大きくなってしまうので低めに設定します。

変更点4

optimizerについて。paperにあるようにSGD(lr=0.2)では学習が進まなかったので、Adam(alpha=1e-4)としました。

 

Jittered MNIST

学習はMNISTですが、スパイク列として入力する必要があります。手法が詳しく記されていなかったので、勝手に作りました。

 

まず、MNISTの画像を2値化し、1の画素値を持つユニットに100Hzのポアソンスパイクを入力しました。下の画像は左から「2値化した4」,「1 time stepに入力されるスパイク」、「入力される全てのスパイクを加算したもの」です。 

コード:check_jittered_mnist.py

 

入力がかなりnoisyなので、入力の周波数を大きくすればAccuracyも上がると思います。

 

結果

10 simulation time step (10ms) のシミュレーションで、100 epoch学習させました。

LossとAccuracy

左からLoss, Accuracyの変化です。train lossとaccuracyがとても変動しているので、バッチサイズを増やせば改善されるかもしれません フィット用 シルCOMP.R.フロントインサイドフィットフィットアルマス 65140-SAA-310ZZ。MNISTにしてはAccuracy低いですが、ずっとchance accuracy(~0.1)ぐらいをさまよっていたので、上手く学習できたといえます。なお、Paperとは入出力の条件が異なるので比較はできません。

コード:train.py

 

出力の挙動

ネットワーク内のユニットの挙動を見てみましょう。とはいえ、中間層は見てもよく分からないので、出力層だけ見てみます。学習は10msだけでしたが、外挿して100msのシミュレーションをテストします。下図の左は入力のスパイクの合計を正規化して画像化したものです。7と読めると思います。右はこのときの出力層のユニットのスパイクです。7番目のユニットがよく発火していることが分かります。

 

コード:analysis.py

 

なお、代謝コストが無い場合は、 頻繁に発火が見られ、biologicalニューロンの挙動とかけ離れたものになってしまいました。

 

このように、ちょっとした工夫でSpiking NNを普通のANNのライブラリで実装することができました。これを応用してSpiking ConvolutionもChainerやPytorch等で実装できるかもしれませんね!(誰かPaper書きそうですが)

  

Firing rate NN  vs Spiking NN

最後に普通のANNとSpiking NNの違い(特にRNNの学習)に触れておきます。

 

今のANNはニューロンの発火率モデル(Firing rate model)と捉えられます。要は、ANNの出力は発火率の期待値ということです。これに対してスパイクを出力するNNがSpiking NNです。今回のSNUはrate modelの実装に用いるフレームワークでspiking modelを実装したということが面白い点です。

 

実際のニューロンはスパイクしているので、spiking NNの方が生理学的にもっともらしいです。ただし、rate modelでもニューロンの挙動は(場合によりますが)近似できます。

 

また、Spiking NNの中でもrecurrent connectionを持つSpiking RNNは学習が困難ですが、今回用いたSNUではback-propagation through time (BPTT)を用いて学習可能です(feed-forwardだけでなくrecurrnet connectionも付けられるため)。他にはrate modelをspiking modelに変換することでSpiking RNNを実装する研究がいくつかあります。

(例えば一番直近だとhttps://www.biorxiv.org/content/10.1101/579706v1

 

Spiking modelに限らず、RNNの学習が難しいのは、Temporal credit assignment (TCA; 時間的信用割当)が必要となる点です。TCAの手法として、現時点で生理学的に妥当な学習方法は提案されていません。BPTTはTCAを可能にしますが、発火を全て記憶しておくのは生体内では困難です。ただ、脳内でやっていないことはないと考えられるので、今後の研究で分かればいいなと思います。

(参考:T.P. Lillicrap, A.Santoro. "Backpropagation through time and the brain". Curr. Opin. Neurobiol. (2019). (sciencedirect))

 

tagPlaceholderカテゴリ:
© 2017 知識のサラダボウル