本文转载自:《学习geometric deep learning笔记系列》第一篇,Non-Euclidean Structure Data之我见

本文是笔者在学习Geometric deep learning的过程中的一些笔记和想法,较为零散,仅仅当作自娱自乐,如有谬误,勿怪勿嗔,请在评论区联系笔者讨论指出,谢谢。


总的来说,数据类型可以分为两大类,分别是:欧几里德结构数据(Euclidean Structure Data) 以及 非欧几里德结构数据(Non-Euclidean Structure Data),接下来谈自己对这两类数据的认识。

欧几里德结构样本

在我们日常生活中,最常见到的媒体介质莫过于是图片(image)视频(video)以及语音(voice)了,这些数据有一个特点就是:“排列整齐”。什么叫做排列整齐呢?举例子来说,图片可以用矩阵来表达其像素,就如同下图所示[2]:

对于某个节点,我们很容易可以找出其邻居节点,就在旁边嘛,不偏不倚。而且,图片数据天然的,节点和邻居节点有着统计上的相关性,因此能够找出邻居节点意味着可以很容易地定义出卷积这个操作出来,而我们在深度学习的过程中知道,卷积这个操作是提取局部特征以及层次全局特征的利器,因此图片可以很容易定义出卷积操作出来,并且在深度网络中进行进一步操作。

而且,因为这类型的数据排列整齐,不同样本之间可以容易的定义出“距离”这个概念出来。我们且思考,假设现在有两个图片样本,尽管其图片大小可能不一致,但是总是可以通过空间下采样的方式将其统一到同一个尺寸的,然后直接逐个像素点进行相减后取得平方和,求得两个样本之间的欧几里德距离是完全可以进行的。如下式所见:

因此,不妨把图片样本的不同像素点看成是高维欧几里德空间中的某个维度,因此一张m \times nm×n的图片可以看成是m \times nm×n维的欧几里德样本空间中的一个点,而不同样本之间的距离就体现在了样本点之间的距离了。

这就是为什么称之为欧几里德结构数据的原因了。

同样的,视频可以在时间轴上进行采样做到统一的目的,而音频也是一样的。因此它们都是符合欧几里德距离定义的类型的样本。

非欧几里德结构样本

非欧几里德结构的样本总得来说有两大类型[1],分别是图(Graph)数据[3]和流形数据[4],如下图所示:

Fig 1: Graph数据

Fig 2: Manifold数据

这两类数据有个特点就是,排列不整齐,比较的随意。具体体现在:对于数据中的某个点,难以定义出其邻居节点出来,或者是不同节点的邻居节点的数量是不同的[5],这个其实是一个特别麻烦的问题,因为这样就意味着难以在这类型的数据上定义出和图像等数据上相同的卷积操作出来,而且因为每个样本的节点排列可能都不同,比如在生物医学中的分子筛选中,显然这个是一个Graph数据的应用,但是我们都明白,不同的分子结构的原子连接数量,方式可能都是不同的,因此难以定义出其欧几里德距离出来,这个是和我们的欧几里德结构数据明显不同的。因此这类型的数据不能看成是在欧几里德样本空间中的一个样本点了,而是要想办法将其嵌入(embed)到合适的欧几里德空间后再进行度量。而我们现在流行的Graph Neural Network便可以进行这类型的操作。这就是我们的后话了。


另外,欧几里德结构数据所谓的“排列整齐”也可以视为是一种特殊的非欧几里德结构数据,比如说是一种特殊的Graph数据,如下图所示[5]:

因此,用Graph Neural Network的方法同样可以应用在欧几里德结构数据上,比如文献[6]中report的结果来看,的确这样是可行的。事实上,只要是赋范空间中的数据,都可以建立数据节点与数据节点之间的某种关联,都可以尝试用非欧几里德结构数据的深度方法进行实验。[7]

那么什么叫做赋范空间中的数据呢?赋范空间,指的就是定义了范数的向量空间,我认为,指的是数据中的每个样本的单元的特征维度都是一致的,比如,一张图片的像素一般都是RGB三个维度的,不同像素之间可以进行求范数的操作,再比如,一个Graph上的某个节点和另外一个节点的维度都是相同的,因此也可以定义出范数出来。不过这个是我一家之言,如有其他见解,请在评论区指出。

Reference

[1]. Bronstein M M, Bruna J, LeCun Y, et al. Geometric deep learning: going beyond euclidean data[J]. IEEE Signal Processing Magazine, 2017, 34(4): 18-42.
[2]. https://www.zhihu.com/question/54504471
[3]. https://en.wikipedia.org/wiki/Graph
[4]. https://en.wikipedia.org/wiki/Manifold
[5]. Niepert M, Ahmed M, Kutzkov K. Learning convolutional neural networks for graphs[C]//International conference on machine learning. 2016: 2014-2023.
[6]. Defferrard M, Bresson X, Vandergheynst P. Convolutional neural networks on graphs with fast localized spectral filtering[C]//Advances in neural information processing systems. 2016: 3844-3852.
[7]. https://www.zhihu.com/question/54504471

【转】欧几里德结构数据(Euclidean Structure Data) 以及非欧几里德结构数据(Non-Euclidean Structure Data)相关推荐

  1. 欧几里德结构数据与 非欧几里德结构数据

    数据分类 总的来说,数据类型可以分为两大类: 欧几里德结构数据(Euclidean Structure Data) 非欧几里德结构数据(Non-Euclidean Structure Data) 所谓 ...

  2. GXT之旅:第四章:Data与Components(4)——远程数据(remote data)

    使用remote data stores的数据来源不单单可以从client-side获得(就是从Registry里获得),也可以通过调用远程数据来获得.对于远程数据的加载和处理工作,GXT已经提供了轻 ...

  3. html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解

    编辑注:HTML中使用data-xx="xx"开头标记的属性到底有什么用,直接使用xx="xx"不是更简单吗?其实data-xx是HTML5的一个属性,支持通过 ...

  4. 教您更改data目录名称-将DedeCMS根目录下的data目录迁移到其他目录的方法

    现在DEDECMS最新的5.7版本和5.7SP1版本后台都有个安全检测,data目录如果使用默认的名称,那么DEDE系统的安全肯定会大打折扣.相信大家都看到这样的提示:强烈建议将data目录搬移到We ...

  5. data数值设置 vue_怎么改变vue中data的数据

    v圈调直年情,量的单框来离理这接法清都的为ar app3 = new 需朋朋支带不新器功几的事上为做的和时意后Vue({ el:'#item', data:{ item_data:[ ], }, co ...

  6. data为long 怎么设置vue_vue基础之data

    使用 调用data onLoad(option) { _self = this; _self.$data.xxxx = "te"; } 绑定节点 元素~~~~ 方法 methods ...

  7. 怎么获得ajax中data中的某个字段,关于$.ajax中data字段的整理--包括json转换和spring注解...

    1.前端$.ajax 的data为json提交的时候,[email protected] 注解 @RequestMapping(value = "getCpuData/{interval}/ ...

  8. vue $ 符号(例如vm.$data vs vm.data):读取实例属性 vs 读取 data 数据

    vm.$ 读取实例中属性列表(第一层) vm.data 直接读取实例 data 数据属性中的数据值(第二层).等价于 vm.$data.data <script>var ok=new Vu ...

  9. Data Catalog3.0:Modern Metadata for the Modern Data Stack

    从2020年开始,在数据领域中,有一个比较流行的术语:The Modern Data Stack(现代数据堆栈),简单理解就是汇集了处理海量数据的最佳工具集.这包括在最好的工具上建立数据基础设施,如用 ...

最新文章

  1. 一个电子工程师的经验之谈!
  2. Python情感分析:鹿晗的粉丝们究竟原谅他了吗?
  3. 浅谈AQS(AbstractQueuedSynchronizer,同步队列)
  4. 是什么让程序员对工作失去了激情?
  5. 你应该需要知道的前端小技巧
  6. java中== 和 .equals()的区别
  7. java wsdl反向生成源码,并使用CXF实现客户端调用代码
  8. 在线最大公因数计算器
  9. Ubuntu php安装过程,ubuntu安装lemp步骤
  10. Markdown插入代码
  11. 深度装机大师一键重装_深度一键重装系统软件
  12. java 纯真地址库_JAVA解析纯真IP地址库
  13. 针式打印机设置自定义纸张大小
  14. DEDE源码分析与学习--index.php文件解读
  15. 工作能力强的人,都有哪些特点?
  16. python批量请求url_python批量请求注册接口爬虫相关问题记录
  17. Work20230406
  18. HTML5+CSS3小实例:DNA双螺旋动画
  19. syncthing搭建自己的同步云
  20. 电影《一诺千金》剧照首度曝光系列一

热门文章

  1. 玩转Kubernetes—尝试以不同方式初始化集群
  2. 汇编基址变址寻址方式的使用
  3. 论文阅读 Solving Mixed Integer Programs Using Neural Networks
  4. stm32f103c8t6调试-while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET );卡死
  5. 【步态识别】LagrangeGait基于拉格朗日《Lagrange Motion Analysis and View Embeddings for Improved Gait Recognition》
  6. Win7+Ubuntu双系统安装教程
  7. Python中reshape函数参数-1的意思?
  8. mysql 跨服务器复制_mysql数据库跨服务器间复制与迁移
  9. 男人30岁之前不必在乎的事
  10. std::forward理解