神经网络和seq2seq进行语言翻译
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载
原文链接:神经网络和seq2seq为何效果非凡?
选自medium
作者:Adam Geitgey
机器之心编译
参与:吴攀、李亚洲、杜夏德
下面只节选部分,全文请查看链接内容
打造你自己的序列到序列翻译系统
如果你想要建立自己的语言翻译系统,这是一篇使用 TensorFlow 做英法翻译的讲解文章:https://www.tensorflow.org/versions/r0.10/tutorials/seq2seq/index.html。然而,这里面的内容不适合于新手或者预算有限的人,该技术还很新并且需要资源。即使你有一个带有高端视频卡的超快计算机,可能也要花费一个月的处理时间训练自己的语言翻译系统。
同样,序列到序列机器翻译技术进展迅速,让人难以跟上。很多近期取得的进展(像增加一个 attention mechanism 或 tracking context)极大的改进了结果,但也因为成果太新以至于连维基百科页面都还没有。如果你确实想使用序列到序列学习,你需要时刻与这些新研究保持同步。
序列到序列模型的强大能力
所以,我们还能使用序列到序列模型做什么呢?
大约一年前,谷歌的研究者表示你能使用序列到序列模型开发人工智能 bot。想法很简单,但惊人的是它竟然有效。
首先,他们抓取了谷歌员工和谷歌技术支持团队间的聊天日志。然后,他们训练一个序列到序列模型,把员工的问题作为输入句,技术支持团队的回答作为输入句的「译文」。
当用户与该 bot 交互时,他们可以使用该系统「翻译」用户的每条消息,从而得到 bot 的应答。
最终结果是一个半智能的 bot,它可以(有时)回答真正的技术支持难题。下面是来自他们论文(https://arxiv.org/pdf/1506.05869.pdf)的一个对话样本:
人:连接拒绝或者类似的事情
机器:我可以知道你连接的网络连接的版本吗?
人:我不太确信版本是多少
机器:网络连接是否提示需要任何用户证书?
人:是的
机器:当时你是在家还是在工作?在办公室吗?
人:我在家
机器:试下这个。转到<URL redacted>页,并输入你的用户名和密码
人:完成
机器:试着输入<NAME redacted>,检查现在是否正常
人:yes,能工作了
机器:很好。还需要帮你做什么吗?
他们也尝试基于数百万条电影字幕建立一个聊天机器人。其思路是使用字幕间的对话训练 bot ,使其能像人一样讲话。输入句是一个角色的讲白,「译文」是下个角色的对白:
产生的结果真的很有趣。不只是 bot 像人一样交谈,它也展现出了一些智能:
人:我的名字是 David,我的名字是什么?
机器:David
人:我的名字是 John,我的名字是什么?
机器:John
人:你是领导者还是追随者?
机器:领导者
人:你是追随者还是领导者?
机器:领导者
这只是一切可能的开始。我们并不限制于将一个句子转化为另一个句子。你也可以做一个 image-to-sequence(图像到序列)模型,将一个图像转换为文本。
谷歌的另一个团队使用卷积神经网络取代第一个 RNN 就做到了这一点。这使得输入可以是一张图片而非句子。剩下的工作基本一样:
就像这样,我们能将图片转化为文字内容(只要我们有大量的训练数据)!
通过单独处理一张图片的多个不同区域,Andrej Karpathy 对这些思路进行了拓展,建立了一个能够极其具体地描述图片内容的系统。
这使得建立图片搜索引擎成为了可能,能够找到匹配搜索查询的图片:
也有研究者在研究其反向的问题——基于文本描述生成一张完整图片。
从这些例子中,你就可以想象未来的可能有多大。如今,从语音识别到计算机视觉,都有着序列到序列的应用。我敢说明年将会有大量更多的应用出现。
©本文由机器之心编译,转载请联系本公众号获得授权。

浙公网安备 33010602011771号