谷歌工程师利用和语言翻译类似的技术开发出了一个用于翻译图片主题的机器学习算法

将一种语言自动翻译成另一种语言一直以来都是难以攻克的问题。但最近几年,谷歌通过开发机器翻译算法改变了传统的翻译过程,通过谷歌翻译从本质上改变了跨文化翻译交流。

如今,谷歌正在运用同样的机器学习技术将图片转变为文字。其结果就是自动产生能够准确描述图片内容的标题。该技术将用在互联网搜索引擎,图片自动发表,视觉受损者的网页浏览,以及其他更为广阔的领域。

翻译语言的传统步骤是一个更迭的过程 - 从个体单词的翻译开始,然后通过重新排列单词和短语的顺序来提高翻译的准确性。但是近几年来,通过完全不同的方式,谷歌已经能够运用自己超大规模的搜索数据库来转换文字。

谷歌运用的方法的本质是统计相邻或相近单词出现的频率,并且在向量空间中定义他们之间的关系。通过这样的方法,每一个单词就可以用一个向量在空间中表示出来,每一个句子则是不同向量的组合。接下来谷歌做了一个重要的假设 - 无论什么语言,特定的单词之间具备相同的关系。例如,在所有语言中,向量“国王-男人+女人=皇后”都应该是一个真命题。

这就使得语言翻译成为了向量空间学里的一个问题。谷歌翻译是通过这一方式实现这一过程的:先把句子转换成向量,然后使用这个向量产生意思相同,另一种语言的句子。

现在Oriol Vinyals 和他在谷歌的合作者们正在使用类似的方法将图片转化为文字。他们的技术是使用神经网络去学习10万个图片的数据集合以及他们的标题,以此来实现如何对这些图片的内容进行分类。

但是除了生成一组可以描述图片的单词,他们的算法同样可以生成代表单词之间关系的向量。这个向量可以和谷歌现有的翻译算法结合起来去生成英语标题,或者任何其他语言的标题。事实上,谷歌的机器学习方法已经可以将图片转换为单词。

为了考量这种方法的效果,他们从亚马逊的”mechanical turk” (提供不同技能的劳动力资源平台)雇佣了评估者来对通过上述方法自动产生的标题,以及其他方法和人工翻译的标题进行评分。

结果显示被谷歌叫做神经图片标题(Neural Image Caption, NIC)的新系统非常成功。使用一个叫做PASCAL的被大家所熟知的图片数据集,神经图片标题的翻译功能明显超出其他的非人工翻译方法。据Vinyals说,NIC的BLEU (wiki) 分数是59,现今最好的非人工翻译技术的分数是25,人工翻译的分数是69。

这是个不错的结果,并且随着训练数据集的增大,这个方法产生的结果会更好。“从实验中我们非常清楚地看到,由于数据集的增大,NIC的翻译功能也相应得到提高。”谷歌团队说。

下图是一组图片翻译结果的示例-按翻译结果评分分组:

很明显,这是另一个在不久的将来机器会超越人类的项目。谷歌原论文题目:Show and Tell: A Neural ImageCaption Generator

论文链接:arxiv.org/abs/1411.4555

编者注:最近升级版的“谷歌翻译“中,已经增加了类似的功能,叫做“Word Lens“,下文摘自雷锋网(leiphone.com)

原文链接 http://www.leiphone.com/news/201501/4d8lzMhsZBfqy1NG.html

iOS版谷歌翻译推出了更新版本,新版本增加了“Word Lens”功能,可以直接对镜头捕捉到的文字图像进行实时翻译,并显示在相机视图上。并且,即使在没有网络连接的时候也能使用。遗憾的是,目前支持翻译的文字有限,仅包括英语、法语、俄语、德语、意大利语、葡萄牙语和西班牙语,不过未来会支持更多语言。

此外,新版本还增加了实时会话模式,可以在双方使用自然语速进行语音对话时,自动识别双方的语种并进行实时翻译。

本文转自:http://www.tuicool.com/articles/FbyUn2B

时间: 2024-08-06 16:04:41

谷歌工程师利用和语言翻译类似的技术开发出了一个用于翻译图片主题的机器学习算法的相关文章

Java中利用MessageFormat对象实现类似C# string.Format方法格式化

我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使得代码更为直观清楚. 最近使用java时候却java的string.Format与c#重点string.Format用法不一样,java中的string.format更类似于C语言的sprintf()方法 例如: String str=null; str=String.format("Hello,%

谷歌发布全新设计语言:跟苹果Swift天壤之别

今日凌晨,谷歌(微博)在I/O大会上发布了全新设计语言Material Design.在20多天前的WWDC上,苹果也发布了全新编程语言Swift.两家科技巨头公司,在一年一度的开发者大会上,都发布了全新的语言,但这二者却有着本质的区别. Material Design是一款全新的设计语言,谷歌计划将这款设计语言应用到Android.Chrome OS和网页等所有平台上. 谷歌最新发布的Android L系统就采用了Material Design语言,这是谷歌为了解决碎片化问题的重要举措,将统一

利用C语言实现顺序表

利用C语言实现静态顺序表 //---------- 头文件#include "SeqList.h" -------------------- #pragma once #include<stdio.h>#include<stdlib.h>#include<string.h> #define MAX 100 //------------------ 定义数据类型 ----------------------------typedef int DataT

利用C语言结构体模拟一个简单的JavaBean

利用C语言模拟一个Javabean 仅封装了,“无参构造函数”,“带参构造函数”,"toString方法" #include <stdio.h> struct User{ int ID; char *name; char *password; int age; }; void newUser(struct User *,const int ,const char *,const char *,const int); void printUserInfo(struct Use

C#语言实现类似这样的效果: 3.grams.flour

C#语言实现类似这样的效果:  3.grams.flour 参考 Martin Fowler<领域特定语言>第387页的代码,我做如下实现. 3.chi(), 三尺 转换为国际标准单位制米. namespace int_ext { class Program { static void Main(string[] args) { System.Console.WriteLine( 3.chi() ); // output 0.999 } } public static class int_e

JavaScript语言实现类似这样的效果: 3.grams.flour

JavaScript语言实现类似这样的效果: 3.grams.flour 参考 Javascript: The Good Parts,第33页 代码如下: <html> <body> <script type="text/javascript"> // copied from page 33 of Javascript: The Good Parts Function.prototype.method = function (name, func)

利用R语言进行交互数据可视化(转)

上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包.该包直接在R中生成基于D3的Web界面. rCharts包的安装 require(devtools) install_github('rCharts', 'ramnathv') rCharts函数就像lattice函数一样,通过formula.data指定数据源和绘图

谷歌工程师陈一鸣:做正确的事情,等着被开(转)

我偶然在< Team Geek: A Software Developers Guide to Working Well with Others>这本书里看到了这句有思想的话,让我产生了共鸣.这句话源自谷歌工程师陳一鳴:做正确的事情,等着被开除. 谷 歌新员工(我们称做“Nooglers”)经常会问我是如何让自己做事这么高效的.我半开玩笑的告诉他们这很简单:我选择做正确的事情,为谷歌,为世界, 然后回到座位上,等着被开除.如果没有被开除,那我就是做了正确的事情——为所有人.如果被开除了,那选错

利用R语言进行交互数据可视化

本文是本人受统计之都邀请写的一篇关于数据可视化的文章,感兴趣的同学可以上统计之都去查看. http://cos.name/2016/06/using-r-for-interactive-data-visualization/ 上周在中国R语言大会北京会场上,给大家分享了如何利用R语言交互数据可视化.现场同学对这块内容颇有兴趣,故今天把一些常用的交互可视化的R包搬出来与大家分享. rCharts包 说起R语言的交互包,第一个想到的应该就是rCharts包.该包直接在R中生成基于D3的Web界面.