長・短期記憶

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Machine learning bar

長・短期記憶 (LSTM) セルはデータを連続的に処理し、長時間にたってその隠れ状態を保持することができる。

長・短期記憶(ちょう・たんききおく、テンプレート:Lang-en-short、略称: LSTM)は、深層学習(ディープラーニング)の分野において用いられる人工回帰型ニューラルネットワーク(RNN)アーキテクチャである[1]。標準的なテンプレート:仮リンクとは異なり、LSTMは自身を「汎用計算機」(すなわち、チューリングマシンが計算可能なことを何でも計算できる)にするフィードバック結合を有する[2]。LSTMは(画像といった)単一のデータ点だけでなく、(音声あるいは動画といった)全データ配列を処理できる。例えば、LSTMは分割されていない、つながった手書き文字認識[3]音声認識[4][5]といった課題に適用可能である。ブルームバーグ ビジネスウィーク誌は「これらの力がLSTMを、病気の予測から作曲まで全てに使われる、ほぼ間違いなく最も商業的なAIの成果としている」と書いた[6]

一般的なLSTMユニットは、記憶セル入力ゲート出力ゲート、および忘却ゲートから構成される。記憶セルは任意の時間間隔にわたって値を記憶し、3つの「ゲート」は記憶セルを出入りする情報の流れを制御する。

LSTMネットワークは時系列データに基づく分類テンプレート:仮リンク予測によく適している。これは、LSTMネットワークが時系列中の重要な事象間の未知の期間の時間差となることができるためである。LSTMは、従来のRNNを訓練する際に遭遇しうる勾配爆発および消失問題に対処するために開発された。ギャップの長さに対する相対的な鈍感さが、多数の応用におけるRNNや隠れマルコフモデル、その他の系列学習法に対するLSTMの優位性であるテンプレート:Citation needed

LSTMは2010年代まで主流の地位にあったが、2017年以降は更に高性能なTransformerという基盤モデルに取って代わられていった。

歴史

LSTMは1997年にテンプレート:仮リンクテンプレート:仮リンクによって提唱された[1]。Constant Error Carousel(定誤差カルーセル、CEC)ユニットの導入によって、LSTMは勾配爆発および消失問題を解決しようとする。LSTMブロックの最初の型はセル、入力ゲート、および出力ゲートを含んでいた[7]

1999年、テンプレート:仮リンクと彼のアドバイザーのユルゲン・シュミットフーバーとFred CumminsはLSTMアーキテクチャへ忘却ゲート(「保持ゲート」とも)を導入した[8]。これはLSTMが自身の状態をリセットすることを可能にする[7]。2000年、 ゲルス、シュミットフーバー、CumminsはLSTMアーキテクチャへ覗き穴(peehole)結合(セルからゲートへの結合)を追加した[9]。加えて、出力活性化関数は削除された[7]

2014年、Kyunghyun Cho(조 경현)らはゲート付き回帰型ユニット(Gated recurrent unit、GRU)と呼ばれる単純化した変異型を提案した[10]

その他の成功の中で、LSTMは自然言語テキスト圧縮[11]と分割されていないつながった手書き文字認識[12]で新記録を達成し、テンプレート:仮リンク手書き文字認識大会(2009年)で優勝した。LSTMネットワークは2013年に、古典的なテンプレート:仮リンク自然音声データセットで新記録となる音素誤り率17.7%を達成したネットワークの主要な構成要素であった[13]

2016年時点で、GoogleAppleマイクロソフトを含む主要なテクノロジー企業は新製品の基本要素としてLSTMを使用していた[14]。例えば、Googleはスマートフォン上での音声認識[15][16]、スマートアシスタントAllo[17]、およびGoogle翻訳[18][19]のためにLSTMを使用した。AppleはiPhone上の「Quicktype」機能[20][21]Siri[22]のためにLSTMを使用する。AmazonAmazon AlexaのためにLSTMを使用する[23]

2017年、FacebookはLSTMネットワークを使用して毎日45億回の自動翻訳を実行した[24]

2017年、ミシガン州立大学IBM基礎研究所コーネル大学の研究者らは、Knowledge Discovery and Data Mining(KDD)会議において研究発表を行った[25][26][27]。彼らの研究は、広く使われるLSTMニューラルネットワークよりも特定のデータセットに対して優れた性能を示す新規ニューラルネットワークに関するものである。

さらに2017年、マイクロソフトは16万5千語の語彙を含むSwitchboardコーパスにおいて95.1%の認識精度に達したと報告した。この手法は「対話セッションに基づく長・短期記憶」を使用した[28]

着想

理論的には、古典的な(バニラな)RNNは入力配列における任意の長期依存性を追跡できる。バニラRNNの問題は本質的に計算的(あるいは実務的な)なものである。誤差逆伝播法を使ってバニラRNNを訓練する時、逆伝播される勾配は「消失」(すなわち勾配がゼロに収束する)あるいは「爆発」(すなわち無限に発散する)しうる。これは、計算がテンプレート:仮リンクを用いる過程を含むためである。LSTMユニットを用いるRNNは、LSTMユニットが勾配を「不変」のまま流れることも可能とするため、勾配消失問題を部分的に解決する。しかしながら、LSTMネットワークは勾配爆発問題にはまだ悩まされうる[29]

アーキテクチャ

複数のLSTMユニットのアーキテクチャが存在する。一般的なアーキテクチャは、セル(LSTMユニットの記憶部分)と大抵ゲートと呼ばれるLSTMユニット内部の情報の流れの3つの「調整器」(入力ゲート出力ゲート忘却ゲート)から構成される。LSTMユニットの一部の変異型はこれらのゲートの1つ以上を持たない、あるいは別のゲートを持つこともある。例えばゲート付き回帰型ユニット(GRU)は出力ゲートを持たない。

直感的には、「セル」は入力配列中の要素間の依存性を追跡するために必要である。「入力ゲート」はセルへの新たな値の流れの度合いを制御し、「忘却ゲート」はセル中に値が留まる度合いを制御し、「出力ゲート」はセル中の値がLSTMユニットの出力活性化を計算するために使われる度合いを制御する。LSTM「ゲート」の活性化関数にはテンプレート:仮リンクが使われることが多い。

LSTMゲートへの、そしてLSTMからの結合が存在し、そのうちいくつかは回帰結合(リカレント)している。訓練中に学習される必要があるこれらの結合の重みが、ゲートがどのように動作するかを決定する。

変異型

以下の方程式において、小文字の変数はベクトルを表わす。行列WqおよびUqはそれぞれ入力および回帰結合の重みを含み、添字qは、計算される活性化に依存して、入力ゲートi、出力ゲートo、忘却ゲートf、または記憶セルcになりうる。この節では、ゆえに「ベクトル表記」を使用する。そのため、例えば、cthは単に1つのLSTMユニットの1つのセルではなく、h個のLSTMユニットのセルを含む。演算子アダマール積(要素ごとの積)を示す。

忘却ゲートを持つLSTM

忘却ゲートを持つLSTMユニットの順方向通路のための方程式のコンパクト形は以下の通りである[1][9]

ft=σg(Wfxt+Ufht1+bf)it=σg(Wixt+Uiht1+bi)ot=σg(Woxt+Uoht1+bo)ct=ftct1+itσc(Wcxt+Ucht1+bc)ht=otσh(ct)

上式において、初期値はc0=0およびh0=0、を示す。添字tは時間ステップにインデックスを付ける。

変数

  • xtd: LSTMユニットへの入力ベクトル
  • fth: 忘却ゲートの活性化ベクトル
  • ith: 入力ゲートの活性化ベクトル
  • oth: 出力ゲートの活性化ベクトル
  • hth: LSTMユニットの出力ゲートとも呼ばれる隠れ状態ベクトル
  • cth: セル状態ベクトル
  • Wh×dUh×hbh: 訓練中に学習される必要がある重み行列およびバイアスベクトルのパラメータ

上付き文字dおよびhはそれぞれ入力要素の数および隠れユニットの数を示す。

活性化関数

重み行列と活性化関数を集約することで

(ftT,itT,otT,citT)T=σ(Wxt+Uht1+b)ct=ftct1+itcitht=otσh(ct)

となる。この式から ct1 が直接回帰し、ht1がゲート・セルを通じて回帰していることがわかる。また入力と重みの積は時間を跨いで回帰無しに計算できることがわかる(WX=W(x0x1...xn) で一括計算が可能)。

覗き穴LSTM

入力(i)、出力(o)、および忘却(f)ゲートを持つ覗き穴LSTMユニット。これらのゲートのそれぞれは順伝播型(または多層)ニューラルネットワークにおける「標準的」なニューロンとして考えることができる。すなわち、それらは(活性化関数を用いて)加重和の活性化を計算する。itotおよびftはそれぞれ時間ステップtにおける入力、出力、および忘却ゲートの活性化を表わす。 記憶セルcから3つのゲートio、およびfへ出ていく3本の矢印は「覗き穴」結合を表わす。これらの覗き穴結合は実際には時間ステップt1における記憶セルcの活性化の寄与(すなわち、図が示唆するように、ctではなくct1の寄与)を示す。言い換えれば、ゲートio、およびfは時間ステップtにおけるそれらの活性化(すなわちitotおよびft)を計算し、時間ステップt1における記憶セルcの活性化(すなわちct1)も考慮する。 記憶セルから出る単一の左から右への矢印は覗き穴結合ではなく、ctを示す。 ×記号を含む小さな丸は出力間の要素毎の乗算を表わす。Sのような曲線を含む大きな丸は加重和への(シグモイド関数のような)微分可能な関数の適用を表わす。 LSTMには他にも多くの種類が存在する[7]

右図は覗き穴結合を持つLSTMユニット(すなわち覗き穴LSTM)の図式的な表現である[30][31]。覗き穴結合によって、ゲートが定誤差カルーセル(CEC。その活性化がセル状態である)へアクセスすることが可能となる[32]ht1は使われず、ほんどの場所でct1が代わりに使われる。

ft=σg(Wfxt+Ufct1+bf)it=σg(Wixt+Uict1+bi)ot=σg(Woxt+Uoct1+bo)ct=ftct1+itσc(Wcxt+Ucct1+bc)ht=otσh(ct)

覗き穴畳み込みLSTM

覗き穴畳み込みLSTM[33]*畳み込み演算子を示す。

ft=σg(Wf*xt+Uf*ht1+Vfct1+bf)it=σg(Wi*xt+Ui*ht1+Vict1+bi)ot=σg(Wo*xt+Uo*ht1+Voct+bo)ct=ftct1+itσc(Wc*xt+Uc*ht1+bc)ht=otσh(ct)

訓練

LSTMを用いるRNNは、一連の訓練において、教師あり学習のやり方で訓練できる。訓練では、最適化プロセス中で必要な勾配を計算するためのテンプレート:仮リンク(Backpropagation through time、BPTT)と組み合わせて最急降下法のような最適化アルゴリズムを使って、(LSTMネットワークの出力層における)誤差の微分に比例してLSTMネットワークの個々の重みを変化させる。

標準的なRNNに対して最急降下法を使用することの問題点は、誤差勾配が重要な事象間の時間のずれの大きさにしたがって指数関数的にすばやく消失することである。これは、Wスペクトル半径が1よりも小さいとlimnWn=0となるためである[34][35]

しかしながら、LSTMユニットを使うと、誤差値が出力層から逆伝播される時、誤差はLSTMユニットのセル内に留まる。この「誤差カルーセル」はLSTMユニットのゲートが値のカットオフを学習するまで、個々のゲートへ誤差を絶えずフィードバックする。

CTCスコア関数

多くの応用がLSTM RNNのスタックを使用し[36]、訓練セット中のラベル配列の確率を最大化する重み行列を探すために、それらをテンプレート:仮リンク(CTC)によって訓練する[37]。CTCはアラインメントと認識の両方を達成する。

代替手段

特に「教師」(すなわち訓練ラベル)が存在しない時は、Neuroevolution[38]または⽅策勾配法によってLSTM(の一部)を訓練するのが有利なことがありうる。

成功

LSTMユニットを持つRNNを教師なしで訓練した複数の成功例がある。

2018年、ビル・ゲイツは、OpenAIによって開発されたボットがゲームDota 2で人間を破ることができた時、これを「人工知能の進歩における巨大な一里塚」と呼んだ[39]。OpenAI Fiveは5つの独立した、しかし協調したニューラルネットワークから成る。個々のネットワークは教師なしで方策勾配法によって訓練され、現在のゲーム状態を見て、複数の可能な動作から動作を出す単層の1024ユニットLSTMを含む[39]

2018年、OpenAIはかつてないほどの器用さで物体を巧みに扱う人間のようなロボットハンドを制御するために方策勾配法によって同様のLSTMを訓練した[40]

2019年、DeepMindのプログラムAlphaStarは複雑なビデオゲームスタークラフトに秀でるためにディープなLSTMコアを使用した[41]。これは、人工汎用知能へ向けた重要な前進と見なされた[41]

特性

記憶力

単純RNNと比較してより長い系列の情報を保持する能力を持つ。一方、長期記憶を評価するCopyingタスクでは系列長200以上での学習に失敗することが知られている[42]

応用

LSTMの応用には以下の事柄が含まれる。

出典

テンプレート:Reflist

関連項目

外部リンク

  1. 1.0 1.1 1.2 テンプレート:Cite journal
  2. テンプレート:Cite book
  3. テンプレート:Cite journal
  4. テンプレート:Cite web
  5. テンプレート:Cite arxiv
  6. テンプレート:Cite news
  7. 7.0 7.1 7.2 7.3 テンプレート:Cite journal
  8. テンプレート:Cite journal
  9. 9.0 9.1 テンプレート:Cite journal
  10. テンプレート:Cite arXiv
  11. テンプレート:Cite web
  12. テンプレート:Cite journal
  13. テンプレート:Cite arxiv
  14. テンプレート:Cite journal
  15. テンプレート:Cite news
  16. テンプレート:Cite news
  17. テンプレート:Cite news
  18. テンプレート:Cite arxiv
  19. テンプレート:Cite journal
  20. テンプレート:Cite web
  21. テンプレート:Cite news
  22. テンプレート:Cite web
  23. テンプレート:Cite web
  24. テンプレート:Cite web
  25. テンプレート:Cite web
  26. テンプレート:Cite web
  27. テンプレート:Cite web
  28. テンプレート:Cite web
  29. テンプレート:Cite web
  30. 30.0 30.1 30.2 テンプレート:Cite journal
  31. 31.0 31.1 31.2 テンプレート:Cite journal
  32. テンプレート:Cite journal
  33. テンプレート:Cite journal
  34. S. Hochreiter. Untersuchungen zu dynamischen neuronalen Netzen. Diploma thesis, Institut f. Informatik, Technische Univ. Munich, 1991.
  35. テンプレート:Cite book
  36. テンプレート:Cite journal
  37. テンプレート:Cite journal
  38. 38.0 38.1 テンプレート:Cite journal
  39. 39.0 39.1 テンプレート:Cite news
  40. テンプレート:Cite news
  41. 41.0 41.1 テンプレート:Cite news
  42. " The LSTM is able to beat the baseline only for 100 times steps." Arjovsky, et al. (2015). Unitary Evolution Recurrent Neural Networks.
  43. テンプレート:Cite book
  44. テンプレート:Cite journal
  45. テンプレート:Cite book
  46. テンプレート:Cite journal
  47. テンプレート:Cite book
  48. テンプレート:Cite journal
  49. テンプレート:Cite journal
  50. A. Graves, J. Schmidhuber. Offline Handwriting Recognition with Multidimensional Recurrent Neural Networks. Advances in Neural Information Processing Systems 22, NIPS'22, pp 545–552, Vancouver, MIT Press, 2009.
  51. テンプレート:Cite book
  52. M. Baccouche, F. Mamalet, C Wolf, C. Garcia, A. Baskurt. Sequential Deep Learning for Human Action Recognition. 2nd International Workshop on Human Behavior Understanding (HBU), A.A. Salah, B. Lepri ed. Amsterdam, Netherlands. pp. 29–39. Lecture Notes in Computer Science 7065. Springer. 2011
  53. テンプレート:Cite arXiv
  54. テンプレート:Cite journal
  55. テンプレート:Cite journal
  56. テンプレート:Cite journal
  57. テンプレート:Cite book
  58. テンプレート:Cite journal
  59. Jia, Robin; Liang, Percy (2016-06-11). "Data Recombination for Neural Semantic Parsing". arXiv:1606.03622 [cs].
  60. テンプレート:Cite journal
  61. テンプレート:Cite conference