モデル解説
MLP(Multi-Layer Perceptron / 多層パーセプトロン)は、入力層・隠れ層・出力層を積み重ね、 隣接する層のニューロン同士がすべて結合(全結合 / Dense)する、最も基本的なニューラルネットワークです。 手書き数字認識デモでは、この MLP が画像のピクセル値(784個)をそのまま受け取り、0〜9 のどの数字かを推論しています。
各ニューロンは「前の層の全出力 × 重み」の総和に活性化関数を通して次へ渡します。 層が深くなるほど、単純な特徴から抽象的な特徴へと変換されていきます。
各ニューロンの計算は非常に単純です。入力 x₁…xₙ に結合ごとの重み w を掛けて合計し、
バイアス b を足して活性化関数 f を通すだけ:
y = f(w₁x₁ + w₂x₂ + … + wₙxₙ + b)。
層全体では行列演算 y = f(Wx + b) としてまとめて計算されます。
「学習」とは、この重み W とバイアス b を、正解との誤差が小さくなるように自動調整する工程です
(誤差逆伝播法 — 学習と推論の違い 参照)。
推論時は学習済みの重みで1回だけ順方向に計算するため、高速に動作します。
このデモで切り替えられる2つのモデルは、画像の扱い方が根本的に異なります。
| MLP(多層パーセプトロン) | CNN(畳み込みニューラルネットワーク) | |
|---|---|---|
| 入力の扱い | 28×28 の画像を 784 個の数値の1列に潰して入力。画素の位置関係(上下左右の近さ)は考慮されない | 画像を 2次元のまま入力。3×3 などの小さなフィルタを画像上でスライドさせて局所特徴を抽出 |
| 結合方式 | 全結合 — 層の全ニューロンが前層の全ニューロンと結合 | 局所結合 — 各ニューロンは画像の一部領域(受容野)だけを見る |
| 重み共有 | なし — 結合ごとに独立した重み(パラメータが多くなりやすい) | あり — 同じフィルタを画像全体で使い回す(パラメータ効率が良い) |
| 得意な入力 | 表形式データ・ベクトル化済みの特徴量・小さな画像 | 画像・波形など、局所的なパターンが意味を持つデータ |
| 本デモの規模 | 784 → 512 → 256 → 128 → 10(約 57 万パラメータ) | Conv 32/32/64/64/128 → Dense 512 → 256 → 10(畳み込み+全結合の複合) |