【学术】打开黑匣子—MIT解构神经网络工作原理

神经网络是通过分析大量的训练数据学会执行计算任务,这是人工智能近代取得的最令人印象深刻的进步,包括语音识别和自动翻译系统。

然而在训练期间,神经网络不断地调整其内部设置,甚至连创建者也无法解释其原理。于是,最近在计算机科学领域的许多工作都聚焦于研发一种技术,确定神经网络如何发挥作用。

在最近的几篇论文中,麻省理工学院计算机科学和人工智能实验室(CSAIL)和卡塔尔计算研究所(QCRI,Qatar Computing Research Institute)的研究人员使用了最近研发的解释技术,该技术已经用于分析机器翻译和语音识别中训练完成的神经网络。

他们为一些常见的网络运作方式的直觉找到了实证支撑。例如,在转到更高层次的任务(如转录或语义解释)之前,这些系统似乎专注于较低级别的任务(如声音识别或词性识别)。

研究人员也发现了翻译网络所考虑的数据类型有一个惊人的遗漏,并且表明纠正这种漏洞会改善了网络的性能。这种改进是虽然并不明显,但它指出分析神经网络可能有助于提高人工智能系统精度。

“在机器翻译方面,从历史上看,存在着不同层次的金字塔。”一位CSAIL高级研究科学家,Jim Glass说,他与Yonatan Belinkov(麻省理工学院电子工程和计算机科学专业的研究生)一起参与这个项目。“在最底层有单词,表面形式(surface form),金字塔的顶部是某种形式的语言表达,你可以在不通的层次做语法和语义。这个概念非常抽象,简而言之就是,你在金字塔上走得越高,翻译成新的语言越容易,然后你再下到底层进行下次翻译。因此,Yonatan所做的一部分就是试图找出这个概念的哪些方面被编码在网络中。”

有关机器翻译的工作近期在国际自然语言处理联合会议上发表了两篇论文。Belinkov是第一作者,Glass是资深作者。另一篇,Belinkov是一个联合作者。卡塔尔计算研究所的研究人员,包括LluísMàrquez,Hassan Sajjad,Nadir Durrani,Fahim Dalvi和Stephan Vogel也参与了这两个研究。Belinkov和Glass是分析语音识别系统的唯一作者,Belinkov上周在神经信息处理研讨会上提出了这个系统。

原理

神经网络的名称来源是因为它们很接近人脑的结构。通常情况下,它们被排列成层,每层都由许多简单的处理单元(节点)组成,每个节点都连接到上下层的几个节点。数据被馈送到最低层,其节点处理它并将其传递到下一层。层之间的连接具有不同的“权重”,这决定了任意一个节点的输出到下一个下一个节点的计算量。

在训练期间,节点之间的权重不断调整。在网络训练完成后,研发人员可以确定所有连接的权重,但是由于节点和连接的数量太过庞大,推导出这些权重编码的算法几乎是不可能的。

研究人员采用的技术包含提取训练完成的网络,并利用其每个层的输出响应单个训练实例,以训练另一个神经网络执行特定的任务。这使他们能够确定每一层优化的任务。

在语音识别网络中,Belinkov和Glass使用了单层的输出来训练一个系统来识别“phones”,不同的语音单元(尤其是口语)。例如,“tea”,“tree”和“but”等词语中的“t”可能被分类为单独的phones,但是语音识别系统必须使用字母“t”来转录所有这些。事实上,Belinkov和Glass发现,较低级别的网络在识别phones方面比在较高级别上更好,然而,这种区别可能不那么重要。

同样的,在去年夏天在计算语言学协会年会上提出的一篇论文中,Glass,Belinkov和QCRI的同事指出,机器翻译网络的较低级别特别擅长识别词性和词形特征,如时态,数字和动词的词形变化等。

意义

但在新的论文中表明,更高层次的网络在语义标记方面更好。正如Belinkov所解释的那样,一个词性标注者会认识到“herself”是一个代词,但是这个代词的含义在句子“she bought the book herself”和“she herself bought the book”是不同的。而语义标注者会为“herself”的这两个实例分配不同的标签,就像机器翻译系统可能会为给定的目标语言中找到不同的翻译一样。

性能最好的机器翻译网络使用编解码模型,所以MIT和QCRI研究人员的网络也使用它。在这样的系统中,源语言的输入通过网络的几个层(被称为编码器)来产生向量,该向量是以某种方式表示输入的语义内容的一串数字。该向量通过网络的多个层解码器产生目标语言的翻译。

尽管编码器和解码器是一起训练的,但它们可以被认为是独立的网络。研究人员发现,编码器的低层能很好的区分形态,但是解码器的高层不能。因此,Belinkov和QCRI的研究人员重新训练网络,不仅要根据翻译的准确性对其表现进行评分,还要对目标语言的形态进行分析来判定。实质上,这迫使解码器更好的区分形态。

利用这种技术,他们重新训练网络,将英语翻译成德语,发现其准确度提高了3%。虽然看起来改变不大,这是这表明,探索神经网络的本质可能不仅仅是一项学术活动。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-12-12

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1853
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

842
来自专栏我和未来有约会

silverlight向服务器post数据类

using System; using System.Net; using System.Windows; using System.Windows.Co...

1975
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3226
来自专栏菩提树下的杨过

遍历文件夹所有文件(示例)

//要引用 using System.Collections.Specialized; public StringCollection GetAllFile...

2159
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2730
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

1861
来自专栏C/C++基础

C#获取系统当前时间

ystem.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=Sy...

1153
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20410
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

23610

扫码关注云+社区