LSTMのトレーニングの直感的な説明(ゲート/ピープホールを忘れた場合)?


9

私はCSの学部生です(ただし、AIについてはよく知りませんが、AIについてのコースを受講していません。最近までNNについてはまったく何もしていませんでした)。AIで学校のプロジェクトをやろうとしているので、ニューラルネットワークで強化学習を使用した(文脈自由言語およびおそらく文脈依存言語のサブセットの)文法誘導。私は以前に成功したアプローチを最初に研究してそれらを微調整できるかどうかを確認し始めましたが、今私は長期短期記憶による教師あり学習を使用してアプローチを理解しようとしています。私は「忘れる学習:LSTMによる継続的予測」を読んでいます。。私ものぞき穴に関する論文を読んでいますが、それはさらに複雑に思われ、単純なことを最初に試みています。私は、メモリセルとネットワークトポロジがどのように機能するかを正しく理解していると思います。現時点では取得できないのは、トレーニングアルゴリズムです。だから私は尋ねるいくつかの質問があります:

  • 異なる入力はどの程度正確に区別されますか?どうやらネットワークは各入力の後にリセットされず、異なる入力を区切る特別な記号はありません。ネットワークは、入力の終わりと次の始まりがどこであるかについての手掛かりなしに、文字列の連続ストリームを受信するだけですか?

  • 入力と対応するターゲット出力の間のタイムラグはどれくらいですか?確かにある程度のタイムラグが必要であるため、ネットワークは、処理するのに十分な時間がない入力からターゲット出力を取得するようにトレーニングすることはできません。使用されたのがReberの文法ではなく、より多くの情報を格納および取得する必要がある可能性のあるより複雑なものである場合、情報にアクセスするために必要な時間は、入力によって異なり、おそらく予測できないものです。トレーニングを行うためのタイムラグを決定している間。

  • トレーニングアルゴリズムのより直感的な説明はありますか?すべての複雑な数式の背後で何が行われているのかを理解するのは難しいと思います。後で強化学習アルゴリズムに微調整する必要があるため、理解する必要があります。

  • また、このペーパーでは、ノイズの多いトレーニングデータについては何も触れられていません。ネットワークが非常にノイズの多いテストデータを処理できることを他の場所で読んだことがあります。LSTMが、トレーニングデータが不要な情報で破損/上書きされる可能性がある状況を処理できるかどうかを知っていますか?


3
これは非常に大きな質問であり、一部の読者を威圧するかもしれません。私はそれをいくつかの部分に分割することをお勧めします(おそらくあなたの箇条書きのポイントのそれぞれ)。また、このトピックは、コンピュータサイエンス相互検証の橋渡しをします。ここでコンピュータサイエンスのより多くのCS関連の側面とCross Validatedのより多くの統計関連の側面について質問することを検討するかもしれません(ただし、両方のサイトに同じ質問を投稿しないでください)。
Gilles「SO-邪悪なことをやめなさい」

あなたを助けるかもしれないいくつかの参照:lstm.iupr.com/filesそのページのnntutorial-lstm.pdfは、ここでは特に助けになるかもしれ
ブライアン・ジャック

PS:付録にあるこれらのイプシロンとデルタを誰かが解読して、おそらく初年度の計算だけで理解できるものにできますか?
ブライアンジャック

この時点では、バックプロップの計算が少し怖いので、進化/変異原トレーニングアルゴリズムのバックプロップは避けています。PyBrainでbackpropMinus lstmを使用して小さなテストテキスト予測の問題を試しましたが、3文字の入力シーケンスだけでも収束に問題がありました-突然変異トレーニングと適合性カリング(トレーニング人口に対する出力エラーのMSEで)クリエイティブな検索領域の分析
ブライアンジャック

回答:


1

LSTMは、時間の経過とともに到着するデータチャンク(この時点でのネットワークの入力のセット)のストリームを処理し、データで発生する機能を観察し、それに応じて出力を生成するように設計されています。認識される特徴の出現間のタイムラグ(遅延)は変化する場合があり、長くなる場合があります。

次に、ランダムな順序でトレーニング例をストリーミングしてネットワークをトレーニングします。これには、アイドルパスの形式でタイムシフトノイズも追加する必要があります(入力がデフォルトのアイドル値であるときにネットワークをアクティブにします(例:音声の場合、オーディオがない場合)。プロセッサ)[例外:トレーニングデータが音楽などの定期的なタイムシフトパターンに従う必要がある場合、タイムシフトノイズはタイムシフトの同期を維持する必要があります。例:音楽では、メジャートレーニングの例がメジャーにシフトされていないことを確認します。前方へ]

ネットワークが常にトレーニング構成にあり、機能が存在しないときにアイドル値の出力を期待する例、または機能がトレーニングに提示されたときに適切な期待値を期待する、半教師付き設定を使用することもできます)。

フィードバック形式のトレーニングが必要な場合は、次の方法でエミュレートできます。

  1. 内部状態の保存(時間t)
  2. 現在の入力でネットワークをアクティブ化(現在はt + 1)
  3. 監視プロセスはtで得られた出力を評価します
    • 3a修正が必要な場合、最初に保存された状態に巻き戻します(ネットワークをtに巻き戻します)
    • 3b修正を含むトレーニング例を生成する
    • 3cアクティベーションではなく、このスライスのトレイン(バックプロップ)パスを実行する

したがって、トレーニングの例は基本的にネットワークが「間違っている」ときにのみ作成されるため、フィードバックスタイルシステムを実装します。フィードバック形式は、ネットワークで即興を試みたい場合に役立ちます(Schmidhuberの音楽の例のように)。

  • 修正フィードバック(およびトレーニング例)の一部には、現時点で機能が存在しない場合にアイドル値の出力を強制するものが必ず含まれることに注意してください。

OPは、実際には存在することを除いて、[入力の分離はない]と述べました。音声認識シナリオについて考える場合、発話の期間(LSTMが検出する必要のある機能)が長時間の無音に散在しています。したがって、懸念事項に対処するには、これらの沈黙期間が実際にはシーケンスされた入力のグループを分離していると言うのが妥当です(これらの沈黙も、実際には、ネットワークがアイドル値の出力で応答を検出および学習するために必要な機能です。沈黙時は何も)。

ネットワークのリセットに関する注意

LSTMの意味での保存されたネットワーク状態のリセットまたはリコールには、「時間をさかのぼる」という意味があり、リセット前にLSTMが行った学習をすべて取り消します。

したがって、LSTMは各トレーニングサンプルの前にリセットされず、トレーニングのエポックもないということは正しいことでした。LSTMは、データをストリーミングするか、いわば「オンライン」で提供することを望んでいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.