順伝播
順伝播は入力から予測を計算します。各層が入力に重みを掛け、バイアスを加え、活性化関数を適用して出力へ進みます。訓練時の予測にも、訓練後の推論にも使います。本例は 784 画素から 10 数字のスコアを作り、最大を選びます。
全結合層を採点者の集まりと考えます。各採点者は前層の全入力を読み、自分の重みで寄与を決めて次へ渡します。推論中の採点表は固定で、この計算だけで学習しません。
順伝播の仕組み
構造は 784 → 25 → 25 → 10。28×28 画像を並べ、25 ニューロンの隠れ層 2 個と、数字別の 10 出力を通します。
隠れニューロンは最初に前活性 z = w·a + b を求めます。入力と重みの積を足し、バイアスを加え、負の z も許します。次に ReLU max(0, z) で負をゼロ、正をそのまま返します。緑は正の重み、マゼンタは負で、本例の非負入力に正負の寄与を与えます。
出力層は ReLU を使いません。生スコア logits を softmax pᵢ = exp(zᵢ) / Σⱼ exp(zⱼ) へ通し、合計 1 の分布にします。差は指数を通して確率比に影響し、argmax が予測です。実装では最大 logit を引いてから指数を計算し、数値安定性を保つのが一般的です。
接続の計算は 784·25 + 25·25 + 25·10 = 20,475 乗算加算です。バイアス、活性化、softmax の追加処理は含めません。層は左から右へ進み、内部はループや行列演算を使えます。接続数が容量を与えても、認識を支えるのは学習した値です。同数の乱数重みで数字を認識できる保証はありません。
最初の層への 19,600 接続は密すぎるため、画面は後段の代表的な接続だけを描きます。入力接続を実際に省いたネットワークではありません。
順伝播のステップ
初期入力は MNIST テスト集合の実画像、手書き 7 です。訓練済みネットワークで順伝播した数値を表示します。
- 入力。 28×28 を 784 値へ並べます。筆跡は高く、背景はゼロ近くです。
- 層 1 の加重和。 25 個が全 784 画素から
z₁ = x·W₁ + b₁を計算。10 個は負で青、残りは正で濃色です。 - 層 1 の ReLU。
max(0, z₁)が 10 負値をゼロにし、正をa₁として保ちます。 - 層 2 の加重和。 接続が点灯し、
z₂ = a₁·W₂ + b₂。25 個中 9 個が負です。 - 層 2 の ReLU。 負をゼロにし、
a₂を得ます。 - 出力 logits。
z₃ = a₂·W₃ + b₃の 10 スコア。7 は約 19.0、次点 2 は約 1.2、他の多くは負です。 - 予測。 丸め前の差は約 17.9 で、softmax はほぼ全質量を 7、約 100% に置きます。
青は負の前活性で、ReLU のステップで空へ薄れます。隠れ層は「加重和 → 非線形」を 2 回、出力は「logits → softmax」です。
自信が高くても誤る理由
Softmax はスコアから作る相対的な確信で、実正答率を直接保証しません。変わった画像が誤クラスを高くすると、同じ計算で強い誤予測を作ります。
Misclassified は各数字について、このネットワークが最も高い確信で誤ったテスト画像を選びます。誤クラスに 90% 超でも、7 ステップは同じです。Ambiguous は約 75% で正しく、次点にも見える確率が残ります。
同じ数字の 3 種を比べても重みは不変です。分布は入力とネットワークの組で決まります。このモデルは MNIST テストの約 3.7% を誤り、その一部にも高い確信を持ちます。個別の正しさの証明ではありません。
境界条件
- その画像でゼロ。 負の前活性を ReLU がゼロにするのは普通で、別画像は別の集合を活性化します。永久に死んだニューロンとは限りません。
- 集中と分散。 明瞭な入力は約 100%、曖昧な入力は次点にも質量を置きます。同じ計算の結果です。
- 全ゼロ入力。 最初の層はバイアスだけになりますが、後続層はそこから生じた活性も受けます。筆跡がなくても分布を出し、自動で棄却しません。
よくある間違い
- logit を確率と読む。 19.0 は 1900% ではありません。softmax 後に分布になります。
- 隠れニューロンへ人の概念を割り当てる。 「輪の検出器」などが各個体の役割と保証されるわけではありません。固定クラス名があるのは出力層です。
- 非線形を省く。 アフィン層だけの合成は 1 アフィン変換にまとめられ、層を積むだけでは同じ表現力を得られません。
- 確信を精度と読む。 誤画像にも 90% 超が出ます。スコア差を反映するだけで、その差の妥当性は保証しません。