脳のようなコンピューティング - スパイキング ニューラル ネットワーク (スパイキング ニューラル ネットワーク) の説明

Spiking Neural Network の簡単な紹介 (1)

従来のニューラル ネットワークには、畳み込みニューラル ネットワーク シリーズ (CNN)、リカレント ニューラル ネットワーク シリーズ (RNN)、生成的対立ネットワーク (GAN)、オートエンコーダー (オートエンコーダー) など、パーセプトロンを基本単位とするさまざまな既存のトポロジカル バリアントが含まれます。逆伝播アルゴリズムの存在とさまざまな数学的オプティマイザの開発により、第 2 世代のニューラル ネットワークはさまざまなタスクで優れたパフォーマンスを発揮します。

スパイキング ニューラル ネットワーク (SNN) は、既存の MLP ベースの第 2 世代ニューラル ネットワーク (ANN) に続いて開発された第 3 世代ニューラル ネットワークとして認識されています。従来のニューラル ネットワークは、さまざまなタスクで優れた成果を上げてきましたが、その原理と計算プロセスは、人間の脳の実際の情報処理プロセスにはまだほど遠いものです。主な違いは次の点に要約できます。

1.従来のニューラル ネットワーク アルゴリズムは依然として、計算に高精度の浮動小数点数を使用することに基づいていますが、人間の脳は計算に浮動小数点数を使用していません。人間の感覚系と脳では、情報は活動電圧または電気スパイクの形で送信、受信、および処理されます。
2. ANN のトレーニング プロセスは、バックプロパゲーション アルゴリズム (勾配降下) に大きく依存していますが、実際の人間の脳の学習プロセスでは、科学者はこの種の学習を観察していません。さらに、人間の脳の記憶と学習は、シナプス後細胞が刺激された後に生成されるシナプス可塑性に依存しています。詳細については、以下を参照してください: Hebbian learning
3. ANN は通常、ネットワークのフィッティングを行うためにラベル付きデータの大規模なセットを必要とします。これは、通常の管理者とは異なります。多くの場合、私たちの知覚と学習のプロセスは監視されていません。さらに、人間の脳は通常、同じことを学習するために、それほど大量の繰り返しデータを必要としません。

要約すると、ニューラル ネットワークを人間の脳に近づけるために、SNN が誕生しました。それを発見するためのインスピレーションは、生物学的な脳が情報を処理する方法、つまりスパイクから来ています。これを読めば、SNN が CNN や RNN のようなネットワーク構造ではなく、より人間の脳に近い新しいタイプのニューラル ネットワーク アルゴリズムであることが理解できるはずです

SNNとANNの違い

では、SNN と従来の方法の違いは何ですか?

1. 情報媒体

まず、最も基本的な違いは、SNN と ANN の情報伝達媒体が異なることです。ANN は高精度の浮動小数点数を使用しますが、SNN はスパイクを使用するか、1 と 0 として理解できるため、ネットワーク内の情報の希薄性が大幅に向上します。これらのスパイクは、ネットワーク内で同じ振幅と期間を持ちます.
図 1、スパイキング ニューラル ネットワーク
図 1 左: 従来のニューラル ネットワーク構造. 右:SNN構造

では、SNN では、情報はどのようにスパイクで表現されるのでしょうか? これには、パルスコーディングの知識が必要です。ここでは簡単に紹介しますが、後で詳しく説明します。SNN では、時間関連の処理形式を導入することが非常に重要です。情報はスパイク列 (スパイク列) の時系列にエンコードされます。例: 高周波の一連のパルスは高い値を表し、低周波のパルスは低い値を表します。別の例: 固定時間ウィンドウでは、1 つのパルスが発生する位置も、対応する値/情報を表すことができます。

2. ニューロン

ここに画像の説明を挿入
図 2左: 従来のニューロン。右: スパイク ニューロン

情報のキャリアが異なるため、ニューラル ネットワークの基本単位であるニューロンも異なる必要があります。ANN に精通している学生は、基本的なニューロン パーセプトロンが、ニューロンの入力値を統合し、非線形活性化関数 (非線形活性化関数) に従うために使用される単純な加算および乗算演算子であることを知っています。ただし、正確な値に対するこの操作は、バイナリパルスの処理には適していません。SNN では、基本的な演算単位は、生物学的シナプス構造に基づいて構築されたスパイク ニューロンです。2 つのスパイク ニューロンがあり、そのうちの 1 つはスパイクの送信者としてのシナプス前ニューロン (シナプス前ニューロン) であり、もう 1 つはスパイクの受信者としてのシナプス後ニューロン (シナプス後ニューロン) であると想像してください。スパイキングニューロンの処理は、シナプスから伝達されたパルスを受け取り、シナプスの重みに応じたスパイキング機能によりシナプス後膜電圧(シナプス後電位(PSP))を発生させることです。

ここに画像の説明を挿入
図 2スパイク ニューロンの例。PSPはシナプス後電位の略です。

では、PSPとは何ですか?簡単な説明は、ニューロンの膜電圧の変化です。たとえば、図 3 は、ニューロンがスパイクを受け取った後の膜電圧u ( t ) u(t)を示しています。u ( t )と時間tttの変化生物学では、この電気パルスの振幅と時定数は特定の範囲内にあります.たとえば、図3では、膜電圧は-70-70-70 mV、この通常静止値と呼ばれます。刺激を受けると、電圧変化の振幅が生成されます。変更が終了すると、膜電圧は初期の静止値にリセットされます。実際の動作でこのような波形を生成するにはどうすればよいですか? 生物学的ニューロンの実験的分析を行った後、科学者はニューロンの多くの微分方程式モデルを与えました。

例:
IF ニューロン (統合および発火)

I ( t ) = C md V m ( t ) dt I(t) = C_m \frac {dV_m (t)}{dt}(トン)=Cメートルd td Vメートル( t )

この式は、静電容量の法則 Q = CV の時間微分であることがわかります。入力電流が印加されると、膜電圧は一定のしきい値 Vth に達するまで時間の経過とともに増加し、その時点でデルタ関数が急上昇し、電圧がその静止電位にリセットされ、その後モデルは実行され続けます。

Hodgkin–Huxley モデルの他に、LIF モデル、SRM モデルなどがあります。しかし、SNNにおけるNeuronモデルの役割は主にパルスシーケンス処理ユニットとしての役割であり、実際の生物学的シミュレーションの特性であり、SNNの実際のアプリケーションでは、あまり過酷な膜電圧波形を近くに要求する必要はないと個人的には考えています.実際の生物学に。

ここに画像の説明を挿入
図3 単一スパイクによる膜電位変化。

では、図 4 に示すように、シナプス後ニューロンが複数チャネルのパルス列入力膜電圧を受け取ると、どのような変化が生じるでしょうか?
ここに画像の説明を挿入

図 4 単一のスパイク ニューロンが複数のスパイク入力を受け入れます。

ここに画像の説明を挿入
図5 膜電圧変化のシミュレーション。

図 5 に示すように。シナプス後ニューロンは、最初に時間内に受信したパルスを統合し、それらを膜電圧の変化の重ね合わせに変換します。膜電圧が設定された閾値を超えたとき ( ϑ \varthetaϑ )、シナプス後ニューロンは、スパイクを送るのに十分な刺激を受けたと見なされます。パルスが送信された後、膜電圧がリセットされ、シナプス後ニューロンは、ニューロンの不応期と呼ばれる期間、受信したパルスを処理できなくなります。不応期の後、膜電圧は静止値に戻り、次のパルスの準備が整います。これは、ニューロンをスパイクする完全なスパイク生成プロセスです。

3. 学び方・使い方

従来の ANN は、主に勾配降下に基づく逆伝播アルゴリズムに依存しています。しかし、SNN では、スパイクニューロンの関数は通常微分不可能な差分方程式であるため、SNN で逆伝播を実現することは非常に困難です。では、SNN をトレーニングするにはどうすればよいでしょうか。N の実際の適用では、SNN 実装の主流の方法が約 3 つあります。以下に、その方法の簡単な説明を示します。

  1. 従来の ANN を SNN に変換
    SNN は BP をトレーニングに使用できないため、従来のニューラル ネットワークのトレーニングを SNN に変換することは可能ですか? 答えはイエスです。この方法の利点は、SNN の特性を考慮する必要がないことですが、入力、操作、および出力に関する処理キャリアとして、トレーニング済みネットワークをバイナリ スパイクを持つネットワークに完全に変換する必要があります。入力では、入力信号はパルス列としてエンコードされます。すべてのニューロンを対応するスパイキング ニューロンに置き換える必要があり、トレーニングから得られた重みを定量化する必要があります。

  2. 誤差逆伝播法

ねえ、作者。SNN のスパイク関数は逆伝播できないと言いませんでしたか? では、なぜここでできると言われているのでしょうか。そうです、スパイクニューロンのスパイク関数は、微分と差分による勾配を直接計算することはできません。しかし、研究者たちは、バックプロパゲーションのためにネットワーク内の変化するパラメーターの勾配を推定するための多くの巧妙な方法を考え出しました. このようなアルゴリズムはまだ議論の余地がありますが、SNN のトレーニングの複雑さをある程度軽減します. このようなアルゴリズムには、spikeprop や Slayer などがあります.

  1. シナプス可塑性

これは、最初の 2 つの方法よりも生物学的な学習に近いです。生物学的原理を使用して、研究者はスパイク時間依存の可塑性を SNN のトレーニングに導入しました。ただし、このトレーニング方法は斬新ですが、トレーニング プロセスは非常に面倒であり、純粋に教師なし学習であり、設計者が神経科学とニューラル ネットワークを理解しているかどうかをテストするものであり、引き続き関連ブログを書いて紹介し、使用していきます。 .

ANN VS SNN

ここに画像の説明を挿入

要約すると、SNN は現在も急速に発展しており、ANN よりもモバイル デバイスでのアプリケーションの可能性が高いという利点があります。これは主に、新しいニューロモーフィック チップと組み合わせて高速かつ低電力の大規模ネットワーク コンピューティングを実現できる処理方法によるものです。

最後に書く

個人的なブログを書くのは初めてで、思ったこと、書いたことは個人的な理解に過ぎませんので、間違いがあれば指摘・修正してください。新たな分野であなたと一緒に探求し、学ぶことを楽しみにしています。

フォローアップ ブログでは、次の内容を更新し続ける予定です。

  1. SNNの開発状況と登場アプリ
  2. 脳のようなセンサー: 動的視覚センサー 動的センサーと人工内耳: シリコン cohlear
  3. 教示例:SNNによる手書き数字認識
  4. 例による教育: 畳み込みスパイキング ニューラル ネットワークに基づくオブジェクト認識
  5. 例による教育: スパイキング ニューラル ネットワークに基づく動的ジェスチャー認識

おすすめ

転載: blog.csdn.net/Yannan_Strath/article/details/105761023
おすすめ