【dqn】카오스인 운동을 심층 강화 학습한다♬~아마 과오. . .
10131 단어 Keras강화 학습파이썬DeepLearning심층 학습
했던 일
(1) Pendulum의 심층 강화 학습
(2) 혼돈의 Duffing 진동자의 심층 강화 학습
(3) 혼돈의 Lorenz 방정식의 해의 심층 강화 학습
(4) 조금 고찰
(1) Pendulum의 심층 강화 학습
※코드는 표제에서 링크하고 있습니다
Training for 9600 steps ...
Interval 1 (0 steps performed)
9600/10000 [===========================>..] - ETA: 5s - reward: 67.6096done, took 135.389 seconds
Testing for 5 episodes ...
Episode 1: reward: 34889.989, steps: 240
Episode 2: reward: 34889.989, steps: 240
Episode 3: reward: 34889.989, steps: 240
Episode 4: reward: 34889.989, steps: 240
Episode 5: reward: 34889.989, steps: 240
Testing for 10 episodes ...
Episode 1: reward: 34889.989, steps: 240
Episode 2: reward: 34889.989, steps: 240
Episode 3: reward: 34889.989, steps: 240
Episode 4: reward: 34889.989, steps: 240
Episode 5: reward: 34889.989, steps: 240
Episode 6: reward: 34889.989, steps: 240
Episode 7: reward: 34889.989, steps: 240
Episode 8: reward: 34889.989, steps: 240
Episode 9: reward: 34889.989, steps: 240
Episode 10: reward: 34889.989, steps: 240
plot_x-p_pendulum
(2) 혼란스러운 Duffing 진동자의 심층 강화 학습
※코드는 표제에서 링크하고 있습니다
Training for 9600 steps ...
Interval 1 (0 steps performed)
9600/10000 [===========================>..] - ETA: 5s - reward: 39.9779done, took 126.762 seconds
Testing for 5 episodes ...
Episode 1: reward: 11182.445, steps: 240
Episode 2: reward: 11182.445, steps: 240
Episode 3: reward: 11182.445, steps: 240
Episode 4: reward: 11182.445, steps: 240
Episode 5: reward: 11182.445, steps: 240
Testing for 10 episodes ...
Episode 1: reward: 11182.445, steps: 240
Episode 2: reward: 11182.445, steps: 240
Episode 3: reward: 11182.445, steps: 240
Episode 4: reward: 11182.445, steps: 240
Episode 5: reward: 11182.445, steps: 240
Episode 6: reward: 11182.445, steps: 240
Episode 7: reward: 11182.445, steps: 240
Episode 8: reward: 11182.445, steps: 240
Episode 9: reward: 11182.445, steps: 240
Episode 10: reward: 11182.445, steps: 240
(3) 혼돈의 Lorenz 방정식 해의 심층 강화 학습
※코드는 표제에서 링크하고 있습니다
Training for 9600 steps ...
Interval 1 (0 steps performed)
9600/10000 [===========================>..] - ETA: 5s - reward: -27.8420done, took 140.154 seconds
Testing for 5 episodes ...
Episode 1: reward: 0.000, steps: 240
Episode 2: reward: 0.000, steps: 240
Episode 3: reward: 0.000, steps: 240
Episode 4: reward: 0.000, steps: 240
Episode 5: reward: 0.000, steps: 240
Testing for 10 episodes ...
Episode 1: reward: 0.000, steps: 240
Episode 2: reward: 0.000, steps: 240
Episode 3: reward: 0.000, steps: 240
Episode 4: reward: 0.000, steps: 240
Episode 5: reward: 0.000, steps: 240
Episode 6: reward: 0.000, steps: 240
Episode 7: reward: 0.000, steps: 240
Episode 8: reward: 0.000, steps: 240
Episode 9: reward: 0.000, steps: 240
Episode 10: reward: 0.000, steps: 240
Lorenz_xt
Lorenz_xt_obvs&original
Lorenz_yt
Lorenz_yt_obvs&original
Lorenz_zt
t
Lorenz_zt_bvs&original
plot_xy
plot_yz
plot_zx
조금 고찰
이번 특징은 무차고차 Test의 결과가 좋다는 것이다.
물론, Cartpole는 초기값이야말로 다르기 때문에 일단 운동 학습을 했다고 할 수 있지만, 그래도 그 후의 운동은 거의 함께이므로 그것도 Test 결과가 좋았다.
그러나 이번 자유 운동과 혼돈 운동의 Test는 초기치도 같고, 그 후의 움직임도 함께 이른바 학습 데이터로 검증하고 있는 것 같다.
그러면 그러면 그 파라미터를 이용하여 미지의 초기값을 예측하면 어떻게 되는지에 관심이 든다.
따라서 매개 변수를 zvst 데이터로 학습 한 다음 x vs. t 및 y vs. t에 적용합니다.
코드는 다음을 추가했습니다.
# After training is done, we save the final weights.
dqn.save_weights('dqn_{}_weights.h5f'.format(ENV_NAME), overwrite=True)
zvs.t 학습
이 때의 파라미터를 사용해 xvs.t의 데이터로, 게다가 학습 없이 dqn.test를 해 보았습니다.
dqn.load_weights('dqn_{}_weights.h5f'.format(ENV_NAME))
# トレーニングを開始。同じ正弦曲線を9600 = 240 x 400回 回す。
#histry = dqn.fit(env, nb_steps=9600, visualize=False, verbose=1)
# After training is done, we save the final weights.
#dqn.save_weights('dqn_{}_weights.h5f'.format(ENV_NAME), overwrite=True)
# トレーニング結果を確認
dqn.test(env, nb_episodes=5, visualize=False)
다음과 같이 큰 reward를 얻었습니다.
Testing for 5 episodes ...
Episode 1: reward: 317410.349, steps: 240
Episode 2: reward: 317410.349, steps: 240
Episode 3: reward: 317410.349, steps: 240
Episode 4: reward: 317410.349, steps: 240
Episode 5: reward: 317410.349, steps: 240
Testing for 10 episodes ...
Episode 1: reward: 317410.349, steps: 240
Episode 2: reward: 317410.349, steps: 240
Episode 3: reward: 317410.349, steps: 240
Episode 4: reward: 317410.349, steps: 240
Episode 5: reward: 317410.349, steps: 240
Episode 6: reward: 317410.349, steps: 240
Episode 7: reward: 317410.349, steps: 240
Episode 8: reward: 317410.349, steps: 240
Episode 9: reward: 317410.349, steps: 240
Episode 10: reward: 317410.349, steps: 240
Plotting Results
그리고 예측 결과도 다음과 같이 거의 완벽합니다.
마찬가지로 yvs.t 학습을 동일한 매개 변수로 수행했습니다. 이번에는 초기값을 [0.1,0,0]에서 [0,10,20]로
그리고 구간도 [0,48,240]에서 [48,96,240]로 변경하여 실시해 보았습니다.
그 결과, 다음과 같이 또 큰 reward가 되었습니다.
Testing for 5 episodes ...
Episode 1: reward: 478383.841, steps: 240
Episode 2: reward: 478383.841, steps: 240
Episode 3: reward: 478383.841, steps: 240
Episode 4: reward: 478383.841, steps: 240
Episode 5: reward: 478383.841, steps: 240
Testing for 10 episodes ...
Episode 1: reward: 478383.841, steps: 240
Episode 2: reward: 478383.841, steps: 240
Episode 3: reward: 478383.841, steps: 240
Episode 4: reward: 478383.841, steps: 240
Episode 5: reward: 478383.841, steps: 240
Episode 6: reward: 478383.841, steps: 240
Episode 7: reward: 478383.841, steps: 240
Episode 8: reward: 478383.841, steps: 240
Episode 9: reward: 478383.841, steps: 240
Episode 10: reward: 478383.841, steps: 240
그리고, 다음과 같이 그래프도 꽤 양호한 재현성이 되고 있습니다.
결과가 너무 좋고 꽤 걸리지만 검증의 방법이 떠오르지 않기 때문에 이번에는 여기까지하고 싶습니다.
요약
· 혼돈 운동의 심층 강화 학습을 시도했습니다.
・피팅은 통상의 운동과 같이 깨끗이 재현했다.
· 학습된 파라미터를 사용하여, 같은 Lorenz 방정식의 미지 데이터의 피팅을 실시했지만, 깨끗한 재현성을 얻었다.
・이번에 나타내고 있지 않지만, reward가 작은데 재현하는 경우도 있으므로 어딘가 과오가 있다
・본래 model.predict로부터 구성해야 한다고 고찰되므로, 처음으로 돌아와 재고찰하고 싶다
· dqn의 학습과 Validation에 대한 지식이 없기 때문에 더 심해지며 예언할 수 있도록 하고 싶다
Reference
이 문제에 관하여(【dqn】카오스인 운동을 심층 강화 학습한다♬~아마 과오. . .), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MuAuan/items/eb59adc2fbb4cd0bb0bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)