当前位置: 首页 > 原理解释

图神经网络原理-图神经网络原理

图神经网络实际上听起来挺绕,但说白了就是给节点和边加上了“脑子”,让机器学会如何在一张图上“走”和“想”。
那会儿传统的深度学习像流水线工人,数据往流水线一甩,它只管往后传,不管别的,是典型的单线程。而图神经网络不一样,它承认每个点(节点)都有不同的性格,有的精通社交,有的精通科研,有的就连是个孤岛,它得学会如何把这些性格结合起来。 核心思想就是一个个算法,比如 Dijkstra 那套改得对不对?改成了建图,改成了图卷积。它不假设数据是平铺直叙的,而是准数据长啥样,它都能处理。
这就好比你不想让数据走直线,你能够把它画成螺旋线,让算法沿着曲线找路。图神经网络最了得的地方在于它能把数据拆分成原子,每个原子都有自己的属性,它还能基于这些属性去邻居找邻居,再基于邻居去邻居,最终拼凑出整个图的样子。 在具体的运算上,最经典的就是点操作和层操作。点操作就是给一个点算分,算完它就知道了这个点归于哪一类;层操作就是把算完的点送一层那会儿,算完它就知道了它的关系。
这听起来像两件事,但实际上是同一件事的不同侧面。它不需求你管数据长啥样,只要你能把它分成原子、属性、关系,图神经网络都能处理。举个栗子,要是你有一堆图像数据,每张图都是个节点,节点之间共享了边框,那这张图就是节点;要是节点之间是像素级别的像素如何算,那就是边,边就是连接。 至于如何算,主要有两类方式。一类是传统的卷积,就是把图看作一堆堆,每个堆子里的节点都会算一次,算完再传一层。
这就好比你一个个房间房间地算,每个房间里的东西都算一遍,然后结局传那会儿,再算下一个房间。另一类是用“卷积核”直接算,就像把一张小图塞进一个大图里,小图里的每个像素都会去算大图里对应位置的东西。
这就好比你在大图上铺了一层小图,小图里的每个点都会去翻大图对应位置的小图,算完再传一层。也就是所谓的图卷积,它直接对图的边做运算,让机器直接感受到邻居的影响,而不是先算完再传。 举个具体的例子,有个研究团队想用图神经网络去预测蛋白质的结构。他们输入的数据是一堆序列,每个序列就是一个节点,节点之间通过氨基酸残基这种关系连起来了。他们先拿了一些实验数据跑了一遍图卷积,发现效果凑合,但有时候精度上不去。
这时候他们又换了算法,把点操作和层操作结合起来,给每个节点加了一些额外的特征,比如氨基酸的种类、位置、距离啥的,然后再送一层那会儿。经过这种微调,模型的准率直接飙涨了,并且泛化本事也变强了,出于它发现那个额外加的“额外特征”才是关键,不是那个单一的卷积核。 再看一个场景,比如要识别不同的图片。你能够把这堆图片拆开,每一张图就是一个节点,节点之间都是像素连接。
不用像那会儿那样只算一次,而是能够无限次地传一层,就连能够无限次地堆叠卷积层。
这就好比你用显微镜看图像,一层层放大,一层层缩小,要么一层层推演,直到看到整个的规律。
这种无限次的本事,让图神经网络在处理长序列、复杂关系的时候,比传统模型强多了。 自然,图神经网络也不是万能的。它最怕的就是忒重。图卷积的操作是离散的,算起来挺费事,特别是当图特别复杂的时候,节点数大了,图卷积的矩阵乘法就爆炸了。
这时候就得靠特殊的优化方案,比如分层图卷积,就是把图分层,一层一层算,别一个大脑硬撑。
还有图混合网络,就是让纯卷积和纯图卷积混着用,看哪条路省事,哪条路智慧,就选哪条。
不过就是这点,图神经网络实际上挺克制的,它只负责算那层,其他的处理交给传统算法,图神经网络只做最脏的那一局部。 最终总结一下,图神经网络的核心就是重构数据,把数据拆分成原子,属性定义清楚,然后基于这些原子和属性去邻居找关系。它不假设数据是线性的,不假设图是完美的,它承认数据长啥样,它能处理。它在处理图数据的时候,靠的是迭代、堆叠、符号计算这些数学工具,把复杂的图结构变成机器能理解的形式。别看它还是比传统 RNN 慢一点,要么比卷积慢一点,但它的优势是独一无二的,它能让机器看到数据背后的网络结构,而不是只是看到一堆数字。
这就是图神经网络存有的意义,让机器学会在一张图上“走”和“想”。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站