Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。 まずはとにかく自由を目指すエンジニアのブログです。

哲学とプログラミングとブログがメインになるかと。
人工知能(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