0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将神经网络视作模型的后果是什么?

zhKF_jqr_AI 来源:未知 作者:李倩 2018-08-23 09:06 次阅读

编者按:Microsoft Semantic Machines资深研究科学家、UC Berkeley计算机科学博士Jacob Andreas指出,神经网络不应视为模型,因为神经网络的模型和推理过程不可分割。应该将推理过程视为机器学习问题的一等公民。

在大多数介绍人工智能的材料中,模型和推理过程的区分很关键。例如,HMM(隐马尔可夫模型)是一类模型;维特比算法则是用于推理过程的一种算法,前向传播算法是另一种推理算法,粒子滤波又是一种推理算法。

很多人将神经网络描述为一类模型(他们大概也把神经网络视作模型)。我主张这种观点很有误导性,将神经网络看成纠缠不清的模型-推理对(model-inference pairs)会更有用。“模型-推理对”是一个长而拗口的词,看起来现在也没有什么很好的现成的简称,因此我将用模推(monferences)来指代这一概念。我主张我们应该将神经网络视为模推的一个例子。(搭配某种特定的HMM参数的维特比算法的一种实现,同样是模推。)

我将引用一些现有的论文,这些论文自然而然地符合将神经网络视为模推这一视角——看起来这一想法对许多人来说已经是显然的了。但我认为这一想法未曾被命名,也未曾经过系统的处理。我希望其他人会像我一样,觉得下面的内容是有用的(或者至少厘清了一些东西)。

将神经网络视作模型的后果是什么?让我举一个自己的例子来说明:

我第一次看到循环神经网络的时候,我觉得“这是一个有趣的模型,搭配一个糟糕的推理过程”。循环网络看起来像HMM。HMM有离散的隐藏状态,而循环网络有隐藏状态向量。在HMM中进行推理时,我们保持和输出分布相一致的隐藏状态,但在循环网络中进行推理时,我们仅仅保持单个向量——单个假设,加上贪婪推理过程。如果采用某种建模不确定性的方法,不是更好吗?为什么不像卡尔曼滤波一样对待RNN推理?

这完全错了。探索为什么这是错的,正是本文剩下部分的目标。

简单来说,将循环网络的隐藏状态视作单个假设是毫无理由的。毕竟,一个足够大的隐藏向量可以轻而易举地表示前向传播算法中的整张概率表——甚至可以表示粒子滤波的状态。“HMM隐藏状态 = RNN隐藏状态”这一类比不好;“HMM解码器状态 = RNN隐藏状态”这一类比更好。

让我们通过实验来探索这一点。(本节中的完整代码见git.io/fN91L)。

我随机生成了一个HMM,从中取样了一组序列,并应用经典的最小化风险过程。最终得到的“在线标签”精确度为62.8。

针对这一在线标签问题,另一种完全可以接受(但某种程度上更费力)的生成模推的方法是从HMM中抽取更多样本,然后使用(观测, 隐藏)序列作为RNN网络的训练数据(x, y):

(其中每个箭头表示内积加ReLU激活或log损失)。这一情形下取得的精确度为62.8。

两个精确度是一样的,这仅仅是个巧合?让我们查看一些预测:

所以,甚至当两个模推犯错的时候,都犯了一样的错。

当然,我们知道,就这一问题而言,如果我们应用完整的前向-后向算法,并且同样做出最大化边际概率的预测,能得到稍好的结果。改进的经典过程得到的精确度为63.3。如我们所料,这比上面两种在线模型的表现要好。另一方面,在取自HMM的样本上训练一个双向循环网络同样得到63.3的精确度。

预测取样:

注意,我们这里使用的神经网络没有编码任何关于经典消息传递的规则,并且绝对没有编码任何HMM内部的生成过程。然而在两种情形下,神经网络都成功取得了和结构相同的经典消息传递过程一样好(但没有更好)的精确度。实际上,该神经训练过程相当于一段代码,这段代码和前向-后向算法做出一致的预测,却对前向-后向算法毫无所知!

神经网络不是魔法——当我们的数据实际上是由HMM生成的时候,我们无法指望神经模推击败(信息论上最优的)经典模推。但经验告诉我们,两者的表现一样好。随着我们增强神经架构,以匹配更强大的经典推理过程的算法结构,它们的表现提升了。双向循环网络优于前向循环网络;每个“真”隐藏向量间具有多层的双向网络(arXiv:1602.08210)可能在一些任务上表现更好。

更妙的是,我们也许可以少操心更困难的情形,也就是原本需要手工调整某种逼近推理方案的情形。(例如:假设我们的转移矩阵是一个巨大的排列组合。在经典推理中,重复相乘可能非常昂贵,而尝试取得转移矩阵的低秩逼近则会损失信息。而一个神经模推却具备紧凑地表达模型动力学的潜力。)

目前为止我们讨论的是序列,但在更多结构化数据上同样存在对应。就树形问题而言,我们可以应用某种类似固定树上的内向算法(aclweb/P13-1045),或者整个稀疏化解析表上的内向-外向算法(aclweb/D15-1137)。而对任意图而言,我们可以应用“图卷积”(arXiv:1509.09292),随着图卷积的重复,它开始看起来像是置信传播。

这里有一条一般原则:任何保持离散状态分布的推理算法,都可以转换:

将表单元或离散分布替换为向量

将单元间的信息替换为循环网络

展开“推理”过程(选择一个合适的迭代数)

通过反向传播进行训练

所得的模推至少和相应的经典过程具备同样的表达能力。在有必要逼近的地方,我们可以(至少从经验上说)通过在数据上端到端地训练,学习正确的逼近。

这种通过反向传播逼近推理过程,但并不尝试学习推理函数本身的想法已经提出了有一段时间了。(doi/10.1.1.207.9392、 arXiv:1508.02375)

我认为结合这一框架的各部分至少可以写一篇句法分析的论文,而图结构数据方面还有很多工作可以做。

我说明了模推这一角度是有用的。但是果真如此吗?神经网络确实是模推,而不是模型,这有准确的意义吗?

不。这里有一个基础性的可识别问题——我们无法真正区分“酷炫的模型搭配微不足道的推理”和“神秘的模型搭配复杂的推理”。因此,给定训练好的神经网络,询问它进行推理的模型是哪个同样毫无意义。另一方面,通过蒸馏法训练的神经网络(arXiv:1503.02531)看起来倒挺像“同一模型,不同模推”的良好人选。同时,将神经网络视作模型这一角度也不应该完全忽略:它形成了成果累累的系列工作,将CRF中的对数线性回归模型替换为神经网络(arXiv:1507.03641)。尽管这些方法通常的卖点之一是“你可以保留动态程序”,我们之前论证了这一点在恰当组织的神经网络上同样成立。

不管怎么说,由于机器学习社区这一角落的研究重点在向计划、推理和困难算法问题(nips2015/4G4h)转变,我认为将神经网络视作模推的角度将占统治地位。

除此以外,当我们回顾十年前的“深度学习革命”时,我认为最重要的经验教训是端到端训练解码器的重要性和推理过程,甚至在几乎看起来完全不像是神经网络的系统(arXiv:1601.01705)中也是如此。所以在创建学习系统的时候,不要问:“我的变量的概率关系是什么?”而问:“我如何逼近我的问题的推理函数?”,并尝试直接学习这一逼近。为了高效地达成这一点,我们可以使用我们所知道的关于经典推理过程的一切知识。不过,我们同时也应该开始将推理视作学习问题的一等公民。

感谢Matt Gormley(他的EMNLP演讲让我开始思考这一问题),以及Robert Nishihara和Greg Durrett的反馈。

同样感谢Jason Eisner的金玉良言:“一个拙劣的混成词,因为monference应该是一个像model一样的可数名词,但它的后缀却取自inference这个集合名词。我可没说infedel要好太多……”

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4733

    浏览量

    100412
  • 人工智能
    +关注

    关注

    1789

    文章

    46638

    浏览量

    237001
  • 机器学习
    +关注

    关注

    66

    文章

    8348

    浏览量

    132299

原文标题:神经网络不应视为模型,推理过程当为机器学习问题一等公民

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    神经网络教程(李亚非)

      第1章 概述  1.1 人工神经网络研究与发展  1.2 生物神经元  1.3 人工神经网络的构成  第2章人工神经网络基本模型  2.
    发表于 03-20 11:32

    【PYNQ-Z2试用体验】神经网络基础知识

    学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络
    发表于 03-03 22:10

    如何构建神经网络

    原文链接:http://tecdat.cn/?p=5725 神经网络是一种基于现有数据创建预测的计算系统。如何构建神经网络神经网络包括:输入层:根据现有数据获取输入的层隐藏层:使用反向传播优化输入变量权重的层,以提高
    发表于 07-12 08:02

    卷积神经网络模型发展及应用

    神经网络的思想起源于1943年McCulloch 和 Pitts 提出的神经元模型[19],简称 MCP 神经元模 型。它是利用计算机来模拟人的神经元反应的过 程,具有开创性意义。此
    发表于 08-02 10:39

    神经网络模型原理

    神经网络模型原理介绍说明。
    发表于 04-21 09:40 7次下载

    卷积神经网络模型有哪些?卷积神经网络包括哪几层内容?

    卷积神经网络模型有哪些?卷积神经网络包括哪几层内容? 卷积神经网络(Convolutional Neural Networks,CNN)是深度学习领域中最广泛应用的
    的头像 发表于 08-21 16:41 1865次阅读

    卷积神经网络模型原理 卷积神经网络模型结构

    数据的不同方面,从而获得预测和最终的表​​现。本文提供有关卷积神经网络模型的工作原理和结构的详细信息,包括其在图像、语音和自然语言处理等不同领域的应用。 卷积神经网络的工作原理: 卷
    的头像 发表于 08-21 16:41 973次阅读

    常见的卷积神经网络模型 典型的卷积神经网络模型

    各种任务表现出色。在本文中,我们介绍常见的卷积神经网络模型,包括LeNet、AlexNet、VGG、GoogLeNet、ResNet、Inception和Xception。 1. LeNet
    的头像 发表于 08-21 17:11 2745次阅读

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型

    cnn卷积神经网络模型 卷积神经网络预测模型 生成卷积神经网络模型  卷积
    的头像 发表于 08-21 17:11 1174次阅读

    卷积神经网络模型搭建

    卷积神经网络模型搭建 卷积神经网络模型是一种深度学习算法。它已经成为了计算机视觉和自然语言处理等各种领域的主流算法,具有很大的应用前景。本篇文章
    的头像 发表于 08-21 17:11 910次阅读

    卷积神经网络模型的优缺点

    等领域中非常流行,可用于分类、分割、检测等任务。而在实际应用中,卷积神经网络模型有其优点和缺点。这篇文章详细介绍卷积神经网络模型的特点、优
    的头像 发表于 08-21 17:15 4204次阅读

    构建神经网络模型的常用方法 神经网络模型的常用算法介绍

    神经网络模型是一种通过模拟生物神经元间相互作用的方式实现信息处理和学习的计算机模型。它能够对输入数据进行分类、回归、预测和聚类等任务,已经广泛应用于计算机视觉、自然语言处理、语音处理等
    发表于 08-28 18:25 1006次阅读

    人工神经网络模型的分类有哪些

    人工神经网络(Artificial Neural Networks, ANNs)是一种模拟人脑神经元网络的计算模型,它在许多领域,如图像识别、语音识别、自然语言处理、预测分析等有着广泛的应用。本文
    的头像 发表于 07-05 09:13 847次阅读

    人工神经网络模型包含哪些层次

    人工神经网络(Artificial Neural Network,ANN)是一种模拟人脑神经网络的计算模型,具有自适应、自学习、泛化能力强等特点。本文详细介绍人工
    的头像 发表于 07-05 09:17 462次阅读

    PyTorch神经网络模型构建过程

    PyTorch,作为一个广泛使用的开源深度学习库,提供了丰富的工具和模块,帮助开发者构建、训练和部署神经网络模型。在神经网络模型中,输出层是尤为关键的部分,它负责
    的头像 发表于 07-10 14:57 418次阅读