モデル解説

MLP(多層パーセプトロン)とは

MLP(Multi-Layer Perceptron / 多層パーセプトロン)は、入力層・隠れ層・出力層を積み重ね、 隣接する層のニューロン同士がすべて結合(全結合 / Dense)する、最も基本的なニューラルネットワークです。 手書き数字認識デモでは、この MLP が画像のピクセル値(784個)をそのまま受け取り、0〜9 のどの数字かを推論しています。

構造 — 全結合層の積層Fully-Connected Layers

各ニューロンは「前の層の全出力 × 重み」の総和に活性化関数を通して次へ渡します。 層が深くなるほど、単純な特徴から抽象的な特徴へと変換されていきます。

Dropout Dropout Dropout ⋮ ⋮ ⋮ 入力層 784 28×28 画素を1列に展開 隠れ層 1:512 Dense + ReLU 隠れ層 2:256 Dense + ReLU 隠れ層 3:128 Dense + ReLU ⋮ 出力層 10 Softmax(0〜9 の確率) 隣接する層のニューロン同士がすべて結合(全結合) — 各結合に学習可能な重み w を持つ
本デモで動作する MLP の実構成:784 → 512 → 256 → 128 → 10(各層間に Dropout)。総パラメータ数 約 57 万。

ひとつのニューロンが行う計算Weighted Sum + Activation

各ニューロンの計算は非常に単純です。入力 x₁…xₙ に結合ごとの重み w を掛けて合計し、 バイアス b を足して活性化関数 f を通すだけ: y = f(w₁x₁ + w₂x₂ + … + wₙxₙ + b)。 層全体では行列演算 y = f(Wx + b) としてまとめて計算されます。

「学習」とは、この重み W とバイアス b を、正解との誤差が小さくなるように自動調整する工程です (誤差逆伝播法 — 学習と推論の違い 参照)。 推論時は学習済みの重みで1回だけ順方向に計算するため、高速に動作します。

MLP と CNN の違いDense vs Convolution

このデモで切り替えられる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(畳み込み+全結合の複合)
なぜ両方動くのか: MNIST のような小さく整形された数字画像では、MLP でも十分な精度が出ます。 ただし画像が大きく・複雑になるほど CNN(さらに Transformer 系)の優位が大きくなります。 デモでは2モデルの中間層の反応の違いを見比べることで、この構造差が活性化の現れ方にどう出るかを観察できます。

関連ページFurther Reading