Encoder-Decoder ネットワーク [ディープラーニングの文脈で]

1. Encoder-Decoder ネットワークとは [概要]

Encoder-Decoderネットワークとは,オートエンコーダ以降のディープニューラルネットワークでよく用いられる「入出力を端として,中央部の次元を低くし,その中央部の左右で対称形を成すネットワーク構造」である(図1).

この記事では,生成モデルや変換モデルによく用いる画像Encoder-Decoder(3節)と,自然言語処理や音声認識, TTS(Text-to-Speech)などで用いる,Transformerなどの系列Encoder-Decoder(4節)の2つを,一般化して俯瞰視・共通視できるようにする.それによって今後読者が,共通のEncoder-Decoderという観点から,各種ネットワーク構造を判別・分析しやすくなることを狙う.

Encoder-Decoder ネットワークの2種類 (画像変換向けと系列変換向け)
図1. Encoder-Decoder ネットワークの2種類
(画像変換向けと系列変換向け)

画像対画像変換や,セマンティックセグメンテーションに人物姿勢推定など向けの,画像入出力向けのEncoder-Decoderネットワークの場合(図1-1)は,以下の2つのサブネットワークから構成される(1.1節)」

  • Encoder:入力画像を解釈・符号化する(※ 画像認識で言うと「特徴抽出」する).
  • Decoder: アップサンプリングしていき,元の空間サイズまで戻して画像(もしく2Dマップ)を生成する.

画像向けのEncoder-Decoderネットワーク(図1-1)においては,各層で以下の処理を行う:

  • 前半のEncoder各層:生入力から,(ボトムアップな)Encodingを順に行う.
  • 真ん中のボトルネック層(図1-1,中間の$\bm{z}$):表現の次元数や,空間サイズが一番低いまま処理を行う(何も処理しないまま,Decoderにそのまま$\bm{z}$を受け渡すことも多い).
  • 後半のDecoder各層:圧縮された低次元のコードから,(トップダウンな)Encodingをおこなう

また,機械翻訳や,Text-to-Speechや音声認識など,系列同士を変換する系列対系列変換が目的のEncoder-Decoderでも(図1-2),同様に「入力系列を解釈するEncoder」と,出力系列を生成する「Decoder」の,2つのサブネットワークから構成される(1.2節)

このEncoderとDecoderが対称構造をなして,元の情報を変換・復元するネットワークのことを,俗にEncoder-DecoderモデルとかEncoder-Decoderネットワークと呼ぶことが多い.

1.1 Encoderモデルの例

1.1.1 画像向けの砂時計型モデル例

Encoder-Decoderネットワークのうち,砂時計型のモデル(図1-1)として,各タスクを解くために,初めて提案された代表的なEncoder-Decoder構造としては,以下のようなものがあげられる:

  • オートエンコーダ(Autoendoder):特徴ベクトルや画像特徴マップの,次元削減を行う(2節)
  • Denoising AutoEncoder (※ 記事未作成): 雑音ありデータと,綺麗なデータの間で学習することで,ノイズに強い中間表現をオートエンコードすることができる.
  • 変分オートエンコーダ(VAE):ガウス潜在変数を学習できる,オートエンコーダの進化版の深層生成モデル.
  • SegNet:RGBシーン画像向けの,セマンティックセグメンテーションネットワーク.
  • U-Net:モノクロ医用画像向けの,セマンティックセグメンテーションネットワーク.
  • pix2pix:画像対画像変換むけネットワーク(各画素の意味は保ってスタイルを変換)(3節)
  • 画像補間系の問題や,単眼画像からのデプス推定などの問題向けのディープネットワーク.

1.1.2 系列データ向けのモデル例

Transformer の概要図
図2. Transformer の概要図

また系列対系列変換モデル(4節)でも,Encoder-Decoderモデルが標準的に用いられる(図1-2).系列データ間のEncoder-Decoderは,当初seq2seq(sequence-to-sequence)モデルと名付けられ,その後,アテンション中心で構成されたTransformerへと発展した.

系列対系列変の各タスクでは,入力系列も出力系列も,共に系列長が可変であるゆえ,可変系列に対応できるRNNモデル(LSTMGRU , RNNLMの文生成)や,Transformerデコーダ・Transformerデコーダなどが,EncoderとDecoderに用いられる.これらの系列対系列問題の各種問題向けのEncoder-Decoderでは,アテンション機構を同時に利用することが標準的である.

1.2 呼び名の由来:工学分野で古くから使われる「符号器と復号器の組み合わせ」

古くから電子回路・情報理論で用いられてきた符号化では,「符号器(Encoder)」と「復号器(Decoder)」の組み合わせをペアとして用いてきた.

その際,計算機が扱いやすく,なおかつ元の情報量がなるべく保たれたまま圧縮された「符号(code)」を中間的に使用するために,まず「符号化」を行う.例えば,動画符号化では,H264などの符号化されたコードが,電気的伝送やネットワーク伝送効率を向上させるために,元データを圧縮する目的で用いられている.たとえば,動画の場合は伝送後にその符号化されたデータを複合器で動画として復元し表示再生する.この符号器・複合器のペア構成をニューラルネットワークで構成する場合も,上記の古くからの名前に習ってEncoder-Decoder と呼ぶ.

ただし,ハフマン符号化などのように,Encoder-Decoderモデルのニューラルネットワークで符号化も実行するわけではなく,Encoderで畳み込みしたあとは,真ん中の層で次元が圧縮されたベクトルが手に入るだけの場合が普通である.エントロピーを考慮した符号化が必ずしも行われているわけではない.

2. オートエンコーダでの活用

画像のオートエンコーダ や,変分オートエンコーダ(VAE) では,前半の各層でボトムアップ処理のEncoderを用いて符号化を行い,まず中間コードを生成する (この中間層の表現を,Bottleneckと呼ぶことが多い ).そして,後半の各層では,中間コードからトップダウン処理のDecoderを用いて復号化を行い,元画像のサイズまで転置畳み込みでアップサンプリングも行なっていき,最後にサイズが戻った元画像を出力として復元する.

オートエンコーダ や,変分オートエンコーダ(VAE) では,(符号化理論は特に用いない)ディープラーニング的な損失関数で,データから表現を学習し,それと同時に中間層表現の次元圧縮もおこなう.つまり,DNNで Encoder-Decoder構造を使用する場合は,情報理論や,古典的な符号化理論は,積極的には活用されていない.一部,ボトルネックの中央に,情報幾何理論などを積極活用する潮流もあるのだが,機械学習の基礎理論寄りの話で少し難易度も高いテクニカルで上級者向けの話である(ここでは詳しい事は触れない).

3. 画像対画像変換モデルでの活用

セマンティックセグメンテーションのような「画像->意味画像」でよく使用されるネットワーク構造でも,Encoder-Decoderモデルを構成することが多い.ただし,入出力は(同画像サイズの)別の画像同士であり,オートエンコーダのように同じ画像同士でしているわけではない点に注意されたい.両者はネットワークはEncoder-Decoder型で共通だが,入出力ペアは別物なので,変換モデルを学習する.

また,セマンティックセグメンテーションとは逆方向の「意味画像->画像」間の変換を行う画像対画像変換(Image-to-Image Translation)においても,pix2pixでの初期モデルでは,素直に(U-Netライクな)砂時計型のEncoder-Decoderモデルを使用する.

加えて,画像復元や超解像などの各種の画像補間の各問題を,データドリブンにディープラーニングで解く場合においても,画像対画像変換と同じく,「劣化画像->(推定)元画像」の復元をEncoder-Decoderネットワークで行う.また,画像からのデプス画像推定なども,同様に砂時計型Encoder-Decoderネットワークを用いる.

4. 系列対系列変換モデルでの活用

一方,近年の音声認識やText-to-Speech(TTS),機械翻訳などで,よく用いられるTransformerなどの系列対系列変換も,Encoder-Decoderネットワークの1種である.

アテンション機構を用いるseq2seq with attentionTransformerの場合,Encoder-Decoder間の各層間がかなり密にお互いが繋がっている(スキップ接続や,アテンション重みを通じて接続).よって,EncoderとDecoderが明確には分離独立しておらず,2者間が複雑かつ適応的に作用する.その意味では,古典的な動画や音楽ファイルなどの圧縮伝送目的の,2者間の昨日が完全に分離しているEncoder-Decoderとは,異なる性質を持つ機構であると言える.

一方で,一般化言語モデルの自己教師有り事前学習だと,例えば「BERT」や「GPT」は,TransformerのEncoderもしくはDecoderの片方のみを用いていることが多く,系列Encoder-Decoderではない.一方で,その後登場したBERTの改善手法である「BART」は,(Denoising Auto-) Encoder-Decoderである.

参考書籍

References

  • [1] Geoffrey E Hinton and Richard S Zemel. Autoencoders, minimum description length, and helmholtz free energy. In NIPS, 1994.
  • [2] D. P. Kingma and M. Welling. Auto-encoding variational bayes. In ICLR, 2014

外部参考サイト