2012-04-19 14 views
0

私は合理的に長い特徴ベクトル(30-200k)を持つ単層パーセプトロンを構築していますが、すべて標準化されています。単層パーセプトロン

たとえば、クラスを予測するのにやや役立ちますが、優れた予測子である100個以上の機能を追加するのに役立つ30kの機能があるとします。予測の正確さは無視できるほどにしか上がらない。しかし、私が手作業で100種類の優れた機能(例えば5倍)で重量を増やせば、精度は数%上昇します。

トレーニングプロセスの本質は、より優れた機能を自然に高めなければならないという印象でした。しかし、最高の機能が悪いもので「溺れている」ように見える。

繰り返し回数を増やしてみましたが、それは役に立ちませんでした。

合理的に簡単な方法で機能を向上させるアルゴリズムをどのように調整できますか?また、合理的に速い方法;機能が少なければ、アルゴリズムを一度に1つだけ残して実行するのは簡単ですが、実際には30kでは実現できません。

+0

私は専門家ではありませんが、それは価値があります:(i)正確なトレーニングアルゴリズム、(ii)トレーニング例の数、(iii)例、(iv)所望のクラスの線形分離性のような問題。 – jogojapan

+0

トレーニングアルゴリズムについて教えてください。 –

+1

weight [class] * feature_vectorを最大にするクラスを見つけます。正しいクラスであれば何もしないでください。正しくない場合は、すべてのウェイト[reaL_class] [i]にfeature [i]を追加し、すべてのウェイト[prediction_class] [i]からフィーチャ[i]を減算します。 x回繰り返します。完了時の平均重量x。 – Fergusmac

答えて

0

パーセプトロンベースのネットワークを実装した私の経験は、何かを学ぶには多くの反復が必要だということです。私はxor関数(4つの入力のみを持つ)を学ぶために各サンプルを約1k回使ったと信じています。 200kの入力があれば、サンプルをたくさん取ってネットワークを鍛えるのに多くの時間がかかります。

私はあなたのためにいくつかの提案を持っている:

  • は、(単一のものにいくつかの入力を集約するか、一度冗長削除しようとしてみてください)入力のサイズを小さくしてみてください。

  • 各サンプルをさらに使用してみます。私が言ったように、単純な機能でさえも多くの反復を習得することがあります。

希望します。

関連する問題