Tensorflowのサンプル試し(倒立振子問題05)

■条件を変えての続き2。
前回のある程度あたりを付けた条件から、もう少し条件を絞って試す。
今回は、隠れ層(64,)、(80,)、(96,)、学習率0.0005、0.0008、0.001で、バッチ128、リプレイバッファの最大長2000、初期データ収集ステップ数3000、トレーニングステップ数5000として実施した。
同じ条件で3回行った結果が下。

隠れ層学習率バッチ5000回目の損失結果(20回のうちの最大、最小)5000回目の損失結果(20回のうちの最大、最小)5000回目の損失結果(20回のうちの最大、最小)
(64,)0.00051283862.670482 - 4611.817520 - 5725366.18758 - 11
0.00083053.86088 - 11381349.87508 - 107673.15288 - 10
0.001355634.750042 - 17281862.875059 - 182447190.78128 - 11
(80,)0.000521386.015683 - 3993380.29598 - 101572.267316 - 23
0.000880915.12508 - 1112153.73058 - 11330539.93758 - 10
0.0011405770.12508 - 10515030.687570 - 304481977.81258 - 11
(96,)0.00053084.31498 - 11335332.68758 - 114.189821 - 53
0.0008500617.75009 - 10486502.87509 - 10389268.34388 - 10
0.0011151396.00008 - 10763704.68758 - 104.260527 - 387

この辺りの条件なら良好な結果が得られると思ったけど、同じ条件でも繰り返し行った時に必ず良好な結果が得られるわけではなかった。倒立振子問題に取り組む際の始めの条件は、ランダムな要素が入っているはずなので、うまくいかない所に収束することもあると思うけど、設定した条件が適切なものなのか、単純に偶然から良好な結果が出ているのか、どうすれば判断できるかなー。一つの目安としては損失が小さいものはそれなり良好な結果が出そう(赤字部分とか)。

同じ条件でトレーニング数を変えて何度か試した。隠れ層 (64,)、学習率 0.0005、バッチ 128でトレーニング数を1000、5000、10000として5回ずつ行った。

トレーニング数最後の損失結果(20回のうちの最大、最小)
100041.842715 - 21
97.79999 - 11
31.54718 - 10
32.72868 - 10
240.95118 - 11
50005847.446368 - 182
1553.17918 - 10
1564.464068 - 211
34043.92978 - 11
8000.120157 - 136
10000240225.43758 - 10
8409.869153 - 204
6135.15928 - 10
690024.37508 - 11
8992.48638 - 10

繰り返し試してみると、思ったより良好な結果になる頻度が少ない。こうなると今まで出てきた結果が本当に良好な結果であったか疑わしい。もし、ランダムに作成している初期値が結果に大きな影響を与えるなら、そこの条件も合わせた上でパラメータ調整をしないと良好な結果が出るパラメータか判断できないと思う。どうしたらいいか少し考えたい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です