人工知能(AI)

【人工知能】再帰型ニューラルネットワークの仕組み

どうも、とがみんです。

ニューラルネットワークの仕組みや畳み込みニューラルネットワークの仕組みについて、以前の記事で紹介してきました。



この記事では、再帰型ニューラルネットワークという時系列データの解析に適したニューラルネットワークの仕組みについて紹介していきます。

再帰型ニューラルネットワークとは

再帰型ニューラルネットワーク(Recurrent Neural Network)は、時系列などの系列データを扱うことができるニューラルネットワークで、音声認識や動画認識、文章解析によく使われます。

これまで紹介したニューラルネットワークでは、入力データは互いに独立した状態にありましたが、

再帰型ニューラルネットワークでは、過去の入力データも考慮されます。

連続した言葉の中で、直前の言葉を利用して次の言葉の出現確率を予測したり、

メールの返信文を自動的に生成する機能、機械翻訳や文章生成などを行うことができます。


再帰型ニューラルネットワークの仕組み

再帰型ニューラルネットワークの仕組みについて紹介していきます。

再帰型ニューラルネットワークの構造は以下のようになっています。

入力層、中間層(隠れ層)、出力層は、基本的にはニューラルネットワークと同じですが、中間層には、前の中間層のデータが取り入れられます。

この仕組みにより、過去の時刻での情報を保持し、それを取り入れた解析が可能になります。

数式で表すと、以下のような感じです。

しかし、上記の仕組みでは、動画や文章のような、長い時系列データに対しては、ネットワークが時系列長に比例して深くなってしまい、勾配消失問題が生じてしまい、学習がうまく行かないケースが出てきます。

勾配消失問題:誤差逆伝播法によってパラメータを変化させ、ニューラルネットワークの精度を上げていく際に、複数の層を伝播していく過程で誤差情報が消失してしまう現象。

>【人工知能】誤差逆伝播法とは。ニューラルネットワークの学習の仕組み。

その問題を解決し、長期間の依存関係を表現するパラメータの学習をできるようにしたものがLSTMモデル(Long Short-Term Memory)です。

次に、そのLSTMモデルについて紹介していきます。

LSTM Long Short-Term Memoryの仕組み

LSTM(Long Short-Term Memory)モデルでは、過去のデータの何を忘れて、何を覚えて置くべきかまで学習します。

下図のように中間層のノードをLSTMブロックに置き換えます。

次にLSTMブロックの中身について説明していきます。

LSTMブロックの中身は以下の図のようになっています。

LSTMブロックには、入力ゲート、忘却ゲート、出力ゲートがあります。

ブロックへのinputは、前の入力層から中間層への重みパラメータ(Wc)と、一時刻前の出力から中間層への重みパラメータ(Rc)の行列の積で計算されます。

入力ゲートは、どの程度、「前の層からの入力」をブロック内どれだけ反映させるのかを制御します。

忘却ゲートは、「前時刻の記憶セルの値」をどれだけ現時刻に持ち越すかを制御します。

これまでのinputは、前時刻の記憶セルに反映されており、次の入力に備えて、その値と現時刻の入力の和を記憶セルに反映させます。

出力ゲートは、「現時刻の記憶セルの値」を、どの程度、出力値として外に出すかを制御します。

各パラメータと出力が得られるまでの数式は以下です。

このような仕組みによって、長い間情報を伝達できるようになります。

>A Beginner’s Guide to LSTMs and Recurrent Neural Networks

まとめ

音声認識や動画認識、文章解析によく使われている再帰型ニューラルネットワークの仕組みについて紹介しました。

参考文献

>【Day-18】時系列のディープラーニング、RNNのまとめとKeras実装

>再帰型ニューラルネットワーク(RNN)とLSTM

>A Beginner’s Guide to LSTMs and Recurrent Neural Networks