人工ニューロンモデルとテンソル演算
現代の複雑なAIを構成する最小の計算ブロックが「人工ニューロン」です。生物の神経細胞の振る舞いを数式へと抽象化したこのモデルの動作メカニズムと、それを数百万・数億個集めて並列に超高速処理するための「テンソル表現」について学びます。
1. 神経細胞の抽象化:人工ニューロン
人間の脳には、ニューロン(Neuron: 神経細胞)と呼ばれる細胞が約860億個あり、複雑なネットワークを形成して思考を司っています。ひとつのニューロンは、他の複数のニューロンから電気信号を受け取り、その刺激の合計がある閾値を超えると、自身の軸索を通して次のニューロンへ信号を「発火(送信)」します。
このメカニズムを数学的に記述したのが人工ニューロンモデルです。
2. 重み、バイアス、活性化関数の役割
人工ニューロンの計算は、大きく「線形結合(総和)」と「非線形変換(活性化)」の2つのステップで行われます。
① 線形結合(重みとバイアス)
入力値 $x_1, x_2$ に対し、それぞれの入力の重要度を表す重み(Weight: $w_1, w_2$)を掛け合わせ、ニューロン自体の興奮しやすさを調整する定数バイアス(Bias: $b$)を加算します。
z = w₁x₁ + w₂x₂ + b
② 活性化関数(Activation Function)
得られた総和 $z$ を、次のニューロンへの出力信号 $a$ へと変換する非線形関数です。ニューロンの発火のシミュレーションと、モデルに「複雑なパターン(非線形性)」を学習させるために不可欠な役割を果たします。
- シグモイド関数(Sigmoid Function):
出力を $0.0$ から $1.0$ の範囲に滑らかに圧縮する関数。確率としての解釈に適しています。 - ReLU関数(Rectified Linear Unit):
入力が $0$ 以下の場合は $0$ を出力し、$0$ より大きい場合は入力をそのまま出力する単純な関数。現代の深層学習で計算が高速であるため最も多用されます。
3. 多次元配列としてのテンソル(Tensor)演算
ニューロンが1つだけであれば上記のような単純な数式で済みますが、深層学習ではこれらを縦横に何重にも重ねたネットワーク(層)を扱います。 数百万のニューロンの計算を個別のループ処理で行うと、CPUのオーバーヘッドにより処理が非常に遅くなります。
そのため、現代のAI処理(PyTorchやTensorFlowなど)では、すべてのデータを行列や多次元配列にまとめて一度に計算します。この多次元配列データの数理モデルをテンソル(Tensor)と呼びます。
- 0次元テンソル: スカラー(ただの数値)
- 1次元テンソル: ベクトル(数値の並び)
- 2次元テンソル: 行列(表)
- 3次元以上テンソル: 立体的な配列(例:縦×横×RGBチャンネルの画像データ)
ある層のニューロン群の計算は、入力ベクトル $X$ と重み行列 $W$ の「行列の積(内積)」として一発で表現できます。
A = σ( X · W + B )
さらに、複数のデータを束にして並列計算する「バッチ処理」を行うことで、グラフィックボード(GPU)の持つ大量の並列コアを活用した超高速な行列計算が可能になります。
次節では、このように複雑に何重にも重ねられたニューロンの重み行列 $W$ を、出力結果の誤差から一気に逆算して自動調整する「誤差逆伝播法」の仕組みを解き明かします。