エンコーダーデコーダー
読み: えんこーだーでこーだー
入力データを低次元の潜在表現に圧縮するエンコーダーと、その潜在表現から出力を復元するデコーダーで構成されるニューラルネットワークアーキテクチャ。
エンコーダーデコーダー (Encoder-Decoder) は、入力を段階的に圧縮して特徴を抽出するエンコーダー部と、圧縮された特徴マップから目的の出力を再構成するデコーダー部の 2 段構成をとるネットワーク設計パターンである。画像処理ではセマンティックセグメンテーション、超解像、画像生成など幅広いタスクで採用されている。
エンコーダーは畳み込みとプーリングを繰り返し、空間解像度を下げながらチャンネル数を増やす。例えば 256x256x3 の入力画像を 8x8x512 の特徴マップまで圧縮する。デコーダーはアップサンプリング (転置畳み込みやバイリニア補間) を用いて空間解像度を元に戻し、最終的にタスクに応じた出力を生成する。
- U-Net: 医療画像セグメンテーション向けに設計されたアーキテクチャで、エンコーダーの各段階からデコーダーへスキップ接続を設けることで細部情報の損失を防ぐ。572x572 の入力に対し 388x388 のセグメンテーションマップを出力する
- SegNet: エンコーダーのプーリングインデックスをデコーダーで再利用し、パラメータ数を抑えつつ正確な境界復元を実現する
- ボトルネック: エンコーダーとデコーダーの接続部分は最も空間解像度が低く、画像全体のグローバルな文脈情報を凝縮して保持する
エンコーダーに ImageNet で事前学習済みの ResNet や VGG を利用する転移学習が一般的であり、少量のデータでも高精度なセグメンテーションを達成できる。デコーダーの設計次第で出力の解像度や精度が大きく変わるため、タスクの特性に応じた構造選択が重要となる。