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

1. 概要

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

Encoder-Decoderモデル
図1 Encoder-Decoderモデル

Encoder-Decoderネットワークにおいては,前半のEncoder層でまず情報をエンコーディング(Encoding)をおこない,真ん中の層で,表現の次元数が一番低くなる(図1 赤の$\bm{z}$).その後,後半のDecoder層で,情報のデコーディング(Decoding)をおこなう.このEncoderとDecoderが対称構造をなして元の情報を変換・復元するネットワークのことを,俗に「Encoder-Decoderモデル」とか「Encoder-Decoderネットワーク」と呼ぶことが多い.画像のセマンティックセグメンテーションや古くからの画像変換問題(画像補間や画像復元など)を,CNNで学習する場合に,Encoder-Decoder Modelはよく用いられる.

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

また,系列変換モデル(4節)のseq2seqTransformerでも,入力系列と出力系列の変換にEncoder-Decoderモデルが標準的に用いられる(図1-(2)).入力系列も出力系列も共に系列長が可変であるので,可変系列に対応できるRNNモデル(LSTMGRU)や,TransformerデコーダとTransformerデコーダなどが,seq2seqのEncoderとDecoderに用いられる.

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

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

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

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

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

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

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

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

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

また,セマンティックセグメンテーションとは逆方向の「意味画像->画像間」の変換を行う,pix2pixなどの画像対画像変換 (Image-to-Image Translation)においても,Encoder-Decoder モデルのネットワークを主に使用する.

加えて,画像復元や超解像などの各種の画像補間 (画像処理で言う「逆問題」)を,Deep Learningでデータドリブンに解く場合などにおいても,画像対画像変換と同じく入出力が同サイズの画像でその間の変換(復元・補間)を,Encoder-Decoderネットワークを用いて「劣化画像->(推定)元画像」の復元を行う.

関連記事:

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

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

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

外部参考サイト

↓ ためになった方は,記事をSNSでシェアをしてくださると,管理人の記事執筆モチベーションが上がります