0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-29

新生児の体重を予測することが今回多層ニューラルネットワークの作成①,②の目的だった。
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

なぐりかきまとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?