質問

一般的に言えば、1つまたは複数の隠れ層にさらにノードを追加することにより、人工ニューラルネットを拡張することで得られることは何ですか?

マッピングの精度を高めることができますか、それとも、識別できる関係の微妙さを可能にしますか?

役に立ちましたか?

解決

機械学習では、単一の隠れ層で、滑らかで境界のある関数を近似するのに十分であるという非常によく知られた結果があります(論文は"マルチレイヤーフィードフォワードネットワークは普遍的な近似法です。現在は20年近く経過しています。ただし、注意すべき点がいくつかあります。

ディープニューラルネットワークの問題は、トレーニングがさらに難しいことです。非常に小さな勾配が初期の隠れ層に逆伝播し、特に重みが小さいように初期化された場合、学習は実際にはどこにも行かないことになります(より大きな値に初期化すると、頻繁に悪いローカルミニマムで立ち往生します) 。 「事前トレーニング」にはいくつかのテクニックがあります。これを回避しようとするGeoff Hintonによる Googleテクニカルトークで説明されているようなものです。

他のヒント

これは非常に興味深い質問ですが、答えるのはそれほど簡単ではありません。解決しようとする問題と、使用しようとするニューラルネットワークによって異なります。ニューラルネットワークにはいくつかの種類があります。

一般に、ノードが多いほど精度が高くなることはそれほど明確ではありません。調査によると、ほとんどの場合、必要な隠しレイヤーは1つだけです。ノードの数は、問題を解決するために必要なノードの最小数でなければなりません。あなたがそれらの十分を持っていない場合-あなたは解決策に到達しません。

一方、解決策を解決するのに適したノードの数に達した場合は、さらにノードを追加することができ、結果の推定にそれ以上の進捗は見られません。

だからこそ、非常に多くの種類のニューラルネットワークが存在します。彼らはさまざまな種類の問題を解決しようとします。したがって、静的な問題、時間関連の問題などを解決するNNがあります。ノードの数は、ノードの設計ほど重要ではありません。

非表示レイヤーがある場合、入力の結合されたフィーチャを作成していることになります。それで、問題は既存の入力のより多くの機能によって、または既存の機能を組み合わせることから来る高次の機能によってより良く取り組まれますか?これは、標準のフィードフォワードネットワークのトレードオフです。

2つの隠れ層と非線形活性化を備えたニューラルネットワークで任意の関数を表現できるという理論的な安心感があります。

また、適切なトポロジが不明な場合は、ノードを追加する代わりに、追加のリソースを使用してブーストすることを検討してください。

非常に大まかな経験則

より大きな入力ベクトルの場合、通常、レイヤーごとにより多くの要素。

より多くのレイヤーを使用すると、より多くの非線形システムをモデル化できます。

使用しているネットワークの種類に伝播の遅延がある場合、より多くのレイヤーが時系列のモデリングを許可する可能性があります。遅延に時間ジッターがあることに注意してください。そうしないと、うまく機能しません。これがあなたにとってただのぐらつきであるなら、それを無視してください。

追加のレイヤーを使用すると、繰り返しフィーチャを挿入できます。これは、差別タスクに非常に役立ちます。あなたはこれを許可しないANN実装です。

HTH

隠れ層あたりのユニット数は、ANNが任意の複雑な機能を記述する可能性を説明します。一部の(複雑な)関数では、多くの非表示ノード、または場合によっては複数の非表示レイヤーが必要になる場合があります。

特定の数の隠されたユニットで関数を大まかに近似できる場合、余分なノードはより正確になります...しかし、これは使用されるトレーニングサンプルがこの追加を正当化するのに十分である場合にのみ当てはまります-そうでなければ何が起こるでしょう「過剰収束」。過剰収束とは、特定のサンプルで過度に強調されているため、ANNが一般化機能を失ったことを意味します。

一般に、結果のネットワークが良好な結果を提供できる場合は、可能な限り非表示のユニットを使用するのが最善です。より多くの隠れノードを正当化するために必要な追加のトレーニングパターンは、ほとんどの場合簡単に見つけることができず、精度はNNの長所ではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top