ぶつりやAI

物理屋の視点から、原理原則を大事に、ディープラーニングのわかり易い説明を心がけています。

【理論基礎3】ニューラルネットワークの基本要素

前の記事  次の記事


生成AIが流行り、「LLM」の「スケーリング則」とか、Deep Search がどうとか、専門的な単語が耳に入るようになり、きっとすごい専門家が私にはわからないすごいことをやっているのだろう、と感じる方、「ニューラルネットワーク」がなにか高尚なものに感じる方もいるかも知れません。しかし実際は段階を追って本質さえ掴めば、その基本的な要素や本質は高校生でも十分にわかります。いわゆる「ディープラーニング」も話題の生成AIも、土台となる基礎は同じです。

<概要>

本記事では、脳の“発火システム”からスタートし、ニューラルネットワークの基本要素を一から整理していきます。本記事を通じて土台を固めておけば、今後のディープラーニングや生成AIについても、より深く楽しみながら学べるはずです

<関連記事>

最新記事の更新情報等はXでお知らせしています。

基本的な発火システムの定式化(出典:筆者作成)

基本的な発火システムの定式化(出典:筆者作成)

目次

電気信号のバケツリレー「発火」

生物学的ニューロンの発火の仕組みを図で説明。電気信号がしきい値を超えると次のニューロンへ—脳のメカニズムとAIの関連性に迫る(出典:筆者作成)。

脳の中にあるニューロンと発火。伝わってきた電気信号の和が一定値を超えると次のニューロンに電気信号を流す(出典:筆者作成)。

ディープラーニングとは、脳の神経のつながりを数式でモデル化した「ニューラルネットワーク」に基づいた機械学習の手法です。この仕組みの理解は一見シンプルですが、非常に複雑なロジックの学習が可能で、ChatGPTなどのLLM (Large Language Model) の基盤にもなっています。

脳は膨大なニューロン(神経細胞)が集まって形成される中枢神経系です。目や耳などから入った情報が、ニューロンのネットワークを電気信号として伝わりながら処理され、結果として「思考」が行われます。ニューロン同士の接続部分に着目すると、複数のニューロンから伝達される電気信号が一定の強さを超えたとき、信号を受け取ったニューロンが「発火」し、次のニューロンに信号を送ります。このようにして信号が次々と伝搬していき、バケツリレーのように情報処理が進むのです。

このニューロン間の信号伝達を簡単な数式でモデル化したものがニューラルネットワークです。一見単純な仕組みに見えますが、実は日常の様々な判断もこの「発火システム」に分解して説明できます。例えば、「彼(彼女)の顔が少し不機嫌に見える」「大きな音を立ててドアを閉めた」「さっき少し言い争いをした」という3つの情報があるとします。このうち1つだけでは相手が本気で怒っているかはわかりませんが、3つが揃えば流石に「相手は本気で怒っている」と結論づけることができます。ディープラーニングでは、こうした要素の情報(インプット)がニューラルネットワークに大量に入り込み、発火システムによって複雑に処理され、特定のアウトプットを導き出します。

ニューロンの発火システムを数式で表す

しきい値を超えた入力が出力を生む—シンプルなニューロン発火モデルをReLU関数とともに図解。ニューラルネットワークの直感的理解に(出典:筆者作成)。

単純な発火システムの定式化(出典:筆者作成)


では、脳内の発火システムをもう少し具体的にモデル化してみましょう。まずは複数のニューロン(上図 x_1, x_2, x_3から1つ(上図 z)のニューロンに電気信号が伝わっていると考えます。このとき、流れ込むそれぞれの電気信号の強度を  x_1, x_2, ... とし、これらをすべて合計したものを  \sum_{i} x_i とします。先程の例であれば、 x_1 は「表情の不機嫌さ」、 x_2 は「ドアの音の大きさ」、 x_3 は「言い争った時の緊張感」となります。もしこの合計がある閾値以下であれば出力は「0:相手は怒っていない」、閾値を超えた場合に「0より大きな値:相手は怒っている」を返すと考えましょう。こうした発火の処理には「ReLU関数というものが適しており、これを  \varphiと表します。すると、発火システムは  \varphi\left(\sum_i x_i\right) のように表されます。他にもモデルの用途に応じて様々な関数が使われ、これらを総称して活性化関数と呼ばれます。

ニューロンの発火を数式で理解する第一歩。ディープラーニングの基礎となるシンプルな数式モデルを視覚的に解説(出典:筆者作成)。

基本的な発火システムの定式化(出典:筆者作成)

さらに実際のニューロン同士の結合には強弱があり、信号の伝わりやすさがあります。これは前後の因果関係の関連性の強さを表します。これを反映するために、それぞれの  x_i に重み  w_i を掛けてから合計し、 \sum w_i x_i とします。そして全体の発火閾値、すなわち発火のしやすさを調整する(下駄を履かせる)ため、バイアス項  b を加えます。先程の例であれば、「表情の不機嫌さ」は「彼が怒っている」という結論に直接的に関連するので  w_1 は大きい、といった具合です。こうしてニューラルネットワークの基本的な構造が完成します。式を具体的に書くと、 z = \varphi \left(\sum w_ix_i + b \right)となり、上の図のようになります。

なぜこの仕組みで複雑な推論が可能なのか

次に、この数学モデルをもとに、なぜディープラーニングが複雑な推論を行えるのかを、もう少し論理的な面から考えてみましょう。ReLU 関数はインプットが閾値以下なら 0、閾値を超えると比例してアウトプットを増加させます。この動作はプログラミングの「if 文」に非常に似ています。もしある条件が成り立つ(入力が 0 以上)なら 0 以上の値を、条件が成り立たない(入力が 0 より小さい)なら0を返すため、入力に応じてある種、「Yes」「No」のような質的に異なる応答をします。さらにこのYesにはグラデーションがあって、出力が入力に比例するので、より柔軟な条件分岐が可能です。

ところでif文は論理の基本要素であり、実際、世の中のほとんどの推論はこのような「if」に分解できます。したがって、大量のニューロンをReLU 関数で接続すれば、あらゆる推論が可能になるのです。複数のニューロンが1つのニューロンに繋がっていれば、「もし A1 かつ A2 かつ… AN かつ not B1 かつ not B2 かつ....ならば C 」といった複雑な条件をいくつも設定でき、適切なアウトプットを導き出せるのです。


前の記事: 教師あり学習・教師なし学習・強化学習 - なぜ教師あり学習か?

次の記事: ニューラルネットワークの多層化