web-dev-qa-db-ja.com

ニューラルネットワークで隠れ層とノードの数を選択する方法は?

多層パーセプトロンニューラルネットワークの隠れ層の数は、ニューラルネットワークの動作にどのように影響しますか?隠れ層のノードの数について同じ質問ですか?

手書きの文字認識にニューラルネットワークを使用するとします。この場合、ピクセルの色強度値を入力ノードとして、文字クラスを出力ノードとして配置します。

このような問題を解決するために、隠れ層とノードの数をどのように選択しますか?

31
gintas

注:この回答は作成時点では正しいものでしたが、その後古くなっています。


ニューラルネットワークに3つ以上の隠れ層があることはまれです。通常、レイヤーの数は、ネットワークのパラメーターにはなりません。

多くの層を持つ多層ニューラルネットワークは深い回路を表すことができますが、深いネットワークのトレーニングは常にやや困難と見なされてきました。ごく最近まで、経験的な研究により、ディープネットワークは一般に、1つまたは2つの隠れ層を持つニューラルネットワークよりも良くも悪くも悪くなることがよくありました。

Bengio、Y.&LeCun、Y.、2007. AIに向けた学習アルゴリズムのスケーリング。大規模カーネルマシン、(1)、pp.1-41。

引用された論文は、ネットワークの深さの影響、深層ネットワークの教育における最近の進歩、および一般的な深層学習について学ぶための良い参考資料です。

18
Don Reba

一般的な答えは、ハイパーパラメーターを選択するための相互検証です。いくつかのデータを保持し、異なる構成でネットワークをトレーニングし、保持されたセットで最高のパフォーマンスを発揮するものを使用します。

8
Rob Neuhaus

私が見た問題のほとんどは、1-2の隠れ層で解決されました。隠れ層が1つだけのMLPは汎用関数近似器であることが証明されています( Hornik et。al。 )。隠されたレイヤーが増えると、問題が簡単または難しくなります。通常、異なるトポロジを試す必要があります。 backpropを使用してMLPをトレーニングする場合、最初のレイヤーで勾配が小さくなりすぎるため、任意の数の非表示レイヤーを追加できないと聞きました(そのための参照はありません)。しかし、人々が 9層 まで使用するアプリケーションがいくつかあります。多分あなたは 標準ベンチマーク問題 に興味があります。これは異なる分類器とMLPトポロジーによって解決されます。

5
alfa

異なるモデル構成での交差検証(非表示層の数OR層あたりのニューロン))に加えて、より適切な構成を選択するという事実に加えて。

1つのアプローチは、モデルを可能な限り深く深くトレーニングし、ドロップアウト正則化を使用していくつかのニューロンをオフにすることですと縮小オーバーフィット

このアプローチへの参照は、このペーパーで見ることができます。 https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf

3
iratzhash

上記のすべての答えはもちろん正しいですが、さらにいくつかのアイデアを追加するために:いくつかの一般的なルールは、このペーパーに基づいて次のとおりです:


一般的に:

  • 隠れ層ニューロンの数は、入力層のサイズの2/3(または70%から90%)です。これが不十分な場合は、出力層ニューロンの数を後で追加できます。
  • 隠れ層ニューロンの数は、入力層のニューロン数の2倍未満でなければなりません。
  • 隠れ層ニューロンのサイズは、入力層サイズと出力層サイズの間にあります。

さまざまな組み合わせを探索して試す必要があることを常に念頭に置いてください。また、GridSearchを使用すると、「最適なモデルとパラメーター」を見つけることができます。

E.g。隠れ層の「最適な」サイズを決定するために、GridSearchを実行できます。

2
serafeim