過学習?

315 views
Skip to first unread message

Ryo

unread,
Apr 27, 2018, 3:21:39 AM4/27/18
to Neural Network Console Users (JP)
NNCを使用して、画像の教師データをもとにOK、NG判定に取り組んでいます。学習時はTraning/Validationともに0.1前後まで収束するのですが、評価データの判定精度が非常に悪いです。学習時のデータを見ると9割以上正しく判定できていそうなのですが、評価時は5割前後(OK/NGの2値判定なので、判定できているとは言えない)になってしまいます。
これは過学習なのでしょうか?ネットワーク構造を簡素化したりしてみたのですが、変わる気配がありません。。。
ご指導お願いいたします。

かじかず

unread,
May 5, 2018, 11:41:12 PM5/5/18
to Neural Network Console Users (JP)
自分も同じような状態で困っていたのですが、
評価用データの評価値(y__0)に適当な値を入力していたことが原因でした。
最終的に評価する際は評価値(y__0)の列を抜いて予測値(y'__0)を出力すると、
妥当な値が出力されていました。

小林由幸

unread,
May 6, 2018, 11:05:36 PM5/6/18
to Neural Network Console Users (JP)
学習時も十分性能が出ていない可能性などが考えられます。

> 学習時はTraning/Validationともに0.1前後まで収束する


とのことですが、学習時にはどのようなロス関数(BinaryCrossEntropyなど)を
用いられているのでしょうか。
Mainネットワークのみを用いた学習を行う場合、TRANINGタブに表示される
Traning/Validationの値はそれぞれMainネットワークで指定したロス関数の
出力値になり、こちらは判定誤差とは異なります。

可能な範囲で、学習に用いたデータセット、プロジェクトファイル、学習曲線(Learning Curve)
Confusion Matrixの内容などをお知らせいただけるとより具体的な原因が分かるかもしれません。

Ryo

unread,
May 9, 2018, 9:47:46 PM5/9/18
to Neural Network Console Users (JP)
現在の情報を添付しました。
データセットは添付のcsvのように、0と1の画像データを使用しています。
アドバイス頂けるようでしたら、何卒よろしくお願いいたします。



2018年4月27日金曜日 16時21分39秒 UTC+9 Ryo:
network.png
Learning curve.png
Matrix.png
0427_train.csv
0427_test.csv

小林由幸

unread,
May 10, 2018, 11:04:16 PM5/10/18
to Neural Network Console Users (JP)
データセットが0と1の2値に分類するものになっている一方、
ネットワークの最終層のサイズが100ニューロンのままになっているようです。

最後のAffineのOutShapeを1として学習してみていただけますでしょうか。

Ryo

unread,
May 15, 2018, 9:55:58 PM5/15/18
to Neural Network Console Users (JP)
>データセットが0と1の2値に分類するものになっている一方、
>ネットワークの最終層のサイズが100ニューロンのままになっているようです。

>最後のAffineのOutShapeを1として学習してみていただけますでしょうか。


小林さんにご提案頂いた修正を加えたところ、精度が大幅に改善しました。
まだ完ぺきではありませんが、継続して精度を高めていきたいと思います。

かじかずさんもアドバイス頂き、ありがとうございました。 
Reply all
Reply to author
Forward
0 new messages