2016-09-18 9 views
0

この場合、私は文字認識をしたい、手紙は紙からスキャンされます。そのプロセスiの結果には、5 x 5の2進行列があります。したがって、25入力ノードを使用します。しかし、私はどのように隠れ層ノードを決定し、そのケースのためのノードを出力するのか分かりません.iは、そのケースのために多層perecptronのアーキテクチャを構築したいと思います。ご協力いただきありがとうございます!どのように隠れ層ノードと出力ノードを決定するのですか?

答えて

1

すべてのNNは、層の3種類があります。入力、隠さ、および出力を。


したがって、NNアーキテクチャを作成すると、各タイプのレイヤ数と各レイヤのノード数の値が得られます。

入力レイヤ

シンプル - 私の知る例外なく - すべてのNNはまさにそのうちの一つがあります。

この層を構成するニューロンの数に関して、このパラメータは、訓練データの形状を知ると完全に一意的に決定されます。具体的には、そのレイヤーを構成するニューロンの数は、データ内のフィーチャー(列)の数に等しいです。一部のNN構成では、バイアス項に1つの追加ノードが追加されます。


出力レイヤ

入力層と同様に、すべてのNNは正確に一つの出力層を有しています。そのサイズ(ニューロン数)の決定は簡単です。選択されたモデル構成によって完全に決定されます。

は、あなたのNNがマシンモードまたは回帰モード(また、統計に使用されている用語を使用しますが、それは非常に混乱していると別の意味を割り当てるのML大会)で実行して起こっています。マシンモード:クラスラベル(「プレミアムアカウント」/「基本アカウント」など)を返します。回帰モードは値(例えば、価格)を返す。

NNが回帰分析器である場合、出力レイヤーは単一のノードを持ちます。

NNが分類器の場合ソフトマックスは、出力層は、モデルにクラスラベルごとに一つのノードを有している場合に を使用されていない限り、それはまた、単一のノードを持っています。

隠れ層

ので、これらいくつかのルールは、入力と出力の両方の層について層およびサイズの数(ニューロン/層)を設定。それは隠れた層を残す。

いくつの隠れたレイヤーですか?データが線形分離可能である場合(NNのコーディングを開始するまでによく分かる)、隠れたレイヤーはまったく必要ありません。もちろん、あなたのデータを解決するためにNNは必要ありませんが、それでも仕事はできます。

これ以外にも、NNの隠れ層設定の問題についての解説があります(この解説のexcellent summaryについては、非常に徹底的で洞察に満ちたNN FAQを参照してください)。この主題の中でコンセンサスがある1つの問題は、追加の隠れ層の追加とのパフォーマンスの違いです。第2(または第3など)の隠れ層でパフォーマンスが向上する状況は非常に小さいです。 大部分の問題には隠れたレイヤーで十分です。

隠れた層のサイズはどれくらいですか?いくつのニューロンがありますか?経験則から得られた経験則がありますが、最も一般的に頼りになるのは 'です。隠れ層の最適サイズは通常、出力レイヤの入力サイズとサイズの間にあります'。ジェフ・ヒートン(Introduction to Neural Networks in Java)の著者は、さらにいくつかを提供しています。

要約すると、ほとんどの問題では、(2番目の最適化ステップを実行しなくても)2つのルールを使用して隠れたレイヤー構成を設定することによって、まともなパフォーマンスを得ることができます。 (ii)その層内のニューロンの数は、入力および出力層におけるニューロンの平均である。


ネットワーク構成の最適化

プルーニングは計算性能と時々解像性能を向上させる(ノードではない層によって)ネットワークのサイズをトリミングする技術のセットを記述する。これらの技法の要点は、ネットワークから取り除かれた場合、ネットワーク性能(すなわち、データの分解能)に顕著な影響を与えないノードを識別することによって、訓練中にノードをネットワークから除去することである。 (正式なプルーニング技術を使わなくても、トレーニング後にあなたのウェイトマトリックスを見ることでどのノードが重要でないかを大まかに知ることができます;ウェイトをゼロに非常に近づけてください - ウェイトの両端のノード明らかに、トレーニング中にプルーニングアルゴリズムを使用する場合は、過剰(つまり、「プルナブル」)ノードを持つ可能性の高いネットワーク構成から始めます。つまり、ネットワークアーキテクチャを決定するときにエラーが発生しますより多くのニューロンの側で、プルーニングのステップを追加した場合。

言い換えれば、トレーニング中にネットワークにプルーニングアルゴリズムを適用することで、最適なネットワーク構成に近づけることができます。 (遺伝的アルゴリズムに基づくアルゴリズムのような)単一の「最前線」でこれを行うことができるかどうかはわかりませんが、今はこの2段階最適化がより一般的です。

教師あり学習ネットワークのための親指の1つの追加ルール、オーバーフィッティングにはなりません隠されたニューロンの数には、UpperBoundは次のとおりです。

enter image description here

Others recommend alphaを5と10の間の値に設定しますが、2の値がオーバーフィットしないとうまくいくことがわかります。このexcellent NN Design textで説明されているように、モデルのフリーパラメータの数(degreeまたはゼロ以外の重みの数)をデータの自由度の小さな部分に制限します。データの自由度は、各サンプルの自由度(次元)の数値サンプル* Ns∗(Ni+No)(すべてが独立していると仮定します)です。だから、アルファはあなたのモデルをどの程度一般的にしたいのか、あまりにも過小なものを避けたいのかを示す方法です。

自動化された手順では、訓練データの誤差が最小値の2倍(モデルの訓練データの2倍の自由度)クロスバリデーションデータセット。

参照

  1. Advameg(2016)Comp.Ai.Neural-ネットFAQ、7のパート1:はじめ。利用可能:http://www.faqs.org/faqs/ai-faq/neural-nets/part1/preamble.html

  2. フィードフォワードニューラルネットワークの隠れ層とノードの数を選択する方法は? (2016a)利用可能:https://stats.stackexchange.com/a/136542

  3. フィードフォワードニューラルネットワークの隠れ層とノードの数を選択するにはどうすればよいですか? (2016b)入手可能:https://stats.stackexchange.com/a/1097

  4. 法律、H.R.-および情報、C.(2016)Javaのためのニューラルネットワークの紹介、第2版。利用可能:http://www.heatonresearch.com/book/programming-neural-networks-java-2.html

関連する問題