尋ねるべき多くの質問があります:
- 各層に適切な数のニューロンがありますか
- 適切なタイプの伝達関数を使用していますか?
- 適切なタイプの学習アルゴリズムを使用していますか
- 十分なサンプルサイズがありますか
- 参考になるように、サンプルが互いに適切な関係にあることを確認できますか?(冗長ではない、関連する次元などの...)
エフェメリスの方法で何を与えることができますか?データの性質について教えてください。
ニューラルネットワークの勾配ブーストツリーを作成できます。
あなたが早く止まったらどうなるかと尋ねました。
あなたは自分で試すことができます。ランダムに初期化された重みで開始し、指定された反復回数で停止する300xを実行します。100としましょう。その時点で、アンサンブルエラー、トレーニングサブセットエラー、およびテストセットエラーを計算します。繰り返す。エラーが何であるかを示す300個の値を取得したら、100回の学習の反復が与えられた場合のエラー分布のアイデアを得ることができます。必要に応じて、他のいくつかの学習値でその分布をサンプリングできます。200、500、および1000回の反復をお勧めします。これにより、SNRが時間とともにどのように変化するかがわかります。SNR対反復回数のプロットは、「崖」または「十分に良い」についてのアイデアを提供します。時々エラーが崩壊する断崖があります。その時点でエラーは許容できる場合があります。
システムが100回未満の反復で一貫して収束するには、「比較的単純な」データまたは「かなり良い」運が必要です。どちらも再現性に関するものではなく、一般化もできません。
重みが収束していて、エラーが特定のしきい値を下回っていないのではないかと考えているのはなぜですか。投票のパラドックスについて聞いたことがありますか?(リンク)システムに周期的な相互作用がある場合(ニューラルネットワークでのフィードバックなど)、投票のパラドックス(結合された変更)を持つことができます。重みだけでネットワークの収束の十分な指標になるかどうかはわかりません。
ウェイトはスペースと考えることができます。3次元以上ですが、それでも空間です。その空間の「重心」には、「最適な」領域があります。重心から離れていると、フィット感が低下します。ウェイトの現在の設定は、その空間の1つのポイントと考えることができます。
今、あなたは「良い」が実際にどこにあるのか分かりません。あなたが持っているのは地元の「斜面」です。あなたのポイントが今ある場所で与えられた局所的な「より良い」に向かって勾配降下を行うことができます。それはあなたに「普遍的」をよりよく伝えませんが、ローカルは何もないよりはましです。
それで、あなたは反復を開始し、より良い谷に向かって下り坂を歩きます。完了したと思うまで繰り返します。多分あなたの重みの値は大きいです。多分彼らはあちこちで跳ねています。コンピューティングが「時間がかかりすぎている」かもしれません。あなたはやりたいです。
では、自分の居場所が「十分」であるかどうかをどのようにして知るのでしょうか。
以下は、実行できる簡単なテストです。
データの30個の均一なランダムサブセット(それぞれ数パーセントのデータなど)を取得し、それらのネットワークを再トレーニングします。それははるかに速いはずです。それらが収束するのにかかる時間を観察し、それを大きなセットの収束履歴と比較します。これらのサブセットのデータ全体についてネットワークのエラーをテストし、そのエラーの分布が大きなエラーとどのように比較されるかを確認します。次に、サブセットサイズをデータの最大5%まで増やして繰り返します。これがあなたに教えることを見てください。
これは、ミツバチが偵察に基づいて決定を行う方法をモデル化した、粒子群最適化のバリエーションです(参照を参照)。
重みが収束しないとどうなるかを尋ねました。
ニューラルネットワークは1つのツールです。それらは唯一のツールではありません。他にもあります。それらの1つを使用することを検討します。
私は情報基準の観点から作業しているので、重み(パラメーター数)とエラーの両方を調べます。あなたはそれらの1つを試すかもしれません。
便利な前処理にはいくつかの種類があります。センターとスケール。主成分を使用して回転します。主成分の固有値を調べる場合は、スクリープロットルールを使用してデータの次元を推定できます。次元を小さくすると、収束が向上します。「基礎となる物理学」について何か知っている場合は、データを平滑化またはフィルタリングしてノイズを除去できます。収束は、システムのノイズに関する場合があります。
圧縮センシングのアイデアは興味深いと思います。一般化を失うことなく、一部のシステムの根本的なサブサンプリングを可能にします。ブートストラップの再サンプリングされた統計とデータの分布を調べて、トレーニングセットがサブサンプリングのどのレベルでサブサンプリングされるかを判断します。これにより、データの「健全性」をある程度測定できます。
時には彼らが収束しないのは良いことです
投票のパラドックスについて聞いたことがありますか?あなたはそれを双方向の行き詰まりのより高い数のいとこと考えるかもしれません。ループです。2人投票のパラドックスでは、最初の人は候補者「A」を望み、2番目の人は候補者「B」を望んでいます(またはAではないなど)。重要な部分は、それをループと考えることができるということです。
ループはニューラルネットワークで重要です。フィードバック。再帰。これにより、パーセプトロンはXORのような問題を解決できるようになりました。これはループを作成します。ループは投票のパラドックスのように機能する場合があり、無限の反復があった場合、ループは重みを変更し続けます。重要なのは個々の重みではなく、ループ内の重みの相互作用であるため、これらは収束することを意図していません。
注意:
500回の反復のみを使用すると問題になることがあります。私はNNを持っていて、10,000回の反復でやっと十分でした。「十分」になる反復回数は、すでに示したように、データ、NNトポロジー、ノード伝達関数、学習/トレーニング関数、さらにはコンピューターハードウェアにも依存します。「十分」または「多すぎる」反復があると言う前に、それらすべてが反復数とどのように相互作用するかを十分に理解する必要があります。時間、予算、トレーニングが終了したときにNNで何をしたいかなど、他の考慮事項も考慮する必要があります。
Chen、RB、Chang、SP、Wang、W.、&Wong、WK、(2011、September)。Particle Swarm Optimization Methods(preprint)による最適な実験計画、2012年3月25日、http://www.math.ntu.edu.tw/~mathlib/preprint/2011-03.pdfから取得