代码不是机器人的全部,有些事得让它们自己学
编者按: 脱离人类编写的程序,机器人甚至无法行走。但如果它们的一举一动,甚至是思考都由代码来控制的话,工作量将大得惊人。
如果让机器人自己学习会怎么样呢?
本文全文编译自 MIT Technology Review ,图片来源于网络。
与许多蹒跚学步的小孩一般,Darwin 有时看上去脚下不稳。但是它每一次笨拙的移动,无疑都在向人们展示,机器人在面对陌生环境和处理具有挑战性任务之时的另一种重要解决方式。这台机器人学习去处理一项新任务的方式,多少与人类脑神经巩固童年时期学习成果相类似。
Darwin 生活在加州大学伯克利校区副教授, Pieter Abbeel 的实验室里。几周之前,我们第一次看到这台机器人之时,它被一根拴在三脚架上的绳子给悬空吊着,看上去有些可怜。没过一会儿,Darwin 开始在绳子的末端扭动着身子,以不摔倒而站立起来为目的,试图找出四肢最佳的移动方式。
Darwin 的一举一动都由数个拟神经系统的网络控制着,这是个模拟大脑学习过程的算法——在生物大脑学习之时,各个神经之间的连接会随之增强或变弱,以达到输入的目的,这个算法模拟的正是这个过程。 这种方法充分利用了最为复杂的神经网络,这就是广为人知的「深度学习网络」——一个拥有多层仿神经的系统。
拿让这台机器人学习如何站立和扭动身体举例,首先它为了训练出高级的深度学习网络,需要经过一系列的模拟演算,才能最后得出完成这个项目的最佳方 案——研究者将之比喻成「想象的过程」。它给予了这台机器人全身引导,而第二深度学习网络则是为了让机器人关节利用动力学对真实环境的复杂性做出反馈,然 后利用反馈执行这个任务。第二网络有存在必要性是因为比如,当第一网络尝试移动一条腿,在与地面相接触的那一瞬间,它体验到的摩擦力有可能直接让它滑倒。
研究者让机器人学习站立,学习移动它的手以完成伸手的动作,以及在斜面上完成站立的动作。
「它已经模仿练习了一个小时了,」Iogr Mordatch,一名加州大学伯克利校区的博士后表示,「然后在执行实验的时候,它慌忙地学习如何不会摔倒。」
Abbeel 的小组之前展示了深度学习将怎样确保一台机器人执行任务,比如,磕磕绊绊地将一块玩具砖头从一个形状特殊的洞里穿过。这种新方法意义非凡,因为一台机器人 不可能一直有机会经历长时间的不断测试。与此同时,计算机模拟测试缺少现实世界中的复杂性,以及能够将机器人不断地卷入失败的环境。
「我们正在尝试能否添加更多的变量,」Abbeel 表示,「即使加入了一点儿超出了机器设计范围内的任务变量,都会让机器人执行起来更为困难。」
这项新的技术对任何在现实环境中「工作」的机器人来说,都是有用的,尤其是对用腿行走的机器人——它能让这些机器人行走起来更优雅。目前这项研究 致力于开发出一套算法,将走路或跑步时的空气动力学因素考虑进去。但这样的算法模型在处理真实世界中的种种变化之时,将会遇到很大的困难。因为其他很多仿 人类的机器人在沙子上行走或者伸手去抓某物时,都会失去平衡滑倒。「这是真实世界的检验。」Abbeel 回答道,「在那样的真实世界里,确实机器人会滑倒。」
Dieter Fox,一名华盛顿大学计算机工程系的教授,专精于机器人知觉和控制,表示神经网络学习在机器人领域有着巨大的潜力——「对整个研究方向,我都热血沸 腾。」Fox 说道,「在真实世界里操练,一定是问题重重。模型是不完美的。机器人学习,尤其是深度学习引入之后,机器人就能从真实世界里学习和这个世界交互的逻辑 了。」