1.再帰型ニューラルネットワークの概念
・RNN(Recurrent Neural Network)
時系列データに対応可能な、ニューラルネットワーク
時系列データとは?
時間的順序を追って一定間隔ごとに観察され,
相互に統計的依存関係が認められるようなデータの系列
具体例
音声データ
テキストデータ
RNNの特徴
時系列モデルを扱うには、初期の状態と過去の時間t-1の状態を保持し、
そこから次の時間でのtを再帰的に求める再帰構造が必要になる。
・BPTT
RNNにおいてのパラメータ調整方法の一種(誤差逆伝播の一種)
誤差逆伝搬の復習
誤差逆伝搬とは計算結果(=誤差)から微分を逆算することで、
不要な再帰的計算を避けて微分を算出する手法である。
・RNNの課題
時系列を遡れば遡るほど、勾配が消失していく。
→ 長い時系列の学習が困難。
解決策
勾配消失の解決方法とは別で、構造自体を変えて解決したものがLSTM。
・勾配消失問題
誤差逆伝播法が下位層に進んでいくに連れて、勾配がどんどん緩やかになっていく。
・勾配爆発
層を逆伝播するごとに勾配が、指数関数的に大きくなっていく
・simple RNN(weight_init_stdやlearning_rate, hidden_layer_sizeを変更)
2.LSTM
・CEC(Constant Error Carousel)
勾配消失および勾配爆発の解決方法として、勾配を1にすることで解決する。
課題
入力データについて、時間依存度に関係なく重みが一律になってしまう。
→ニューラルネットワークの学習特性が無いということ。
・入力・出力ゲートの役割
それぞれのゲートへの入力値の重みを、重み行列W,Uで可変可能にする。
・LSTMブロックの課題(忘却ゲート)
LSTMの現状
CECは、過去の情報が全て保管されている。
課題
過去の情報が要らなくなった場合、削除することはできず、保管され続ける。
解決策
過去の情報が要らなくなった場合、そのタイミングで情報を忘却する機能が必要。
→忘却ゲートが登場する。
・覗き穴結合
課題
CECの保存されている過去の情報を、任意のタイミングで他のノードに伝播させたり、
あるいは任意のタイミングで忘却させたい。
但し、CEC自身の値は、ゲート制御に影響を与えていない。
覗き穴結合とは
CEC自身の値に、重み行列を介して伝播可能にした構造。
3.GRU
・GRU
従来のLSTMでは、パラメータが多数存在していたため、計算負荷が大きかった。
GRUでは、パラメータを大幅に削減し、精度は同等またはそれ以上が望める様になった。
→その結果、計算負荷を削減できるようになった。
4.双方向RNN
・双方向RNN
過去の情報だけでなく未来の情報を加味することで、精度を向上させるためのモデル
実用例
文章の推敲や、機械翻訳等
5.Seq2seq
・Seq2seq Encoder-Decoderモデルの一種 用途
機械対話や、機械翻訳など
・Encoder RNN
ユーザーがインプットしたテキストデータを、単語等のトークンに区切って渡す構造。
・Decoder RNN
システムがアウトプットデータを、単語等のトークンごとに生成する構造。
・HRED
過去n-1 個の発話から次の発話を生成する。
→Seq2seqでは会話の文脈無視で応答がなされたが、
HREDでは前の単語の流れに即して応答されるためより人間らしい文章が生成される。
課題
RED は確率的な多様性が字面にしかなく、会話の「流れ」のような多様性が無い。
・VHRED
HREDの課題を、VAEの潜在変数の概念を追加することで解決した構造。
・オートエンコーダ
教師なし学習の一つ。
オートエンコーダ具体例
MNISTの場合、28x28の数字の画像を入れて同じ画像を出力する。
・VAE
通常のオートエンコーダーの場合、何かしら潜在変数zにデータを押し込めているものの、
その構造がどのような状態かわからない。
VAEはこの潜在変数zに確率分布z∼N(0,1)を仮定したもの。
6.word2vec
・word2vec
RNNでは、単語のような可変長の文字列をNNに与えることはできない。
固定長形式で単語 を表す必要がある。
→word2vecでは学習データからボキャブラリを作成する。
メリット
大規模データの分散表現の学習が、現実的な計算速度とメモリ量で実現可能にした。
7.Attention Mechanism
・Attention Mechanism
「入力と出力のどの単語が関連しているのか」の関連度を学習する仕組み。