画像分類用のニューラル ネットワークのトレーニングに問題があります。NN のパフォーマンスに基づくと、学習していないようです。
基本的に、encog-examples (ImageNeuralNetwork) で特定のプログラムを実行して、一連の画像を分類します。以下はサンプルプログラムの出力です
Training set created
Added input image:./faces/at33_straight_neutral_open.png; identity: shadesNone
Added input image:./faces/night/night_up_happy_sunglasses_4.png; identity: shades
...<more files here>...
Added input image:./faces/cheyer/cheyer_up_neutral_open_4.png; identity: shadesNone
Downsampling images...
Created network: [BasicNetwork: Layers=3]
Training Beginning... Output patterns=2
Beginning training...
Iteration #1 Error:199.591952% elapsed time = 00:00:00 time left = 00:01:00
Iteration #2 Error:196.384178% elapsed time = 00:00:00 time left = 00:01:00
Iteration #3 Error:160.422574% elapsed time = 00:00:00 time left = 00:01:00
...
Iteration #16 Error:99.733657% elapsed time = 00:00:00 time left = 00:01:00
...
Iteration #202 Error:99.489796% elapsed time = 00:00:04 time left = 00:01:00
...
Iteration #203 Error:199.605091% elapsed time = 00:00:04 time left = 00:01:00
ご覧のとおり、NN は 200% に近いエラーから 100% に近いエラーまで振動します。そもそも、100% を超えるエラーが発生する可能性があるかどうかさえわかりません。200% はなおさらです。
以下は、NN へのコマンドとパラメーターを含む入力ファイルです。
CreateTraining: width:16,height:15,type:Brightness
Input: image:./faces/at33_straight_neutral_open.png, identity:shadesNone
Input: image:./faces/night/night_up_happy_sunglasses_4.png, identity:shades
Input: image:./faces/choon/choon_up_angry_open_4.png, identity:shadesNone
Input: image:./faces/cheyer/cheyer_left_angry_sunglasses_4.png, identity:shades
<more files...>
Network: hidden1:10, hidden2:10
Train: Mode:console, Minutes:1, StrategyError:0.25, StrategyCycles:100
Whatis: image:./faces/tammo/tammo_right_sad_sunglasses_4.png
<more files...>
私の最初の推測では、実際の画像または理想的な値が NN に適切に供給されていなかったのですが、入力をチェックしました (たとえば、読み取った画像と理想的な値を出力するなど)、それらは問題ありませんでした。
私の推測では、一部のディレクトリ (おそらく Java ライブラリのディレクトリまたは入力ファイルが読み込まれる場所) が正しく設定されていません。以下は私のEclipse実行構成です:
Classpath Tab
Bootstrap Entries
JRE System Library [jre7]
User Entries
encog-examples (default classpath)
encog-examples
encog-core-3.2.0-SNAPSHOT.jar \encog-examples\lib
ちなみに、Forest Cover の例 (入力ファイルが必要) は正しく実行できませんが、Lunar Lander と XOR の例 (入力ファイルは必要ありません) は実行できます。これは、私の問題がディレクトリに関連しているという私の仮定を強化します。
どんな助けでも大歓迎です。ありがとう。