多層パーセプトロン(MLP)アーキテクチャ:隠れ層の数と隠れ層のサイズを選択するための基準?


104

10個の固有ベクトルがある場合は、入力層に10個のニューラルノードがあります.5個の出力クラスがある場合は、出力層に5個のノードがあります。ただし、MLPの非表示層の数とニューラル数1つの非表示レイヤー内のノード?



回答:


216

何層の隠れ層

非表示レイヤーがゼロのモデルは、線形分離可能なデータを解決します。したがって、データが線形的に分離可能でないことがすでにわかっている場合を除いて、これを検証しても問題はありません。なぜ、タスクが必要とするよりも複雑なモデルを使用するのでしょうか。直線的に分離できる場合は、より簡単な手法が機能しますが、パーセプトロンも機能します。

データに非線形手法による分離が必要であると仮定すると、常に1つの非表示レイヤーから始めます。ほぼ間違いなく、それで十分です。MLPを使用してデータを分離できる場合、そのMLPはおそらく単一の非表示層のみを必要とします。これには理論的な正当化がありますが、私の理由は純粋に経験的なものです。多くの難しい分類/回帰問題は、単一の非表示レイヤーMLPを使用して解決されますが、データを正常にモデル化するために使用される複数の非表示レイヤーMLPに遭遇したことを思い出しません- -ML掲示板、ML教科書、学術論文などにあるかどうか。確かに存在しますが、それらの使用を正当化する状況は、経験的に非常にまれです。


非表示レイヤーにいくつのノードがありますか?

MLP学術文献から。私自身の経験など、いくつかの経験則(RoT)を収集してそれに依存することが多く、信頼できるガイドであることがわかりました(つまり、ガイダンスは正確で、そうでなかった場合でも、通常、次に何をすべきかが明確でした):

収束の改善に基づくRoT

モデルの作成を開始するときは、非表示レイヤーのノードを増やしてください

どうして?まず、非表示層にあるいくつかの追加ノードが害を及ぼす可能性はほとんどありません。MLPは収束します。一方、非表示層のノードが少なすぎると、収束が妨げられる可能性があります。このように考えると、追加のノードは余分な容量を提供します-反復(トレーニング、またはモデルの構築)中にネットワークに信号を格納/解放するための追加の重み。第2に、非表示レイヤーの追加のノードから始める場合、後で(イテレーションの進行中に)それらをプルーニングするのは簡単です。これは一般的であり、役立つ診断テクニックがあります(たとえば、重量行列の視覚的な描写であるヒントン図、重量値の「ヒートマップ」)。

入力レイヤーのサイズと出力レイヤーのサイズに基づくRoT

経験則では、この[非表示]レイヤーのサイズは、入力レイヤーのサイズと出力レイヤーのサイズの間のどこかにします。

非表示ノードの数を計算するには、次の一般的なルールを使用します:(入力数+出力数)x 2/3

主成分に基づくRoT

通常、非表示ノードは、入力データセットの分散の70〜90%をキャプチャするために必要なディメンション(主成分)と同じ数だけ指定します

さらに、NN FAQの作成者は、これらのルールを「ナンセンス」(文字通り)と呼んでいます。トレーニングインスタンスの数、ターゲットのノイズ(応答変数の値)、および特徴空間の複雑さを無視するためです。

彼の見解では(そして、私にはいつも彼が話していることを知っているように見えました)、MLPに何らかの形の正則化が含まれているか、早期停止に基づいて、非表示層のニューロンの数を選択します

非表示レイヤーのニューロン数を最適化する唯一の有効な手法:

モデルの構築中は、強引にテストしてください。テストにより、「不正な」ネットワークアーキテクチャのシグネチャが明らかになります。たとえば、少数のノードで構成される非表示レイヤーを持つMLPで開始した場合(テスト結果に基づいて、必要に応じて徐々に増やします)、バイアスとアンダーフィッティングにより、トレーニングと汎化エラーの両方が高くなります。

次に、一般化エラーが増加し始めるまで、一度に1つずつ、隠れ層のノードの数を増やします。今回は、過剰適合と高分散のためです。


実際には、次のようにします。

入力層:データバクターのサイズ(モデルのフィーチャの数)+バイアスノードの1、もちろん応答変数は含まれません

出力層:私のモデルで決定されたsoley:回帰(1つのノード)と分類(クラスの数と同等のノード数、softmaxを想定)

非表示レイヤー開始するには1つの非表示レイヤー入力レイヤーのサイズに等しいノード数で。「理想的な」サイズは、大きくなるよりも小さい(つまり、入力層の数と出力層の数の間にあるノードの数)である可能性が高くなります。繰り返しますが、これは単なる実験的な観察であり、この観察の私自身の経験です。プロジェクトが必要な追加の時間を正当化した場合、少数のノードで構成される単一の非表示レイヤーから始め、次に(上記で説明したように)非表示レイヤーにノードを1つずつ追加しながら、汎化を計算します。エラー、トレーニングエラー、バイアス、および分散。汎化エラーが減少し、それが再び増加し始める直前に、その時点のノード数を選択します。下の図を参照してください。

ここに画像の説明を入力してください


1
#1 RoTに関するいくつかの関連結果を追加したいと思います。成功したSVMでは、実際に入力をより高次元の空間にマッピングします(NN用語では、入力層のノードよりも非表示のノードが多くなります)。出力層の仕事は、この過剰な表現から決定を下すことです。ランダムプロジェクションへの接続もあるかもしれません。Adam CoatesとAndrew Y. Ng(2011)の優れた論文は、関連トピックについて説明しています。
Vladislavs Dovgalecs、2015

いい説明。sklearnとMLPClassifierを使用するときに上記の図をどのようにプロットできるかについてのアイデアはありますか?
seralouk 2017年

1
@seraあなたはxkcdスタイルを意味しますか?
denfromufa 2017

原則として、隠れ層のニューロン数を最適化するプロセスを自動化できますか?また、隠しレイヤーの数も自動的に最適化できますか?
アディソン

2

非表示層のニューロンの数を選択すること、およびニューラルネットワークの非表示層の数を選択することは非常に困難です。

通常、ほとんどのアプリケーションでは、1つの非表示レイヤーで十分です。また、その非表示層のニューロンの数は、入力数(例では10)と出力数(例では5)の間にある必要があります。

しかし、ニューロンと隠れ層の数を選択する最良の方法は実験です。異なる数の隠れ層と隠れニューロンを使用していくつかのニューラルネットワークをトレーニングし、交差検定を使用してそれらのネットワークのパフォーマンスを測定します。最高のパフォーマンスを発揮するネットワークを生み出す数にこだわることができます。


1

最適なレイヤー数と各レイヤーの最適な数のニューロンの選択を自動化するには、遺伝的最適化を使用できます。

重要な要素は次のとおりです。

  1. Chromosome:各非表示レイヤーのユニット数を定義するベクトル(たとえば、[20,5,1,0,0]は、最初の非表示レイヤーに20ユニット、2番目に5ユニット、...レイヤー4と5が欠落していることを意味します)。試行するレイヤーの最大数、および各レイヤーのユニットの最大数に制限を設定できます。また、染色体の生成方法にも制限を設ける必要があります。たとえば、[10、0、3、...]は生成しないでください。欠落しているレイヤー( '3、...')の後のユニットは無関係であり、評価サイクルを浪費するためです。
  2. フィットネス関数:特定の染色体によって定義されたネットワークの交差検証セット内の最小のトレーニングエラーの逆数を返す関数。「最小/最速だが最も正確なネットワーク」を見つけたい場合は、合計ユニット数や計算時間を含めることもできます。

次のことも検討できます。

  • プルーニング:相互検証セットのパフォーマンスを追跡しながら、大規模なネットワークから始めて、レイヤーと非表示のユニットを減らします。
  • 成長:非常に小さなネットワークから始めて、ユニットとレイヤーを追加し、CVセットのパフォーマンスを追跡します。

0

最近、このhttps://arxiv.org/abs/1809.09953に関する理論的な作業があります。RELU MLPを使用すると仮定すると、すべての非表示レイヤーに同じ数のノードがあり、ニューラルネットワークで近似している損失関数と真の関数がいくつかの技術的な特性(論文内)に従っている場合、深さを選択できます$ \ log(n)$を注文し、隠しレイヤーの幅を$ n ^ {d /(2(\ beta + d))} \ log ^ 2(n)$にする。ここで、$ n $はサンプルサイズ、$ d $は入力ベクトルの次元、$ \ beta $は実際の関数の滑らかさパラメーターです。$ \ beta $は不明なので、おそらくハイパーパラメーターとして扱いたいでしょう。

これを行うと、サンプルサイズの関数として$ 1 $に収束する確率で、近似誤差がサンプルサイズの関数として$ 0 $に収束することを保証できます。彼らは率を与える。これが「最良の」アーキテクチャであることが保証されているわけではないことに注意してください。ただし、これは少なくとも最初から良い場所を提供することができます。さらに、私自身の経験では、ドロップアウトなどが実際に役立つことを示唆しています。

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