多層ニューラルネットワークの作成③

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

新生児の体重を予測することが今回多層ニューラルネットワークの作成①,②の目的だった。
TensorFlow-cookbook~using multiple layers~
そのために3つの隠れ層を持つニューラルネットワークを作成して7つの特徴量(お母さんの情報とか)を機械に教えた。
正答率は
Test Accuracy: 0.394
Train Accuracy: 0.536

と低い。この精度を上げるにはどうすればいいんだろう。(1に近づけたい)

考えたのは以下の通り
①バッチサイズ(Batch_size)の変更
②反復(iteration)の変更
③ばらつき(st_dev)の変更
④ノードの数(Weight,biasの所)変更
⑤学習率(Adam)の変更

①バッチサイスの変更

もともとバッチサイズは100でした。
一番良かったのは32のときバッチサイズ小さくするといいんだ。へえー。でもデメリットもなんかありそう。

Batch_size Test Train
32 0.500 0.609
64 0.473 0.596
100 0.394 0.536
256 0.315 0.523

②反復iterationの変更

もともと200でした
反復は回数に比例して精度が上がる。そのまんまで書いた意味

iteration Test Train
100 0.236 0.394
200 0.394 0.536
500 0.552 0.642
1000 0.710 0.768

③ばらつきst_devの変更

もともと10だった
書くのがおっくうになってきた。
st_dev=2.5のときTest=0.868,Train=0.754で一番良かった。今回に限ってだけどばらつきは少ないほうが良かったのかな。

st_dev Test Train
2.5 0.868 0.754
5.0 0.763 0.735
10.0 0.394 0.536
20.0 0.157 0.357
50.0 0.157 0.357

④ノードの数を変更

重みは1~3層で変更可能なので複雑。一つの層をいじくってどれだけよくなったかをしか調べてない。
でも今回に関しては少しノードの数を少なくしたら精度が上がった。同時にやったらまた結果は変わりそうなのできにしない。

⑤学習率の変更

学習率は大きくすると過学習、小さくするとデコイ?になるのが値で気づけた。
少しだけ上下に値を変えると精度が上がった。

Adam Test Train
0.02 0.368 0.476
0.04 0.447 0.543
0.05 0.394 0.536
0.06 0.421 0.562
0.10 0.157 0.350

なぐりかきまとめ


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ