我想让人工智能玩我的自定义环境,不幸的是,当我运行我的代码时,会出现以下错误:
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py", line 198, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "D:/PycharmProjects/Custom Enviroment AI/Enviroment.py", line 88, in <module>
DQN = buildAgent(model, actions)
File "D:/PycharmProjects/Custom Enviroment AI/Enviroment.py", line 82, in buildAgent
dqn = DQNAgent(model, memory=memory, policy=policy, nb_actions=actions, nb_steps_warmup=10,
File "D:\PycharmProjects\Custom Enviroment AI\venv\lib\site-packages\rl\agents\dqn.py", line 108, in __init__
if hasattr(model.output, '__len__') and len(model.output) > 1:
File "D:\PycharmProjects\Custom Enviroment AI\venv\lib\site-packages\keras\engine\keras_tensor.py", line …Run Code Online (Sandbox Code Playgroud) 我们有一个自定义的强化学习环境,在其中我们从稳定的基线运行 PPO 代理来解决多动作选择问题。代理按预期进行学习,但当我们评估从训练有素的代理学到的策略时,当我们设置时,代理会获得更差的结果(即奖励降低约 50% deterministic=True)deterministic=False。这项研究的目标是为现实世界的问题找到新的政策,因此最好找到一种确定性的政策,因为这对大多数人来说更容易理解……而且更多的随机行动会带来更好的效果,这似乎违反直觉。表现。
文档只说“确定性(bool)\xe2\x80\x93是否返回确定性动作。\n我理解这意味着动作是从具有一定随机性的学习分布中得出的(即一个特定状态可以导致几种不同的动作)并且意味着这些动作完全基于学习的策略(即一种特定的状态总是导致一种特定的动作)。deterministic=Falsedeterministic=True
问题是当性能比deterministic=Falsewith更好时,它对代理和/或环境有何影响deterministic=True?
policy deterministic reinforcement-learning stable-baselines
我的学习和应用强化学习的玩具项目是:
- 代理人试图"安全地"和"快速地" 达到目标状态....
- 但是有代理人在路上发射了射弹和火箭.
- 代理人可以确定火箭的位置 - 有一些噪音 - 只有当他们"接近"时
- 然后代理人必须学会避免撞到这些火箭上......
- 代理人可以使用时间燃料来补充 - 在代理人运动中消耗
- 连续动作:加速前进 - 转动角度
我需要一些适合这种情况的RL算法的提示和名称.
- 我认为它是POMDP,但我可以将其建模为MDP并忽略噪声吗?
- 如果是POMDP,评估概率的推荐方法是什么?
- 在这种情况下哪个更好用:值函数或策略迭代?
- 我可以使用NN来模拟环境动态而不是使用显式方程吗?
- 如果是,是否建议使用特定类型/型号的NN?
- 我认为行动必须离散化,对吗?
我知道学习这样一个话题需要花费时间和精力,但我很想......
如果你不能回答所有问题,你可以回答一些问题......
谢谢
我有一个擅长播放Connect 4的AI(使用minimax).现在我想使用一些机器学习算法来学习我拥有的这个AI,我想通过让它们互相对抗来做到这一点.
什么算法对此有好处,我将如何训练它?如果有人可以说出这样做的方法,我可以轻松地通过我自己谷歌.但是现在我不知道谷歌会发生什么......
artificial-intelligence machine-learning reinforcement-learning neural-network
我想问一下在棋盘游戏中使用标准的反向传播神经网络和TD学习方法是否有意义?
我的方法看起来像:
对于每个存储的游戏位置(从终端1开始并移动到起始位置),计算估计的位置值和期望的位置值,例如
boards_values[i]['desired_value'] = boards_values[i]['estimated_value'] + 0.4 * ( boards_values[i+1]['estimated_value'] - boards_values[i]['estimated_value'] )
Run Code Online (Sandbox Code Playgroud)使用标准反向传播算法,从整个游戏结束列车创建网络训练模式,每个训练模式具有1个时期的小学习率.
NN.train([pattern], iterations=1, N=0.001, M=0.000001)
Run Code Online (Sandbox Code Playgroud)我在我的tic tac toe游戏中尝试了上述的一些组合(不是从一个例子学习,而是学习30-40个模式,降低/提高学习速度等等),而且从未训练过理想的玩家(它永远不会丢失与随机相比).NN代理对抗随机播放器的最好例子之一是:
(第一场比赛:胜利,平局,输球),(第二场比赛:胜利,平局,输球),(总和:胜利,平局,输球)
(191,34,275),(159,102,239),( 350,136,514) - 新网
(427,21,52),(312,16,172),(739,37,224) - 经过+ 50k比赛
输入是18个神经元格式:
每个电路板单元组(1,0)表示x,(0,0)表示空单元,(0,1)表示o.输出是在-1,1范围内的一个单位赢/输概率估计.
Tic tac toe仅测试沙盒,当我成功完成它时,我将转向更复杂的纸牌游戏("失落的城市").
artificial-intelligence reinforcement-learning neural-network
如果我想研究机器人技术的RL算法,应该如何使用Gazebo 和 OpenAI Gym进行测试,训练和基准测试?我应该从OpenAI Gym入手,然后将具有良好分数的算法带入Gazebo环境中以应对现实情况吗?
虽然我可以设法让示例和我自己的代码运行,但我对 OpenAI 健身房 API 背后的真实语义/期望更加好奇,尤其是 Env.reset()
什么时候需要重置?每集结尾?还是只有在创建环境之后?
我宁愿认为在每一集之前都是有道理的,但我无法明确地阅读!
我尝试使用Tensorflow和OpenAI的Gym来编写Deep Q网络来玩Atari游戏.这是我的代码:
import tensorflow as tf
import gym
import numpy as np
import os
env_name = 'Breakout-v0'
env = gym.make(env_name)
num_episodes = 100
input_data = tf.placeholder(tf.float32,(None,)+env.observation_space.shape)
output_labels = tf.placeholder(tf.float32,(None,env.action_space.n))
def convnet(data):
layer1 = tf.layers.conv2d(data,32,5,activation=tf.nn.relu)
layer1_dropout = tf.nn.dropout(layer1,0.8)
layer2 = tf.layers.conv2d(layer1_dropout,64,5,activation=tf.nn.relu)
layer2_dropout = tf.nn.dropout(layer2,0.8)
layer3 = tf.layers.conv2d(layer2_dropout,128,5,activation=tf.nn.relu)
layer3_dropout = tf.nn.dropout(layer3,0.8)
layer4 = tf.layers.dense(layer3_dropout,units=128,activation=tf.nn.softmax,kernel_initializer=tf.zeros_initializer)
layer5 = tf.layers.flatten(layer4)
layer5_dropout = tf.nn.dropout(layer5,0.8)
layer6 = tf.layers.dense(layer5_dropout,units=env.action_space.n,activation=tf.nn.softmax,kernel_initializer=tf.zeros_initializer)
return layer6
logits = convnet(input_data)
loss = tf.losses.sigmoid_cross_entropy(output_labels,logits)
train = tf.train.GradientDescentOptimizer(0.001).minimize(loss)
saver = tf.train.Saver()
init = tf.global_variables_initializer()
discount_factor = …Run Code Online (Sandbox Code Playgroud) artificial-intelligence reinforcement-learning neural-network q-learning tensorflow
我试图在强化学习上运行lunar_lander,但是当我运行它时,它会发生错误.另外我的电脑是osx系统.
这是月球着陆器的代码:
import numpy as np
import gym
import csv
from keras.models import Sequential
from keras.layers import Dense, Activation, Flatten
from keras.optimizers import Adam
from rl.agents.dqn import DQNAgent
from rl.policy import BoltzmannQPolicy, EpsGreedyQPolicy
from rl.memory import SequentialMemory
import io
import sys
import csv
# Path environment changed to make things work properly
# export DYLD_FALLBACK_LIBRARY_PATH=$DYLD_FALLBACK_LIBRARY_PATH:/usr/lib
# Get the environment and extract the number of actions.
ENV_NAME = 'LunarLander-v2'
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n
# Next, we build …Run Code Online (Sandbox Code Playgroud) 鉴于:
import gym
env = gym.make('CartPole-v0')
Run Code Online (Sandbox Code Playgroud)
如何CartPole-v0以一种适用于任何Gym env的方式获得收益?
openai-gym ×3
python ×3
tensorflow ×2
benchmarking ×1
box2d ×1
keras ×1
policy ×1
python-3.x ×1
q-learning ×1
robotics ×1
ros ×1