いきなりまとめ
Encoder-Decoder/Sequence-to-Sequenceモデルの特徴
- 2014年に開発されたRNNモデル
- inputとoutputが共に可変長
- 2つのRNNから構成
- input→RNN(Encoder)→final state/context C
- context C→RNN(Decoder)→output
Encoder-Decoder/Sequence-to-Sequenceモデルの応用例
- 音声認識
- 翻訳
- 自動応答
Today I Learned
10.4 Encoder-Decoder Sequence-to-Sequence Architecturesを参考に。
背景
Encoder-Decoder/Sequence-to-Sequence登場以前のRNNは3種類。
SEQ→VEC、VEC→SEQ、SEQ→SEQ(ただし入出力の長さが同じ)。
入出力が固定長のベクトルであり、入出力の順序を考慮できていなかった。
順序を考慮できても入出力が同じ長さであった。
Encoder-Decoder/Sequence-to-Sequenceは順序を考慮しつつ、入出力の可変長を実現。
モデルの構造
encoderとdecoderと呼ばれる2つのRNNからなる。
encoderはinput X = (x(1), . . . , x(nx))に対して、final state/context Cを出力する。
decoderはcontext Cををinputとして、Y= (y(1), . . . , y(ny))を出力する。
nx=ny=τでなくてもよい。
だからインとアウトの長さが異なる自動応答や機械翻訳に使える。
それを可能にするのが2つのRNNをつなぐcontext C。
モデルの弱点
context Cの情報量が少ないと長い情報を要約できない。
じゃあどうするか
context Cを固定長vectorじゃなく可変長sequenceにする。
他には、attention mechanismを取り入れる。(Bahdanau et al. (2015) )
出力1ステップごとに別々のcontext Cを参照する。
それらのcontext Cは単にencoderのfinal state1つだけからじゃなく入力1ステップごとのstateの加重平均から作る。
0 件のコメント:
コメントを投稿