ニューラルネットワークの順伝播とは?数式と例で学ぶAIの第一歩
AIが画像を見て「これは猫です」と判断したり、文章を読んで質問に答えたりする時、その頭脳(ニューラルネットワーク)の中では何が起きているのでしょうか?その最初のステップが「順伝播(じゅんでんぱ)」です。この記事では、AIが答えを出すまでの思考プロセスである順伝播を、簡単な例と数式を使って解き明かしていきます。
1. 順伝播の全体像:入力から出力への一方通行
順伝播(Forward Propagation)とは、その名の通り、情報が「順方向」に「伝播」していくプロセスです。データが入力層から入り、中間にある隠れ層を通り抜け、最終的な答えが出力層から出てくるまでの一方通行の流れを指します。
学習前のAIにとっては、これは一種の「ヤマカン」です。適当な設定で、とにかく一度答えを出してみる。それが順伝播の役割です。
このプロセスは、主に2つの重要な要素、「重み」と「バイアス」によってコントロールされます。
- 重み (Weight): 各入力信号の重要度を調整するパラメータ。値が大きいほど、その入力が重要だと見なされます。
- バイアス (Bias): ニューロン(計算ユニット)がどれだけ発火しやすいかを調整するパラメータ。一種の下駄のようなものです。
順伝播では、これらの重みとバイアスを使って、入力データから答えを計算していきます。
2. 具体例で見てみよう!小さなニューロンの計算
一番シンプルな例で、順伝播の計算を体験してみましょう。ここでは、「勉強時間」と「睡眠時間」から「テストに合格するか(1)/しないか(0)」を予測する、たった一つのニューロンを考えます。
設定
- 入力1 (勉強時間):
x1 = 0.8(8時間) - 入力2 (睡眠時間):
x2 = 0.7(7時間) - 重み (初期値):
w1 = 0.5,w2 = 0.3 - バイアス (初期値):
b = -0.4
※入力や重みは、計算しやすいように0から1の間に正規化されているとします。
Step 1: 重み付きの合計を計算する
まず、各入力値にそれぞれの重みを掛け合わせ、最後にバイアスを足します。これを重み付き和と呼びます。
Step 2: 活性化関数で出力を決める
次に、Step 1で計算した値 z = 0.21 を活性化関数 (Activation Function) という関数に通します。この関数は、ニューロンが最終的にどのような信号を出力するかを決定する役割を持ちます。ここでは
結果: このニューロンの出力 a は「約0.55」となりました。これは「合格する確率が55%くらい」という予測(ヤマカン)だと解釈できます。
3. 順伝播の数式まとめ
先ほどの例を一般化すると、順伝播の計算は以下の2つの数式で表せます。
- 重み付き和の計算
入力がn個ある場合、重み付き和zは以下のようになります。$$ z = \left(\sum_{i=1}^{n} x_i w_i\right) + b $$ - 活性化関数による出力の計算
重み付き和zを活性化関数fに通し、最終的な出力aを得ます。$$ a = f(z) $$
実際のニューラルネットワークでは、この計算が何層にもわたって、次の層、また次の層へとリレーのように行われていきます。前の層の出力 a が、次の層の入力 x になるわけです。