大きな画面での利用をおすすめします — アニメーションと操作がより快適になります。
入力

オートエンコーダ

オートエンコーダは中間の潜在コードを通して入力を再構成します。本課では 8 座標のコードが 2 座標より未知の手書き数字を平均的によく再構成します。しかし数字で学んだ同じデコーダは市松模様に失敗します。幅を増やしても未知のパターンを復元できる保証はありません。

コードは描き直す相手へ渡す短い説明です。相手はその説明と経験を使います。数字向けの説明が市松模様にも役立つとは限らず、座標を増やすだけで経験を補えるわけではありません。

符号化と再構成

エンコーダは x を z へ、デコーダは z を再構成 x̂ へ写します。両者の重みを調整して入力との差を減らします。クラスラベルは不要で、入力画像自身が目標です。Deep Learning 第 14 章はこの目的と単純コピーの制約を説明しています。

不足完備型はコード座標数を入力値数より少なくし、コンパクトな表現が何を保つか調べます。コードを迂回するコピー経路があると検査になりません。制約は有用な表現を促しえても、保証はしません。

デコーダが読むのはコードと学習済み重みだけで、原画像を見られません。原画素は誤差測定に使います。本課は 64 画素です。

MSE = Σᵢ(x̂ᵢ − xᵢ)² / 64

二乗で正負の相殺を防ぎ、平均で画素当たりの量にし、背景も数えます。潜在座標は学習した数で、画素、数字の確率、名前の付く形とは限りません。8 に見えても、出力はクラス 8 の判定ではなく 64 強度です。

ネットワーク

入力は [0,1] の 8×8 グレースケール画像、構造は 64 → 24 → k → 24 → 64、k = 2、4、8。隠れ層は tanh、最終層は sigmoid です。行ベクトル表記では:

hEnc = tanh(x W₁ + b₁)

z = tanh(hEnc W₂ + b₂)

hDec = tanh(z W₃ + b₃)

x̂ = sigmoid(hDec W₄ + b₄)

ステップ実行

既定は 8 座標モデルと元データ行 249 の手書き 8 です。scikit-learn の 8×8 digitsで、MNIST ではありません。他の 1,437 枚で学習し、360 枚を留出しています。この画像は再構成差を見せるため選びました。

  1. 目標:64 画素を再構成します。数字ラベルは例を選ぶメタデータだけです。
  2. 符号化:丸めたコードは [0.0612, 0.4671, −0.3931, 0.0032, −0.1654, −0.0009, 0.4504, 0.2202]。デコーダはこれと重みを使います。
  3. 復号:大まかな形は残りますが各強度は異なります。
  4. 一画素から平均へ:0 始まり [6,4] の原値 0.4375、再構成約 0.8077649、二乗誤差約 0.1370961 が最大項です。64 項の平均は 0.0106606。最大と平均は別の問いです。
  5. 学習記録を戻す:エポック 0 の画像 MSE は 0.1891698、1、10、50、200 は 0.0887845、0.0467999、0.0120355、0.0106606。画像は学習に使わず、これはオフライン記録で再生時の訓練ではありません。
  6. 同画像と集合を比較:別に学習した 2 座標モデルは 0.0465775 で細部を失います。同じ 360 留出画像の平均は 2 座標 0.0375854、8 座標 0.0148576 で、集合でも改善しています。
  7. 入力の種類を変更:8 座標の最終重みを固定し合成市松模様を入れると MSE 0.4291607。交互の模様を復元できず、数字経験だけでは万能コピーになりません。

学習図は 360 留出数字の平均 MSE で、現在の画像とは別です。200 エポックでは 0.0148576 と 0.0106606。横軸は実際の 0、1、10、50、200 の間隔で、連続する五更新ではありません。

幅と入力分布

幅変更は別々に学習したモデルの選択です。分割、24 隠れユニット、最適化手法、エポック、シード方針は固定でも、パラメータ数と重みは変わります。8 座標から六つを削る操作ではありません。

座標数既定数字 MSE360 留出数字の平均 MSE市松模様 MSE
20.04657750.03758540.4074093
40.01716100.02474780.4114591
80.01066060.01485760.4291607

数字では広いモデルほどよく、市松模様では順位が逆です。平均誤差には入力分布を添えます。全例の改善や最適な重みへの到達は保証しません。

8 実数は 8 ビットではありません。次元比はファイル圧縮率でなく、精度とデコーダの保存費用も必要です。

必要なコードを選ぶ

同じ留出数字で比較し、コード予算内で誤差許容を満たす幅を選び、画像も見て平均が隠す細部を調べます。許容値は用途で決めます。この集合で選んだ後の最終報告には独立評価が必要です。

未知の入力種は別に検証し、数字平均で市松模様の失敗を隠さないようにします。z を別課題へ使うなら、その課題で直接評価します。再構成だけでは転用の有用性は分かりません。PCAと逆伝播も参照してください。

境界ケース

  • 2 座標:本設定の数字平均誤差は最大ですが、すべての二次元符号化が失敗する証明ではありません。
  • 市松模様:三モデルとも MSE は 0.4 超で、訓練外の合成入力です。選ぶと全説明を通じて同じ失敗が見えます。
  • 再生・速度変更:値は同じで、重み学習もノイズ追加もしません。
  • 幅の選択肢:2、4、8 は提供モデルの範囲です。大きい・過完備のコードでコピー以上を学ぶには他の制約が必要になります。

よくある間違い

  • デコーダへ原画像を渡す、またはコードを迂回する。ゼロ誤差でもコードの保持能力を示せません。
  • MSE をクラス確信度と読む。画素差だけを測っています。
  • 自動的なノイズ除去を期待する。本課は同画像を入出力にし、ノイズ除去型は壊した入力ときれいな目標を使う別課題です。
  • 任意の潜在値をサンプルして有効画像を期待する。通常型に学習済みサンプリング事前分布はなく、再構成だけでは生成能力を保証しません。
  • 低誤差を可逆圧縮と呼び、次元をビット数と扱う。

モデルの範囲

小型全結合、8×8 数字、エンコーダ/デコーダ単位の表示、五つのオフライン記録です。Adam で 200 エポック学習し、表示画像は留出です。畳み込み、正則化、ノイズ除去、変分推論、潜在事前分布は含みません。拡散モデルはノイズから新標本を生成する別の課題です。