Questions tagged «reinforcement-learning»

7
如何使用视觉输入训练人工神经网络来玩Diablo 2?
我目前正在尝试让ANN玩电子游戏,并且希望能从这里的美好社区得到一些帮助。 我已经选择了《暗黑破坏神2》,因此游戏是实时的,并且是从等轴测的角度来看,玩家可以控制相机居中放置的单个化身。 具体来说,任务是获得角色x经验值,而角色的生命值不会降低到0,而经验值是通过杀死怪物获得的。这是一个玩法示例: 现在,由于我希望网络仅基于它从屏幕上的像素获得的信息进行操作,因此它必须学习非常丰富的表示形式才能有效地进行游戏,因为这大概需要(至少是隐式地)知道如何将游戏世界分为对象以及如何与它们交互。 所有这些信息都必须以某种方式传到网上。我一辈子都想不起来如何训练这个东西。我唯一的想法是拥有一个单独的程序,从屏幕上直观地从游戏中提取某些本来是好事/坏事(例如健康,黄金,经验),然后在强化学习过程中使用该统计信息。我认为这将是答案的一部分,但我认为这还不够。从原始的视觉输入到面向目标的行为的抽象层次太多,以至于有限的反馈无法在我的一生中训练网络。 因此,我的问题是:您可以想到哪些其他方法来训练网络至少完成此任务的一部分?最好不要制作成千上万个带有标记的示例。 只是提供一些指导:我正在寻找增强学习的其他来源和/或在这种情况下提取有用信息的任何无监督方法。或采用监督算法,如果您可以想到一种无需手动标记就可以从游戏世界中获取标记数据的方法。 更新(04/27/12): 奇怪的是,我仍在努力,似乎正在取得进展。使ANN控制器正常工作的最大秘密是使用适合该任务的最先进的ANN架构。因此,我一直在使用由因式条件受限的玻尔兹曼机器组成的深度置信网,该机器以无监督的方式(在我玩游戏的视频中)进行了无监督的训练,然后通过时差反向传播(即使用标准的强化学习)进行了微调。前馈ANN)。 仍然在寻找更有价值的输入,特别是在实时选择动作以及如何为ANN处理编码彩色图像方面:-) 更新(10/21/15): 只是想起了我曾经回问过这个问题,并以为我应该提到这不再是一个疯狂的主意。自从我上次更新以来,DeepMind发表了他们的自然论文,内容涉及通过视觉输入让神经网络玩Atari游戏。确实,阻止我使用他们的体系结构玩《暗黑破坏神2》的一个有限子集的唯一原因是缺乏对基础游戏引擎的访问。渲染到屏幕然后将其重定向到网络实在太慢了,无法在合理的时间内进行训练。因此,我们可能不会很快看到这种机器人在玩Diablo 2,只是因为它会玩开源或具有对渲染目标的API访问权限的东西。(也许是地震?)

4
价值迭代和策略迭代有什么区别?
在强化学习中,策略迭代和价值迭代有什么区别? 据我了解,在值迭代中,您使用Bellman方程来求解最优策略,而在策略迭代中,您随机选择一个策略π,并找到该策略的收益。 我的疑问是,如果您在PI中选择随机策略π,那么即使我们选择多个随机策略,也如何保证它是最佳策略。

6
Q学习和SARSA有什么区别?
尽管我知道SARSA是策略性的,而Q学习是策略性的,但当查看它们的公式时,(对我而言)很难看出这两种算法之间的区别。 根据《强化学习:入门》一书(萨顿和巴托撰写)。在SARSA算法中,在给定策略的情况下,可以按以下方式更新对应的动作值函数Q(在时间步t处于状态s和动作a),即Q(s t,a t)。 Q(s t,a t)= Q(s t,a t)+α*(r t +γ* Q(s t + 1,a t + 1)-Q(s t,a t)) 另一方面,Q学习算法的更新步骤如下 Q(s t,a t)= Q(s t,a t)+α*(r t +γ* max a Q(s t + 1,a)-Q(s t,a t)) 也可以写成 Q(s t,a t)=(1-α)* Q(s t,a t)+α*(r t +γ* max a Q(s …

1
了解渐变策略派生
我正在尝试从原始资源Andrej Karpathy Blog中重新创建非常简单的Policy Gradient示例。在该文章中,您将找到带有CartPole和Policy Gradient以及重量和Softmax激活列表的示例。这是我重新创建的非常简单的CartPole政策梯度示例,效果很好。 import gym import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures import copy NUM_EPISODES = 4000 LEARNING_RATE = 0.000025 GAMMA = 0.99 # noinspection PyMethodMayBeStatic class Agent: def __init__(self): self.poly = PolynomialFeatures(1) self.w = np.random.rand(5, 2) def policy(self, state): z = state.dot(self.w) …

1
TypeError:len对于符号张量没有很好的定义。(activation_3 / Identity:0)请致电`x.shape`而不是`len(x)`以获得形状信息
我正在尝试在openAI体育馆的一场比赛中实现DQL模型。但这给了我以下错误。 TypeError:len对于符号张量没有很好的定义。(activation_3 / Identity:0)请致电,x.shape而不是len(x) 索取形状信息。 创建体育馆环境: ENV_NAME = 'CartPole-v0' env = gym.make(ENV_NAME) np.random.seed(123) env.seed(123) nb_actions = env.action_space.n 我的模型如下所示: model = Sequential() model.add(Flatten(input_shape=(1,) + env.observation_space.shape)) model.add(Dense(16)) model.add(Activation('relu')) model.add(Dense(nb_actions)) model.add(Activation('linear')) print(model.summary()) 通过keral-rl将模型拟合到DQN模型,如下所示: policy = EpsGreedyQPolicy() memory = SequentialMemory(limit=50000, window_length=1) dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy) dqn.compile(Adam(lr=1e-3), metrics=['mse', 'mae']) dqn.fit(env, nb_steps=5000, …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.