学会学习LearningtoLearn:让AI拥有核心价值观从而实
说明:本文为智能单元专栏第一篇作者自产Paper的Blog!
1 前言
从2012年深度学习爆发以来,深度学习已经在计算机视觉,语音识别、翻译,游戏还有围棋等领域取得了革命性的突破,特别是AlphaGo,让全世界的人都知道了深度学习的巨大威力。然而,大家都知道,深度学习的成功完全依赖于海量的数据和强大的计算资源。面对一个新的任务,我们都得重新训练一遍,非常的费时费力。对于AlphaGo,很多人就提了这样的问题:把棋盘变大一点AlphaGo还能行吗?目前的方法显然不行,AlphaGo会立马变成傻瓜。而我们人类就厉害多了,分分钟可以适应新的棋盘。我们人类拥有的快速学习能力是目前人工智能所不具备的。再举个例子人脸识别,我们人往往可以只看一面就能记住并识别,而现在的深度学习却需要成千上万的图片才能做到。因此,如何让人工智能能够具备快速学习的能力成为现在的前沿研究问题。
2 AI能够快速学习意味着什么?
AI具备快速学习的能力将会是人工智能革命之革命。为什么这么说?深度学习是人工智能的革命,但是由于深度学习目前无法快速学习,使得深度学习的应用受到很大的局限。我们在现实生活中往往会遇到很多新的任务,现在的深度学习因为无法快速适应新的任务,就没办法来替代人类的工作。就以机器人为例,我们希望机器人有朝一日能够走进千家万户。但是每个人对机器人的使用都不一样,每个家庭的环境都不一样,机器人如何才能适应各种各样的要求?如果做不到,机器人就无法普及。比如我希望机器人帮我拧开下面三个瓶子:
因此,要让机器人走进千家万户,我们需要机器人能够实时学习,不断学习,快速学习,即使面对一个新的类似的任务,也能快速掌握。这样的机器人会非常强大,能真正处理各种任务!
再往近一点说,深度学习接下来会嵌入到每个人的上,让真正智能化!那么问题来了,我希望能够按照我的心情,我的语气,我的性格,我的语言风格来帮我回复信息。这个问题有点难,苹果公司也不可能专门为你训练一个针对你的语言系统。如果深度学习能够根据你已有的少量数据实现快速学习,那么就能够为你弹出针对性的回复建议,而不像现在都是标准化的推荐。因此,快速学习能够让每个人拥有的人工智能系统都不一样!
最后,为什么快速学习如此重要是因为快速学习是实现通用人工智能AGI的必由之路!
所谓的通用人工智能就是要让人工智能能够只用同一套算法学习掌握各种各样的任务,而不是单一任务从头训练。因此,通用人工智能必须具备快速学习能力。再往远一点说,要实现人类级别的智能更需要快速学习了,因为我们人类可以做到!
3 如何才能实现快速学习?
先想想我们人为什么能快速学习?
因为我们可以利用以往的经验来学习!真的是很简单的道理。
那为什么现在的深度学习无法快速学习?
因为我们还不太懂让深度学习利用以往的经验?!我们大部分情况下只能从头开始训练。使用Finetune来学习一个新任务往往效果不佳。
所以,要让深度学习快速学习,就要研究如何让神经网络能够很好的利用以往的知识,使得神经网络能够根据新的任务调整自己。
Meta Learning,实现快速学习的方法之一!
4 什么是Meta Learning?
Meta Learning,其实也叫做Learning to Learn,就是学会学习。那什么是学会学习呢?就是拥有学习的能力。举一个金庸武侠的例子(这里感谢我的一个朋友提供的想法):我们都知道,在金庸的武侠世界中,有各种各样的武功,不同的武功都不一样,有内功也有外功。那么里面的张无忌就特别厉害,因为他练成了九阳神功。有了九阳神功,张无忌学习新的武功就特别快,在电影倚天屠龙记之魔教教主中,张无忌分分钟学会了张三丰的太极拳打败了玄冥二老。九阳神功就是一种学会学习的武功!我们希望神经网络也能学会学习,这样也就能快速学习啦!
到这里,终于我们要引入今天要介绍的工作,也就是我们今天发布在arxiv的Paper:
Learning to Learn: Meta-Critic Networks for Sample Efficient Learning5 让AI拥有核心价值观从而实现快速学习
一品文章网我们以原创文章展示给大家
我们人是基于价值观驱动的动物。我们做什么不做什么都是因为大脑里面有一杆秤在思考哪个更重要。即使有时候非常感性,也是因为感性的时候做那件事的价值最大化了。既然人拥有价值观,我们能不能让AI也拥有价值观,并利用价值观来驱动AI快速学习?
答案当然是可以,也是这篇Paper所做的事情。方法很简单:
让AI在学习各种任务后形成一个核心的价值网络,从而面对新的任务时,可以利用已有的核心价值网络来加速AI的学习速度!
怎么做呢?
每一个训练任务我们都构造一个行动网络(Actor Network),但是我们只有一个核心指导网络(Meta-Critic Network),这个网络包含两部分:一个是核心价值网络(Meta Value Network),另一个则是任务行为编码器(Task-Actor Encoder)。我们用多个任务同时训练这个Meta Critic Network。训练方式可以是常见的Actor-Critic。训练时最关键的就是Task-Actor Encoder,我们输入任务的历史经验(包括状态state,动作action,和回馈reward),然后得到一个任务的表示信息z,将z和一般价值网络的输入(状态state和动作action)连接起来,输入到Meta Value Network中。
通过这种方式,我们可以训练出一个Meta Critic Network。面对新的任务(也就是杆的长度变化了),我们新建一个行动网络Actor Network,但是却保持Meta Critic Network不变,然后同样使用Actor-Critic方法进行训练。这个时候,效果就出来了,我们可以学的非常快:
那么我们会关心任务行为编码器(Task-Actor Encoder)学到了什么?于是我们把不同任务的z提取出来用t-SNE显示如中间那个图所示。然后我们惊讶的发现z的分布和CartPole杆的长度是直接相关的,这意味着任务行为编码器确实可以利用以往的经验来理解一个任务的配置信息。
除了将Meta-Critic Network应用在增强学习领域,我们同样可以将其应用在监督学习。具体方法这里就不分析了,我们看一下结果:
6 小结
Meta-Critic Network作为一种全新的Meta Learning方法,通过训练出一个核心指导网络(也就是核心价值观),从而能够指导新任务的快速学习,具备非常大的潜力。在未来的工作中,我们将应用Meta-Critic Network到更复杂的任务中,实现更好的应用!
最后欢迎感兴趣的朋友阅读我们的paper,欢迎批评指正!谢谢!
最后的最后,paper的其他作者也潜伏在知乎,欢迎勾搭:
学会学习LearningtoLearn:让AI拥有核心价值观从而实 相关文章:
★ 最扎心的情感语录
下一篇:6个高效学习方法