隠れ層は 1 層のみで,784 → H → 10 の 3 層構造である.畳み込み層やプーリング層は使用しせず,すべて全結合である.
| 項目 | 内容 |
|---|---|
| 層数 | 隠れ層 1 層(入力層・出力層を含めて 3 層) |
| ユニット数 H | 既定 16.画面上で 4〜128 の範囲で変更可能 |
| 結合 | 全結合.各ユニットが 784 画素すべてを参照する |
| 活性化関数 | シグモイド関数.ReLU ではない |
| 入力値 | 画素の濃度を 0〜1 に正規化(インク = 1,余白 = 0 の白黒反転) |
隠れ層のユニット j は,784 個の入力すべてに重みを掛けて合計し,バイアスを足したうえでシグモイド関数を通す.
出力層も同じ形で,隠れ層の出力 a(1) を入力として計算する.
| 変数 | 形状 | 初期値 |
|---|---|---|
| W1 | H × 784 | 正規乱数 × √(1/784) |
| b1 | H | すべて 0 |
| W2 | 10 × H | 正規乱数 × √(1/H) |
| b2 | 10 | すべて 0 |
重みの初期化は分散を 1/(入力数) にする方式(LeCun 初期化)である.入力数が多い層ほど初期値を小さくすることで,層を通るたびに信号が大きくなりすぎることを防ぐ.
正規乱数は Box–Muller 法で一様乱数から生成している.
二乗誤差を使用する.交差エントロピーではない.
出力層の誤差 δ(2) を求め,それを重み W2 を通じて隠れ層へ伝える.いずれもシグモイドの微分 σ′ = a(1−a) が掛かる点が特徴である.
正則化・ドロップアウト・モメンタム・学習率減衰などは実装されていない.素の勾配降下法である.
この教材は「教科書どおりの誤差逆伝播法を追えること」を優先した構成になっている.実用的な実装との違いを整理する.
| 項目 | この教材 | 現代的な標準 |
|---|---|---|
| 隠れ層の活性化 | シグモイド | ReLU 系 |
| 出力層 | シグモイド(独立) | softmax(確率分布) |
| 損失関数 | 二乗誤差 | 交差エントロピー |
| 勾配の計算単位 | 全データのバッチ | ミニバッチ |
| 最適化 | 素の勾配降下法 | Adam など |
| 正則化 | なし | Dropout・重み減衰など |
H = 16 のときパラメータは 12,730 個ある.一方,授業で手書きして作る訓練データは十数件程度である.データ数に対してパラメータが桁違いに多いため,ネットワークは訓練データを丸暗記することができる.これが「訓練データの正答率が簡単に 100% になる」理由である.
この 100% は「よく学習できた」ことを意味しない.新しく書いた数字で試すと大きく外すことがあり,この落差こそが過学習と汎化性能を学ぶ教材になる.
「隠れ層ユニット数」を変更すると,その時点で重みが初期化され,繰り返し回数も 0 に戻る.重みの形状が変わるため学習の継続は原理的に不可能で,これは正しい動作である.
学習の途中で生徒が誤って数値を触ると成果が消えるため,ユニット数は学習を始める前に決めるよう案内する.
※ 初期値は 16 である.上の例と比べる際の基準とする.
ホーム>>カテゴリー別分類>>データ分析>>手書き数字認識デモ 技術資料
最終更新日:2026年9月29日