问题:如何降低对大规模标注数据的依赖性 近年来,以深度学习为代表的人工智能技术取得了长足的进步,在很多应用取得了巨大的成功。在图像识别中,深度学习已经超过了人类的水平,最近微软刚刚宣布在语音识别中也超过了人类的平均水平,在机器翻译中基于深度学习的模型也超过了以前的统计机器翻译,另外基于深度学习的阿法狗也打败了围棋世界冠军李世石。 深度学习之所以能够取得巨大的成功,一个非常重要的因素就是大数据,特别是大规模的带标签的数据。例如在图像识别中,深度神经网络使用上百万的带标签的图像进行训练,在机器翻译中我们会用上千万的双语句对进行训练,在围棋中我们会用上千万的专业棋手的落子进行训练……这种做法有两个局限性。首先,人工标注获取标签的代价很高。例如我们考虑机器翻译这个任务:现在市场人工翻译一个单词的价格差不多是5到10美分,如果一个句子的平均长度为三十个单词,那么1000万个句子人工翻译的代价差不多是7.5美分×30×1000万,约等于2200万美元。现在一个商业公司的翻译引擎通常支持上百种语言的相互翻译,为了训练这样规模的翻译模型,人工标注的代价就会达到上千亿美元。其次,在很多任务中,我们没办法收集到大规模的标注数据,例如在医疗中或在小语种的相互翻译。为了使深度学习能够取得更广泛的成功,我们需要降低其对大规模标注数据的依赖性。为了解决这个问题,我们提出了一种新的学习范式,我们把它称作对偶学习。 另辟蹊径,将未标注数据用起来 我们注意到,很多人工智能的应用涉及两个互为对偶的任务,例如机器翻译中从中文到英文翻译和从英文到中文的翻译互为对偶、语音处理中语音识别和语音合成互为对偶、图像理解中基于图像生成文本和基于文本生成图像互为对偶、问答系统中回答问题和生成问题互为对偶,以及在搜索引擎中给检索词查找相关的网页和给网页生成关键词互为对偶。这些互为对偶的人工智能任务可以形成一个闭环,使从没有标注的数据中进行学习成为可能。 对偶学习的最关键一点在于,给定一个原始任务模型,其对偶任务的模型可以给其提供反馈;同样的,给定一个对偶任务的模型,其原始任务的模型也可以给该对偶任务的模型提供反馈;从而这两个互为对偶的任务可以相互提供反馈,相互学习、相互提高。 下面我们还是以机器翻译为例子来说明对偶学习的基本思想。 考虑一个对偶翻译游戏,里面有两个玩家小明和爱丽丝,如下图所示。小明只能讲中文,爱丽丝只会讲英文,他们两个人一起希望能够提高英文到中文的翻译模型f和中文到英文的翻译模型g。给定一个英文的句子x,爱丽丝首先通过f把这个句子翻译成中文句子y1,j2直播,然后把这个中文的句子发给小明。因为没有标注,所以小明不知道正确的翻译是什么,但是小明可以知道,这个中文的句子是不是语法正确、符不符合中文的语言模型,这些信息都能帮助小明大概判断翻译模型f是不是做的好。然后小明再把这个中文的句子y1通过翻译模型g翻译成一个新的英文句子x1,并发给爱丽丝。通过比较x和x1是不是相似,爱丽丝就能够知道翻译模型f和g是不是做得好,尽管x只是一个没有标注的句子。因此,通过这样一个对偶游戏的过程,我们能够从没有标注的数据上获得反馈,从而知道如何提高机器学习模型。
实际上这个对偶游戏和强化学习的过程比较类似。在强化学习中,我们希望提高我们的策略以最大化长远的回报,但是没有标注的样本告诉我们在某个状态x哪个动作y是正确的。我们只有通过使用这个策略在不同的状态下执行不同的动作,观测该动作带来的回报,从而改善我们的策略。在以上这个翻译对偶游戏中,两个翻译模型就是我们的策略,因为没有标注的双语句对,所以我们不能直接改善它们。这个对偶游戏把一个没有标注的句子x,先翻译成另外一种语言的句子y1,再翻译回来为x1,这里x就是强化学习中的状态,y1和x1就是我们的策略所执行的动作,x和x1的相似度就是我们获得的回报。 (责任编辑:本港台直播) |