标签: reinforcement-learning

Q学习-epsilon贪婪更新

我试图了解 DQN 中的 epsilon - 贪婪方法。我正在从https://github.com/karpathy/convnetjs/blob/master/build/deepqlearn.js 中提供的代码中学习

以下是随年龄变化的 epsilon 更新规则如下:

$this.epsilon = Math.min(1.0, Math.max(this.epsilon_min, 1.0-(this.age - this.learning_steps_burnin)/(this.learning_steps_total - this.learning_steps_burnin)));

这是否意味着 epsilon 值从 min(由用户选择)开始,然后随着年龄增加达到burnin 步骤并最终变为1?或者 epsilon 是否从 1 左右开始然后衰减到 epsilon_min ?

无论哪种方式,在这个过程之后学习几乎停止。那么,我们是否需要足够仔细地选择 learning_steps_burnin 和 learning_steps_total 呢?关于需要选择什么值的任何想法?

performance reinforcement-learning neural-network q-learning deep-learning

3
推荐指数
1
解决办法
5382
查看次数

A3C和PPO在强化学习策略梯度方法上有什么相似之处?

有什么简单的方法可以将 PPO 的属性与 A3C 方法合并?A3C 方法运行多个 parrel actor 并优化参数。我正在尝试将 PPO 与 A3C 合并。

reinforcement-learning

3
推荐指数
1
解决办法
1127
查看次数

keras model.evaluate() 不显示损失

我在 中创建了以下形式的神经网络keras

from keras.layers import Dense, Activation, Input
from keras import Model

input_dim_v = 3
hidden_dims=[100, 100, 100]

inputs = Input(shape=(input_dim_v,))
net = inputs

for h_dim in hidden_dims:
    net = Dense(h_dim)(net)
    net = Activation("elu")(net)

outputs = Dense(self.output_dim_v)(net)
model_v = Model(inputs=inputs, outputs=outputs)
model_v.compile(optimizer='adam', loss='mean_squared_error', metrics=['mse'])
Run Code Online (Sandbox Code Playgroud)

后来,我使用model_v.train_on_batch(X[i],y[i]).

为了测试神经网络是否正在成为更好的函数逼近器,我想定期评估模型的累积Xy(在我的情况下,随着时间的推移Xy增长)。但是,当我调用 时model_v.evaluate(X, y),控制台中只显示特征进度条,但不会打印损失值和 mse-metric(在这种情况下是相同的)。

我怎样才能改变它?

python reinforcement-learning neural-network keras

3
推荐指数
1
解决办法
2224
查看次数

是否可以修改 OpenAI 环境?

我想在 OpenAI 环境中修改一些东西。如果我们使用Cartpole示例,那么我们可以编辑类 init 函数中的内容,但使用Box2D它的环境似乎并不那么简单。

例如,考虑BipedalWalker环境。

在这种情况下,我将如何编辑SPEED_HIPSPEED_KNEE变量之类的内容?

reinforcement-learning openai-gym

3
推荐指数
1
解决办法
2394
查看次数

深度强化学习背景下batch size是什么意思?

Batch size 指的是监督学习中神经工作训练的样本数量,然而,在强化学习的背景下,batch size 的含义是什么?它也指样品吗?如果是这样,样本在强化学习背景下的意义是什么?

reinforcement-learning batchsize

3
推荐指数
1
解决办法
2500
查看次数

使用 GPU 多处理了解 openAIgym 和 Optuna 超参数调整

我正在使用 openAI 的stable-baselines训练强化学习代理。我还使用optuna优化代理超参数。

为了加快该过程,我在不同的函数调用中使用多重处理。具体参见SubprocVecEnv此处文档study.optimize中的建议(分别在 1.15.3 和 1.10.4 下)。

import numpy as np
from stable_baselines.common.vec_env import SubprocVecEnv
from stable_baselines import PPO2
from stable_baselines.common.policies import MlpLnLstmPolicy
import optuna

n_cpu = 4


def optimize_ppo2(trial):
    """ Learning hyperparamters we want to optimise"""
    return {
        'n_steps': int(trial.suggest_loguniform('n_steps', 16, 2048)),
        'gamma': trial.suggest_loguniform('gamma', 0.9, 0.9999),
        'learning_rate': trial.suggest_loguniform('learning_rate', 1e-5, 1.),
        'ent_coef': trial.suggest_loguniform('ent_coef', 1e-8, 1e-1),
        'cliprange': trial.suggest_uniform('cliprange', 0.1, 0.4),
        'noptepochs': int(trial.suggest_loguniform('noptepochs', 1, 48)),
        'lam': trial.suggest_uniform('lam', 0.8, 1.)
    }


def optimize_agent(trial):
    """ …
Run Code Online (Sandbox Code Playgroud)

python gpu reinforcement-learning openai-gym

3
推荐指数
1
解决办法
2965
查看次数

Q-learning收敛的标准

我正在试验 Q-learning 算法。我已经从不同的来源阅读并理解了该算法,但是,似乎没有明确的数学支持的收敛标准。

大多数来源建议迭代多次(例如,N = 1000),而其他人则表示当所有状态和动作对 (s, a) 被无限频繁访问时实现收敛。但这里的问题是,多少是无限频繁。对于想要手动解决算法的人来说,最好的标准是什么?

如果有人能在这方面教育我,我将不胜感激。我也很感激任何有这种效果的文章。

问候。

algorithm artificial-intelligence machine-learning reinforcement-learning q-learning

3
推荐指数
1
解决办法
2337
查看次数

gym.spaces.box 观察状态理解

因此,我尝试使用gym 在自定义环境中执行一些强化学习,但是我对spaces.box 的工作原理感到非常困惑。每个参数的含义是什么?例如,如果我有一个涉及大量信息的游戏状态,例如角色的生命值、他们的统计数据和能力,我不确定这样的东西是否会在 Box 中表示为观察状态。另外,在一款具有多种能力的游戏中,最好对它们进行一次性编码,还是将它们保留为常规增量 Id,因为我想使用神经网络来查找预期的 Q 值。

reinforcement-learning deep-learning openai-gym

3
推荐指数
1
解决办法
4079
查看次数

健身房的 box 2d (openAI) 未安装成功(pip 错误)

我正在尝试使用 OpenAI 执行以下代码:

import gym
env = gym.make('CarRacing-v0')
env.reset() 

for _ in range(1000):
 env.render()
 env.step(env.action_space.sample())
Run Code Online (Sandbox Code Playgroud)

但它会抛出错误:

fn = getattr(mod, attr_name) AttributeError: 模块 'gym.envs.box2d' 没有属性 'CarRacing'

然后我尝试通过 pip install box2d-py 安装 box2d 并抛出此错误:

ERROR: Command errored out with exit status 1:
     command: 'C:\Users\Junior\Anaconda\envs\gym\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Junior\\AppData\\Local\\Temp\\pip-install-w8awn22p\\box2d-py\\setup.py'"'"'; __file__='"'"'C:\\Users\\Junior\\AppData\\Local\\Temp\\pip-install-w8awn22p\\box2d-py\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\Junior\AppData\Local\Temp\pip-record-netg1nlq\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\Junior\Anaconda\envs\gym\Include\box2d-py'
         cwd: C:\Users\Junior\AppData\Local\Temp\pip-install-w8awn22p\box2d-py\
    Complete output (16 lines):
    Using setuptools (version 45.2.0.post20200210).
    running install
    running build
    running build_py …
Run Code Online (Sandbox Code Playgroud)

python machine-learning reinforcement-learning box2d openai-gym

3
推荐指数
1
解决办法
1万
查看次数

无法加载已保存的策略(TF-agent)

我使用策略保存程序保存了训练有素的策略,如下所示:

  tf_policy_saver = policy_saver.PolicySaver(agent.policy)
  tf_policy_saver.save(policy_dir)
Run Code Online (Sandbox Code Playgroud)

我想继续使用保存的策略进行训练。所以我尝试使用保存的策略初始化训练,这导致了一些错误。

agent = dqn_agent.DqnAgent(
tf_env.time_step_spec(),
tf_env.action_spec(),
q_network=q_net,
optimizer=optimizer,
td_errors_loss_fn=common.element_wise_squared_loss,
train_step_counter=train_step_counter)

agent.initialize()

agent.policy=tf.compat.v2.saved_model.load(policy_dir)
Run Code Online (Sandbox Code Playgroud)

错误:

  File "C:/Users/Rohit/PycharmProjects/pythonProject/waypoint.py", line 172, in <module>
agent.policy=tf.compat.v2.saved_model.load('waypoints\\Two_rewards')


File "C:\Users\Rohit\anaconda3\envs\btp36\lib\site-packages\tensorflow\python\training\tracking\tracking.py", line 92, in __setattr__
    super(AutoTrackable, self).__setattr__(name, value)
AttributeError: can't set attribute
Run Code Online (Sandbox Code Playgroud)

我只是想节省每次重新训练的时间。如何加载保存的策略并继续训练?

提前致谢

reinforcement-learning deep-learning tensorflow

3
推荐指数
1
解决办法
1225
查看次数