《Relational inductive biases, deep learning, and graph networks》笔记
该论文的作者来自AI界的两大组织——DeepMind和Google Brain,应该都是大牛。该论文主要回顾和总结现有的图网络,统一和扩展现有的方法,提出了自己的图网络结构 graph networks。
Combinatorial generalization
论文首先提出了一个观点:组合泛化combinatorial generalization。人类智慧的一个关键特征是能够“无限地使用有限的手段(infinite use of finite means)”,比如一小部分元素(如文字)可以以无限的方式有效的组合(例如组成新的句子)。这反映了组合泛化的原理,从已知构建块构建新的推论,预测和行为。
组合泛化,需要组合各种元素,根据元素之间的关系,依照某些规则,生成新的元素和新的关系。生成的过程体现了关系推理的过程。现有的网络架构(如神经网络,卷积神经网络)因为其固定的输入和输出的限制,不能灵活地组合各种元素,也因为其固定的结构,不能实现任意形似的关系推理。而图网络没有太多的限制,它可以灵活地组合元素,保存元素间的关系,能够进行关系推理,能够解决各种问题,比如,在论文中作者利用图网络实现最短路径搜索,数组排序和物理模型模拟。
Relational reasoning
定义由一组已知的构建块组成的产物为结构(structure)。“Structured representations” 表示组合的方式,“Structured computations” 表示对组合的整体进行操作。关系推理涉及操作实体(entity)和关系(relation)的"Structured representations"。使用规则(rule)来组合他们。一些关键的术语:
- entity: 一个包含属性的元素。
- relation: entities间的属性。
- rule: 函数,把entities和relations映射成其他的entities和relations。
Inductive biases
我不太理解Inductive biases。学习是通过观察和实践来理解有用的知识。学习包括搜索一个解决方案,希望它能提供更好的表现。但大多数情况下,许多方案有同等的表现效果。一个inductive bias允许学习算法倾向于选择其中一个解决方法,与观察到的数据无关。比如,正则化项使得学习算法倾向于选择参数数值小的模型。
Inductive biases, 根据算法、模型、网络的特征属性,算法倾向于从多种解决方案中选择其中一个解决方法,这是”归纳出来的偏向“。Relational inductive biases,就是根据关系的得到的偏向。
作者总结了现有网络组件的entities、relations、relational inductive biases。
Graph networks
图网络,需要包括一下几个要素:节点、关系、属性。图用3元组表示G=(u,V,E)G=(\mathbf{u}, V, E)G=(u,V,E),其中u\mathbf{u}u表示全局属性。V={vi}i=1:NvV=\{\mathbf{v}_i\}_{i=1:N^v}V={vi}i=1:Nv表示NvN^vNv个节点,每个节点的属性是vi\mathbf{v}_ivi。E={(ek,rk,sk)}k=1:NeE = \{(\mathbf{e}_k,r_k,s_k)\}_{k=1:N^e}E={(ek,rk,sk)}k=1:Ne表示NeN^eNe条边,其中ek\mathbf{e}_kek是边的属性。sks_ksk表示箭头的起始节点,rkr_krk表示箭头的指向节点。如下图
现在我们考虑一下rule,及如何操纵图。作者定义了一些更新函数ϕ\phiϕ和聚合函数ρ\rhoρ,用来更新图的节点、边和全局属性。更新的过程是
- 更新边的属性ek\mathbf{e}_kek,和边ek\mathbf{e}_kek相关的元素有ek,vrk,vsk,u\mathbf{e}_k,\mathbf{v}_{r_k},\mathbf{v}_{s_k},\mathbf{u}ek,vrk,vsk,u。
- 更新节点的属性vi\mathbf{v}_ivi,和节点vi\mathbf{v}_ivi相关的元素有vi,u\mathbf{v}_i, \mathbf{u}vi,u和所有指向vi\mathbf{v}_ivi的边,这些边的信息我们组合起来,用eˉi′\bar{\mathbf{e}}'_ieˉi′表示(′'′表示更新后的属性)。
- 更新全局属性u\mathbf{u}u,和u\mathbf{u}u相关的元素有u\mathbf{u}u,所有节点的属性和所有边的属性。我们把所有节点组合起来,用vˉ′\bar{\mathbf{v}}'vˉ′表示,所有边组合起来,用eˉ′\bar{\mathbf{e}}'eˉ′表示。
更新的公式如下
上面图更新的过程是一个大概的过程,根据不同问题不同情况,更新函数ϕ\phiϕ和聚合函数ρ\rhoρ可以有不同的实现。更新顺序也可以根据实际情况二有所调整。聚合函数的输入参数的个数不定,所以集合函数一般是取均值函数、取最大值函数等等。
考虑到神经网络几乎可以拟合任意映射,作者提出的一个具体实现是使用神经网络作为更新函数,具体如下
《Relational inductive biases, deep learning, and graph networks》笔记相关推荐
- 《信贷的逻辑与常识》笔记
序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...
- AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟
AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...
- 人工智能入门算法逻辑回归学习笔记
逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...
- 【逻辑回归学习笔记】
算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...
- 逻辑回归函数学习笔记
继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...
- 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...
- LVM逻辑卷分区笔记
磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...
- 适合理工直男的钟平老师逻辑英语学习笔记
一切的一切都只是套路! --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...
- 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象
文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...
- 线性回归、逻辑回归学习笔记
学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...
最新文章
- 不使用任何框架实现CNN网络
- Rootkit Hunter Sourcecode Learning
- commons-fileupload-1.2.1实现文件上传
- 这大概是一篇最简单最清晰的Java JVM执行流程
- 成功解决python\ops\seq2seq.py TypeError: ms_error() got an unexpected keyword argument 'labels'
- java 队列的数组_JAVA-循环数组实现简单的队列
- 好想学python怎么玩_Python 应该怎么学?
- jquery获取html代码怎么写,jQuery从html代码中获取对应标签的写法
- 同步/异步与阻塞/非阻塞的区别
- Spark中如何管理Spark Streaming消费Kafka的偏移量
- eve星战前夜登录提示服务器维护中,EVE星战前夜进不去怎么办 游戏进不去问题解决方法...
- iOS开发之五:常用控件--UITextField的使用
- 查找出现次数 oracle,ORACLE计算某个列中出现次数最多的值
- setTimeout和setInteval
- 321. Create Maximum Number
- 单片机的c语言程序控制直流电机,(单片机控制直流电机)毕业论文.doc
- Android开发系列(十一) QQ登陆界面——Android控件使用实例
- rk3399pro Andoid9.0 修改系统默认音量设置
- Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletCont
- 1bit等于多少字节,换算方法??
热门文章
- 吴基传:不要把云计算和大数据等同
- C# winform窗体程序-菜单动态合并(MDI窗体)
- 关于前n个自然数的平方和公式的证明方法
- 【科研绘图】3dmax一键生成太阳系插件SolarSystem使用方法详解
- 创业必看——开公司的流程
- 使用Verilog搭建一个单周期CPU
- linux下软件发布,LINUX下发布安装自己的软件
- JAVA人物转体怎么实现_与C++语言不同,Java语言不通过____语句实现跳转
- 百万级访问网站前期的技术准备(原文来自http://www.58maisui.com)
- 个人计算机多核cpu好处,电脑cpu核数全开会怎样 对电脑有什么影响