深層学習DAY3要約
Section1)再帰型ニューラルネットワークの概念
・RNNとは
時系列データに対応可能なニューラルネットワークである。
時系列モデルを扱うには、初期の状態と過去の状態tー1の状態を保持し、そこから次の時間でのtを再起的に求める再起構造が必要になる。
・時系列データとは?
時間的順序を追って一定間隔ごとに観察され、しかも相互に統計的依存関係が認められるようなデータの系列。(音声データ、テキストデータなど)
・BPTTとは
誤差逆伝播法の一種である。
RNNにおけるパラメータ調整法の一種である。
Section2) LSTM
・RNNの課題
時系列を遡れば遡るほど、勾配が消失していくため、長い時系列の学習が困難。
解決策として、ネットワークの構造自体を変えて解決したものがLSTM
・勾配消失問題
誤差逆伝播法が下位層に進んでいくほど勾配が小さくなっていく。そのため入力層付近で、学習が進まなくなる。
・勾配爆発
勾配が層を逆伝播するごとに指数関数的に大きくなること
・CEC
中間層で肝になる機能、記憶機能だけ持つ。これまでの入力値や中間層を記憶させる。
・入力ゲート
入力された値をどの程度記憶するのかを決定する。
・出力ゲート
次時刻に出力させる値をどの程度中間層の記憶を使うかを決める。
・忘却ゲート
過去の情報がいらなきなった場合に、どの程度忘却させるかを決める。
・のぞき穴結合
CECの保存させている過去の情報を任意のタイミングで、他のノードに伝播させたり、忘却させたりしたい。
→CEC自身の値に重み行列を介して伝播可能にした構造。
Section3) GRU
・LSTMの課題
LSTMではパラメータ数が多く、計算負荷が高くなる問題があった。
GRUではそのパラメータを大幅に削減し、精度は同等またはそれ以上が望めるようになった構造。
ゲートはリセットと更新ゲートの二つ。
Section4)双方向RNN
過去の情報だけではなく、未来の情報を加味することで、精度を向上させるためのモデル。
実用例として、文章の推敲や、機械翻訳等がある。
双方向RNNでは、順方向と逆方向に伝播した時の中間層表現を合わせたものが特徴量になる。
Section5)Seq2Seq
Seq2Seqとは
Encoder-decoderモデルの一種を指す。
使用用途として、機械と岩や、機械翻訳に使用されている。
Encoder RNN
ユーザーがインプとした情報を、単語等のトークンに区切って渡す構造。
Taking:文章を単語等のトークン事に分割し、トークン毎のIDに分割する。
Embedding:IDからそのトークンを表す分散表現ベクトルに変換。数字の並びが似かよっている事は似かよった意味を持つ単語という事になる ⇒ 単語の意味を抽出したベクトル。
Encoder RNN:ベクトルを順番にRNNに入力していく。
最後のベクトルを入れた時の隠れ状態をFinal stateとして取っておく。
Decoder RNN
システムがアウトプットデータを、単語等のトークンごとに生成する構造。
Decorder RNNのFinal stateをDecoder RNNのInitial stateととして設定し、Embeddingを入力。
Sampling:生成確率に基づいてトークンをランダムに選ぶ
EMbedding:2で選ばれたトークンをEmbeddingしてDecorder Rnnへの次の入力とする
Detokenize:1ー3を繰り返し2で得られたトークンを文字列に直す
Seq2Seqの課題
一問一答しかできない
問に対して文脈も何もなく、ただ応答が行われる。
HREDとは
・過去の発話から次の発話を生成する。
・Seq2Seq ±ContextRNN
VHREDとは
HREDに、VAEの潜在変数の概念を追加したもの。
オートエンコーダとは
教師なし学習の一つ。そのための入力データは訓練データのみで、教師データは利用しない。
VAE
通常のオートエンコーダーの場合、何かしらの潜在変数zにデータを押し込めているものの、その構造がどのようなものかわからない。VAEはこの潜在変数zに確率分布を仮定したもの。VAEはデータを潜在変数zの確率分布という構造に押し込めることを可能にします。
Section6)Word2Vec
学習データからボキャブラリを作成
大規模データの分散表現の学習が、現実的な計算速度とメモリ量で実現可能にした。
Section7) Attention
Seq2Seqでは長い文章への対応が難しい。(隠れ層ベクトルが固定長だから)
解決策として、文章が長くなるほどそのシーケンスの内部表現の次元も大きくなっていく仕組みが必要。入力と出力のどの単語が関連しているのか、関連度を学習する仕組み。