リカレント ニューラル ネットワーク (RNN) は、ネットワークに追加の重みを追加してネットワーク グラフ内にループを作成し、内部状態を維持できる人工ニューラル ネットワークの一種です。 ニューラル ネットワークに状態を追加する利点は、シーケンシャルまたは時間的なコンポーネントを含む問題を含むシーケンス予測問題で、コンテキストを明示的に学習して活用できるようになることです。 この投稿では、ディープラーニングのためのリカレント ニューラル ネットワークを理解するための旅に出ます。 この記事を読むと、次のことがわかります。
ここでは、考えられるすべてのタイプの RNN を網羅するのではなく、ディープラーニングで使用されるいくつかの RNN (LSTM、GRU、NTM) と、それらを理解するためのコンテキストに焦点を当てることに注意してください。 それでは始めましょう! 概要 まず、リカレント ニューラル ネットワークの分野の概要を説明します。次に、ディープラーニングの LSTM、GRU、NTM について詳しく見ていきます。その後、ディープラーニングの RNN に関連する高度なトピックをいくつか取り上げます。
リカレントニューラルネットワーク まず、場面を設定しましょう。 一般的に、繰り返しによってネットワーク トポロジのメモリが提供されると考えられています。 より良い考え方としては、トレーニング セットは、トレーニング サンプルを循環するために使用される一連の入力を含む 1 つのサンプルで構成されていると考えるといいでしょう。これは、従来の多層パーセプトロンのような「伝統的な方法」である。 X(i) -> y(i) ただし、このトレーニング サンプルは、以前のサンプルからの入力セットによって補完されます。これは、リカレントニューラルネットワークのような「非伝統的」なものである。 [X(i-1), X(i)] -> y(i) すべてのフィードフォワード ネットワーク パラダイムと同様に、重要な問題は、入力層を出力層 (フィードバック アクティベーションを含む) に接続し、構造を収束するようにトレーニングする方法です。 それでは、非常に単純な概念から始めて、いくつかの異なるタイプのリカレント ニューラル ネットワークを見てみましょう。 完全再帰ネットワーク 多層パーセプトロンの分類構造は保持されますが、アーキテクチャ内の各要素は他のすべての要素との加重接続と、それ自体へのフィードバック接続を持ちます。 これらの接続のすべてがトレーニングされるわけではなく、その誤差導関数の極端な非線形性により、従来のバックプロパゲーションは機能しないため、時間経過によるバックプロパゲーションまたは確率的勾配降下法 (SGD) のみを使用できます。
リカレントニューラルネットワーク リカレント ニューラル ネットワークは、リカレント ネットワークの線形アーキテクチャのバリエーションです。 再帰は階層的な特徴空間での分岐を促進することができ、結果として得られるネットワーク アーキテクチャはトレーニングの進行中にそれをシミュレートできます。 そのトレーニングは、確率的勾配を使用したサブ勾配法によって実現されます。 R. Socher らの 2011 年の論文「再帰ニューラル ネットワークによる自然シーンと自然言語の解析」では、R 言語を使用してこれを詳細に説明しています。参照: http://machinelearning.wustl.edu/mlpapers/paper_files/ICML2011Socher_125.pdf ニューラルヒストリーコンプレッサー 1991 年、シュミットフーバーは、RNN 階層の教師なし事前トレーニングを通じて、数百のニューラル層にわたってクレジット割り当てを実行できる非常に深い学習器を初めて報告しました。 各 RNN は、次の入力を予測するように教師なしでトレーニングされます。その後、エラーを生成した入力のみがフィードフォワードされ、新しい情報が階層内の次の RNN に伝達され、その後、より遅い自己組織化タイムスケールで処理されます。 情報の損失はなく、圧縮のみであることがわかります。 RNN スタックは、データの「ディープ生成モデル」です。データは圧縮された形式から再構築できます。
大規模な構造を通じてエラーが逆伝播されると、非線形導関数の極値の計算が大きくなり、クレジットの割り当てが困難になったり、不可能になったりして、逆伝播が失敗する可能性があります。 長期短期記憶ネットワーク 従来の時間的逆伝播 (BPTT) またはリアルタイム再帰学習 (RTTL) を使用すると、時間的に逆方向に流れるエラー信号が爆発したり消滅したりする傾向があります。 逆伝播されたエラーの時間的変化は、重みのサイズに指数的に依存します。爆発する重みは重みの振動を引き起こす可能性があり、一方、消滅する重みは学習のタイムラグを引き起こし、時間がかかりすぎたり、まったく機能しなかったりする可能性があります。
エラーの逆流問題は、効率的な勾配ベースのアルゴリズムによって克服できます。このアルゴリズムにより、ネットワーク アーキテクチャは、特定のユニットの内部状態を通じて一定の (したがって、爆発したり消失したりしない) エラー フローを強制できます。これらのユニットは、「入力重量の競合」と「出力重量の競合」の影響を軽減できます。 入力重みの競合: 入力がゼロ以外の場合、特定の入力を保存し、他の入力を無視するために同じ入力重みを使用する必要があります。そのため、重み更新信号が競合することがよくあります。 これらの信号は、重みが入力の保存と保護に参加するように試みます。この矛盾により学習が困難になり、入力の重みを介して「書き込み操作」を制御するためのより状況に応じたメカニズムが必要になります。 出力重みの競合: ユニットの出力がゼロ以外の場合、このユニットの出力接続の重みは、シーケンス処理中に生成される競合する重み更新信号を引き付けます。 これらの信号は、出力ウェイトを作動させ、処理ユニット内に存在する情報を取得し、さまざまなタイミングで、後続のユニットが供給されているユニットの出力によって妨害されることから保護しようとします。 これらの競合は長期ラグに特有のものではなく、短期ラグにも影響を与える可能性があります。遅延が大きくなるにつれて、特に学習の高度な段階では、保存された情報を干渉から保護する必要があることに留意する価値があります。 ネットワーク アーキテクチャ: さまざまな種類のユニットが、ネットワークの現在の状態に関する有用な情報を伝達する場合があります。たとえば、入力ゲート (出力ゲート) は、他のメモリ セルからの入力を使用して、特定の情報をそのメモリ セルに格納する (読み取る) かどうかを決定します。 メモリセルにはゲートが含まれています。ゲートは、仲介する接続に固有のものです。入力ゲートは入力重みの競合を修正し、出力ゲートは出力重みの競合を排除します。 ゲート: 具体的には、入力と出力の重みの競合と干渉を軽減するために、保存されているメモリの内容を無関係な入力からの干渉から保護するための乗算入力ゲート ユニットと、現在ストレージ内にある無関係なメモリの内容からの干渉から他のユニットを保護するための乗算出力ゲート ユニットを導入します。 LSTM アーキテクチャの例。この LSTM ネットワークには、8 つの入力ユニット、4 つの出力ユニット、およびサイズ 2 の 2 つのメモリ ユニット モジュールがあります。 in1 は入力ゲート、out1 は出力ゲート、cell1 = block1 はブロック 1 の最初のメモリ セルを指します。 1997年の『Long Short-Term Memory』より 処理要素とフィードバック接続の多様性のため、LSTM の接続は多層パーセプトロンの接続よりも複雑です。 メモリセル ブロック: メモリセルは同じ入力ゲートと同じ出力ゲートを共有し、メモリセル ブロックと呼ばれる構造を形成します。 メモリセル モジュールは情報の保存を容易にします。従来のニューラル ネットワークと同様に、分散入力を 1 つのセル内にエンコードするのは簡単な作業ではありません。サイズ 1 のメモリ セル モジュールは単純なメモリ セルです。 学習: 入力ゲートと出力ゲートによって発生する変更された乗算ダイナミクスを考慮したリアルタイム再帰学習 (RTRL) のバリアントは、メモリ セル エラーの内部状態を介してメモリ セル ネット入力に逆伝播する非減衰エラーが、時間とともにさらに逆伝播されないことを保証するために使用されます。 推測: このランダム化されたアプローチは、多くのタイムラグ アルゴリズムよりも優れたパフォーマンスを発揮します。これまでの研究で使用された多くの長時間遅延タスクは、単純なランダム重み推測による提案アルゴリズムよりも高速に解決できることが示されています。
LSTM リカレント ニューラル ネットワークの最も興味深い応用は、言語処理の分野にあります。より包括的な説明は、Gers の論文に記載されています。
LSTMの限界 「大幅に遅延された XOR」のような問題は、LSTM の効率的な切り捨てバージョンでは簡単に解決できません。 各メモリセルモジュールには、入力ゲートと出力ゲートが必要です。他のループ方法は必ずしも必要ではありません。 「定数エラー カルーセル」を通じてメモリ セルを通過する定数エラー フローは、従来のフィードフォワード アーキテクチャ (入力文字列全体を一度に取得する) と同じ効果を実現できます。 他のフィードフォワード方式と同様に、LSTM にも「摂政」の概念に欠陥があります。より細かいカウント時間ステップが必要な場合は、追加のカウント メカニズムが必要になる場合があります。 LSTMの利点 長い時間遅延を埋めるアルゴリズムの能力は、そのアーキテクチャのメモリセルにおける一定のエラーバックプロパゲーションによって実現されます。 LSTM は、ノイズの多い問題領域、分散表現、連続値を近似できます。 LSTM は、検討対象となる問題領域にうまく一般化できます。一部のタスクは既存の再帰ネットワークを使用して解決できないため、これは重要です。 問題領域でネットワーク パラメータを微調整する必要はないようです。 重みと時間ステップごとの更新の複雑さの点では、LSTM は基本的に BPTT と同等です。 LSTM は非常に強力であり、機械翻訳などの分野で最先端の結果を達成しています。 ゲート型再帰型ニューラルネットワーク ゲート型再帰型ニューラル ネットワークは、シーケンス データと時間データにうまく適用されています。 音声認識、自然言語処理、機械翻訳に最適です。 LSTM と組み合わせることで、長いシーケンスの問題の領域で優れた性能を発揮します。 ゲーティングは LSTM トピックで検討されており、現在の入力と以前のメモリが相互作用して現在のアクティベーションを更新し、現在のネットワーク状態を更新する方法を制御する信号を生成するゲーティング ネットワークが含まれます。 ゲート自体は自己重み付けされており、学習フェーズ全体を通じてアルゴリズムに従って選択的に更新されます。 ゲート ネットワークは計算の複雑さを増大させ、その結果パラメータ化が増加し、追加の計算コストが発生します。 LSTM RNN アーキテクチャは、内部メモリ セル (状態) の中間候補として単純な RNN の計算を使用します。ゲート型リカレントユニット (GRU) RNN は、LSTM RNN モデルのゲーティング信号を 2 に減らします。これら 2 つのゲートは、更新ゲートとリセット ゲートと呼ばれます。 GRU (および LSTM) RNN のゲーティング メカニズムは、パラメーター化の点では単純な RNN のゲーティング メカニズムと同じです。これらのゲートに対応する重みも、コスト関数を最小化しようとする BPTT 確率的勾配降下法を使用して更新されます。 各パラメータの更新には、ネットワーク全体の状態に関連する情報が含まれます。悪影響が出る可能性があります。 ゲーティングの概念は、ゲーティング メカニズムの 3 つの新しいバリエーションを使用して調査および拡張できます。 3 つのゲーティング バリアントは、GRU1 (各ゲートは、以前の隠し状態とバイアスのみを使用して計算されます)、GRU2 (各ゲートは、以前の隠し状態のみを使用して計算されます)、および GRU3 (各ゲートは、バイアスのみを使用して計算されます) です。パラメータが大幅に削減され、GRU3 のパラメータ数が最も少なくなっています。 3 つのバリアントと GRU RNN は、手書き数字の MNIST データベースと IMDB 映画レビュー データセットでベンチマークされます。 MNIST データセットからは 2 つのシーケンス長が生成され、IMDB データセットからは 1 つのシーケンス長が生成されました。 これらのゲートの主な駆動信号は、他の信号に関する重要な情報が含まれているため、(周期的な)状態であると思われます。 確率的勾配降下法を使用すると、ネットワークの状態に関する情報が暗黙的に伝達されます。これにより、ゲート信号のバイアスのみを使用することが相対的に成功する理由を説明できます。これは、ゲート信号の適応更新によってネットワークの状態に関する情報が伝達されるためです。 ゲーティングバリアントは、制限されたトポロジ評価を使用してゲーティングメカニズムを調査するために使用できます。 詳細については、以下を参照してください。
ニューラルチューリングマシン ニューラル チューリング マシンは、ニューラル ネットワークを外部メモリ リソースと結合することでニューラル ネットワークの機能を拡張します。つまり、注意のプロセスを通じて外部メモリ リソースと対話できるようになります。 Synced の記事「ニューラル チューリング マシンの詳細な説明: チューリング マシンの基本概念から微分可能なニューラル コンピューターまで」を参照してください。 この複合システムは、チューリング マシンやフォン ノイマン アーキテクチャに似ていますが、エンドツーエンドで微分可能であるため、勾配降下法を使用して効率的にトレーニングできます。 予備的な結果では、ニューラル チューリング マシンは、入力サンプルと出力サンプルに基づいて、コピー、ソート、連想呼び出しなどの基本的なアルゴリズムを推論できることが示されています。 RNN が他の機械学習手法と比べて優れている点は、長期間にわたってデータを学習し、複雑な変換を実行できることです。さらに、RNN はチューリング完全であることは誰もが知っているので、正しい方法で接続されている限り、任意のプログラムをシミュレートする機能があります。 標準 RNN の機能が拡張され、アルゴリズム タスクの解決が簡素化されます。この豊富さは主に巨大なアドレス指定可能なメモリによって実現されるため、有線ストレージ テープを通じて実装されたチューリングの有限状態マシンの豊富さに倣って、ニューラル チューリング マシン (NTM) と名付けられています。 チューリング マシンとは異なり、ニューラル チューリング マシンは勾配降下法でトレーニングできる微分可能なコンピューターであり、プログラムを学習するための実用的なメカニズムを提供します。 ニューラルチューリングマシンのアーキテクチャ。 NTM アーキテクチャは、おおよそ上記のとおりです。各更新サイクルで、コントローラー ネットワークは外部環境から入力を受け取り、それに応じて出力を返します。また、一連の並列読み取りおよび書き込みヘッドを介してメモリ マトリックスの読み取りと書き込みも行います。破線は NTM 回路と外界との境界です。ニューラルチューリングマシン(2014)より 重要なのは、このアーキテクチャのすべてのコンポーネントが微分可能であるため、勾配降下法を使用して簡単にトレーニングできることです。これは、メモリ内のほぼすべての要素と対話する「ぼやけた」読み取りおよび書き込み操作を定義することによって実現できます (通常のチューリング マシンやデジタル コンピュータのように個々の要素を処理するのではなく)。 詳細については、以下を参照してください。
NTM実験 コピー タスクは、NTM が任意の情報の長いシーケンスを保存および呼び出すことができるかどうかをテストします。ネットワークには、ランダムなバイナリ ベクトルとそれに続くセパレータの入力シーケンスが供給されます。 ネットワークは、8 ビットのランダム ベクトルのシーケンスを複製するようにトレーニングされ、シーケンスの長さは 1 から 20 の間でランダム化されます。ターゲット シーケンスは、入力シーケンスのコピー (区切り文字なし) です。 繰り返しコピータスクはコピータスクの拡張であり、ネットワークはコピーされたシーケンスを指定された回数出力し、シーケンス終了フラグを出す必要があります。このタスクの主な目的は、NTM が単純なネストされた関数を学習できるかどうかを確認することです。 ネットワークへの入力は、ランダムな長さのランダムなバイナリ ベクトルのシーケンスであり、その後に、単一の入力チャネルに表示される必要なレプリカの数を示すスカラー値が続きます。 連想想起タスクでは、1 つのデータ項目が別の項目を指す場合など、間接的にデータを整理します。アイテムの 1 つをクエリすると、ネットワークが後続のアイテムを返す必要があるようなアイテムのリストを作成します。 バイナリ ベクトルのシーケンスを定義し、区切り文字によって左右に制限します。いくつかのアイテムがネットワークに伝播された後、ランダムなアイテムを表示してネットワークが次のアイテムを生成できるかどうかを照会します。 動的 N-gram タスクは、メモリを上書き可能なテーブルとして使用して、NTM が新しい予測分布に迅速に適応できるかどうかをテストします。ネットワークはこのテーブルを使用して遷移統計をカウントし、従来の N-gram モデルをエミュレートできます。 バイナリシーケンス上のすべての可能な 6 グラム分布の集合を考えます。各 6 グラム分布は、5 つのバイナリ履歴のすべての可能な長さに基づいて次のビットが 1 になる確率を指定する 32 個の数値のテーブルとして表現できます。現在のルックアップ テーブルを使用して 200 個の連続ビットをプロットすることにより、特定のトレーニング シーケンスが生成されます。ネットワークは、シーケンスを 1 ビットずつ観察し、次のビットを予測するように求められます。 優先順位ソートタスクは、NTM のソート能力をテストします。ネットワークへの入力は、ランダムなバイナリ ベクトルのシーケンスと各ベクトルのスカラー優先度スコアです。優先度は[-1, 1]の範囲で均一に分布します。ターゲット シーケンスは、優先順位に従ってソートされたバイナリ ベクトルのシーケンスです。 NTM は、そのコンポーネントの 1 つとして LSTM のフィードフォワード構造を持っています。 要約する この記事では、ディープラーニングのためのリカレントニューラルネットワークについて学びました。具体的には、次のことを学びました。
声明: この記事は Machine Learning Mastery から転載したものです。原文は Machine Learning Mastery から引用したもので、著者は Jason Brownlee、翻訳者は Panda です。 |
<<: 自動運転分野における機械学習アルゴリズムの応用に関する包括的なレビュー
>>: 自動運転分野における機械学習アルゴリズムの応用に関する包括的なレビュー
解決すべきデータ関連の問題があるとします。機械学習アルゴリズムの素晴らしさについて聞いたことがあるの...
Meta は、大規模モデルの注目メカニズムに関する新たな研究を実施しました。新しいメカニズムは、モ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
今年 7 月、OpenAI は強力なプラグインである Code Interpreter をリリースし...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
革命的な新しい人工知能プログラムは、画像の欠けている部分をすべて完璧に再現できることをすぐに納得させ...
ディープラーニングには大量の計算が必要です。通常、多数のノードを持つニューラル ネットワークで構成さ...
無線通信ネットワークの発展に伴い、今後のネットワークは周波数帯域やネットワーク構成の面でより複雑化し...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
11月16日、現地時間の火曜日、米国特許商標庁のウェブサイトでマイクロソフトの新しい特許が公開された...
機械学習は、ビジネスを急速に成長させたい小売業者にとって急速に必要不可欠なものになりつつありますが、...