タグ付けされた質問 「rnn」

再帰型ニューラルネットワーク(RNN)は、ユニット間の接続が有向サイクルを形成する一種の人工ニューラルネットワークです。

3
隠れマルコフモデルとリカレントニューラルネットワーク
それぞれに最適な順次入力問題はどれですか?入力の次元はどちらがより良い一致を決定しますか?「より長いメモリ」を必要とする問題はLSTM RNNに適していますが、周期的な入力パターン(株式市場、天気)の問題はHMMで簡単に解決できますか? 重複が多いようです。2つの間に微妙な違いが存在することに興味があります。

2
長期短期記憶(LSTM)リカレントニューラルネットワークの背後にある直感は何ですか?
Recurrent Neural Network(RNN)の背後にある考え方は私には明らかです。私はそれを次のように理解しています:一連の観測()(つまり、多変量時系列)があります。各単一観測は次元の数値ベクトルです。RNNモデル内では、次の観測は以前の観測と以前の "非表示状態"であると。ここで、非表示状態も数値で表されますベクトル(観測状態と非表示状態の次元は異なる場合があります)。隠された状態自体も、以前の観測と隠された状態に依存すると想定されます。o⃗ 1,o⃗ 2,…,o⃗ no→1,o→2,…,o→n\vec o_1, \vec o_2, \dots, \vec o_n → h io⃗ io→i\vec o_iNNNo⃗ i+1o→i+1\vec o_{i+1}o⃗ io→i\vec o_{i}h⃗ ih→i\vec h_i o⃗ i,h⃗ i=F(o⃗ i−1,h⃗ i−1)o→i,h→i=F(o→i−1,h→i−1)\vec o_i, \vec h_i = F (\vec o_{i-1}, \vec h_{i-1}) 最後に、RNNモデルでは、関数はニューラルネットワークであると想定されます。利用可能なデータ(一連の観測)を使用して、ニューラルネットワークをトレーニング(適合)します。トレーニングの目標は、前の観測を使用して次の観測をできるだけ正確に予測できるようにすることです。FFF 現在、LSTMネットワークはRNNネットワークの修正版です。私が理解している限り、LSTMの背後にある動機は、RNNに固有の短いメモリの問題を解決することです(従来のRNNは、時間的に離れすぎている関連イベントに問題があります)。 LSTMネットワークの仕組みを理解しています。ここでLSTMの最良の説明、私が発見したことは。基本的な考え方は次のとおりです。 非表示状態ベクトルに加えて、非表示状態ベクトル()と同じサイズ(次元)を持つ、いわゆる「セル状態」ベクトルを導入します。「細胞状態」ベクトルは長期記憶をモデル化するために導入されたと思います。従来のRNNの場合と同様に、LSTMネットワークは入力として観測された隠された状態を取得します。この入力を使用して、次の方法で新しい「セル状態」を計算します。c⃗ ic→i\vec c_i c⃗ i+1=ω⃗ 1(o⃗ i,h⃗ i)⋅c⃗ i+ω⃗ …

3
トレーニング中に損失/精度が変動するのはなぜですか?(ケラス、LSTM)
KerasでLSTMネットワークを使用しています。訓練中、損失は大きく変動しますが、なぜそれが起こるのか分かりません。 最初に使用していたNNは次のとおりです。 トレーニング中の損失と精度は次のとおりです。 (実際には最終的に精度は100%に達しますが、約800エポックかかります。) これらの変動は、ドロップアウトレイヤー/学習率の変化(rmsprop / adamを使用)が原因で発生すると考えたので、より単純なモデルを作成しました。 私はまた、勢いや衰退のないSGDを使用しました。別の値を試しましlrたが、同じ結果が得られました。 sgd = optimizers.SGD(lr=0.001, momentum=0.0, decay=0.0, nesterov=False) しかし、私はまだ同じ問題を抱えていました。損失は単に減少するのではなく変動していました。私は常に損失は徐々に下がっていくはずだと思っていましたが、ここではそのようには動作しないようです。 そう: トレーニング中に損失がそのように変動するのは正常ですか?そして、なぜそれが起こるのでしょうか? そうでない場合、lrパラメーターが非常に小さい値に設定されている単純なLSTMモデルでこれが発生するのはなぜですか? ありがとう。(同様の質問をここで確認しましたが、問題の解決には役立たなかったことに注意してください。) 更新: 1000以上のエポックの損失(BatchNormalizationレイヤーなし、Kerasの修飾子RmsProp): 更新。2: 最終的なグラフの場合: model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy']) history = model.fit(train_x, train_y, epochs = 1500) データ:(ロボットのセンサーからの)電流の値のシーケンス。 ターゲット変数:ロボットが動作している表面(ワンホットベクトル、6つの異なるカテゴリとして)。 前処理: シーケンスが長くなりすぎないようにサンプリング周波数を変更しました(LSTMは他に学習しないようです)。 シーケンスを小さいシーケンスに切り取ります(小さいシーケンスすべてで同じ長さ:それぞれ100タイムステップ)。 6つのクラスのそれぞれに、トレーニングセット内のサンプルの数がほぼ同じであることを確認します。 パディングなし。 トレーニングセットの形状(#sequences、#timesteps in a sequence、#features): (98, 100, 1) 対応するラベルの形状(6つのカテゴリのワンホットベクトルとして): (98, 6) …
11 lstm  rnn  keras 

1
seq2seq RNNモデルをスコアリングするには、どの損失関数を使用する必要がありますか?
私は、seq2seqモデリング用のエンコーダー/デコーダーアーキテクチャーを紹介したCho 2014の論文を研究しています。 この論文では、長さ入力と長さ出力の損失関数として、与えられた入力(または負の対数尤度)の確率を使用しているようです。xxxMMMyyyNNN P(y1,…,yN|x1,…,xM)=P(y1|x1,…,xm)P(y2|y1,x1,…,xm)…P(yN|y1,…,yN−1,x1,…,xm)P(y1,…,yN|x1,…,xM)=P(y1|x1,…,xm)P(y2|y1,x1,…,xm)…P(yN|y1,…,yN−1,x1,…,xm)P(y_1, …, y_N | x_1, …, x_M) = P(y_1 | x_1, …, x_m) P(y_2 | y_1, x_1, …, x_m) \dots P(y_N | y_1, …, y_N-1, x_1, …, x_m) ただし、これを損失関数として使用することにはいくつか問題があると思います。 トレーニング中に教師が強制することを想定しているようです(つまり、次の反復への入力として位置のデコーダーの推測を使用する代わりに、既知のトークンを使用します。 長いシーケンスにペナルティを課しません。確率は出力のからであるため、デコーダーがより長いシーケンスを生成した場合、最初の後のすべてが損失に影響しません。111NNNNNN モデルが初期の文字列の終わりトークンを予測する場合でも、損失関数はステップを要求します。つまり、モデルのトレーニングされていない「多様体」に基づいて出力を生成しています。それはだらしないようです。NNN これらの懸念のいずれかは有効ですか?もしそうなら、より高度な損失関数への進展はありましたか?

1
L2正則化を使用したRNNが学習を停止する
双方向RNNを使用して、不均衡な発生のイベントを検出します。ポジティブクラスはネガティブクラスの100分の1の頻度です。正則化の使用はありませんが、トレインセットでは100%、検証セットでは30%の精度を得ることができます。私はl2正則化をオンにすると、学習時間を長くする代わりに、列車セットの精度もわずか30%になり、検証セットの精度は100%になります。 データが小さすぎるのではないかと思っていたので、実験のために、以前に使用しなかったトレーニングセットとテストセットをマージしました。状況は私がl2正則化を使用するのと同じでしたが、今はそうではありません。train + testと検証の精度は30%です。 上記の実験で128の非表示のユニットと80のタイムステップを使用している場合、非表示のユニットの数を256に増やしたとき、train + testセットに再度オーバーフィットして100%の精度を得ることができますが、検証セットではまだ30%しかありません。 ハイパーパラメータのオプションをたくさん試しましたが、ほとんど結果がありませんでした。加重クロスエントロピーが問題を引き起こしている可能性があります。ある実験では、陽性クラスの加重は5です。より大きな加重を試行すると、結果の精度はしばしば20%ほど悪くなります。 LSTMセルとGRUセルを試しましたが、違いはありません。 私が得た最高の結果。256の非表示ユニットを持つ2つの非表示レイヤーを試しました。約3日間の計算と8GBのGPUメモリが必要でした。l2の正則化がオンになっているが、それほど強くない状態で再度適合し始める前に、約40-50%の精度を得ました。 私はAdamオプティマイザを使用していますが、他のオプティマイザはうまく機能しませんでした。ステートマシンを使用している間、90%の精度が得られるため、私が持っている機能で十分です。そのステートマシンでは、主な機能は他の機能のプロパティとその可変長に基づく合計としきい値処理であり、その可変長は10の場合もあれば、20のタイムスタンプで機能について話す場合もあります。 この状況で何をすべきかについての一般的なガイドラインはありますか?何も見つかりませんでした。

3
混合周波数データを含むLSTM時系列
時系列予測のためにLSTM RNNを作成したいのですが、私の予測値の一部は月次であり、他は毎日です。このネットワークの設定方法に関するアドバイス/例はありますか? 予測の頻度は毎月です。 ありがとう。
10 time-series  lstm  rnn 

1
LSTMトポロジーについて
他の多くの人がそうであるように、私はこことここのリソースがLSTMセルを理解するのに非常に役立つことがわかりました。値がどのように流れて更新されるかを理解していると確信しており、前述の「のぞき穴の接続」なども追加できると確信しています。 私の例では、各時間ステップで長さの入力ベクトルと長さiの出力ベクトルがoありo < iます。 どちらのページでも実際にカバーされていないのは、これらがどのように配置およびトレーニングされるかです。 2つの質問があります。 私のトレーニングデータには、多くの時間単位に対応する多くの入力/出力ベクトルのペアがあります。すべてのデータを使用してLSTMをトレーニングするとします。その後、任意の長さの入力セットを実行できますか?たとえば、2015年と2016年全体のトレーニングデータがある場合、2017年のデータをネットワーク経由で実行できますか?それとも2017年から2020年か? 私が読んだことによると、時間単位ごとに1つのLSTMセルがあるように感じるので、多くの時間単位がある場合は、多くの連鎖LSTMセルがあります。チェーンの長さはネットワークを介して実行したいデータの長さに依存し、おそらく任意であるため、数を複製する単一のLSTMセルのみをトレーニングしない限り、これをトレーニングする方法がわかりません回。だから、私は単一のLSTMセルをトレーニングし、nそれらを長さの指定された入力ベクトルリストに対して一緒にチェーンするように思われnますか?単一のLSTMセルには多くの要素と機能が含まれていますが、それほど多くの情報を非常に小さなものにキャプチャするだけでは十分ではないように感じますか? ありがとう。実装の詳細を理解するのに役立つ、(比較的迅速に)消費できる他のリソースはありますか?上記の2つのリンクは、何が起こっているのかについてのすばらしい高レベルの画像を提供しましたが、これらの詳細をキャプチャできませんでした。

1
ゲーテッドリカレントユニット(GRU)リカレントニューラルネットワーク(RNN)レイヤーにはいくつのパラメーターがありますか?
タイトルがすべてを物語っています-GRUレイヤーにはトレーニング可能なパラメーターがいくつありますか?この種の質問は、パラメーターごとのパフォーマンスの観点から、長期短期記憶(LSTM)ユニットとGRUなど、さまざまなRNNレイヤータイプのモデルを比較しようとするときによく出てきます。トレーニング可能なパラメーターの数が増えると、一般に学習するネットワークの容量が増えるため、パラメーターごとに代替モデルを比較すると、GRUとLSTMの相対的な有効性を比較することができます。

2
LSTMで複数の時間ステップを予測するにはどうすればよいですか?
時系列予測にLSTMを使用しようとしています。データは1分に1回ストリーミングされますが、1時間先を予測したいと思います。これを行うには、2つの方法が考えられます。 代わりに、データを1時間ごとのデータに圧縮し、60分の各期間の平均を1つのデータポイントとして使用します。 各(X, y)トレーニングデータペアについて、Xからt - 120までの時系列としt - 60、からまでyの時系列とt - 60しtます。LSTMに60タイムステップ先の予測を強制しy[-1]、予測として使用します。 これに取り組むためのベストプラクティスはありますか?
9 time-series  lstm  rnn 

2
tf.nn.dynamic_rnn()の出力は何ですか?
私は公式文書から私が何を理解しているかについて確信がありません、それは言う: 戻り値:ペア(出力、状態)ここで: outputs:RNN出力テンソル。 time_major == False(デフォルト)の場合、これはTensorシェイプになります: [batch_size, max_time, cell.output_size]。 の場合time_major == True、これはTensorシェイプになります[max_time, batch_size, cell.output_size]。 場合注は、cell.output_size整数またはTensorShapeオブジェクトの(おそらくネスト)タプルは、次に、出力タプルが、cell.output_sizeと同じ構造を有するにおける形状データに対応する形状を有するテンソルを含むであろうcell.output_size。 state:最終状態。cell.state_sizeがintの場合、これはShapedになります[batch_size, cell.state_size]。TensorShapeの場合、これは整形され[batch_size] + cell.state_sizeます。それが(おそらくネストされた)intまたはTensorShapeのタプルである場合、これは対応する形状を持つタプルになります。セルがLSTMCellsの場合、状態は各セルのLSTMStateTupleを含むタプルになります。 であるoutput[-1]は常に(RNN、GRU、LSTMすなわち3つのすべての細胞型において)状態に(リターンタプルの2番目の要素)を等しく?どこにでもある文献は、隠された状態という用語の使用においては自由主義的すぎると思います。3つすべてのセルの非表示状態がスコアになりますか?

2
ニューラルネットワークモデルの識別可能性
ほとんどのニューラルネットワークトポロジ/アーキテクチャが識別できないことは非常に直感的です。しかし、フィールドでよく知られている結果は何ですか?識別可能性を許可/防止する単純な条件はありますか?例えば、 非線形活性化関数と複数の非表示層を持つすべてのネットワークは識別できません 3つ以上の非表示ユニットがあるネットワークはすべて識別できません またはこれらのようなもの。注:これらの条件が識別可能性を妨げると言っているのではありません(ただし、これらは私にはかなり良い候補のようです)これらは、「単純な条件」で私が意味するものの単なる例です。 質問を絞り込むのに役立つ場合は、フィードフォワードおよび繰り返しアーキテクチャのみを検討してください。それでも不十分な場合は、MLP、CNN、RNNのうち少なくとも1つのアーキテクチャをカバーする回答で満足します。私はWebをざっと見て回りましたが、私が見つけた唯一の議論はRedditに関するもののようです。さあ、人々、私たちはRedditよりもうまくやることができます;-)

1
異なる周波数の正弦波を学習するRNN
再帰型ニューラルネットワークのウォームアップとして、別の周波数の別の正弦波から正弦波を予測しようとしています。 私のモデルは単純なRNNであり、そのフォワードパスは次のように表すことができます。 rtzt= σ(WI N⋅バツt+WR E C⋅rt − 1))=WO U T⋅rtrt=σ(W私ん⋅バツt+Wrec⋅rt−1))zt=Woあなたt⋅rt \begin{aligned} r_t &= \sigma(W_{in} \cdot x_t + W_{rec} \cdot r_{t-1}))\\ z_t &= W_{out} \cdot r_t \end{aligned} どこ σσ\sigma sigmoïd関数です。 入力と期待される出力の両方が同じ周波数の2つの正弦波であるが(おそらく)位相シフトがある場合、モデルは適切な近似に適切に収束できます。 ただし、次の場合、モデルは極小値に収束し、常にゼロを予測します。 入力: x = s i n (t )バツ=s私ん(t)x = sin(t) 予想される出力: y= s i n (t2)y=s私ん(t2)y = sin(\frac{t}{2}) …

2
2DマトリックスをLSTMレイヤーにフィードするとどうなりますか
LSTMレイヤーへの入力として、形状(99,13)の2Dマトリックスをフィードしているとします。n個のファイルがあり、それぞれに(99,13)サイズのベクトルが含まれています。特徴の数として13を、タイムステップとして99を検討することにしました。 (Kerasを使用して実装するときに、LSTMレイヤーを最初のレイヤーとして追加しました。そして、レイヤーのoutput_dimを100に設定しました) しかし、上記のように入力すると、ネットワーク内で実際にどのように動作するかを理解できません。以下の質問がありますが、自分では答えられません。 LSTMセルへの入力としてどのような値を提供しますか?(xt、セルへの入力として使用されるht-1は常にベクトルです?私の場合、xtは[1,13]の形をしていますか?) モード lの最初のレイヤーとしてLSTMレイヤーがあるとすると、それは最初の入力ベクトルを指定されたレイヤーのすべてのセルに供給しますか?(例:最初のレイヤーのすべてのn LSTMセルに(99フレームから)サイズ13の最初のフレームをフィードしますか?)同様に、各タイムステップで入力行列のすべての行をフィードし続けますか? LSTMセルは各タイムステップでどのような値を出力しますか?(セルの状態をノードからの正しい出力と見なしますか?それは単一の値ですか、それともベクトルですか?それがベクトルの場合、次元は何ですか?次元を推測できる方法はありますか?htをベクター) 特定のレイヤーのoutput_dim(出力次元)とはどういう意味ですか?常に次のレイヤーのノード数である必要がありますか? これを保留にしたり、他のグループに誘導したりしないでください。これらの質問は機械学習とrnnに関連していると思います。私は研究論文を読みましたが、LSTMネットワーク内で実際にどのように機能するかについて明確なアイデアを得ることができませんでした。

2
LSTMがバニラリカレントニューロンネットワークよりも情報ラッチングのパフォーマンスが悪い理由
ベンジオらによる「勾配降下法による長期依存性の学習は難しい」という論文から実験をやり直すことで、LSTMがバニラ/単純リカレントニューラルネットワーク(SRNN)よりも長い期間情報を記憶できる理由をよく理解したいと思います。1994。 その論文の図1と2を参照してください。シーケンスが指定されている場合、タスクは単純です。高い値(1など)で始まる場合、出力ラベルは1です。低い値(たとえば-1)で始まる場合、出力ラベルは0です。中央はノイズです。このタスクは、モデルが正しいラベルを出力するためにミドルノイズを通過するときに開始値を覚えておく必要があるため、情報ラッチと呼ばれます。単一ニューロンRNNを使用して、このような動作を示すモデルを作成しました。図2(b)は結果を示しています。このようなモデルのトレーニングの成功頻度は、シーケンスの長さが増加するにつれて劇的に減少します。LSTMは、1994年にまだ発明されていないため、結果はありませんでした。 それで、私は好奇心が強くなり、LSTMが実際にそのようなタスクに対してより良いパフォーマンスを発揮するかどうかを見たいと思います。同様に、バニラセルとLSTMセルの両方に単一のニューロンRNNを構築して、情報ラッチをモデル化しました。驚いたことに、LSTMのパフォーマンスが低下していることがわかりました。理由はわかりません。誰かが私を説明するのを手伝ってもらえますか、または私のコードに何か問題がある場合はどうですか? これが私の結果です: これが私のコードです: import matplotlib.pyplot as plt import numpy as np from keras.models import Model from keras.layers import Input, LSTM, Dense, SimpleRNN N = 10000 num_repeats = 30 num_epochs = 5 # sequence length options lens = [2, 5, 8, 10, 15, 20, 25, 30] + np.arange(30, 210, …

2
機械学習を使用してテキストから特定の情報を抽出する方法は?
以下のようなテキストがあり、通常2/3の文と100〜200文字のテキストがあるとします。 ジョニーはウォルマートから50ドルの牛乳を買いました。今、彼はたったの20ドルしか残していない。 抽出したい 人名:ジョニー 使用済み:50ドル 残金:20ドル。 使用した場所:ウォルマート。 私はリカレントニューラルネットワークに関する多くの資料を調べてきました。RNNでcs231nビデオを見て、次のキャラクター予測を理解しました。これらのケースでは、確率を使用して次の文字を見つけるために出力クラスとして使用できる26文字のセットがあります。しかし、ここでは出力クラスがわからないため、問題はまったく異なるように見えます。出力は、テキスト内の単語や数字に依存します。ランダムな単語や数字を使用できます。 畳み込みニューラルネットワークでもテキストの特徴を抽出できることをQuoraで読みました。それもこの特定の問題を解決できるかどうか疑問に思いますか?

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