第14話 ニューラルネットワークを学ぶ -神経細胞のモデル化-
ディープラーニングのプログラミングを学び始めて1ヶ月ちょい。
Python・NumPy、数学の学習を経ていよいよ今回からニューラルネットワークの学習です。
どんどんマニアックな世界に入っていきますよ。
ディープラーニングは、ニューラルネットワークを多層化したものらしいです。
ということは、ニューラルネットワークはディープラーニングの入り口と言って良さそうですね。
さて、今回の内容は「神経細胞のモデル化」。
具体的には次のとおりです。
・生物の神経細胞について
・神経細胞のモデル化(数式化)
余談ですが、学習の進捗状況はこんな感じです。
それでは今回の学習をスタートします!
(教科書「はじめてのディープラーニング」我妻幸長著)
生物の神経細胞について
生物の体内の情報伝達や記憶の保持は、神経細胞という組織が担っています。
神経細胞が特に集まっている場所が、そう、脳ですね。
ヒトの脳には、実に1000億個以上もの神経細胞が存在するそうです。
生物の神経細胞を模式図で表すとこのようになります。
模式図を使って、神経細胞間の情報伝達を説明します。
①
他の神経細胞のシナプス前細胞から、シナプス後細胞が神経伝達物質(化学物質)を受け取り、細胞体の電位が上昇する。(これが細胞間の情報伝達)
②
複数の情報伝達により電位がある一定のレベル(閾値という。読み方は「いきち」「しきいち」。)を超えると、細胞体から軸索へ電気信号が発せられる。
この現象のことを発火という。
③
電気信号は軸索を通って軸索端末へ流れ、シナプス前細胞で神経伝達物質を発生して、次の神経細胞のシナプス後細胞に情報を伝達する。
生物のことは全く知らなかったので
「へえ、こんな感じなのか。というかこんなことが解明されていることにビックリ!現代科学ハンパねえ。」
というのが、ここまでの感想です。
神経細胞の情報伝達のメカニズムは相当に奥が深い世界のようですが、ここではざっくりの理解に留めておこうと思います。
さて、一体これをどうやってモデル化するのでしょうか。
先に進んでみましょう。
神経細胞のモデル化(数式化)
先ほどの神経細胞の模式図をもっと単純化してみます。
軸索と軸索端末はニューロンからの電気信号を伝達しているだけなので、モデル化で重要になってくるのはニューロンの働きです。
ニューロンは、他の神経細胞からたくさんの信号を受け取っています。
対して、ニューロンは1つの電気信号を他のたくさんの神経細胞にばらまいています。
したがって、ニューロン単体は「多入力1出力システム」と考えることができますね。
さて、いよいよニューロンのモデル化です。
モデル化した図を先に示します。
以下①〜⑤のステップにより、このような図になります。
① 入力信号
入力はxで表すことにします。多入力システムなので、k番目の入力はx_kと表現できます。
② 伝達効率
これまで説明しませんでしたが、ニューロン内部にあるシナプスには伝達効率というものがあるようです。
これをwという重みで表現することにします。
入力信号それぞれについて重みが存在するので、k番目の入力に対してはw_kという重みをかけます。
③ バイアス
ニューロン単体が持つ「発火のしやさ」を表現するために、バイアスという定数bを設けます。
④ 活性化関数
信号レベルが閾値を超えると出力(発火)されるような関数f(u)を設定します。
活性化関数にはいくつかの種類があるようですが、もう少し先で学びます。
⑤ 出力信号
yと表すことにします。ニューロンは1出力なのでyは1つだけで良いですね。
こうすることにより、出力yは次のように数式化できました!
「神経細胞を数式化する」=「かなり複雑な式になりそう」というイメージでしたが、意外とシンプルな形になりましたね。
ちなみに、コンピュータ上でモデル化された神経細胞のことを「人工ニューロン」、モデル化された神経細胞のネットワークのことを「人工ニューラルネットワーク」といいます。
コンピュータの世界では、人工は当たり前なのでほとんどの場合で「人工」は省略されるようです。
今回は生物の神経細胞とそのモデル化を学びました。
ニューロンの数式化はそんなに難しいではありませんでしたね。
神経細胞はネットワーク化されてこそ真価を発揮するものだそうです。
というわけで次回は神経細胞のネットワーク化を勉強していきます。
どうぞお楽しみに。
それではまた(^_^)ノシ
よろしければサポートお願いします!いただいたサポートは書籍代等に活用いたします!