ヒロ研 Hiro Lab. ニューラルネットワーク


もどる

第1回 - ニューラルネットワークとは?


作成:2018/06/22 (Hiroshi Araki)


ニューラルネットワークを直訳すると「神経回路網」です.今話題の人工知能の言わば「脳」のことです. ニューラルネットワークを知ることで,人工知能の仕組みが分かるようになり,人工知能の課題を見つけることができるようになります.

まずは,少し焦点を変えて,実際の生物の神経細胞の働きから簡単に見ていく.生物が苦手な人もいるかもしれないが,僕もそうなので安心してください.(笑)



1.1 生物の神経細胞


人間をはじめとする生物の脳はとても優れている.なんといっても,視界から得た細かい情報を瞬時に識別し,行動をとることができる. そのおかげで,ボールが飛んできても,とっさに避けることができるし,事故を起こすことなく車や自転車を運転することができる.

そんな優れた処理をしているのは,図1で示すような脳の「神経細胞(neuron)」である. この神経細胞同士が大量に接続されて「神経回路網(neural network)」を構成している.



図1, 脳の神経細胞



図1でいうと,神経細胞同士は樹状突起と軸索の間にある小さな隙間「シナプス(synapse)」によって情報を伝達している. つまり,軸索が出力部で,樹状突起が入力部と考えてよい.

では,神経細胞において何が情報を担っているのだろうか?

答えは「電気パルス(pulse)」である.電気パルスとは電位を持ったスパイク(spike)上の波のことで,図2のようなトゲのような形をしている.



図2, 電気パルスのスパイク上の電位変化
(引用:http://nonatonic.hatenablog.com/entry/2017/11/25/005515)


次に出てくる疑問は電気パルスはどうやって発生しているのか?ということ. ここからの話は,さらに複雑な話になってくるが,今は完全に理解する必要はない.


神経細胞の外側は体液が存在し,図3のように神経細胞の内と外で多く存在するイオンが異なる.この時,細胞内外で電位差が生じる. 細胞外から見た細胞内の電位差を膜電位(membrane potential)といい,通常は-70mV程度を保っている.これを静止電位(resting potential)という.



図3, 細胞膜の簡易概念図


しかし他の神経細胞から入力があると,膜電位が変化する.そうすると,イオンチャネルが開き外側のNaイオンが細胞内に流れ込み, 膜電位はやがて逆転し正になる(活動電位(action potential)という).この時ある閾(しきい)値(だいたい20mVくらい)を超えると,神経細胞はスパイクを発生させる

その後は,電位は静止電位に戻り,一定時間膜電位が上昇しない不応期に入る.これらの一連の流れを図で表すと,図2になる.

ちなみに,神経細胞がスパイクを発生させたとき,「神経細胞が発火した(fire) / 興奮した(excite)」という.


次に重要なことは,シナプス(入力部)には興奮性シナプス抑制性シナプスの2種類が存在する. 前者は膜電位を上昇させ,後者は逆に下降させる方向に働く.つまり入力には正負があるということだ.

ここまでの話を踏まえると,正負のある入力の和が,神経細胞へ最終的に入力される情報となる.


また最後に,神経細胞の重要な特徴としてシナプス可塑性(synapse plasticity)がある. 難しい言葉だが,簡単に言えばシナプスの結合部分には,どの程度その入力を考慮するかというものが保存されており,この可塑性が情報を蓄える役割を果たしていると考えられている.

(例えば,「神経細胞Aから受け取った入力は8割無視して,Bからの入力は2割無視しよう!」みたいな感じ.笑)



さて,長く神経細胞について書いたが,完璧に理解しなくも良いです.モデル化する上で重要な点は以下の4つ!

・出力の際に閾値があること
・入力に正負があること
・入力は加算されること
・シナプスの結合には可塑性があること

以上の4つだけ,頭に入れておいてください.



スポンサーリンク



1.2 神経細胞のモデル化


さて,生物の小難しい話は終わって,さっそくモデル化していく.重要な点は前述した以下の4つである.

・出力の際に閾値があること
・入力に正負があること
・入力は加算されること
・シナプスの結合には可塑性があること

神経細胞をより忠実に再現したモデルをスパイクニューロンモデルというが,それは主流ではないので,一旦飛ばす.(これはいつか解説します)

まず紹介するのは単純なモデルにも拘わらず,現在も基本は変わっていない形式ニューロンというモデル. マッカロ(W.S. McCulloh)とピッツ(W.H. Pitts)が1943年に提案した,世界初のニューロンモデルである!

形式ニューロンの概念図を図4に示し,各値の計算式を(1)~(3)に示す.



図4, 形式ニューロン
(引用:http://www.gifu-nct.ac.jp/elec/deguchi/sotsuron/kozakai/node5.html)


$\displaystyle u=\sum_{k=1}^{n}{w_k x_k} \ \ \ \ \ \ \ \ \ (1)$

$\displaystyle y=f(u-\theta) \ \ \ \ \ \ \ \ \ (2)\\$

$\displaystyle f(X)= \begin{cases}1 & ( X \gt 0 ) \\ 0 & ( X \leqq 0 ) \end{cases} \ \ \ \ \ \ \ \ \ (3)$


ここで$x_k$は前ニューロンの出力,$u$はニューロンの膜電位の変化量,つまり入力の総和を表す. $w_k$はシナプスの結合荷重を表し,シナプスの可塑性を担う. $\theta$は発火閾値で,$y$がニューロンの出力となる.$f(X)$は入出力関数または活性化関数と呼ばれ,入力を出力に変換させる際の関数である. 今回は,正なら1,負なら0という単純なステップ関数を用いている.

上記数式を言葉で表すと,

「入力と結合荷重の積を総和したものを入力$u$とし,$u$が閾値$\theta$を超えた場合,出力$y$を1とし,超えてなければ0とする」

といった具合である.


形式ニューロンの場合,入出力関数はステップ関数だが,他にも様々な入出力関数が存在する.以下の図5にその一例を上げる.



(a) ステップ関数

(b) ReLU関数

(c) シグモイド関数
$\displaystyle f(X)=\frac{1}{1+exp(-\epsilon X)}$

図5, 入出力関数の例



1.3 ニューラルネットワーク


やっとタイトルの「ニューラルネットワーク」まできました...(笑)

もう気づいている人や,分かっている人もいるかと思うが,今まで詳しく説明してきた神経細胞(ニューロン)をネットワーク上に接続したものをニューラルネットワークと言う.

ニューラルネットワークの形は様々あって,図6に示すような,階層型や相互結合型,などに分類される.



(a) 階層型ニューラルネットワーク

(b) 相互結合型ニューラルネットワーク (結合線は一部省略)

図6, ニューラルネットワークの構造例


相互結合型についてはかなり複雑なので,あまり見かけることはなく,階層型がよく用いられる. このページに限らず,ニューラルネットワークといったら,基本「階層型」を指すことが多い.

今回はここまで.次回はニューラルネットワークを使って,実際にどうやって学習するのかを解説します.



第2回 - パーセプトロン

につづく



第1回 あとがき


「第1回 - ニューラルネットワークとは」にお付き合いいただきありがとうございました. 今回用いた参考文献はトップページでも紹介されている,[1] ニューラルネットワーク (シリーズ 非線形科学入門)です.

少し古い書籍ですが,丁寧に解説されているので良かったら読んでみてください.

神経細胞については,割と簡潔にまとめているため,専門にしている方が読まれたら「ちょっと端折りすぎやぞ!」と思うかもしれません. ここで紹介していることは,ニューロンをモデル化する上で大事なことだけをピックアップしているので,どうかお許しください.笑




スポンサーリンク


このエントリーをはてなブックマークに追加