生成AI 構造 基本

オートエンコーダーAutoencoder

縮めてから元に戻す練習で学ぶ構造

ポイント
  • オートエンコーダーは、入ってきたものを小さく縮めてからまた元に戻すよう訓練する構造です。
  • 正解表が別にありません。入ってきたもの自体が正解なので、人がラベルを付ける必要がありません。
  • 真ん中を狭くすることが要です。狭くしてこそ捨てるものと残すものを選ばざるを得なくなるからです。
  • 縮めた値いくつかには、何が重要かについての要約が詰まっています。この値を他の作業に取り出して使えます。
  • うまく元に戻せないものが入ってきたら、見慣れないものが来たという合図として使えます。
目次

1たとえで理解する

演奏を楽譜に書き取るとき、聞こえるものを全部は書き取れません。紙に書かれるのは音の高さと長さくらいなので、何を残し何を捨てるか決めなければなりません。書き終えると楽譜には実際の演奏よりずっと少ないものしか残りません。

その楽譜を別の場所に置いてそのまま演奏すると、曲がもう一度生き返ります。元の演奏と並べて聞くと微妙な揺れは抜けていますが、何の曲かはそのまま聞き取れます。

うまく書き取った楽譜ほど、蘇った演奏が元に近くなります。だから書き取る作業と演奏する作業は一対になって動きます。オートエンコーダーがすることはこの一対の練習です。縮めて書き、書いたものだけで元に戻します。

2くわしく

縮める側と元に戻す側が一対です

構造は二つの部分でできています。前半は入ってきた資料をだんだん小さな数の束に縮めていき、後半はその束だけを受け取って元の大きさの結果物を作ります。真ん中の一番狭い場所にある値が、楽譜に書かれた内容にあたります。

二つの部分は別々に学びません。**元に戻した結果が原本とどれだけ違うかを測り、その差を両側に一緒に返します。**書き取る側が雑に書けば演奏する側もどうしようもなく、うまく書けた楽譜でも演奏が下手なら結果が悪くなるので、両方を一緒に手直しします。

訓練が終われば二つの部分を切り離して別々に使えます。縮める側だけ取り出せば資料を短い値に要約する道具になり、元に戻す側だけ取り出せば短い値から結果物を作り出す道具になります。

正解表が自分自身です

普通の学習には人が付けた正解が必要です。写真ごとにラベルを貼り、文ごとに正誤を示さなければなりません。オートエンコーダーはその作業が要りません。入ってきた資料がそのまま正解なので、写真さえたくさん集めておけばそのまま練習問題になります。

この性質のおかげでラベルのない資料を思う存分使えます。工場で撮った部品の写真、サーバーが残した記録、録音ファイルのような整理されていない資料がそのまま学習材料になります。

ただし目標が「そのまま元に戻す」ことなので、うっかりすると手を抜けます。真ん中の場所が余裕たっぷりだと、要約せずに原本を丸ごと運ぶ近道を見つけ出します。だから真ん中をわざと狭くします。

どれだけ縮めるか

真ん中の場所の大きさは人が決めます。余裕を持たせておくと元に戻した結果が原本とほぼ同じになりますが、要約と呼べるものが残りません。とても狭くしておくと太い特徴だけ残り細部は消えます。

狭めるほど**何が重要かを選ばざるを得なくなります。**顔写真をいくつかの値に縮めなければならないなら、目鼻立ちの配置のような大きく違う部分が先に場所を占め、髪の毛一本の向きは捨てられます。こうして残った値がその資料の要約になります。

ちょうどよい大きさは資料と目的によって変わります。圧縮が目的なら元に戻した結果が耐えられる線まで縮め、要約値を他の作業に使うならその作業の成績を見ながら決めます。

書かなかったものは消えます

元に戻した結果は原本と同じではありません。楽譜に書かなかった揺れはいくら演奏しても出てこないのと同じです。何が消えたかを見れば、その模型が何を重要だと考えたかが分かります。

この性質を逆に利用することもあります。学習に使ったものと性格が似た資料はうまく蘇りますが、初めて見る種類が入ってくると蘇った結果が大きくずれます。ずれの度合いを測って異常の合図として使う方法が設備点検や不正取引の検出に使われます。

どこに使うか

一番分かりやすい使い道は圧縮です。資料を短い値に縮めて保存し、必要なときに元に戻します。このとき縮めた値は検索用の要約としても使えるので、似た資料を探す作業がずっと軽くなります。

雑音を消すのにも使われます。わざと染みを乗せた写真を入れ、きれいな原本を正解にしておくと、染みは書く場所がないので自然に抜け落ちます。絵を作る最近の方式でも、大きな画面を小さな要約版に縮めておいてその中で作業したあとまた広げる場所に、この構造が入ります。

3もう少し正確に

オートエンコーダーは、入力を低次元の表現へ送るエンコーダーと、その表現から入力を復元するデコーダーをつなぎ合わせ、復元誤差を減らすよう一緒に学習させる神経網です。真ん中の狭い層をボトルネックと呼び、そこに持たれた値を潜在表現と呼びます。正解を別に作らず入力自体を目標にするので自己教師あり学習に分類します。

たとえがずれる点があります。楽譜は人が読んで何が書かれたか分かりますが、ボトルネックに持たれた値は人が読める形ではありません。どの値が何を担当しているかもあらかじめ決まっていません。また楽譜の記号は人が作った約束事ですが、ボトルネックの値はそういう約束なしに学習の途中で自然に決まった数字です。

もう一つ、基本形のオートエンコーダーのボトルネックはどんな値を入れてもそれらしい結果が出る場所ではありません。学習に使った資料が置かれた地点の近くを離れると見当違いの結果が出ます。この点を手直ししたのが変分オートエンコーダーです。

4やってみる

5よくある誤解

  • オートエンコーダーが原本をそのまま復元すると思われがちですが、実際には狭い場所を通る間に捨てられた細部は戻ってきません。

  • 縮めた値が人の決めた項目だと思われがちですが、実際には学習の過程で自然に分かれた値なので各場所の意味は決まっていません。

  • どんな値を入れても新しい結果物ができると思われがちですが、実際には学習で使われた場所を離れると見分けのつかない結果が出ます。

7ひとこと要約

つまりオートエンコーダーは入ってきたものを狭い場所へ縮めてから元に戻す練習を通して、何を残し何を捨てるかを自分で身につける構造です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02