SNN スパイキング ニューラル ネットワークと Izhikevich モデルの設計

目次

1. 理論的根拠

2.コアプログラム

3. シミュレーションの結論


1. 理論的根拠

 

      従来の人工ニューラル ネットワークと同様に、スパイキング ニューラル ネットワークも 3 つのトポロジ構造に分割されます。それらは、フィードフォワード スパイキング ニューラル ネットワーク、リカレント スパイキング ニューラル ネットワーク、およびハイブリッド スパイキング ニューラル ネットワークです。

       学習は人工知能分野の核心課題であり、SNNにおいては、生体神経系の情報処理・学習メカニズムを理論モデルで検証するために、脈拍時間レベルに基づく学習手法の研究が必要です。生物学的に説明可能な方法で人工神経系を構築することにより、科学者は神経科学と行動実験を通じて望ましい目標を達成したいと考えています。脳の学習は、シナプス可塑性として知られるシナプス接続の強さの経時変化として理解できます。スパイキングニューラルネットワークの学習方法には、主に教師なし学習、教師あり学習、強化学習があります。

1. 教師なし学習アルゴリズム

        教師なし学習アルゴリズムは、人間と動物の学習を支配しています. 人々は、すべての客観的なものの名前を言われるのではなく、観察を通じて世界の内部構造を発見することができます. 人工ニューラル ネットワークの教師なし学習アルゴリズムの設計は、主にラベルのないデータ セットのトレーニングを目的としています。これには、教師なし学習ルールを適用して、ニューラル ネットワークの接続の重みまたは構造を適応的に調整する必要があります。つまり、「教師」信号の監視なしで、ニューラル ネットワークは入力データから規則性 (統計的特性、相関関係、またはカテゴリなど) を自ら発見し、出力を通じて分類または意思決定を達成する必要があります。 . 一般に、教師なし学習は、入力データセットに冗長性がある場合にのみ意味があります。そうでない場合、教師なし学習は入力データのパターンや特徴をうまく発見できません。つまり、冗長性が知識を提供します。

       スパイキング ニューラル ネットワークの教師なし学習アルゴリズムのほとんどは、従来の人工ニューラル ネットワークの教師なし学習アルゴリズムに基づいており、Hebb の学習規則のさまざまなバリエーションに基づいて提案されています。神経科学の研究結果は、生物学的神経系のスパイク シーケンスがシナプスの連続的な変化を引き起こすだけでなく、スパイク タイミング依存可塑性 (STDP) メカニズムも満たすことを示しています。決定的な時間枠では、シナプス前ニューロンとシナプス後ニューロンによって発射されるスパイク列の相対的なタイミング関係に従って、STDP 学習ルールを適用することにより、教師なしでシナプスの重みを調整できます。

2. スパイキング ニューラル ネットワークの教師あり学習

        スパイキング ニューラル ネットワークの教師あり学習とは、ニューロンの出力パルス シーケンスが対応するターゲット パルスにできるだけ近くなるように、与えられた複数の入力パルス シーケンスと複数のターゲット パルス シーケンスに対してスパイキング ニューラル ネットワークの適切なシナプス重み行列を見つけることを指します。つまり、両者の誤差評価関数が最も小さいということです。スパイキング ニューラル ネットワークの場合、ニューラル情報はスパイク シーケンスの形式で表現され、ニューロンの内部状態変数とエラー関数は、もはや連続的で微分可能なプロパティを満たしていません.効果的なスパイキング ニューラル ネットワークの教師あり学習アルゴリズムを構築することは非常に困難です.また、この分野における挑戦でもあり、重要な研究の方向性でもあります。

       教師あり学習で使用されるさまざまな基本的な考え方に応じて、既存の教師あり学習アルゴリズムは次の 3 つのカテゴリに分類できます。

       勾配降下法に基づく教師あり学習アルゴリズムの基本的な考え方は、ニューロンのターゲット出力と実際の出力との間の誤差と誤差逆伝播プロセスを使用して、勾配降下計算結果をシナプスの重み調整の基準として取得し、最終的にこのエラーを減らします。勾配降下法に基づく教師あり学習アルゴリズムは数学的分析手法であり、学習規則の導出プロセスでは、ニューロン モデルの状態変数は分析式でなければならず、固定しきい値を持つ線形ニューロン モデルが主に使用されます。インパルス応答モデル (スパイク応答モデル) と Integrate-and-Fire ニューロン モデルなど。
シナプス可塑性に基づく教師あり学習アルゴリズムの基本的な考え方は、ニューロン発火パルス シーケンスの時間的相関によって引き起こされるシナプス可塑性メカニズムを使用して、生物学的に説明可能なニューロン シナプス重みの調整のための学習規則を設計することです。学ぶ。
スパイク シーケンスの畳み込みに基づく教師あり学習アルゴリズムは、スパイク シーケンスの内積の差分を介してスパイク ニューラル ネットワーク教師あり学習アルゴリズムを構築します. シナプスの重みの調整は、特定のカーネル関数の畳み込み計算に依存します。スパイクシーケンスの時空間パターンの学習。
3. スパイキング ニューラル ネットワークによる強化学習

       強化学習は、エージェントの行動によって環境から得られる累積報酬値が最大になるように、環境状態から行動へのマッピングの学習です。生物学に着想を得た学習メカニズムに基づいて、人工ニューラル ネットワーク強化学習の研究の焦点は、エージェントの適応最適化戦略を探求することです。これは、近年のニューラル ネットワークおよびインテリジェント制御の分野における主要な方法の 1 つです。強化学習は、エージェントが環境内で一連の行動をどのように取るかに焦点を当てています. 強化学習を通じて、エージェントはどの状態でどのような行動を取るべきかを知る必要があります. 強化学習と教師あり学習の違いは、主に次の 2 点にあることがわかります。

       強化学習は試行錯誤学習です. 直接的な「教師」のガイダンス情報がないため, エージェントは試行錯誤を通じて最適な戦略を得るために常に環境と対話する必要があります. 報酬の遅延, 強化学習のガイダンス情報は非常に少ない.多くの場合
       、それは事後 (最後の状態) に与えられます。これは、正または負のリターンを得た後にレポートを以前の状態に割り当てる方法の問題につながります。
4. スパイキングニューラルネットワークの進化的手法
       進化的アルゴリズム(evolutionary algorithm)は、生物進化の過程をシミュレートする計算モデルであり、主に遺伝的アルゴリズムを含む、自然淘汰や遺伝的変異などの生物学的進化メカニズムに基づいたグローバルな確率探索アルゴリズムです。 (遺伝的アルゴリズム))、進化的プログラミング(進化的プログラミング)および進化的戦略(進化的戦略)など。これらのアルゴリズムの実装にはいくつかの違いがありますが、共通の特徴があります。つまり、すべて生物学的進化のアイデアと原則を使用して実際の問題を解決します。

        進化的アルゴリズムをスパイキング ニューラル ネットワークと有機的に組み合わせることで、研究者は進化的スパイキング ニューラル ネットワークの研究分野を切り開き、複雑な問題を解決する能力を向上させてきました。進化的スパイキング ニューラル ネットワークは、適応システムの一般的なフレームワークとして使用できます。適応システムは、ニューロンのパラメーター、接続の重み、ネットワーク構造、学習規則を人間の介入なしに適応的に調整できます。

        HH モデルの利点は、ニューロンの記述が非常に正確であることですが、時間の複雑さが高く、大規模なネットワークでの使用には適していません。ニューロンをシミュレートするための単純な LIF モデルも提案されていますが、ニューロンのいくつかの特性は簡潔すぎるため無視されています。イジケビッチ博士は 2003 年に HH モデルを単純化し、イジケビッチ モデルを提案しました。単純化されたモデルは次のとおりです。

        このうち、v は膜電位を表し、u はパルスが放出された後の膜電位の回復変数を表し、I は入力電流を表し、a、b、c、d はすべて膜の回復速度を表すパラメーターです。パルス後の電位、および回復変数 u は、膜電位、静止電位、および回復変数の増加の程度への影響の大きさによって影響を受けます。 

2.コアプログラム

.....................................................................................
firings=[];
nn=1;
for t=1:1000 % simulation of 1000 ms
I=[5*randn(Ne,1);2*randn(Ni,1)]; % thalamic input,rangn()产生均值为0方差为1的正态分布

fired=find(v>=30);% indices of spikes find返回的是v>=30的横坐标
firings=[firings; t+0*fired,fired];%前面的firings是把上一次循环的作为现在firing的上半部分,后面为下半部分,之所以t+0*fired是为了和fired同维
v(fired)=c(fired);
u(fired)=u(fired)+d(fired);
I=I+sum(S(:,fired),2);

disp_v(:,nn)=v;
disp_v(fired,t)=30;

v=v+0.5*(0.04*v.^2+5*v+140-u+I); % step 0.5 ms
v=v+0.5*(0.04*v.^2+5*v+140-u+I); % for numerical
u=u+a.*(b.*v-u); % stability

disp_t(nn)=t;
nn=nn+1;
end

figure(1)
subplot(211)
plot(disp_v(1,:));
subplot(212)
plot(firings(:,1),firings(:,2),'.');
UP147

3. シミュレーションの結論

 

おすすめ

転載: blog.csdn.net/ccsss22/article/details/130251841