作者 |  beyondma
转载自CSDN博客

近期,DeepMind发表论文,称受Marta Garnelo和 Murray Shanahan的论文“Reconciling deep learning with symbolic artificial intelligence: representing objects and relations”启发,他们提出了一种新的架构,可将目前人工智能的两大流派符号派和神经网络派相结合,并取得良好效果。但是对于如此重要的论文,在国内的主流技术论坛上竟然没有什么的解读与评论,经过了两天的研究,笔者先将我对PrediNet的一些成果发布出来,供各位参考。

人工智能的两大流派的优劣比较

人工智能主要分为符号流、神经网络、遗传等几个流派,目前是神经网络和符号流比较占上峰,但是由于几个流派间基本前提不尽相同,如何将几个流派的思想整合,一直是个比较难以解决的问题,这里简要介绍一下符号和神经网络两大流派。

符号流派认为,一组对象之间存在关系可以用符号表示,符号的组合(and, or, not,等等),可以参与推理过程,但是在DeepMind之前,符号与逻辑推理的关系都是通过专家人工指定的,而不是通过对计算机进行训练获取相应的模型。

神经网络学派则是受到神经元之间相互连接的作用为启发,尤其是以神经网络为代表的算法,其实是先随机给予每个神经元一个权重(weights),然后通过与最终结果的比较,不断训练得到最终的模型。

神经网络学派的优势是在海量数据处理及预测方面表现非常好,/root但是其模型复用性不强,比如识别人脸的模型只能用于训练人脸,而不能用来识别人手或者猫脸等其它特征;而符号学派的命题型结论可以推广,但是由于过于依赖人力,所以发展缓慢。

PrediNet结合两大流派思想的方式

在PrediNet引用的论文“Reconciling deep learning with symbolic artificial intelligence: representing objects and relations”提出了这样一种架构,先由Relation Network处理,其中Relation(关系)是由one-hot向量表示的,也就是每个relation都是彼此独立的,彼此不相关,比如性别中的男、女就是彼此独立的,用one-hot向量表示就是(0,1)和(1,0),而如果这时把他们放入同一维度表示为1和2,就会出现一些问题,因为1和2在数学就有倍数关系存在相关性了。如果读者不好理解,可以把relation简单理解为符号(symbol),输入序列经过关系网络(Relation Network)的处理,输出给MLP(多层感知机),得到最终输出。

这次DeepMind提出的PrediNet方案,与之前的架构不尽相同,输入先经过CNN(卷积神经网络)处理,再由PrediNet处理,最后由MLP(多层感知机)进行输出如下图所示,读者可以把PrediNet看做是一个管道,连接在CNN和MLP之间。而实验的结果也说明,PrediNet训练完成后是可以被复用到的。

所以划重点,这次 DeepMind 提出的 PrediNet 是一种可以被神经网络派算法所使用的管道层,而且 PrediNet 这个管道层还具备一定的通用性。

PrediNet的工作原理简述

PrediNet其实是一种降维的手段,将高维数据(如图像)转换为低维的命题表示形式。这里先把论文的原文翻译一下:

PrediNet的工作分为三个阶段:注意、绑定和评估。注意阶段,其实就是使用注意力算法选取对象,绑定阶段用计算一组三个位置关系的前两个,评估阶段计算每个谓词剩余参数的值,使结果命题为真。

具体地讲,PrediNet模块由k个头组成,每个头计算对象对之间的j个关系。对于给定的输入L,每个头h使用共享权重的WS,计算相同的关系集合,但是每个头h都基于匹配键查询(key-query matching)的点积(dot-product)注意力算法,去选取对象序列的。

每个头h计算一对单独的查询Qh 1和Qh 2(通过Wh Q1和Wh Q2),但是key space K(由WK定义)在heads之间共享。将得到的注意力掩码(attention mask)对直接应用于L,得到E1和E2,再将E1和E2由一个线性映射(Ws)到一维空间,将继续送入一个元素比较器(element-wise comparation),得到一个差分向量D, 最后,将所有k个头的输出连接起来,得到最终的向量R。向量R是表示k个头和j个关系的PrediNet模块的最终输出。

cmake --build .

这里我做一下解释,首先PrediNet将工作分配N个HEAD去完成,其中每个HEAD使用了两个独立的WQ和WQ2以及一个共享的KEY,基于匹配键查询(key-query matching)的点积(dot-product)注意力算法得到一个掩码(mask),这也就是注意阶段,然后将掩码()mask)应用到输入L上,得到E1和E2,这也就是绑定阶段。接下来使用WS对于E1和E2将降维,送入比较器得到D,并结合所有HEAD得到最终结果。

如果要深入理解PrediNet,其实关键是要理解基于WQ(实际上是查询),WK(实际是键值)的匹配键查询的点积注意力算法(key-query matching dot-product),不过鉴于博主这种技术前沿的解读与分享阅读量一直很低,所以也就不再展开了。不过如果本篇阅读能超过520的表白秘笈(https://blog.csdn.net/BEYONDMA/article/details/90300624),那么下周我就来继续分享注意力算法的相关内容。

DeepMind原论文链接:https://arxiv.org/pdf/1905.10307.pdf

原文链接:

https://blog.csdn.net/BEYONDMA/article/details/90726949

公开课精彩推荐

本次课程将会介绍如何利用TensorRT加速YOLO目标检测,课程将会着重介绍编程方法。本次课程还会涉及到 TensorRT 中数据类型,流处理,多精度推理等细节的展示。本次课程特色是讲解+示例分享。本次课程中,QA也是一个非常精彩的环节。

推荐阅读

  • 开源要自立?华为如何“复制”Google模式

  • 谷歌用1.2万个模型“推翻”现有无监督研究成果!斩获ICML 2019最佳论文

  • 24式,加速你的Python

  • 荔枝“自由”?朋友,你实现了吗?

  • 为防 Android 碎片化?Google 强迫开发者使用自有开发工具!

  • Docker 存储选型,这些年我们遇到的坑

  • 从制造业转型物联网,看博世如何破界

  • 回报率850%? 这个用Python优化的比特币交易机器人简直太烧脑了...

  • 面试阿里技术岗,竟然挂在第4 轮……

你点的每个“在看”,我都认真当成了喜欢

AlphaGo之父DeepMind再出神作,PrediNet原理详解相关推荐

  1. 目标检测系列——开山之作RCNN原理详解

  2. “微信之父”张小龙首次演讲实录:详解微信平台四大价值观

    "微信之父"张小龙首次演讲实录:详解微信平台四大价值观(转) 1月11日上午,正在广州举行的"2016 微信公开课PRO版"上,被称为"微信之父&qu ...

  3. MOS管工作动画原理图详解

    MOS管工作动画原理图详解 绝缘型场效应管的栅极与源极.栅极和漏极之间均采用SiO2绝缘层隔离,因此而得名.又因栅极为金属铝,故又称为MOS管.它的栅极-源极之间的电阻比结型场效应管大得多,可达101 ...

  4. 联想微型计算机s5l5主板,看清再买! 笔记本保修条例详解 联想篇

    看清再买! 笔记本保修条例详解 联想篇 已经成为国际级企业的PC巨头联想在国内拥有非常高的知名度,尤其是今年以来,联想更是推出了多款设计非常优秀.外观非常漂亮的本本.对于消费者来说 (本文共1页) 阅 ...

  5. 高速的二舍八入三七作五_详解青银高速市区段计费方法人工车道比ETC贵3元

    青岛新闻网1月7日讯(记者 江东旭 )今天,记者从青岛市交通运输局获悉,根据交通运输部关于取消高速公路省界收费站工作安排,2020年1月1日0时完成高速公路收费系统切换,进入全国高速公路联网收费模式. ...

  6. 三极管和MOS管工作原理详解

    PN结的形成 PN结是三极管以及场效应管中最基本的组成部分,要想彻底搞明白三极管以及场效应管的工作原理,必须先搞清楚PN结形成的原理和工作特性. 本征半导体以及空穴对 本征半导体(intrinsic ...

  7. 世界大百科全书!耶鲁大学教授再出神作!用1000幅图片,讲明白45亿年历史......

    ▲点击查看 哈佛大学本杰明教授曾说:"越是到了高等教育的阶段,人们就越重视从历史中总结经验,尤其是精英阶段. 很多人都想好好读读历史,但是一直以来,读历史都有一个问题: 看着满满都是字的大部 ...

  8. vue+element-ui之tree树形控件有关子节点和父节点之间的各种选中关系详解

    做后端管理系统,永远是最蛋疼.最复杂也最欠揍的事情,也永远是前端开发人员最苦逼.最无奈也最尿性的时刻.蛋疼的是需求变幻无穷,如同二师兄的三十六般变化:复杂的是开发难度寸步难行,如同蜀道难,难于上青天: ...

  9. Java中高级核心知识全面解析——常用框架(SpringMVC-工作原理详解)

    一.先来看一下什么是 MVC 模式 MVC 是一种设计模式. MVC 的原理图如下: 二.SpringMVC 简单介绍 SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控 ...

最新文章

  1. Linux下PS1设置
  2. javabean属性的类型选择包装类还是基本数据类型
  3. java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码
  4. php 输出rtf,有没有办法在PHP中访问压缩RTF和输出RTF代码
  5. 【转】海量数据相似度计算之simhash和海明距离
  6. opencv生成日志_OpenCV-Utils学习日志:VideoCapture使用样例
  7. 回顾一年的工作历程_【设备管理公司】召开20202021年度总结计划表彰暨工作述职会议...
  8. Scala 函数式编程
  9. C++---const关键字
  10. php设置自动关机开机,设置电脑自动开机关机方法介绍
  11. 常用的 T-SQL 语言
  12. 【C++】实现一个日期计算器
  13. Pycharm远程调试服务器代码出错:[Errno 2] No such file or directory
  14. 宽带计费认证系统的PPPoE认证技术
  15. 多智能体深度强化学习综述与批判——Matthew E. Taylor
  16. 一部以中国现实为大背景的英国科幻电影《未来密码46》
  17. 微信域名检测的C#实现
  18. 新闻编辑室第三季/全集The Newsroom迅雷下载
  19. 点点百度收录批量查询软件【过安全验证】
  20. pb开发的界面出现问号_SnBiX 低温焊锡膏开发及其性能评价

热门文章

  1. 网络分布式软件bonic清除
  2. 11matlab [A rank]=sort (B), P = p(rank,: )的问题 and ~符号运算
  3. C/C++、嵌入式开发岗笔试集锦
  4. 持续集成(一)为什么我们迫切需要持续集成
  5. iOS 数字滚动 类似于老 - 虎- 机的效果
  6. document.all使用
  7. 【随记】动态调用web服务
  8. 2021第12届蓝桥杯省赛 -- 填空题:试题B:直线
  9. 【青少年编程】马雷越:商品价格竞猜
  10. Strategy_Level3