深度学习:图神经网络笔记
PCM (脉冲编码调制)
提示:文章地址:
前言
本文先讨论了将边,点嵌入为向量(其中全局元素是假设可与所有点和边相连)以及信息的汇聚。然后讨论在MLP的基础上如何进行层间的传递。在文章末尾提到了一些细节。
提示:文章地址:
https://github.com/mli/paper-reading
文章网址地址:https://distill.pub/2021/gnn-intro/
数据嵌入
对 图 的 数 据 进 行 嵌 入 : 对图的数据进行嵌入:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 对图的数据进行嵌入:
全 局 信 息 是 假 设 可 以 与 所 有 点 所 有 边 相 连 的 , 可 以 帮 助 两 个 距 离 很 的 点 交 互 全局信息是假设可以与所有点所有边相连的,可以帮助两个距离很的点交互 全局信息是假设可以与所有点所有边相连的,可以帮助两个距离很的点交互
复杂的情况:缺少对应信息的嵌入
您 可 能 将 图 中 的 信 息 存 储 在 边 中 , 但 节 点 中 没 有 信 息 , 但 仍 需 要 对 节 点 进 行 预 测 。 我 们 需 要 一 种 从 边 缘 收 集 信 息 并 将 它 们 提 供 给 节 点 进 行 预 测 的 方 法 。 我 们 可 以 通 过 “ p o o l i n g ” 来 做 到 这 一 点 。 池 化 分 两 步 进 行 : 1. 对 于 要 合 并 的 每 个 项 目 , 收 集 它 们 的 每 个 嵌 入 并 将 它 们 连 接 成 一 个 矩 阵 。 2. 然 后 聚 合 收 集 的 嵌 入 , 通 常 通 过 求 和 操 作 。 您可能将图中的信息存储在边中,但节点中没有信息,但仍需要对节点进行预测。\\我们需要一种{\color{red}从边缘收集信息并将它}{\color{red}们提供给节点进行预测}的方法。\\我们可以通过“pooling”来做到这一点。池化分两步进行:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ 1.对于要合并的每个项目,收集它们的每个嵌入并将它们连接成一个矩阵。\\ 2.然后聚合收集的嵌入,通常通过求和操作。 您可能将图中的信息存储在边中,但节点中没有信息,但仍需要对节点进行预测。我们需要一种从边缘收集信息并将它们提供给节点进行预测的方法。我们可以通过“pooling”来做到这一点。池化分两步进行: 1.对于要合并的每个项目,收集它们的每个嵌入并将它们连接成一个矩阵。2.然后聚合收集的嵌入,通常通过求和操作。
层间传递
直接传递
各 种 嵌 入 使 用 M L P 独 自 更 新 ( 每 一 层 三 个 M L P , 所 有 顶 点 , 边 共 享 一 个 M L P , 全 局 特 征 使 用 一 个 M L P ) : 各种嵌入使用MLP独自更新(每一层三个MLP,所有顶点,边共享一个MLP,全局特征使用一个MLP): 各种嵌入使用MLP独自更新(每一层三个MLP,所有顶点,边共享一个MLP,全局特征使用一个MLP):
顶点1近邻信息交互
可 能 感 觉 这 样 并 没 有 使 用 到 顶 点 和 顶 点 之 间 的 相 互 信 息 , 考 虑 临 街 顶 点 信 息 汇 聚 ( 把 三 个 嵌 入 相 加 ) 再 进 行 更 新 : 可能感觉这样并没有使用到顶点和顶点之间的相互信息,考虑临街顶点信息汇聚{\tiny (把三个嵌入相加)}再进行更新: 可能感觉这样并没有使用到顶点和顶点之间的相互信息,考虑临街顶点信息汇聚(把三个嵌入相加)再进行更新:
用图表示为
边和点信息的互传
在信息嵌入时已经有了边和点信息的互传,我们可以不等到最后一层再做汇聚操作。
还 有 两 边 同 时 汇 聚 的 方 法 : 不 过 这 是 先 汇 聚 信 息 c o n t a c t 起 来 , 然 后 下 一 步 再 加 起 来 还有两边同时汇聚的方法:不过这是先汇聚信息contact起来,然后下一步再加起来 还有两边同时汇聚的方法:不过这是先汇聚信息contact起来,然后下一步再加起来
输出结果
同 样 , 一 个 节 点 如 果 需 要 输 出 , 比 如 2 分 类 , 只 需 要 加 一 个 2 节 点 M L P − > S o f t m a x 就 能 得 到 对 应 的 类 别 ( 和 之 前 一 样 , 不 管 有 多 少 个 顶 点 , 只 有 一 个 全 连 接 层 ) : 同样,一个节点如果需要输出,比如2分类,只需要加一个2节点MLP->Softmax就能得到对应的类别(和之前一样,不管有多少个顶点,只有一个全连接层):\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 同样,一个节点如果需要输出,比如2分类,只需要加一个2节点MLP−>Softmax就能得到对应的类别(和之前一样,不管有多少个顶点,只有一个全连接层):
最终的结构:
试一试(作者再网页种用javascript实现了一个模型,可尝试改变数据)
以上模型超参数分析:
看层数的影响:可见层数增加AUC是相应增加的,中值逐渐上升,但是结果的方差还是很大的,需要细调其他参数
感应偏差
在构建模型以解决特定类型数据的问题时,我们希望专门化我们的模型以利用该数据的特征。当这成功完成时,我们通常会看到更好的预测性能、更短的训练时间、更少的参数和更好的泛化能力。
在图像上标记时,我们希望利用狗仍然是狗的事实,无论它位于图像的左上角还是右下角。因此,大多数图像模型使用卷积,它是平移不变的。
对于文本,标记的顺序非常重要,因此循环神经网络按顺序处理数据。此外,一个标记(例如单词“not”)的存在会影响句子其余部分的含义,因此我们需要可以“关注”文本其他部分的组件,例如 BERT 和 GPT 等转换器模型-3 可以。
这些是归纳偏差的一些示例,我们在其中识别数据中的对称性或规律性,并添加利用这些属性的建模组件。
不 同 的 采 样 方 法 得 到 一 个 子 图 : 不同的采样方法得到一个子图: 不同的采样方法得到一个子图:
标注:
1:汇聚方法种使用了加法,可能相加的两个维度不同,默认可以使用投影到相同的维度。
2:除加法外,还可以使用求平均,取最大值方法进行汇聚
更多推荐
所有评论(0)