从头开始做一个机器手臂4 加入强化学习算法
切换视频源:

从头开始做一个机器手臂4 加入强化学习算法

作者: 莫烦 编辑: 莫烦 发布于: 2017-11-22

学习资料:

上节中, 我们的环境已经基本建设完成了, 现在我们需要的就是一个强化学习的学习方法. 学习方法有很多, 而且也分很多类型. 我们需要按照自己环境的要求挑选适合于这个环境的学习方法.

选择RL方法

在我的 强化学习教程系列 中, 就囊括了非常多的强化学习方法. 而且我制作的 这个动画视频 也举例让大家对各种强化学习方法有了一些了解. 其中列举了当前比较流行的算法.

一般, 给你一个环境, 你最先要考虑到的问题是, 这个环境当中的机器人, 他的动作是连续(continuous)的还是离散(discrete)的? 因为这算是一个重大区别. 不是每种强化学习方法都能同时处理连续和离散动作的. 一般我们的选择方法可以是:

arm4-1.png

很多时候不限于上面的那些方法, 只不过是上面的那些方法都能在我的教程当中找到. 为了满足这个机械手臂的要求, 我选择了连续动作的 DDPG 来作为这次的 RL 算法.

保存提取网络

这里不会细说 DDPG 的算法, 因为在我这个动画教程这个python教程中已经详细阐述了一遍. 如果不关心 DDPG 的朋友们, 其实你最需要了解的就是这个网络是做连续动作的预测就行. 搭建的全部代码在这里. 如果用 tensorboard 显示整个 DDPG 的计算流程图, 就是下面那样.

6-2-2.png

搭建这个图纸不会细说, 想要细说的是保存网络和提取网络的两个功能. 因为这两个功能在我的强化学习教程系列中是没有提到的. 已经有很多朋友在那个教程下面留言说不知道怎么保存提取. 首先我们使用的是 tensorflow. 他的保存提取方式还是很简单的.

使用的时候我们可以对应上在 main.py 中的 training 和 test 时段分别进行. 比如 training 完了我们保存网络, 开始 test 的时候提取保存过的网络. 下面的过程有点省略, 具体的代码请查看这里.

训练

设置好了这些以后, 就是真正的 training 了. 在 main.py 中将 ON_TRAIN = True.

看得出它已经不是在乱玩了, 但是还是有一些问题, 比如接触到蓝点就回合结束, 很多时候机器手臂都只是将手甩上去就结束了. 我们更希望是它能停在那个蓝色区域上一会再结束. 所以我总结了一下现在所面临的问题.

  • 甩手结束
  • 不太收敛

你看, 我们只有将这个学习过程可视化了, 才能便于我们发现潜在的问题, 这从侧面说明了做一个可视化的环境多重要. 发现问题这个过程肯定也是你在做强化学习项目会遇到的. 所以我们下一节内容将会看我如何解决这些问题.

实战:从头开始搭建训练机器人手臂


降低知识传递的门槛

莫烦经常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 【支持莫烦】 能让我感到认同,我也更有理由坚持下去。

我组建了微信群,欢迎大家加入,交流经验,提出问题,互相帮持。 扫码后,请一定备注"莫烦",否则我不会同意你的入群申请。

wechat