正文
):
observation, reward, done, info
=
env.step(env.action_space.sample())
函数
env.action_space.sample()
返回肌肉活动的随机向量,因此在本示例中,肌肉将会随机激活(红色表示活动肌肉,蓝色为非活动肌肉)。显然,使用这种技术,走不了太远。
你的目标是构建一个控制器,即一个从状态空间(当前位置,关节的速度和加速度)到动作空间(肌肉刺激)的函数,这将使得能够在固定的时间内尽可能快地完成从建模到执行。假设你训练了一个从观察(模型的当前状态)映射到动作(肌肉刺激)的神经网络,即你有一个函数
action = my_controller(observation)
,然后
# ...total_reward = 0.0for i in range(200): # make a step given by the controller and record the state and the reward
observation, reward, done, info = env.step(my_controller(observation))
total_reward += reward if done: break# Your reward isprint("Total reward %f" % total_reward)
其实有很多种方法可以用来构造函数
my_controller(observation)
。我们将通过使用
keras-rl
来演示如何使用DDPG(深度确定性策略梯度)算法来实现它。如果你已经有了训练强化学习模型的经验,你可以跳过下一节转到评估部分。
下面我们介绍如何使用keras-rl训练基本的控制器。首先你需要安装一个额外的包:
conda install keras -c conda-forge
pip install git+https://github.com/matthiasplappert/keras-rl.git
git clone http://github.com/stanfordnmbl/osim-rl.git
keras-rl
是一款可以与
OpenAI
兼容的优秀软件包,可让你快速构建你的第一个模型!
从这个存储库转到
scripts
子目录
cd osim-rl/scripts
一共有两个脚本:
example.py
用于使用DDPG算法训练(和测试)agent。
submit.py
将结果提交到
crowdAI.org
训练
python example.py --visualize --train --model sample
测试
关于步态的示例(尽可能地走):
python example.py --visualize --test --model sample
试验继续
请注意,训练该模型是需要一些时间的。你可以在线查找许多教程,框架和课程。我们特别推荐:
强化学习教学与课程:
加州大学伯克利分校Sergey Levine 讲授的
深度强化学习课程
在Karpathy的博客上的
关于强化学习的介绍
Tambet Matiisen
对于强化学习的介绍
David Silver的
关于强化学习的课程
关于深度强化学习的
全面资源列表
算法的框架和实现:
RLLAB
modular_rl
keras-RL
OpenSim和生物力学:
OpenSim Documentation
肌肉模型
描述OpenSim的相关论文
描述Simbody(多体动力学引擎)的相关论文
当然,这份清单并不详尽。如果你还发现有一些资源特别适合本教程,请告诉我们!