LSTMで隠れ層の数とメモリセルの数を選択する方法は?


28

LSTMベースのRNNの隠れ層の数とこれらのサイズを選択する方法に関する既存の研究を見つけようとしています。

この問題を調査している記事、つまり、1つのメモリセルをいくつ使用する必要があるかという記事はありますか?私はそれが完全にアプリケーションとどのコンテキストでモデルが使用されているかに依存すると仮定しますが、研究は何と言っていますか?

回答:


15

あなたの質問はかなり広いですが、ここにいくつかのヒントがあります:

フィードフォワードネットワークについては、次の質問を参照してください。

@dougの答えは私にとってはうまくいきました。教師付き学習の問題に役立つもう1つの経験則があります。オーバーフィッティングにならない隠れニューロンの数の上限は次のとおりです。

Nh=NsαN+No

N =入力ニューロンの数。 No =出力ニューロンの数。 Ns =トレーニングデータセットのサンプル数。 α =通常2〜10の任意のスケーリング係数。
他の人はalphaを5〜10の値に 設定することをお勧めしますが 2の値はオーバーフィッティングなしで機能することがよくあります。この優れたNN設計テキストで説明されているように、モデル内の自由パラメーターの数(その 程度または非ゼロの重みの数)をデータの自由度のごく一部に追加します。データの自由度は、サンプル数*各サンプルの自由度(次元)またはNsN+No (すべて独立していると仮定)です。したがって、αは、モデルをどの程度一般的にしたいのか、または過剰適合を防ぎたいのかを示す方法です。

自動化された手順では、アルファ2(トレーニングデータの自由度はモデルの2倍)から開始し、トレーニングデータの誤差が相互検証の誤差よりも大幅に小さい場合、最大10の方法で作業します。データセット。

また、特にLSTMについては、これを確認してください。

しかし、要点:使用する非表示ノードの量にルールはありません試行錯誤によって各ケースについて把握する必要があります


7

隠しレイヤーの数を選択し、LSTMのメモリセルの数は、このLSTMを適用するアプリケーションドメインとコンテキストに常に依存します。

非表示レイヤー用。隠れ層の導入により、ネットワークが非線形動作を示すことが可能になります。

隠れユニットの最適な数は、入力の数よりも簡単に少なくなる可能性があります。入力の数にNを掛けるような規則はありません。トレーニングの例がたくさんある場合、複数の隠れユニットを使用できますが、 2つの非表示ユニットは、ほとんどデータなしで最適に機能します。通常、人々は単純なタスクに1つの隠されたレイヤーを使用しますが、最近のディープニューラルネットワークアーキテクチャの研究では、多くの隠されたレイヤーが困難なオブジェクト、手書き文字、顔認識の問題に役立つことが示されています。

I assume it totally depends on the application and in which context the model is being used.


5
非線形性は、非線形活性化関数の使用によるものです。レイヤーの数は、NNの表現力を高めるだけです。この答えを修正する必要があります。線形関数の組み合わせは依然として線形関数です(したがって、入力の線形結合のみを実行する複数のレイヤーがある場合、これらのレイヤーの組み合わせは線形になります)。
nbro

4

一般に、LSTMのレイヤー数またはメモリセル数の決定方法に関するガイドラインはありません。

LSTMで必要なレイヤーとセルの数は、問題のいくつかの側面に依存する場合があります。

  1. データセットの複雑さ。特徴の量、データポイントの数など。

  2. データ生成プロセス。データ生成プロセスが重要な役割を果たす方法の例を次に示します。

例-よく理解された経済のGDPの予測と比較した石油価格の予測。後者は前者よりもはるかに簡単です。したがって、原油価格を予測するには、GDPと比較して同じ精度で予測するために、より多くのLSTMメモリセルが必要になる場合があります。

  1. ユースケースに必要な精度。メモリセルの数はこれに大きく依存します。目標が最先端の技術に打ち勝つことである場合、一般にLSTMセルをさらに必要とします。それを合理的な予測を立てるという目標と比較してください。LSTMセルの数は少なくて済みます。

LSTMを使用してモデリングするときは、次の手順に従います。

  1. 2つまたは3つのメモリセルを持つ単一の非表示レイヤーを試してください。ベンチマークに対するパフォーマンスをご覧ください。それが時系列の問題である場合、私は通常、ベンチマークとして古典的な時系列手法から予測を行います。

  2. メモリセルの数を増やしてみてください。パフォーマンスがそれほど向上していない場合は、次のステップに進みます。

  3. ネットワークを深くし始めます。つまり、少数のメモリセルで別のレイヤーを追加します。

余談:

損失関数のグローバルミニマムに到達し、最適なハイパーパラメーターを調整するために費やすことができる労働量に制限はありません。そのため、モデリングの最終目標に焦点を当てるのは、可能な限り精度を高めることではなく、戦略である必要があります。

ほとんどの問題は、ネットワークの2〜3層を使用して処理できます。


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