画像処理とか機械学習とか

画像処理や機械学習関連の事について気まぐれで書いていきます。歩行者検出関係が多いと思います。ハリネズミもたまに出現します。

リカレントニューラルネットワークとは?(RNN)

画像認識や音声認識などで用いられる一般的なDNNの手法は、ある時刻での推定を独立して行うことになります。しかし、動画から状態を認識したり、音声の意味を理解するためには、独立した識別だけでは十分であるとは言えません。そのため、前後の時系列情報を扱うことができるリカレントニューラルネットワーク(回帰型ニューラルネットワーク:RNN)という手法が提案されました。
f:id:hiro2o2:20160617231159p:plain

上の図のように、リカレントニューラルネットワークは前の時刻の中間層を次の時刻の入力と合わせて学習に用いることで、時系列情報を考慮したネットワーク構造となっています。

リカレントニューラルネットワークは、時系列情報を保持したネットワークで、展開するとDNNを時間方向につなげた大きなネットワークとみなすことができます。
そのため、リカレントニューラルネットワークの学習にもDNNと同様に誤差逆伝播法を用いることができます。特にリカレントニューラルネットワークでの学習は back-propagation through time法と呼ばれています。

RNNを実際に適応する例として、言語の予測が挙げられます。「今日は雲ひとつない晴天だ」という文章の最後の方の「晴天」を予測したいとすると、その前の文章の「雲ひとつない」という情報から関連付けて「晴天」を予測できます。これは、「晴天」という単語がこの文章だけから導くことが可能で、他の文章を必要としないためRNNが過去の学習結果を利用することができるからです。
このように単純な場合の学習がRNNで出来るのですが、長期の依存関係にある物の予測は難しく、学習ができないという問題があるそうです。