Gym & kears_rl を使用して強化学習プロジェクトをセットアップしようとしています。
説明:
range の数値が与えられた場合、数値が限界に近づいたときにエージェントに警告し(100, 200)
てもらいたいです。0%-10%
90%-100%
褒美:
分位数 (0, 0.1) のサンプル、報酬は (+1)
分位数 (0.1, 0.9) のサンプル、報酬は (-1)
分位数 (0.9, 1) のサンプル、報酬は (+1)
エージェントは、10% と 90% の制限値を学習する必要があります。
low = np.array([100])
high = np.array([200])
self.action_space = spaces.Box(low=low, high=high, dtype=np.intt32)
self.observation_space = spaces.Box(low=low, high=high, dtype=np.int32)
main.py 情報:
if __name__ == '__main__':
env = Env(max_steps=100)
nb_actions = env.action_space.shape[0] # equal to 100
model = Sequential()
model.add(Flatten(input_shape=(1,) + env.observation_space.shape))
model.add(Dense(8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(2, activation='softmax'))
memory = SequentialMemory(limit=50000, window_length=1)
policy = BoltzmannQPolicy()
# Create DQN agent
dqn = DQNAgent(model=env.model,
memory=memory,
policy=policy,
nb_actions=nb_actions,
nb_steps_warmup=10,
target_model_update=1e-2)
# Compile the DQN agent
dqn.compile(Adam(lr=1e-3), metrics=['mae'])
# Okay, now it's time to learn something!
dqn.fit(env, nb_steps=50000, visualize=False, verbose=1)
質問\問題:
フィット関数 (rl/core.py:169) では、アクション I はゼロに等しくなります。[100, 200] の間である必要があります。何故ですか?アクションが action_space 内にあることを期待していますが、すべてのポリシーが 0 または 1 の値を返すようです。env.step() 関数で値をどのように使用すると思いますか?
私のコードは次の例に基づいています:
どんな助けでも大歓迎です。
ありがとう。