概要
Sequence to Sequence(以下、Seq2seq)は翻訳技術が大きく向上させた技術である
つまり1つの入力(文章)を入れて1つの出力を出すモデルである
Encoder,Decoderが使用されている
Seq2seq以降も改良されたモデルが開発されている
この章では以下の項目を学んだ
・Seq2seqの基礎
・Encoder RNN
・Decoder RNN(確認テスト1つ含む)
・演習チャレンジ
・HRED
・VHRED(確認テスト1つ含む)
・オートエンコーダ
・VAE(確認テスト1つ含む)
Seq2seq
Encoder-Decoderモデルの一種である
以下のような構造をしている
Encoder-RNN
以下のような処理をしている
①文章を単語等のトークン毎に分割し、トークンごとにIDをふる
②トークンIDごとにonr-hotベクトルを割り当てる
③one-hotベクトルをembeding表現に変換する
④ID順ごとにRNNを入れていき、最終的に分の意味を持つベクトル(though vector)にする
Decoder-RNN
以下のような処理をしている
①EncoderRNNのtrough vectorから各トークンの生成確率を出力
②生成確率に基づいてトークンをランダムに選ぶ
③②で選ばれたトークンをEmbedingしてDecoderRNNの次の入力とする
④①~③を繰り返して②で得られたトークンを文字列に直す
<<確認テスト>>
下記の選択肢から、seq2seqについて説明しているものを選べ
RNNを用いたEncoder-Decoderモデルの一種であり、機械翻訳などのモデルに使われる
演習チャレンジ
e = E.dot(w)
HRED
Seq2eqでは1問1答しかできず、変な応答になる
そこでSeq2seq+Context RNNを付け加えたモデルで解決した
VHRED
HREDは会話の「流れ」のような多様性が無い
VAEの潜在変数の概念を追加することで解決した構造
<<確認テスト>>
seq2seqとHRED、HREDとVHREDの違いを簡潔に述べよ。
seq2seqはEncoder,Decoderで構成されるモデルで会話の前後を考慮しない。HREDではSeq2seqにContext RNN付け加えることで会話の前後を考慮する
VHREDではVAEの潜在変数の概念を追加している
オートエンコーダ
教師なし学習の一つ。そのため学習時の入力データは訓練データのみで教師データは利用しない
入力データから潜在変数zに変換するニューラルネットワークをEncoder逆に潜在変数zをインプットとして元画像を復元するニューラルネットワークをDecoder
オートエンコーダは以下のような構造をしている
VAE
通常のオートエンコーダの場合、何かしらの存在変数zに押し込まれているデータがどんな構造をしているかわからない
VAEでは潜在変数zに確率分布z∼N(0,1)を仮定したもの
<<確認テスト>>
VAEは自己符号化器の潜在変数に確率分布を導入したもの