人工ニューラルネットワーク(Artificial Neural Network)
1. 概要
A. 定義
人間の脳のニューロン構造を模倣し、入力の加重和に活性化関数を適用するノードを階層的に接続して重みを学習することで、パターンを認識・予測するモデル。ディープラーニングの基盤となる。
人工ニューラルネットワークの中核的な洞察は、「複雑な関数を、単純な計算単位(ニューロン)を層状に積み重ねて近似する」ということである。一つのニューロンは入力に重みを掛けて足し合わせ、活性化関数を通すという単純な演算しか行わないが、こうしたニューロンを何層にも重ねれば、任意の連続関数を所望の精度で近似できる(普遍近似定理)。規則を人間が一つひとつ記述する代わりに、データから重みを調整して規則を自ら見つけさせることが、従来のプログラミングとの根本的な違いである。
B. 構成要素と役割
flowchart LR
I[入力層] --> H1[隠れ層1]
H1 --> H2[隠れ層2]
H2 --> O[出力層]
ニューラルネットワークは入力層・隠れ層・出力層で構成され、各層が担う役割は異なる。入力層は特徴量(feature)を受け入れる入口であり、隠れ層は入力を非線形に変換しながら次第に抽象的な表現を生み出す。層が深いほど(=隠れ層が多いほど)表現力が大きくなる理由はここにあり、これが「ディープ(deep)」ラーニングという名称の根拠である。出力層は最終的な予測値を出力する。各ニューロンはz = Σwᵢxᵢ + bで加重和を求めた後に活性化関数f(z)を適用するが、このとき活性化関数が非線形でなければ、いくら層を積み重ねても一つの線形変換に崩れてしまう。すなわち、非線形活性化関数こそが深層構造の表現力を実際に活かす鍵である。
| 構成要素 | 役割 |
|---|---|
| ニューロン(ノード) | 加重和 z=Σwᵢxᵢ+b を計算した後に活性化 |
| 重み(w)・バイアス(b) | 学習によって調整されるパラメータ |
| 入力層 | 特徴量(feature)の入力 |
| 隠れ層 | 非線形な特徴抽出・変換(深さ=表現力) |
| 出力層 | 予測値の算出(分類・回帰) |
| 活性化関数 | 非線形性の付与(なければ線形モデルと同一) |
2. フィードフォワードニューラルネットワーク(FFNN)
信号が入力→隠れ→出力の一方向にのみ伝播し、循環のない基本的なニューラルネットワーク(MLP)。
FFNNは予測を行う推論(順伝播)の基本形態である。循環がないため、計算は層の順序どおりに一度で流れ、各層で前の層の出力を入力として受け取り、加重和と活性化を繰り返す。手順は、① 各層で加重和z = Wx + bを計算し、② 活性化関数a = f(z)を適用し、③ その結果を次の層の入力として渡し、④ 出力層で最終的な予測値を出力する、というものである。例えば手書き数字の画像を入力すると、隠れ層が画・曲線といった特徴を段階的に組み合わせ、出力層で0~9の各数字である確率を出力する。ここではまだ学習は行われておらず、順伝播は「現在の重みで答えを出してみる」段階である。
3. 誤差逆伝播法(Backpropagation)
出力の誤差(Loss)を出力→入力の方向へ逆伝播させながら、連鎖律(Chain Rule)によって各重みの勾配を求め、勾配降下法で更新する学習アルゴリズム。
flowchart RL
L[損失の計算] --> G[勾配の逆伝播<br/>∂L/∂w]
G --> U[重みの更新<br/>w := w - η·∂L/∂w]
学習の本質は「誤差を減らす方向へ重みを少しずつ動かすこと」であり、そのためには各重みが誤差にどれだけ寄与したか(∂L/∂w)を知る必要がある。問題は、数百万個の重みの勾配を一つひとつ計算するとコストが爆発する点である。誤差逆伝播法は連鎖律を用いて、出力層で計算した誤差信号を入力方向へ戻しながら層ごとの勾配を再利用・伝播することで、これを一回の逆方向走査で効率的に求める。手順は、順伝播で予測→損失(MSE・交差エントロピー)の計算→誤差を逆伝播させて層ごとの勾配を算出→勾配降下法w := w - η·∂L/∂wで更新、であり、これをエポック単位で繰り返す。学習率ηが大きすぎると発散し、小さすぎると学習が遅くなるため、適切な設定が重要である。
| 手順 | 内容 |
|---|---|
| 1. 順伝播 | 現在の重みで予測値を計算 |
| 2. 損失の計算 | Loss(予測, 正解) — MSE・Cross-Entropy |
| 3. 誤差の逆伝播 | 連鎖律で層ごとの勾配(Gradient)を算出 |
| 4. 重みの更新 | 勾配降下法(η: 学習率)で調整、Epochを反復 |
深いネットワークでは、勾配が層を通過するたびに掛け合わされ続け、0に消える(消失)か爆発するという問題が生じる。消失は学習が止まる原因であるが、勾配をそのまま流すReLU、層の入力分布を安定化させるバッチ正規化、信号に層を飛び越えさせる残差接続(ResNet)がこれを大きく緩和した。これらの技法が登場してはじめて、非常に深いニューラルネットワークの学習が実用化された。
4. 活性化関数の種類
活性化関数は単に非線形性を加えるだけでなく、勾配消失・計算量・出力の解釈に直接影響を与える。Sigmoidは出力を0~1に押し込めるため確率として解釈しやすいが、両端で勾配が0に近づくため、深いネットワークで消失を引き起こす。そのため隠れ層の主力は、計算が簡単で正の区間の勾配が1に保たれるReLUとなった。ただしReLUには負の入力でニューロンが死ぬ(Dying ReLU)という短所があり、Leaky ReLU・ELUがこれを補い、Transformer系は滑らかなGELUを好んで用いる。出力層での多クラス分類には、複数の値を合計1の確率分布にするSoftmaxを用いる。すなわち「隠れ層=ReLU系、多クラス分類の出力層=Softmax」が典型的な組み合わせである。
| 関数 | 出力範囲 | 特徴・用途 |
|---|---|---|
| Sigmoid | 0~1 | 確率として解釈、勾配消失 |
| Tanh | -1~1 | 0中心、消失が残存 |
| ReLU | 0~∞ | 計算が簡単・高速、隠れ層の主力 |
| Leaky ReLU/ELU | 負値を許容 | Dying ReLUの緩和 |
| GELU | ≈ReLU(滑らか) | Transformerで使用 |
| Softmax | 合計=1 | 多クラス分類の確率出力(出力層) |
5. 考慮事項および示唆
- 過学習の管理:パラメータが多いため学習データを丸暗記しやすく、ランダムにニューロンを無効化するドロップアウト、重みの大きさを制約する正則化、データ拡張によって汎化性能を確保する。
- 構造の特化:空間パターンにはCNN(画像)、順序・時系列にはRNN/LSTM、長距離の文脈にはアテンションベースのTransformerへと発展した。問題の構造に合ったアーキテクチャの選択が性能を左右する。
- AIの土台:今日の生成AI・LLMも結局は大規模なニューラルネットワークと誤差逆伝播法による学習の上に成り立っているため、ニューラルネットワークの基本原理は最新のAIを理解する出発点である。
一言まとめ: 人工ニューラルネットワークは加重和+非線形活性化のニューロンを層状に積み重ねて複雑な関数を近似するモデルであり、FFNNが順方向に予測し、誤差逆伝播法が連鎖律によって誤差の勾配を効率的に求めて重みを更新し、ReLU・Softmaxなどの活性化関数の選択が学習の安定性と性能を左右する。