これは、あなたが(またはあなたがこの分野での十分な経験を持っていないこと)ニューラルネットワークについて十分に読んでいないことを意味のように、あなたが質問を投稿するという事実をチェックしてください。これは非常に複雑な分野なので、これは批評ではなく、完全に共通しています。
質問に対する解決方法は、問題とデータセットによって大きく異なります。
「レイヤー」といえば、通常、多層パーセプトロン(MLP)と呼ばれる特定の人工ニューラルネットワーク(ANN)アーキテクチャーを指すので、これを説明しようとします。
通常、隠しレイヤの数を増やしても、パフォーマンスが向上するわけではなく、トレーニングが遅くなります。入力層がパーセプトロンではないため、パーセプトロンの2つの隠れたレイヤー(3つのレイヤー、1つの出力レイヤー、2つの隠れレイヤー)を使用すると、特に複雑な分類問題を解決するのに役立ちます。
通常、ネットワークの動作が悪い場合は、1)データセットを変更する必要があります(ほとんどの場合、データセット設計が悪いために動作が不良になるため)、または2)ネットワークトポロジMLP以外のANNアーキテクチャ)。
問題の理解は不可欠であり、入力を介してANNに渡す必要があります。たとえば、指紋検出器を作成する場合は、画像を回転することができることがわかっているので、画像を回転に対して不変にする変換を適用すると(通常、画像座標を極座標に変換します)、通常は)より良いパフォーマンスを得る。
最も重要なステップは、データセットの選択です。データが少なすぎるのを避けなければならないだけでなく、あまりにも多くのデータが良い選択ではありません。これは、overfittingとして知られている問題です。ネットワークはあなたが渡したデータだけを認識するように訓練し、あなたが渡した「類似の」ものを見つけることはできません。さらに、データセットのバランスをとる必要があります:ネットワークを訓練してすべての犬を認識し、それをビーグル画像だけに渡す場合、それはドベルマンを認識できません。
これらはすべて一般的なアドバイスです。そして、私が使用した「通常の」副詞に注意してください。
ここでは、ご使用の特定の問題について、2つの主な問題があります。
最初の変数は、Error
という変数に関連しています。あなたはこれが高い価値を持っていると言っています.12歳くらいでしょうか?それは単なる数字です。通常は、パフォーマンスを「見積もる」ためにMean squared errorを計算する必要があります。あなたが計算しているのは、反対側で、すべての二乗誤差の合計です。値をテストケース数(Error /= PatternCount;
)で除算し、平方誤差を加算するときは0.5を捨てるべきです。その後、成功の定数を少し上げて前に止めることができます(おそらく0.001は良いですが、それを調整する必要があります)。
...あなたの操作方法は正しいものではありません。通常は、ランダムに選択されたトレーニングデータ(通常は点の約80%)とテストデータ(通常は約20%)の2つの部分でデータセットを分割する必要があります。あなたは訓練データを使って訓練データを訓練します。訓練データを持っているときは、それを通してテストデータを渡してパフォーマンスを検出する必要があります(訓練プロセスに入らなかったデータを渡す必要があります)。このようにして、ANNが一般化する能力をテストし、合格したポイントを覚えていないようにします。
実際にニューラルネットワークを機能させたい場合は、持っているデータを多く試してみる必要があります。それは、あなたが小さなarduinoの代わりに高出力のPCを持っている場合、そして他の人の仕事を再利用する(いくつかの図書館を入手する)のが最善です。私が大学で働いていたときに見つけた最良のアプローチは、数値計算用に作られたツールを使用していることです(私はライセンスを持っていたのでmatlabを使用しましたが、オクターブ - オープンソースをニューラルネットワーク拡張で使用できます)。これにより、トポロジ、データセットの構成、および学習パラメータを簡単に変更できます。何か問題があるときは、パラメータを抽出して、必要なものに埋め込むことができます(C/C++/Java/python /その他でアドホックな実装を行う)。
敬具
PS楽しい事が
は、私はCでそのArduinoの中で同じコードを再書いてきた...私はその後すぐにスペースが不足し、コメントとしてこれを始めたということです、コードはそこにあります。十分なグラフのように、データセットをどのように表示できますか?どのように変化するかを示す。 – Nuwanda
csvとしてアップロードしますか? –
Githubに追加しました。編集を確認してください! – Nuwanda