我试图使用强化学习选择最近的点从给定的一组点反复,直到一个复杂的(和无关的)结束条件到达。(这是我主要问题的简化。)
将包含可能点的二维阵列传递给强化学习算法,该算法可以选择它认为最理想的点。
A [1, 10]
B [100, 0]
C [30, 30]
D [5, 7]
E [20, 50]在这种情况下,D将是真正的最佳选择。(理想情况下,该算法应该输出3,从范围0到4。)
然而,每当我训练算法时,它似乎并不知道“概念”是什么,而只是选择,比方说,C通常是最好的选择,所以它应该总是这样选择。
import numpy as np
import rl.core as krl
class FindOriginEnv(krl.Env):
def observe(self):
return np.array([
[np.random.randint(100), np.random.randint(100)] for _ in range(5)
])
def step(self, action):
observation = self.observe()
done = np.random.rand() < 0.01 # eventually
reward = 1 if done else 0
return observation, reward, done, {}
# ...我应该如何修改我的算法,这样它才能真正了解它想要达到的目标呢?
Keras代码将受到赞赏,但并不是必需的;纯粹的算法解释也会非常有用。
发布于 2017-04-14 06:32:43
从您的描述中勾勒出MDP,有几个问题:
observe似乎正在生成可能的操作,而不是状态观察。https://stackoverflow.com/questions/43382046
复制相似问题