深層学習day3 Section5:seq2seq


要点まとめ

seq2seqとは機械翻訳等に用いられる自然言語用のネットワーク。 2つのネットワークから成り、1つ目は入力から隠れ層のベクトル表現に変換する。(Encoder)

2つ目は隠れ層のベクトル表現を別の表現に変換する。(Decoder)

Encoder RNN

自然言語機械翻訳への入力するためには、文章を単語で区切りone-hotベクトルで表現すると単語の数(1万~数10万)程度になるが、あまりに大きすぎる。これを小さな情報量で表現するために、embedding表現という 意味を表現する数百程度のベクトルで表現する。

実際の学習ではembedding表現のベクトルを入力として隠れ層を更新していき、最後の入力で更新された後の隠れ層をfinal stateとしてとっておく。final state がthroughout vectorと呼ばれ、入力した文の意味を表すベクトルとなる。

単語をembedding表現に変換する方法は人間がラベル付けを行うのではなく、機械学習で行う。 googleが開発したBERTというものがあり、MLM(Masked Language Model)という、ある文の一部の単語を推測するようなモデルを学習させることでemgedding表現への変換を教師なし学習で行うことができる。

Decoder RNN

Encoderが作成した隠れ層から別の文章を生成する機能のこと。

HRED

seq2seqは入力一文、出力一文の応答しかできないという問題があり、前後の文脈は関係がなかった。 seq2seqの入力に対して得られた隠れ層を次の入力の隠れ層に引き継ぐことで、過去の発話を加味した応答ができることを期待したもの。しかし、応答がワンパターンで短くなりがちという欠点があった。

VHRED

VHREDはHREDに対して、VAEの潜在変数の概念を導入したもの。 平均0分散1の情報になる。

オートエンコーダー

元々画像認識で用いられたもので、入力画像をより小さい情報zに変換するエンコーダーと、元の画像に戻すデコーダーを教師なし学習させるもの。zに次元削減する機能といえる。

実装演習

講義ビデオ中に無し。

確認テスト等考察

1が双方向RNN、2がseq2seq、3が構文木、4がLSTMを指している。

追加演習

ゼロつく2の7章にある、seq2seqを写経実施。

f:id:yui-gen-ron:20211229005047p:plain