問題タブ [lstm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
deep-learning - 特徴ベクトルまたは単語から文を生成する方法は?
画像キャプションに VGG 16-Layer Caffe モデルを使用し、画像ごとに複数のキャプションを付けました。次に、それらのキャプション (単語) から文を生成したいと考えています。
LSTM に関する論文を読んで、トレーニング ネットワークから SoftMax レイヤーを削除し、4096 特徴ベクトルをfc7
レイヤーから直接 LSTM に提供する必要があると読みました。
私はLSTMとRNNのことは初めてです。
どこから始めればよいですか?シーケンスのラベル付けによって文を生成する方法を示すチュートリアルはありますか?
neural-network - 多変量シーケンス学習の特徴表現
モノラル楽譜からシーケンスを生成するモデルをトレーニングしようとしています。インターネットの周りで、文字レベルの lstm ネットワークと音楽 ABC 表記法でこれを行っている人々の例をいくつか見つけました (Torch で karpathy の実装を多く使用しています: http://karpathy.github.io/2015/05/21/rnn-effectiveness / )。
これはかなり効果的であるように見えますが、シーケンスには音楽情報ができるだけコンパクトに含まれていません。私が考えたのは、音楽情報を一連の音符として直接表現することでした。ただし、音には複数の特徴があります。ピッチ、オクターブ、デュレーション、次の音に接続されているかなどです。この情報を特徴ベクトルとして適切に表現する方法がわかりません。また、この主題に関する多くの情報も見つかりませんでした。 .
私のデータセットには、音のピッチと長さの多様性がかなり限られています。3 オクターブ、10 の異なる音符の長さ、4/4 拍子記号のみが含まれている可能性があります。ただし、これらのメモのそれぞれの異なる組み合わせを表すと、膨大な入力特徴ベクトルが得られます。
どんなアドバイスでも大歓迎です!
machine-learning - ニューラル ネットワークのトレーニングを停止するタイミング
私は RNN を使用してドメイン固有の分類研究を実行しようとしており、数千万のテキストを蓄積しています。データセット全体を実行するには数日から数か月かかるため、テスト用にほんの一部、たとえば 100 万個のテキスト (トレーニング用に 80%、検証用に 20%) だけを選びました。コーパス全体を単語ベクトル化で事前トレーニングし、モデルに Dropout を適用してオーバーフィッティングを回避しました。12 時間以内に 60000 個のテキストをトレーニングしたところ、損失はすでにかなり低いレベルにまで落ちており、精度は 97% でした。続けるべきか?トレーニングの継続に役立ちますか?
それはまだ最初のエポックを実行中であり、私が今停止した場合、モデルは全体をカバーしていないのではないかと心配しています...
neural-network - LSTM NN: 順伝播
私はニューラル ネットワークが初めてで、LSTM をゼロから作成しています。順伝播は機能していますが、訓練されたモデル、逆伝播、およびメモリ管理のコンテキストでの順伝播の移動部分についていくつか質問があります。
したがって、現在、順方向伝播を実行すると、新しい列f_t, i_t, C_t, h_t, etc
が対応する配列に積み上げられ、bptt 勾配計算のために以前の位置が蓄積されます。
私の質問は4つの部分です:
1)合理的に長期の記憶を保持するためには、どのくらい前にさかのぼる必要がありますか? (メモリを 20 ~ 40 時間ステップ戻すことは、おそらく私のシステムに必要なものです (ただし、より長い期間の恩恵を受けることができますが、これはまともなパフォーマンスのための最小値にすぎません)。今、私はそれを機能させることができます)
2)モデルが「トレーニング済み」であると考えたら、次の値を計算するために必要な 2 つ以上の時間ステップを保持する理由はありますか? C
h
(C_t
はセルの状態で、h_t
は LSTM ネットの最終出力です) その場合、順伝播関数の複数のバージョンが必要になります
3)トレーニングする時系列データが限られており、モデルをトレーニングしたい場合、モデルのパフォーマンスは、トレーニング データで何度もトレーニングするときに収束します (最大平均パフォーマンスの周りで振動するのに対して)。 ? また、ドロップアウトを実装すると収束しますか?
4)勾配のいくつの要素を考慮する必要がありますか? さまざまな行列の勾配を計算すると、時間ステップ t で一次寄与が得られ、時間ステップ t-1 で二次寄与が得られます (そして、計算は t=0 までずっと繰り返されます)。(言い換えると、一次寄与が勾配計算を支配しますか? 時間ステップを逆伝播するときに再帰の実装を保証するのに十分な二次成分のために勾配が変化しますか...)
python-2.7 - LSTM バイナリ分類用の音声データセットの構築
theano を使用してバイナリ LSTM 分類を実行しようとしています。サンプル コードを確認しましたが、独自のコードを作成したいと考えています。
私が使用している「Hello」と「Goodbye」の録音の小さなセットがあります。これらの MFCC 機能を抽出し、これらの機能をテキスト ファイルに保存することで、これらを前処理します。20 個の音声ファイル (それぞれ 10 個) があり、単語ごとにテキスト ファイルを生成しているので、MFCC 機能を含む 20 個のテキスト ファイルがあります。各ファイルは 13x56 のマトリックスです。
私の問題は次のとおりです:このテキストファイルを使用してLSTMをトレーニングするにはどうすればよいですか?
私はこれに比較的慣れていません。私もそれに関するいくつかの文献を調べましたが、その概念を本当によく理解しているとは思いませんでした。
LSTM を使用する簡単な方法も歓迎します。
python - TensorFlow で可変長シーケンスを使用してバッチを処理する方法は?
シーケンス予測に RNN (具体的には LSTM) を使用しようとしていました。ただし、可変シーケンス長の問題に遭遇しました。例えば、
このBenchmark for building a PTB LSTM model に基づく単純な RNN を使用して、現在の単語の次の単語を予測しようとしています。
ただし、num_steps
パラメーター (以前の非表示の状態に展開するために使用される) は、各 Tensorflow のエポックで同じままにする必要があります。基本的に、文の長さが異なるため、文のバッチ処理はできません。
ここで、num_steps
私の場合、すべての文に対して変更する必要があります。いくつかのハックを試しましたが、何も機能していないようです。
machine-learning - Keras でのシーケンスのラベル付け
私は文のラベル付け問題に取り組んでいます。自分で埋め込みとパディングを行いましたが、入力は次のようになります。
文中のすべての単語について、4 つのクラスのいずれかを予測したいので、目的の出力は次のようになります。
私の単純なネットワーク アーキテクチャは次のとおりです。
トレーニング中は約 95% を示していますが、トレーニング済みモデルを使用して新しい文を予測しようとすると、結果は非常に悪くなります。モデルは最初の単語のいくつかのクラスを学習したばかりのようで、毎回それを示しています。問題は次のとおりだと思います。
自分でパディング (文末のゼロ ベクトル) を書いた場合、学習が悪化する可能性はありますか?
パディングなしで、さまざまな長さの文を学習しようとする必要があります (はいの場合、Keras でそのような種類のモデルをトレーニングする方法を教えてもらえますか?)
学習目的を間違えましたが、平均二乗誤差、バイナリクロスエントロピーなどを試してみましたが変わりません。
TimeDistributedDense
との何かsoftmax
、私はそれがどのように機能するかを知っていると思いますが、それでも 100% 確実ではありません.
この問題に関するヒントやヘルプをいただければ幸いです。ありがとうございます。
python - LSTM レイヤーをスタックして音声ファイルを分類する方法
私は離散音声を分類するために LSTM ベースの分類子を実装しようとしています。13 個の mfcc で特徴ベクトルを作成しました。特定のファイルの 2D ベクトルは [99, 13] です。mnist_irnn の例に従った後、音声ファイルを分類するために単層 RNN をセットアップできました。しかし、ネットワークにレイヤーを追加したいと考えています。したがって、2 つの LSTM 層とソフトマックス層を出力層としてネットワークを実装しようとしています。ここで多くの投稿を行った後、次のようにネットワークを設定できました。ここでは、モデルの構築時に例外がスローされません。
私はさまざまなポイントでさまざまな値を試してきました。(今のところ、小さなサンプルで試しているため、値は非常に小さいです)しかし、現在、トレーニング中に例外がスローされています。若干の寸法ミスマッチ。
ここで何が間違っているのか知りたいです。私は一日中コードを調べてきましたが、それでも次元の不一致の理由を理解できません。
さらに、誰かが output_dim の意味を説明できれば、本当にありがたいです。(特定のレイヤーに n 個のノードがある場合、単一のノードによって出力されるベクトルの形状ですか? 次のレイヤーのノードの数と等しくなければなりませんか? )