当我们和计算机交互时,它看到的是什么?

计算机虽然有了人工智能的程序支持,但事实上也不能将其机器学习的功能等同于像人类那样。至少,到目前还不是这样。那么,向Google的图片识别或者Facebook的M应用等一类系统,它们是怎么能够理解自然语言或视觉的呢?下面,是人工智能系统Josh的自我独白:

简而言之,我们将单词和短语的含义以数字的形式储存在计算机上。目前,市场上有许多这类产品,比如将单词转换成向量形式的工具word2vec,该工具使用浅人工神经网络来计算文字嵌入。此外也有一些诸如记忆网络的技术,能够自主学习文本,进行一些简单有限的问答。

在过去的几年中,由于先进的人工神经网络算法有了许多惊人的成果,图像识别和数字信号处理技术异常火爆。但是相比较之下,同是人工智能领域的理解自然语言方面似乎显得困难得多,为什么呢?

自然语言处理本质上是另一种约束关系的问题

研究自然语言是困难的,很多时候甚至超过了我们的想象——因为语言永远不变的是改变,因为全世界有千万种语言……无论你的观点是什么,自然语言难以为算法所处理的最大原因是——我们没有足够多的样本。

确实,我们拥有大量的文本资源,包括书籍、博客、社交媒体等。但即便如此,我们得到的用以分析的文本相对来说还显得不足。看一看以下图片:

当我们分析音频数据,或者图像数据时,事实上我们得到的数据信息比人类意

识中的要多。以佳能5D Mark III相机为例,摄影领域的人通常会说这是一个令人尊敬的相机,因为它有着5760 x 3840的分辨率。因为每个颜色像数都分别由红、蓝、绿、α值(RGBA)来表示,所以每个像素拥有4个标准数值。在其原始格式当中,一张这种像素的图片大约含有 88.47 MB数据。相比较之下,莎士比亚的所有作品也只有4.4 MB。一个像数等于4个字节,一个字符则占一个字节。

这意味着:

1.解析文本的时候,每一个令牌(字词的NLP术语)更多的是影响文本的整体分析。

2.生成文本的时候,每一个被选出来的令牌才能影响结果。

换句话说,在文本当中,字符和令牌才是占据主要成分的元素,和像素不同。

好了,那我们是如何处理文本的呢?在一个严格的解析系统中,我们需要用数值格式来表示文本,提示为向量形式。现在我们还是要继续理解很简单的向量表示,而未来则可以处理更为复杂的表达了。

我们来以几个词组为例:

1.Turn on the lights(开灯)

2.Power on the lights(打开灯的电源)

3.What time is it?(现在几点?)

4.What is the current time?(当前时间是几点?)

我们需要做的是创建一个叫词典的东西。换句话说,我们想要将现有的词组用特有的令牌技术来创建一个词汇表。然后,我们需要对信息做一些隐式预处理,去掉标点符号等。最后,我们给每一个唯一码赋予其各自的索引,从而生成自己的词汇向量:

0 turn

1 on

2 the

3 lights

4 power

5 what

6 time

7 is

8 it

9 current

由于每一个字代表一个索引,因此我们可以使用反向散列数据结构来得到每个单词的索引,然后无论是否每一个字都是给定文本,我们都可以将这些字表示为一系列的布尔值(布尔值:是“真” True 或“假” False 中的一个)。比如,上述例句就可以表示为:

1.{ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }

2.{ 0, 1, 1, 1, 1, 0, 0, 0, 0, 0 }

3.{ 0, 0, 0, 0, 0, 1, 1, 1, 1, 0 }

4.{ 0, 0, 1, 0, 0, 1, 1, 1, 0, 1}

有了这些向量,我们可以使用向量点积得到一个粗略的相似度计算。所谓点积,就是接受在实数R上的两个向量并返回一个实数值标量的二元运算。

所以,上述前两个例句的点积就是:

1 * 0 = 0

1 * 1 = 1

1 * 1 = 1

1 * 1 = 1

0 * 0 = 0

0 * 0 = 0

0 * 0 = 0

0 * 0 = 0

0 * 0 = 0

0 * 0 = 0

这些数值加起来和是3。而如果将第一个和第三个句子做同样的处理:

1 * 0 = 0

1 * 0 = 0

1 * 0 = 0

1 * 0 = 0

0 * 0 = 0

0 * 1 = 0

0 * 1 = 0

0 * 1 = 0

0 * 1 = 0

0 * 0 = 0

那么和为0。这就是说,“Turn on the lights”和“What time is it”没有丝毫的相似。

你也许会发现,我们目前的词汇处理规模小到只有10个词。不过,未来当我们探索更多语义词嵌入时,我们还可以压缩向量,获得更准确的上下文理解和表达。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2015-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

AI 技术讲座精选:深度拼写——重新认识21世纪的拼写校正程序

本文是一篇关于工程学的内容,讲述的是当前较先进的技术——拼写校对程序。这项技术的用处就是让低级工程师使用起来得心应手。 许多年前,我根据Peter Norvig...

2708
来自专栏深度学习自然语言处理

这么好的视频不看吗?深度学习和线代,微积分

大家盼望的中秋节和十一已经基本都要过去了,大家是不是都玩的挺开心呀?(哎,我可没0.0,基本没离开过实验室,别认为我在学习

492
来自专栏PaddlePaddle

重大进展!Paddle Fluid 加速float16卷积神经网络预测!

PaddlePaddle Fluid可以支持在卷积神经网络上进行float16模式的低精度预测了!

822
来自专栏机器之心

资源 | 谷歌发布Quick Draw涂鸦数据集:5000万张矢量图,345个类别

选自Github 机器之心编译 参与:吴攀、李泽南 还记得谷歌上个月推出的 AutoDraw 吗?这是一个能把你的随手涂鸦变成绘画的人工智能技术工具。谷歌也曾发...

36612
来自专栏量化投资与机器学习

【HFT系列】高频价格动态策略

2294
来自专栏专知

【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现

【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不使用人类先验知识,使用纯强化学习,将价值...

2754
来自专栏媒矿工厂

【视频编码】 Content Aware ABR技术(十一)

在本系列前面的帖子中,我们连续梳理了Netflix、YouTube、Beamr、EuclidIQ、Bitmovin、Harmonic、V-Nova、Cisco、...

1101
来自专栏程序员叨叨叨

1.2 GPU VS CPU

从上节阐述了GPU的发展历史,那么为什么在CPU之外要发展GPU?GPU 的 vertex programmability 和 fragment program...

935
来自专栏专知

【开源】基于Keras的知识图谱处理实战

【导读】近日,Daniel Shapiro博士利用开源的图结构卷积网络进行知识图谱处理,并应用于交易数据的欺诈检测,其知识图谱处理相关源码也开源出来,并且Dan...

5164
来自专栏WeaponZhi

机器学习股票价格预测初级实战

上一篇文章,我用了4000字这样比较长的篇幅,介绍了一些金融和量化交易相关的基本知识,还大概说了下人工智能在金融方面使用的优劣。这篇文章我们将用一个具体代码来进...

1072

扫码关注云+社区