---
title: "VQ-VAEとは？【G検定】"
description: "VQ-VAEは、VAEの潜在表現を連続値ではなくコードブック上の離散ベクトルで表す生成モデルです。量子化、コードブック学習、再構成誤差の考え方に加え、通常のVAE・β-VAE・CVAE・GANとの違い、画像生成での位置づけをG検定向けに整理します。"
last_modified_at: "2026-07-06"
canonical_url: "https://stemtazoo.github.io/gk/vq-vae/"
section: "gk"
---

## まず結論
VQ-VAE（Vector Quantized Variational AutoEncoder）とは、**VAEの潜在表現を連続値ではなく、コードブック上の離散的なベクトルで表す生成モデル**です。

通常のVAEでは、潜在変数を連続的な分布として扱います。  
一方、VQ-VAEでは、エンコーダの出力を最も近い代表ベクトルに置き換えます。

| 観点 | VQ-VAE |
|---|---|
| 重要な考え方 | Vector Quantization（ベクトル量子化） |
| 潜在表現 | 離散的 |
| 使うもの | コードブック（代表ベクトルの辞書） |
| 通常のVAEとの違い | 連続潜在変数ではなく離散コードを使う |
| G検定キーワード | 離散潜在表現、コードブック、量子化 |

G検定では、**「連続ではなく離散」「コードブックから選ぶ」「Vector Quantization」**が出てきたらVQ-VAEを疑います。

---

## 直感的な説明
通常のVAEは、画像や音声などをなめらかな連続空間の点として表します。

一方、VQ-VAEは、入力データを「代表パターンの辞書」から選んだ番号やベクトルで表します。

たとえるなら、通常のVAEは色を無限に細かいグラデーションで表す方法です。  
VQ-VAEは、あらかじめ用意された色見本の中から一番近い色を選ぶ方法です。

- 通常のVAE：連続的に表す
- VQ-VAE：代表ベクトルから選んで離散的に表す

この「代表ベクトルから選ぶ」処理を、ベクトル量子化（Vector Quantization）と呼びます。

---

## VQ-VAEの仕組み
VQ-VAEは、オートエンコーダの構造をもとにしています。

基本的な流れは次のとおりです。

```text
入力データ
↓
エンコーダ
↓
コードブックから近い代表ベクトルを選ぶ
↓
量子化された離散潜在表現
↓
デコーダ
↓
再構成データ
```

### エンコーダ
エンコーダは、画像や音声などの入力データを潜在表現に変換します。

通常のVAEでは、この潜在表現は連続値として扱われます。

VQ-VAEでは、エンコーダの出力をそのまま使わず、コードブックにある代表ベクトルへ置き換えます。

### コードブック
コードブックとは、学習される代表ベクトルの集合です。

VQ-VAEでは、エンコーダの出力に最も近いコードブック内のベクトルを選びます。

| 用語 | 意味 |
|---|---|
| コードブック | 代表ベクトルの辞書 |
| コード | 選ばれた代表ベクトルやその番号 |
| 量子化 | 連続値を近い代表ベクトルに置き換える処理 |

G検定では、コードブックを「潜在表現の候補を集めた辞書」と考えると分かりやすいです。

### 量子化
量子化とは、連続的な値を離散的な値に置き換えることです。

VQ-VAEでは、エンコーダが出した連続ベクトルを、最も近いコードブックのベクトルに置き換えます。

これにより、潜在表現が離散的になります。

### デコーダ
デコーダは、量子化された潜在表現から元のデータを再構成します。

画像なら画像を、音声なら音声を復元するように学習します。

---

## 通常のVAEとの違い
VQ-VAEはVAEの一種として説明されることがありますが、通常のVAEとは潜在表現の扱いが違います。

| 観点 | 通常のVAE | VQ-VAE |
|---|---|---|
| 潜在表現 | 連続的 | 離散的 |
| 潜在空間 | 確率分布として扱う | コードブックから選ぶ |
| 重要キーワード | 平均、分散、KLダイバージェンス | コードブック、量子化、離散コード |
| 生成の考え方 | 連続潜在変数から生成 | 離散コードから生成 |
| 試験での見分け方 | 連続分布 | 離散ベクトル |

通常のVAEでは、潜在変数を正規分布のような連続的な分布として扱います。

VQ-VAEでは、潜在表現をコードブック内の離散的なベクトルに置き換えるため、より「記号」や「トークン」に近い形で扱えます。

---

## VQ-VAE・β-VAE・CVAE・GANの違い
G検定では、似た生成モデルやVAE派生モデルとの違いが問われやすいです。

| モデル | 重要ポイント | 見分けるキーワード |
|---|---|---|
| VAE | 連続的な潜在変数を使う生成モデル | 潜在変数、KLダイバージェンス |
| VQ-VAE | コードブックを使い、潜在表現を離散化する | 離散、量子化、コードブック |
| β-VAE | KL項の重みを調整し、潜在表現の独立性を高める | β、KL項の重み、disentanglement |
| CVAE | 条件情報を与えて生成を制御する | 条件付き、ラベル、conditional |
| GAN | 生成器と識別器を競わせて学習する | generator、discriminator、敵対的学習 |

VQ-VAEは、GANのように生成器と識別器を対立させるモデルではありません。

また、CVAEのようにラベル条件を加えることが本質でもありません。

VQ-VAEの本質は、**潜在表現をベクトル量子化によって離散化すること**です。

---

## いつ使う？
VQ-VAEは、画像、音声、動画などの生成や表現学習で使われます。

### 得意な場面
- 画像生成
- 音声生成
- 動画生成
- 離散的な潜在表現を使いたい場合
- 生成モデルの前段でデータをトークン化したい場合

たとえば画像を小さな離散コード列に変換できれば、そのコード列を言語モデルのトークンのように扱うことができます。

この考え方は、画像生成モデルやVQ-GANのような発展的なモデルにもつながります。

### 注意点
VQ-VAEには、次のような注意点もあります。

- 通常のVAEより仕組みが複雑
- コードブックの学習が重要
- 代表ベクトルの使われ方に偏りが出ることがある
- 高品質な生成には別の生成モデルと組み合わせることがある

G検定では、詳細な実装よりも、**離散潜在表現を使うVAE**という役割を押さえることが重要です。

---

## DALL-EやVQ-GANとの関係
VQ-VAEの考え方は、画像を離散的なコードに変換する生成モデルの流れに影響を与えています。

初期のDALL-Eでは、画像を離散的なトークン列として扱うために、discrete VAEの考え方が使われました。

また、VQ-GANは、VQ-VAEのようなベクトル量子化の考え方にGANの要素を組み合わせ、高品質な画像生成に利用されたモデルです。

ただし、G検定では個別モデルの細かい構成よりも、次の関係を押さえれば十分です。

- VQ-VAE：離散潜在表現を学習する
- VQ-GAN：VQの考え方にGAN的な学習を組み合わせる
- 初期DALL-E系：画像を離散トークンとして扱う流れと関係がある

---

## G検定ひっかけポイント

### よくある誤り1：VQ-VAEは通常のVAEと同じ
VQ-VAEは通常のVAEと同じではありません。

通常のVAEは連続的な潜在変数を扱いますが、VQ-VAEは離散的な潜在表現を扱います。

### よくある誤り2：VQ-VAEはGANである
VQ-VAEは、生成器と識別器を敵対的に学習させるGANではありません。

VQ-VAEは、オートエンコーダをもとにした生成モデルです。

### よくある誤り3：コードブックは固定の辞書である
コードブックは、あらかじめ人間が固定しておくだけの辞書ではありません。

モデルの学習を通じて、データをよく表せる代表ベクトルとして学習されます。

### よくある誤り4：β-VAEやCVAEと混同する
β-VAEはKL項の重み、CVAEは条件情報がポイントです。

VQ-VAEは、量子化と離散潜在表現がポイントです。

### 選択肢の判断基準
- 「離散的な潜在表現」→ VQ-VAE
- 「コードブック」→ VQ-VAE
- 「ベクトル量子化」→ VQ-VAE
- 「KL項に重みをつける」→ β-VAE
- 「条件ラベルを与える」→ CVAE
- 「生成器と識別器」→ GAN
- 「連続的な潜在変数」→ 通常のVAE

---

## 確認問題（G検定対策）

VQ-VAEの説明として、最も適切なものはどれか。

- ア. 生成器と識別器を競わせて学習する生成モデル
- イ. 条件ラベルを入力に加えて生成を制御するVAE
- ウ. 潜在表現をコードブック上の離散ベクトルに量子化するVAE
- エ. KL項の重みを大きくして潜在変数の独立性を高めるVAE

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ウ**

### 解説
- ア：GANの説明です。生成器と識別器の敵対的学習が特徴です。
- イ：CVAEの説明です。条件情報を加えて生成を制御します。
- ウ：適切です。VQ-VAEは、コードブックを使って潜在表現を離散的なベクトルに量子化します。
- エ：β-VAEの説明です。KL項の重みを調整します。

判断ポイントは、「離散」「コードブック」「量子化」です。

</details>

## まとめ（試験直前用）
- VQ-VAE＝潜在表現を離散化したVAE
- Vector Quantizationはベクトル量子化のこと
- コードブックは代表ベクトルの辞書
- エンコーダの出力を最も近いコードブックのベクトルに置き換える
- 通常のVAEは連続潜在変数、VQ-VAEは離散潜在表現
- β-VAEはKL項の重み、CVAEは条件情報、GANは敵対的学習
- G検定では「離散」「コードブック」「量子化」がキーワード
