OpenAI GymのCopy-v0を解く
課題
- コピーしたい文字列がテープに書かれているので,移動と書き込みを使ってコピーする.
- 成功するたびにコピーする文字列は長くなる.
クリア条件
- 直近100回の試行で25以上の報酬を得ること.
報酬
- 正しくコピーできたら1.0, 間違えたら-0.5
データ構成
コードを読んでみると,
行動空間は
Tuple(Discrete(2), Discrete(2), Discrete(5))
- タプル1つめ: テープの右に行きたいなら1, 左なら0
- タプル2つめ: 書き込みなら1
- タプル3つめ: 書き込む文字を数値に変換した値(1〜5の数字で表現されている)
状態空間
- A〜Eの5文字(1〜5の数字で表現されている)
Discrete(6)
解法
- そのまま前の状態を次の行動に突っ込んであげたら良いが,強化学習使ってないので多分違う.
コード
import numpy as np
import gym
from gym import wrappers
def run():
env = gym.make('Copy-v0')
env = wrappers.Monitor(env, '/tmp/copy-v0', force=True)
Gs = []
for episode in range(1000):
x = env.reset()
G = 0
for t in range(100):
a = (1,1, x)
x, r, done, _ = env.step(a)
G += r
if done:
Gs.append(G)
break
score = np.mean(Gs[-100:])
print("Episode: %3d, Score: %.3f" % (episode, score))
if score > 25:
break
if __name__ == "__main__":
run()
References
- LEARNING SIMPLE ALGORITHMS FROM EXAMPLES, Zaremba et al., 2016.
- OpenAI Gym, Brockman et al., 2016.
Author And Source
この問題について(OpenAI GymのCopy-v0を解く), 我々は、より多くの情報をここで見つけました https://qiita.com/namakemono/items/16f31c207a4f19c5a4df著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .