8.1 Attention の仕組み 8.2 Attention 付きseq2seq の実装 8.3 Attention の評価 8.4 Attention に関する残りのテーマ 8.5 Attention の応用 8.6 まとめ |
・注意機構(Attention Mechanism)必要な情報にだけ「注意」を向ける技術
・seq2seq の問題点 Encoder の出力が、固定長のベクトルである
・Encoder の改良 Encoder の LSTMレイヤの隠れ情報を全て利用させる
双方向RNN や 双方向LSTM を使用する
・Decoder の改良① Encoder の LSTMレイヤの隠れ情報を利用する
・アライメント(Alignment)単語の対応関係を表す情報
Attention では自動化
・選ぶ作業(微分不可)の解決 重みを付けて全て選ぶ(微分可能)
・重み付き和の計算 プログラム
・Decoder の改良② 重要度を表す重みを、類似度として考え内積で求める
・Attention の重み計算 プログラム
・Attention クラス
TimeAttention クラス
AttentionEncoder クラス
AttentionDecoder クラス
AttentionSeq2seq クラス
・Attention 付き seq2seq の学習 train.py
・Attention の可視化 visualize_attention.py
・TimeBiLSTM クラス
・seq2seq の深層化と skipコネクション 層をまたぐ接続、接続部では加算
層を深くしても、勾配の消失・爆発がなく良い学習が可能
・グーグルの人口知能機械翻訳
(GNMT:Google Neural Machine Translation)
ベースは、Attention 付き seq2seq(Encoder + Decoder)、LSTM多層化
双方向LSTM(1層目のみ)、skipコネクション、複数のGPUによる分散学習
・ニューラル翻訳(Neural Machine Translation) seq2seq 使用の機械翻訳
・翻訳の歴史 ルールベース→用例ベース→統計ベース→ニューラル翻訳
・Transformer 学習時間の短縮、翻訳精度の向上を実現、
脱RNN(LSTM)、並列処理が可能
使用技術:
Self-Attention、Skipコネクション、Layer Normalization、並行Attention、
Positional Encoding(時系列データの位置情報のエンコーディング)
・Self-Attention 自分自身に対してのAttention
・Neural Turing Machine(NTM) 外部メモリによる記憶領域の拡張
Encoder によるメモリ書き込み・Decoder によるメモリ読み込み
Deep Mind による有名な研究→DNC(Differentiable Neural Computer)
Attention 重みのシャープ化、前時刻の Attention の重みを足す
・データからのプログラム学習(アルゴリズム自体の学習が可能)
Write Head レイヤ、Read Head レイヤ
コンテンツベースの Attention クエリベクトルに似たベクトル探査
位置ベースの Attention 前時刻に注目したメモリ位置に対して