南京大学教授俞扬:走出游戏世界的强化学习
|
这里举一个例子,我们可以看到左边和右边是两个长度不一样的手臂,但它并不知道有多长。它怎么适应这个环境呢,可以先试一下,有点像如果我们学驾驶,驾校里学驾驶用的车是非常破的车,但我们回家之后拿到一辆新车,并不需要从头来学,只需要简单摸一下这个车哪个地方对应上的,就可以去开一辆新的车。 刚才它做的几个动作,我重复一遍。刚才它做的几个动作就是做了5个动作,适应一下自己是什么样子的,然后就可以完成任务了。它实际上并不需要做大量的试错,只需要做5个动作。如果我们真的是从头用强化学习来学的话,这个环境看上去很简单,实际上它需要有300万次试错。右边展示的是100万次试错的结果,所以大家可以看到这个结果并不好,左边我们只对环境进行了5次试错就能得到这个结果。所以即使是在虚拟的环境不是很准确的情况下,我们也能够利用这样的环境。但更希望做到的事情,把专家从这中间移除出去,实现完全自主的过程。把专家移除出去以后我们有什么呢,实际上能有的就是在场景下可能有一些历史的数据。历史的数据,我们能不能通过智能体自己去还原它现在是处于什么样的虚拟环境里,这个我们是希望能做到这样一个事情。 我们的数据是什么样子的呢,我们的数据就是去和环境打交道的过程,看到环境是什么,我们这里做了什么事情,环境发生的变化。就像游戏一样,我看到当前的游戏场景是什么样子的,往前走了一步之后场景发生了什么变化。这个变化的过程就是我们想要模拟的虚拟环境,所以我们就想知道看到了当前的状态,做了一个动作之后,做这个动作和做另外的动作,它未来有什么不一样。如果能把这样的事情从数据上还原出来,我们就能够去自动实现虚拟的环境。 这个事情能不能做呢,这个事情看起来就跟我们今天做人脸识别预测技术差不多,因为输入输出数据上全有,历史数据上全有。这样的事情如果是放在机器人身上的话,这里有一个很成功的案例,就是ETH做的ANYmal的机器人,传统做机器人的控制就是靠方程的方式,靠人的方式把机器人描述出来,看怎么控制。但这个工作里很有意思的,它的机器人腿的长度是多少不太清楚,关节怎么动也不太清楚,所以在实验室环境下收集了大量的机器人怎么动的数据,然后从这个数据上用深度学习的预测方法做了虚拟的环境,这就是机器人的模拟器。做了虚拟的环境之后,我们就在虚拟的环境里来训练怎么去控制机器人,所以它表现出来的会和人设计的运动,看起来更加自然,更加像动物运动方式。 这种场景可以简单来使用深度学习,能够完成虚拟环境的构造。在更多的场景下面是不是也能够用这样的技术呢,我们发现会有很大的困难。这个困难在什么地方呢,这个困难就在于我们在实验室环境下去收集机器人运动时,收集到的是覆盖非常全面的数据。用这个数据,用简单的监督学习,大家通常理解的深度学习就可以完成虚拟环境的构造。哪怕是更复杂的环境,我们也可以用更复杂的模型来完成虚拟环境的构造。但真实的环境下,很多业务场景下,我们面临的是数据覆盖不足的情况。数据覆盖不足的情况对应的是很多地方输入面临的响应是什么,完全不知道,这件事情能不能用今天的深度学习方式直接来解决呢,是做不到的。因为不管多么复杂、多么漂亮的技术,它都有一个背后的理论假定,就是你没有见过的数据表现的不好,这个在统计上叫做“独立同分布”的假定。 (编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


