最前沿:从虚拟到现实,迁移深度增强学习让机器人革命成为可能!

最前沿:从虚拟到现实,迁移深度增强学习让机器人革命成为可能!

Flood SungFlood Sung

1 机器人革命?Are you joking?

如果问我Google旗下的DeepMind会是一家怎样的公司的话,我的回答会是

“DeepMind将可能成为一家世界上最牛逼的机器人公司!”

因为,人工智能的最佳出口就是机器人!并且机器人是人工智能的最直接体现。上图截自DeepMind CEO Demis Hassabis的演讲! DeepMind选择的方式就是从简单的做起,从Atari游戏做起,从围棋做起,然后一步一步的伸向机器人!从仿真的机器人到真实世界的机器人!DeepMind的目标是什么?Solve Intelligence!解决智能。而他们确实真的走在解决智能的路上!

现在,DeepMind最新的成果Progressive Neural Networks终于伸向真正的机器人了!

做了个什么事情呢?就是在仿真环境中训练一个机械臂移动,然后训练好之后,可以把知识迁移到真实的机械臂上,真实的机械臂稍加训练也可以做到和仿真一样的效果!

视频在这:youtube.com/watch?

这意味着什么呢?

如果我们能够训练一个机器人在仿真环境中干家务,那么移植到真实的机器人中,这个机器人经过一定训练也就可以干家务了!

那么仿真环境有什么好处?我们可以搞几十个几百个机器人同时训练,我们也不用担心机器人会损坏!这将大大加速机器人的学习过程!

所以今天这篇最前沿的标题比较大,我认为迁移深度增强学习将意味着机器人革命成为可能!机器人进入千家万户将不再只是想想,而是真正能够落地!

为什么这么认为?有以下几个原因。

  1. 传统的机器人的方法是实现不了通用的机器人的!因为传统的机器人控制方法基本都依赖于人工,而人工意味着局限性很大,我们不可能对每一种机器人面对的情况都编程。因此,要实现机器人革命,唯一的可能就是让机器人能够学习!通过学习来掌握完成任务的技巧!
  2. 深度增强学习是替代传统机器人控制方法的最有潜力方法!深度增强学习能够使机器人实现端到端的学习!但是,大家都知道的是,深度学习需要大量的样本,大量的实验,这用在图像识别上可以,但用在真实的机器人上几乎是不现实的。一方面是增强学习依靠大量的试错。但机器人一旦试错就直接坏了怎么办?另一方面造几十个上百个机器人来训练需要太多的资金了,即使是土豪如Google恐怕也承受不起! 所以,怎么办呢?两个出路:一个就是研究One-Shot Learning,也就是快速学习!如果机器人看一下人的演示就能很快学会动作,那OK。另一个出路就是迁移学习Transfer Learning!让机器人在仿真中学会,然后把知识迁移到真实的环境。大家可以想象,未来的虚拟场景肯定可以做到和真实的场景几乎一模一样!所以,只要能够迁移知识,那么在仿真中训练机器人是最佳途径!
  3. 那么现在,迁移深度增强学习迈出了第一步,而且成功了!我们就可以相信,接下来的发展将可以学习更复杂的任务,并且迁移到真实的机器人中完成!如果这一步实现了,那么,我们是不是完全可以看到真正的走近每个家庭的机器人已经不远了呢?

所以有知友说迁移学习很重要不无道理!

从虚拟到现实,迁移深度增强学习让机器人革命不再遥远!

2 迁移学习,比你想象的重要!

在这里,我想说迁移学习之所以意义非凡在于一点,就是

机器人迁移学习的成功意味着神经网络能够存储并提取“概念性”的东西!

什么意思呢?


计算机已经能够存储和提取抽象的知识!

让计算机直接存储感知信息比较简单,比如一幅图像,一段音频。

但是,如何让计算机学会一件事情并且把“记忆”移植出来呢?

这就好比科比打球不是很厉害吗?要是能把科比打球的记忆移植过来我们是不是就分分钟成为篮球高手了?

但这到底有多难呢?这种问题恐怕几年前都没人敢想吧!计算机也可以做到吗?

我们还是以打球来说明!首先这个打球记忆到底是如何存储的呢?没人知道,这段记忆有经验(怎么打),有概念(篮球,篮筐。。。),有感知(当前场景),有控制(肌肉运动)。简直不能再复杂了!我们完全无法分析到底大脑是怎么存储这些有具象,也有抽象的记忆。接下来,更困难的问题:大脑的记忆那么多,又要如何才能把打球的记忆给提取出来呢?要能够定位大脑的这部分记忆,要能够知道记忆的格式,看是JPG还是PNG[呲牙]。。。,最后,还有能上传这部分记忆到新的大脑里!

上面说的移植记忆的问题简直超出了大部分人可以想象的范围了!

那么,计算机也可以吗?

计算机也可以?!

也可以!

可以!

仿真机械臂在仿真中训练了一个神经网络(“大脑”),接下来把神经网络连接到真实机械臂的神经网络(“大脑”),然后真实的机械臂在训练过程中,从仿真神经网络中提取了有用的信息(到底是什么不知道),然后大大加速和加强了真实机械臂的训练!

我又重述了一下DeepMind的成果,但现在的感觉是不是要Oh My God了!

这就是移植记忆的小Demo呀!

在人类还没有搞清楚大脑的记忆是怎样的时候,人类却已经让计算机能够移植它的“记忆”了!

反过来想,大脑的记忆,不也就是无数个神经元嘛!当计算机已经能够移植记忆的时候,我已经感觉到移植大脑记忆也不远了!

最后,这个工作的幕后老大是个美女!

引用她的一句话(注意我加黑的地方):

Deep learning is producing exciting new applications and advances at an amazing rate. But I'm more excited by what deep neural nets will eventually tell us about the fundamentals of human intelligence. Fast learning, slow learning, memory, and imagination: these are all areas that could be cracked by deep nets in coming years, and in doing so we may unlock some basic truths of how the brain works.

最后的最后,还是那句话:

这就是人工智能的最前沿!

---------------------------------------------------------------------------------------------------------

下面进入专业科普时间!我们来看看到底计算机是怎么做到的!有兴趣也有基础的知友可以往下看!

1 没想到是这么简单的idea!

用几句话就能够说明白这个所谓的progressive neural networks到底是什么了!简直不能再简单!

就是:

Step 1:构造一个多层的神经网络,训练某一个任务,上图第一列

Step 2:构建第二个多层的神经网络,然后固定第一列也就是上一个任务的神经网络,将上一列的神经网络的每一层(注意是每一层)都通过a处理连接到第二列的神经网络的每一层作为额外输入。也就是第二个神经网络每一层除了原始的输入,还加上经过a处理的之前的神经网络对应层的输入。

Step 3:构建第三个多层神经网络,训练第三个任务,将前两列的神经网络固定,然后同上一样的方法连接到第三个神经网络中。

上图的线很清楚的表示了这个过程。

这就是把神经网络和神经网络连起来的方法!

a的作用其实主要是为了降维和输入的维度统一(与原始输入匹配),用简单的MLP来表示!

除此之外,增强学习算法没有任何变化。文章中使用A3C算法,一个比DQN强4倍的算法!

总的来说,就是抽取之前的神经网络的信息与当前的输入信息融合,然后训练!训练的效果就可以和没有加前面的神经网络的方法对比,如果效果好很多说明前面的神经网络有用,知识有迁移!

这种方法的好处就是之前的训练都保留,不至于像fine tune那样更改原来的网络!而且每一层的特征信息都能得到迁移,并且能够更好的具化分析。

缺点就是参数的数量会随着任务的增加而大量增加!并且不同任务的设计需要人工知识。

2 实验

文章做了三个实验,分别是Pong的变种实验,Atari实验以及Labyrinth实验。那么效果大部分都不错!这里就不贴了,主要还是来看一下那个机械臂的实验。这个实验在文章中并没有。

这个仿真机械臂训练的是到达任务(Reacher task),也就是让机械臂的头能够达到某一个位置。

注意这里是输入是图像哦,而且只有图像,连机械臂的关节信息都没有,输出就是各个关节的速度。采用的网络就是卷积神经网络+LSTM+Softmax,使用A3C算法。这里我们可以看到用了16个线程threads来训练,约等于同时开了16台机械臂。

接下来,到真实的环境

这个真实的机械臂训练的任务和仿真的一样,但是不同的是输入不一样。这里我不清楚proprioception指的是什么,但从后面的网络结构MLP可以看出绝对不是图像数据,可能是机械臂的关节数据。也就是真实的机械臂的输入和仿真的不一样。这样也能迁移学习?真的是很诡异啊!但,事实是:

红色是使用了之前的仿真网络的,蓝色是没有的。效果显而易见。

接下来,在完成这个任务的基础之上,DeepMind又继续训练机械臂做“Catch”任务及“Catch the bee"抓取任务,都取得了成功。进一步验证了Progressive Neural Networks的可行性。

3 小结

我更乐意称这个工作为迁移深度增强学习,以表示和以前迁移学习的不一样,主要在于迁移的知识不一样了。相信这个工作的继续发展将带来重大的突破。


图片引用:juxi.net/workshop/deep-

本文为原创文章,未经作者允许不得转载!

「您的赞赏是我们分享知识的前进动力!」
10 人赞赏
微信用户
文章被以下专栏收录
91 条评论
推荐阅读