2017-10-20 17 views
0

私は5つの隠れ層とそれぞれ256個のニューロンを持つ多層パーセプトロンを持っています。トレーニングを開始すると、エポック50までエキスパートごとに異なる予測確率が得られますが、エポック300で重複予測の数が増加します。入力データが異なるため重複予測の30%すべてのトレーニングサンプル。何が原因で何が起こるのでしょうか?Tensorflow:トレーニング中の重複予測数の増加

明確化:「重複予言」と

、私はクラスAに属するとまったく同じ予測確率でアイテムを意味する(それがバイナリ分類問題だ)

私は200と4000個の訓練サンプルを持っていますそれぞれのサンプルとすべてのサンプルが異なる場合、トレーニング中に重複した予測の数が30%に増加することは意味がありません。だから私は何がこの現象を引き起こす可能性があるのだろうか。

+1

多くのことができます。たとえばあなたのNNは定数を覚えることができます。コードと好ましくはデータも表示してください。 – Maxim

+1

重複予測の意味は? –

+0

Tom、質問を編集して回答を追加するのではなく、修正する必要があります。このような回答を追加することで、あなたの質問は回答となり、誰もがそれを見る可能性が低くなります。私はあなたの質問にそれらの答えのテキストを移動しました、私はあなたの質問が適切な注意を得るように答えていないとしてそれらにフラグを立てました。 –

答えて

0

1つの点では、バイナリ予測を実行していると言います。また、「重複予測」と言うときは、解明しても意味を理解することは難しいです。あなたのバイナリクラシファイアには、クラスAとクラスBの2つの出力があり、与えられたサンプルに対しておおよそ同じ値を得ていると推測しています。その場合、最初に行うべきことは1つの出力を使用することです。バイナリ分類の問題は、0と1の間の1つの出力(出力ニューロンのシグモイド)でよりよくモデリングされます。この方法ではあいまいさがなくなり、ネットワークはどちらか一方を選択する必要があります。混乱すると、〜0.5が得られ、それは明らかになります。

第2に、ネットワークがうまく学習を開始してから、過剰学習後にパフォーマンスが低下することは非常に一般的です。特にあなたが持っているもののような小さなデータセットでは。実際、あなたのデータセットにはほとんど知識がなくても、XGA Boostのようなアルゴリズムをニューラルネットワークよりも優れたパフォーマンスを得るための小さな賭けを置くことになります(私はあなたが文字通りパーセプトロンではなく神経網を使用していると仮定します)。

しかし、パフォーマンスは時間の経過とともに低下しています。これが起こると、あなたは「早期停止」と呼ばれるものに目を向けます。ある時点でネットワークは入力を記憶し始め、何が起きているのか分かります。持ち歩いたテストデータのパフォーマンスが悪化し始めるまで、基本的にトレーニングを行います。

これに対処するには、様々な形式の正則化(L2正則化、脱落、バッチ正規化がすべてのことが考えられます)を適用することができます。また、ネットワークのサイズを小さくすることもできます。 256個のニューロンの5つのレイヤーが問題のために大きすぎると聞こえます。これをトリミングしてみて、あなたの結果が改善されると確信しています。ニューラルネットワークのアーキテクチャー規模のスイートスポットがあります。あなたのネットワークが大きすぎると、それはしばしば適合します。それが小さすぎると、データの表現力が十分ではありません。 Angrew Ngのcourseraクラスには、これに対処するための有用な実用的なアドバイスがあります。

関連する問題