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

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

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

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

画像対画像変換や,セマンティックセグメンテーションに人物姿勢推定など向けの,画像入出力向けのEncoder-Decoderネットワークの場合(図1-1)は,入力画像を解釈(※画像認識で言うと特徴抽出)する「Encoderネットワーク」と,Encoderモデルを対称にしてアップサンプリングしていき出力画像(もしく2Dマップ)を生成する「Decoderネットワーク」の2つのサブネットワークから,構成される(1.1節).

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

画像向けのEncoder-Decoderネットワークにおいては,前半のEncoder層でまず情報をエンコーディング(Encoding)をおこない,真ん中の層で表現の次元数が一番低くなる(図1-1,中間に位置する赤色の$\bm{z}$).その後,後半のDecoder層で,情報のデコーディング(Decoding)をおこなう.このEncoderとDecoderが対称構造をなして元の情報を変換・復元するネットワークのことを,俗に「Encoder-Decoderモデル」とか「Encoder-Decoderネットワーク」と呼ぶことが多い.

1.1 Encoderモデルの例

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

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

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

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

系列間を変換する各タスクでは,入力系列も出力系列も,共に系列長が可変である必要があるので,可変系列に対応できるRNNモデル(LSTMGRU)や,Transformerデコーダ・Transformerデコーダなどが,(seq2seqの)EncoderとDecoderに用いられる.これらの系列対系列問題の各種問題向けの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モデルを構成することが多い.ただし,入出力は(同画像サイズの)別の画像同士であり,オートエンコーダのように同じ画像同士でしているわけではない点に注意されたい.両者はネットワークはEncoder-Decoder型で共通だが,入出力ペアは別物なので,変換モデルを学習する.

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

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