この場合、私は文字認識をしたい、手紙は紙からスキャンされます。そのプロセスiの結果には、5 x 5の2進行列があります。したがって、25入力ノードを使用します。しかし、私はどのように隠れ層ノードを決定し、そのケースのためのノードを出力するのか分かりません.iは、そのケースのために多層perecptronのアーキテクチャを構築したいと思います。ご協力いただきありがとうございます!どのように隠れ層ノードと出力ノードを決定するのですか?
答えて
すべての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は次のとおりです。
Others recommend alphaを5と10の間の値に設定しますが、2の値がオーバーフィットしないとうまくいくことがわかります。このexcellent NN Design textで説明されているように、モデルのフリーパラメータの数(degreeまたはゼロ以外の重みの数)をデータの自由度の小さな部分に制限します。データの自由度は、各サンプルの自由度(次元)の数値サンプル* Ns∗(Ni+No)
(すべてが独立していると仮定します)です。だから、アルファはあなたのモデルをどの程度一般的にしたいのか、あまりにも過小なものを避けたいのかを示す方法です。
自動化された手順では、訓練データの誤差が最小値の2倍(モデルの訓練データの2倍の自由度)クロスバリデーションデータセット。
参照
Advameg(2016)Comp.Ai.Neural-ネットFAQ、7のパート1:はじめ。利用可能:http://www.faqs.org/faqs/ai-faq/neural-nets/part1/preamble.html
フィードフォワードニューラルネットワークの隠れ層とノードの数を選択する方法は? (2016a)利用可能:https://stats.stackexchange.com/a/136542
フィードフォワードニューラルネットワークの隠れ層とノードの数を選択するにはどうすればよいですか? (2016b)入手可能:https://stats.stackexchange.com/a/1097
法律、H.R.-および情報、C.(2016)Javaのためのニューラルネットワークの紹介、第2版。利用可能:http://www.heatonresearch.com/book/programming-neural-networks-java-2.html
- 1. Tensorflow/Tflearnで隠れ層ノードの値を取得するにはどうすればよいですか?
- 2. Anylogicの各ノードを別のノードとして設定するにはどうすればよいですか?
- 3. 選択した子ノードが特定の子ノードであるかどうかを検出するにはどうすればよいですか?
- 4. 子ノードが1つしかない場合、親ノードが階層でチェックされないようにするにはどうすればよいですか?
- 5. ニューラルネットワーク層の出力はどのように有用ですか?
- 6. ケラスの隠れ層の入力、加重、偏りを考慮して隠れ層の出力を得るには?
- 7. ノードjのSQLストアドプロシージャの出力を解析するにはどうすればよいですか?
- 8. Cassandraのパーティションのノードを決定する
- 9. 階層内の現在のノードの深さを出力
- 10. 親ノードに子ノード、子ノードなどをJavaで設定/設定するにはどうすればよいですか?
- 11. どのようにC#asp.net XMLノードとxmlノードの間で別々に読み込まれるのですか?
- 12. 入出力変換ノードと更新ノードを削除する
- 13. あるノードから別のノードにchildNodeをコピーするにはどうすればよいですか?
- 14. ノード内のmqttノードのホストを赤で指定するにはどうすればいいですか?
- 15. ノード間の部分出力はどのようにすることができますか?
- 16. scikit-learnのMLPで出力ノードの数を設定する
- 17. ノードが別のノードから外に出ないようにする方法
- 18. kubernetesノードの観点からサービス名をIPに解決するにはどうすればよいですか?
- 19. ノード内の参照を別のノードに記述するにはどうすればよいですか?
- 20. XMLドキュメントのノードを別のノードにコピーするにはどうすればよいですか?
- 21. 入力層では、input_dimと入力層のノード数の違いは何ですか?
- 22. Lasagne/nolearn autoencoder - 隠れ層の出力を取得する方法?
- 23. IEのノード型定数にどのようにアクセスするのですか
- 24. リンクリストのノードを削除せずにノードを削除するにはどうすればよいですか?
- 25. graph_defはノードの入出力の形状情報をどのように保存するのですか?
- 26. Node-RedのIPアドレスをUDP出力ノードに設定する
- 27. スキーム - コンソール出力はどのように決定されますか? (DrRacket)
- 28. ノード5.6.0環境でノード6のnpmパッケージを実行するにはどうすればよいですか?
- 29. ノードjsプロジェクトを別のノードjsプロジェクトにインポートするにはどうすればよいですか?
- 30. CakePHPのACLチュートリアルで「無効なノード」エラーを解決するにはどうすればよいですか?