LSTM(長・短期記憶)の図の意味
突然ですが問題です。以下の図、AとBでLSTM(長・短期記憶)を正しく表しているのはどちらでしょうか。

これらの図を解釈するにはあるコツがあります。それが分かれば正解を言い当てるのはそれほど難しくはありません。
正解は?
実は両方ともLSTMの図解としては正解です。すいません、ひっかけ問題でした。でも、おそらくそう思われた方は多いと思います。
しかし、表現の仕方がとても違うので同じものを指しているように見えません。どのように考えれば、異なる図を見た時に、それがLSTMであるかどうか判断できるのでしょうか。
3つのポイントがあります。
LSTMは単純なRNNの拡張である。
LSTMは記憶細胞(Memory Cell)を持つ。
LSTMは3つの情報ゲートを使う。
各図において、上記のポイントを一つずつ解説します。
図Aの解説
単純なRNN
図Aの解説をします。まずは、単純なRNN(以下、RNN)の図から始めましょう。

RNNだと全ての情報は隠れ状態($${h_t}$$)に収納されています。隠れ状態と呼ぶのは、入力データからは直接観察できない特徴量だからです。データの中に存在する情報をニューラルネットワークで抽出しています。
RNNからの出力は活性化関数である$${\tanh}$$を通るので-1から1の間になります。また、隠れ状態は次のステップに受け渡されるので点線の矢印が入力の側へとつながっています。これが回帰の構造で、現在のステップの情報を次のステップへと渡しています。よって、RNNは時系列などの情報を扱うのに適しています。
だたし、RNNには長期にわたる情報の伝達において問題があります。それは、次のステップに必要な情報(隠れ状態)と後々のステップで必要な情報とのバランスをとることができないことです。ニューラルネットワークでは、重み(weight)を調節して学習します。よって、次のステップで必要な値に関する重みは大きくなります。しかし、もっと後のステップで必要かもしれない数値に対して重みが小さくなります。
RNNを展開した図で見ると関係がわかりやすいです。

ステップ$${t}$$で$${x_t}$$と$${h_{t-1}}$$から得た情報を次のステップ$${t+1}$$に渡すのは問題がありません。ただし、$${t+1}$$では必要でないが、その次のステップ$${t+2}$$では必要な情報を渡すということがうまくできません。なぜならば、$${t+2}$$のステップに情報を渡すには、まず、$${t+1}$$のステップに渡さないといけないからです。そんなことをしたら間違った情報を渡しているのに等しくなります。
このため、長きにわたって維持するべき情報を伝えることができず、すぐに忘れ去られることになります。これをニューラルネットワークの重みで表現すると、長きにわたる情報を忘れないように重みを大きくすると次のステップに余計な情報が加わり混乱を生じます。かと言って、長きにわたって維持する情報への重みを小さくすれば忘却されてしまいます。よって、これはこれで学習がうまくいきません。この問題は入力重みの衝突と呼ばれています。
この問題を解決するために、LSTMではメモリーセル(記憶細胞、Memory Cell)が導入されました。
メモリーセル(記憶細胞)
図Aを俯瞰してみましょう。単純なRNN以外の部分をメモリーセル(記憶細胞)としてまとめて置き換えてみます。

このようにLSTMでは隠れ状態とは別に情報を記憶して置く場所(セル、Cell)を使います。そこには、今すぐに必要な情報と共に後で必要になるかもしれない情報も記憶しておけます。
これが、「LSTMは単純なRNNの拡張である」の意味するところです。なので図を見てRNNの回帰の仕組みから出力される隠れ状態が記憶細胞を通っているかを確認します。「LSTMはRNNに記憶細胞を追加している」ことを意識しておくと良いでしょう。
メモリーセル(記憶細胞)は単純にセルと呼ぶことが多いので、ここからはセルとだけ表記します。
それでは、セルはどのように記憶すべきもの、忘れるべきもの、取り出すべきものをコントロールするのか見ていきましょう。
3つの情報ゲート
セルに維持する情報をコントロールするために、3つのゲートが存在します。
単純なRNNからの隠れ情報がセルに入ってくる際に、入力ゲート(Input Gate)で記憶する情報を決めます。また、忘却ゲート(Forget Gate)はセルから取り除く情報を決めます。最後に、出力ゲート(Output Gate)はセルから次のステップへの隠れ状態として取り出す情報を決めます。

セルからの出力は活性化関数の$${\tanh}$$を通るので、全ての要素の値は-1から1の間になります。単純なRNNのニューラルネットワークも活性化関数に$${\tanh}$$を使っているので隠れ状態は常に-1から1の間になり辻褄が合っています。
これらの3つのゲートのお陰でセルは記憶する必要がある情報を取り入れ、必要なくなったものは忘れ、次に必要なものを取り出すといった情報のコントロールができます。
なお、これらのゲートはそれぞれニューラルネットワークになっており、前回のステップからの隠れ状態$${h_{t-1}}$$と今回のステップの入力データ$${x_t}$$を使って情報の調節する量を決めます。
以下の図では、入力ゲート、忘却ゲート、出力ゲートが前回のステップからの隠れ状態$${h_{t-1}}$$と今回のステップの入力データ$${x_t}$$を使って情報の調節する量を決めている流れを表しています。

Sと書いてあるのは活性化関数がシグモイド(Sigmoid)だからです。シグモイドによって出力の値は全て0から1の間になるので、0なら完全に捨てられる、1なら値をそのまま残すというコントロールが情報ベクトルの要素ごとに可能になっています。
また、3つのゲートはそれぞれ名前がついていますが、中身としてはニューラルネットワークであり、活性化関数としてシグモイド(Sigmoid)を使っているという単純な構造になっています。
つまり、それぞれのゲートのニューラルネットワークは訓練を通して重みの最適化をするわけだけであり、ネットワーク自体がそれぞれ入力、忘却、出力といった役割に合わせて何か特殊なことをしているわけではありません。
むしろ、3つのゲートをセル(記憶装置)の周りに配置しておけば、セルに留める情報や取り出す情報を最適にコントロールするように学習するだろうという意図があるのみで、それぞれのゲートの名前は人間がわかりやすいようにそう呼んでいるだけです。
まとめ
「セルには3つの情報ゲートがある」のがLSTMの特徴です。なので図を見てLSTMかどうか判断する場合は、3つのゲートを確認する必要があります。
それでは、3つのゲートのネットワークをセルの図に挿入してまとめます。

ここで、一つ注意が必要なのは、忘却ゲートでは前回のセルの状態に対し、値を調節しているので、ここでも回帰の構造が見られることです。よって矢印の線がセルから出て忘却ゲートを経てまたセルに戻っています。
まとめると、LSTMは単純なRNNに記憶装置を追加して拡張したもので、3つのゲートを持ち、隠れ状態だけでなくセルの状態にも回帰の構造があることになります。
図Bの解説
単純なRNN
では、図Bを見てきましょう。まずは、単純なRNNの部分から始めます。わかりやすいように図から余計なものは排除しています。

黄色い箱はニューラルネットワークで$${\tanh}$$が活性化関数になっています。これでRNNの回帰の構造が確認できました。
3つの情報ゲート
次に、残りのニューラルネットワーク(黄色い箱)を見ていきます。これらは3つのゲートを表しており、$${\sigma}$$はシグモイドが活性化関数であることを示しています。丁寧に名前もついており、忘却ゲート、入力ゲート、出力ゲートと書いてありますが、これがなくとも矢印から情報の流れを追えば上記のゲートであることが確認できるはずです。

上記で$${\otimes}$$となっているのは、要素ごとに掛け算をする意味です。それぞれのゲートはシグモイドから出力が0から1になっているので、これによって情報の選別・調整をしています。
例えば、以前のセルの状態$${c_{t-1}}$$に対して忘却ゲートからの値(0から1)を掛け合わせることでどの情報をどのくらい維持するのか、逆にいうと忘れるのかをコントロールしています。

入力ゲートからの値は、RNN(黄色い$${\tanh}$$)からの出力に対して掛け合わせています。

なお、$${\oplus}$$となっているのは要素ごとに足し算をする意味です。
図Aの良いところは、忘却ゲートを通ったセルの情報と入力ゲートを通ったセルの情報が$${\oplus}$$によって足し合わされて、次のセルの状態$${c_t}$$になるのが良くわかるようになっているところです。図Aだと、その点が少しわかりにくいです。
なお、セルからの出力値は、次のステップでのセルの状態$${c_t}$$へと引き継がれ、ここでセルに関する回帰の構造が見られます。

最後に、セルの状態が赤色の$${\tanh}$$を通って出力ゲートによる選別を受け次の隠れ状態になります。

なお、赤色になっているのは、この$${\tanh}$$がニューラルネットワークではなく単なる活性化関数であるとの意味です。
メモリーセル(記憶細胞)
図Aの悪いところはセルの存在が図に埋もれてしまっており、図AのようにRNNに記憶細胞を追加しているのがあまりはっきりしないことです。それは、セル自体が展開した形式で描かれてるためです。
しかし、その存在は図をよく見ればあることが確認できます。セルの状態が忘却ゲートを通り、単純RNNからの新しい情報が入力ゲートを通って追加されるので、記憶情報がコントロールされているのがわかります。また、出力ゲートによって次の隠れ状態が引き出されているのも確認できます。
まとめ
ちなみに、図Aの方はLSTMを発案した論文などで使われているものに近いのですが、よく知られているのは図Bのほうです。図Bのような図を使ってLSTMを解説した記事ははよく見受けられます。これは、Christopher Olahによるブログによる解説が使ったことで有名になったからです。よってこの図に慣れておくといろんな記事を読むときに有用です。
ただし、図Aの方が記憶細胞が追加されたRNNという構造がよりはっきり見て取れます。こちらの方がLSTMのそもそもの意図するところがわかりやすいでしょう。
強いて図Aの欠点を挙げるとすれば隠れ状態の回帰構造とセル状態の回帰構造が異なる方式(展開されてる否か)で描かれていることと、入力ゲートと忘却ゲートの足し算がはっきりと表示されていないところです。
図Cの質問
最後に、もう一つ質問します。下の図を見てください。これはLSTMでしょうか?

3つのポイントを確認してみてください。
健闘を祈ります。それでは、また。
