BernNet Learning Arbitrary Graph Spectral Filters via Bernstein Approximation

发表于:neurips21
推荐指数: #paper/⭐⭐
请添加图片描述

设定:在本文中,h是过滤器.

bernstein 多项式逼近(这个证明有点稀里糊涂的,反正我觉得一点点问题,可能因为我水平低)

p K ( t ) : = ∑ k = 0 K θ k ⋅ b k K ( t ) = ∑ k = 0 K f ( k K ) ⋅ ( K k ) ( 1 − t ) K − k t k . p_K(t):=\sum_{k=0}^K\theta_k\cdot b_k^K(t)=\sum_{k=0}^Kf\left(\frac kK\right)\cdot\binom Kk(1-t)^{K-k}t^k. pK(t):=k=0KθkbkK(t)=k=0Kf(Kk)(kK)(1t)Kktk.
(其实类似于二项分布.如上K,k即二项分布的前缀)
推论2.1:给定一个连续函数f(t) t ∈ [ 0 , 1 ] t \in[0,1] t[0,1],我们有:当 K → ∞ K\to\infty K时, p K ( t ) → f ( t ) p_{K}(t)\to f(t) pK(t)f(t).
后者容易理解,当K趋近于无穷时,将f后面的即为二项分布,求和为0.而 f ( k K ) f\left( \frac{k}{K} \right) f(Kk)又和t相关,用t取代(感觉理解的有问题)
对于过滤函数 h : [ 0 , 2 ] → [ 0 , 1 ] h:[0,2]\to[0,1] h:[0,2][0,1],我们有 t = λ 2 t=\frac{\lambda}{2} t=2λ,我们就有: f ( t ) = h ( 2 t ) f(t)=h(2t) f(t)=h(2t), θ k = f ( k / K ) = h ( 2 k / K ) \theta_k = f(k/K) = h(2k/K) θk=f(k/K)=h(2k/K). b k K ( t ) = b k K ( λ 2 ) = ( K k ) ( 1 − λ 2 ) K − k ( λ 2 ) k b_{k}^K(t)=b_k^K(\frac\lambda2) = \binom Kk(1-\frac\lambda2)^{K-k}(\frac\lambda2)^k bkK(t)=bkK(2λ)=(kK)(12λ)Kk(2λ)k.最终,我们可以得到如下近似: p K ( λ / 2 ) = ∑ k = 0 K θ k ( K k ) ( 1 − λ 2 ) K − k ( λ 2 ) k = ∑ k = 0 K θ k 1 2 K ( K k ) ( 2 − λ ) K − k λ k p_K(\lambda/2)~=~\sum_{k=0}^K\theta_k\binom Kk(1-\frac\lambda2)^{K-k}\left(\frac\lambda2\right)^k~=~\sum_{k=0}^K\theta_k\frac1{2^K}\binom Kk(2-\lambda)^{K-k}\lambda^k pK(λ/2) = k=0Kθk(kK)(12λ)Kk(2λ)k = k=0Kθk2K1(kK)(2λ)Kkλk.
z = U d i a g [ p K ( λ 1 / 2 ) , . . . , p K ( λ n / 2 ) ] U T ⏟ R e m N e t x = ∑ k = 0 K θ k 1 2 K ( K k ) ( 2 I − L ) K − k L k x \mathbf{z}=\underbrace{\mathbf{U}diag[p_K(\lambda_1/2),...,p_K(\lambda_n/2)]\mathbf{U}^T}_{\mathrm{RemNet}}\mathbf{x}=\sum_{k=0}^K\theta_k\frac1{2^K}\binom Kk(2\mathbf{I}-\mathbf{L})^{K-k}\mathbf{L}^k\mathbf{x} z=RemNet Udiag[pK(λ1/2),...,pK(λn/2)]UTx=k=0Kθk2K1(kK)(2IL)KkLkx

实现常见的过滤器通过BernNet

请添加图片描述

证明好麻烦啊,烦烦烦
附录:组合数性质
∙ C n k = C n n − k ∙ C n k + 1 = C n k × n − k k + 1 ∙ C n k = C n − 1 k − 1 × n k ∙ C n k = C n − 1 k − 1 + C n − 1 k \begin{aligned}&\bullet C_n^k = C_n^{n-k}\\&\bullet C_n^{k+1} = C_n^k \times \frac{n-k}{k+1}\\&\bullet C_n^k = C_{n-1}^{k-1} \times \frac{n}{k}\\&\bullet C_n^k = C_{n-1}^{k-1} + C_{n-1}^k\end{aligned} Cnk=CnnkCnk+1=Cnk×k+1nkCnk=Cn1k1×knCnk=Cn1k1+Cn1k
C n k = A n k A k k = n k ‾ k ! = n ! k ! ( n − k ) ! C_n^k=\frac{A_n^k}{A_k^k}=\frac{n^{\underline{k}}}{k!}=\frac{n!}{k!(n-k)!} Cnk=AkkAnk=k!nk=k!(nk)!n!

图过滤

min ⁡ z f ( z ) = ( 1 − α ) z T γ ( L ) z + α ∥ z − x ∥ 2 2 \min_\mathbf{z}f(\mathbf{z})=(1-\alpha)\mathbf{z}^T\gamma(\mathbf{L})\mathbf{z}+\alpha\|\mathbf{z}-\mathbf{x}\|_2^2 zminf(z)=(1α)zTγ(L)z+αzx22
令其倒数为0, α = 0.5 \alpha=0.5 α=0.5, γ ( L ) = e t L − I \gamma(\mathbf{L})=e^{t\mathbf{L}}-\mathbf{I} γ(L)=etLI. ∂ f ( z ) ∂ z = ( e t L − I ) z + z − x = 0 , \frac{\partial f(\mathbf{z})}{\partial\mathbf{z}}=\left(e^{t\mathbf{L}}-\mathbf{I}\right)\mathbf{z}+\mathbf{z}-\mathbf{x}=\mathbf{0}, zf(z)=(etLI)z+zx=0,
z ∗ = e − t L x = e − t ( I − P ) x = ∑ k = 0 ∞ e − t t k k ! P k x . \mathbf{z}^*=e^{-t\mathbf{L}}\mathbf{x}=e^{-t(\mathbf{I}-\mathbf{P})}\mathbf{x}=\sum_{k=0}^\infty e^{-t}\frac{t^k}{k!}\mathbf{P}^k\mathbf{x}. z=etLx=et(IP)x=k=0etk!tkPkx.
这就是基于图热核的GNN例如GDC和GraphHeat采用的核

过滤器的非负性(保证凸优化)

0 ≤ g ( λ ) = ∑ k = 0 K w k λ k ≤ 1 , ∀ λ ∈ [ 0 , 2 ] . 0\leq g(\lambda)=\sum_{k=0}^Kw_k\lambda^k\leq1, \forall \lambda\in[0,2]. 0g(λ)=k=0Kwkλk1,λ[0,2].证明:
α ( α I + ( 1 − α ) γ ( L ) ) − 1 x = U d i a g [ α α + ( 1 − α ) γ ( λ 1 ) , . . . , α α + ( 1 − α ) γ ( λ n ) ] U T x . \alpha\left(\alpha\mathbf{I}+(1-\alpha)\gamma(\mathbf{L})\right)^{-1}\mathbf{x}=\mathbf{U}diag\left[\frac\alpha{\alpha+(1-\alpha)\gamma(\lambda_1)},...,\frac\alpha{\alpha+(1-\alpha)\gamma(\lambda_n)}\right]\mathbf{U}^T\mathbf{x}. α(αI+(1α)γ(L))1x=Udiag[α+(1α)γ(λ1)α,...,α+(1α)γ(λn)α]UTx.
λ ∈ [ 0 , 2 ] , we have  0 ≤ h ( λ ) ≤ α α + ( 1 − α ) ⋅ 0 = 1 for  λ ∈ [ 0 , 2 ] . \lambda\in[0,2],\text{ we have }0\leq h(\lambda)\leq\frac\alpha{\alpha+(1-\alpha)\cdot0}=1\text{ for }\lambda\in[0,2]. λ[0,2], we have 0h(λ)α+(1α)0α=1 for λ[0,2].

结果:貌似挺高的,但是别人跑的就没那么高.

结构: Z = ∑ k = 0 K θ k 1 2 K ( K k ) ( 2 I − L ) K − k L k f ( X ) , \mathbf{Z}=\sum_{k=0}^K\theta_k\frac1{2^K}\binom Kk(2\mathbf{I}-\mathbf{L})^{K-k}\mathbf{L}^kf\left(\mathbf{X}\right), Z=k=0Kθk2K1(kK)(2IL)KkLkf(X),
其中:f(X)是二层的MLP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建加速器:在Gradle中利用构建缓存提升性能

构建加速器:在Gradle中利用构建缓存提升性能 Gradle作为当今流行的构建工具,提供了多种方式来优化构建速度和效率。其中,Gradle构建缓存是一项强大的功能,它允许重用先前构建的输出,从而显著减少构建时间。本文将深入…

大数据hive表和iceberg表格式

iceberg: https://iceberg.apache.org/ iceberg表,是一种面向大型分析数据集的开放表格式,旨在提供可扩展、高效、安全的数据存储和查询解决方案。它支持多种存储后端上的数据操作,并提供 ACID 事务、多版本控制和模式演化等特性&#xff0c…

【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)

目录: 目录: 一、 Base64概述和应用场景 1.1 概述 1.2 应用场景 二、Base16 2.1 Base16编码 2.2 Base16编解码 三、Base64 四、OpenSSL BIO接☐ 4.1 Filter BIOs: 4.2 Source/Sink BIOs: 4.3 应用场景: 4.4 具体使用&…

Spark核心技术架构

Apache Spark是一个开源的分布式计算系统,它提供了一个快速、通用和易于使用的集群计算环境。Spark 支持多种编程语言,如 Scala、Java 和 Python,并针对大规模数据处理进行了优化。以下是 Spark 技术架构的详细简述: 1. 核心组件…

设计模式学习(二)工厂模式——抽象工厂模式

设计模式学习(二)工厂模式——抽象工厂模式 背景抽象工厂模式优点与缺点参考文章 背景 现在我需要开发一个相机操作模块,它可能在Windows下运行,也可能在Linux下运行。由于在厂家提供的SDK中,Windows下的SDK和Linux下…

【JVM】JVM实战笔记-随笔

JVM实战笔记-随笔 前言字节码如何查看字节码文件jclasslibJavapArthasArthurs监控面板Arthus查看字节码信息 内存调优内存溢出的常见场景解决内存溢出发现问题Top命令VisualVMArthas使用案例 Prometheus Grafana案例 堆内存情况对比内存泄漏的原因:代码中的内存泄漏并发请求问…

Nginx配置:处理内部和外部请求的配置方法

Nginx配置:处理内部和外部请求的高级技巧 在现代Web应用程序架构中,正确配置反向代理服务器对于确保应用程序的安全性和性能至关重要。本文将深入探讨如何使用Nginx配置来有效管理内部和外部请求,特别是在处理不同访问控制需求的情况下。 背…

代谢组数据分析(十四):代谢物组间网络分析(spearman coefficient)

介绍 在代谢物网络分析领域,研究者采用斯皮尔曼系数来定量评估代谢物之间的相关性。该系数作为一种有效的非参数统计工具,能够揭示代谢物间潜在的关联模式,不受它们分布特性的限制。通过计算所有代谢物配对间的斯皮尔曼系数,研究者能够构建出反映代谢物相互关系的网络。 …

03. Java 条件查询

1. 前言 在 MySQL 中使用 select 查询语句的时候,一般都会加上 where 语句或者 limit 语句限定查询结果的范围,两种子句都是过滤的作用。另外还有和 group by 语句配合使用的 having 限制条件。区分 where 和 having 语句的作用也是比较基础的题目。 2.…

OpenCV教程:cv2图像逻辑运算

-------------OpenCV教程集合------------- Python教程99:一起来初识OpenCV(一个跨平台的计算机视觉库) OpenCV教程01:图像的操作(读取显示保存属性获取和修改像素值) OpenCV教程02:图像处理…

Git钩子Hook功能

💾 Hook 钩子 目录 🔔 简介🔔 常见类型🔔 如何配置🔔 使用场景🔔 示例 🔔 简介 Git Hooks是Git内置的一种机制,允许在特定事件发生时执行自定义脚本。Git Hook可以在客户端和服务器端…

PHP多功能投票微信小程序系统源码

🎉一键决策,尽在掌握!多功能投票小程序,让选择不再纠结🤔 📲【开篇:告别传统,拥抱便捷投票新时代】📲 还在为组织投票活动手忙脚乱?或是面对众多选项犹豫不…

Hadoop发展史和生态圈介绍

目录 一、Hdoop概述 二、Hadoop生态组件 三、大数据的技术生态体系 四、Hadoop发展历史 4.1 概述 4.2 Hadoop历史发展节点 4.2.1 2002-2004年理论阶段 4.2.2 2005-2008年Hadoop的问世与崛起 4.2.3 2009-2017年Hadoop助力大数据行业的发展 4.2.4 至今 五、Hadoop优势特…

华为HCIP Datacom H12-821 卷40

1.单选题 下面是台路由器BGP错误输出信息&#xff0c;关于这段信息描述错误的是 <HUAWEI>display bgp error Error Type :Peer Error Date/Time :2010-03-22 12:40:39 Peer Address :10.1.1.5 Error Info : Incorrect remote AS A、可能是由于邻居…

面向 AI 而生的香橙派 AIpro 开发板开箱实测

前几天搞到一块很牛掰的开发板&#xff0c;是香橙派联合华为精心打造的高性能 AI 开发板 – OrangePi AIpro 开发板。 其搭载了昇腾 AI 处理器&#xff0c;可提供 8TOPS INT8 的计算能力&#xff0c;作为单板硬件设备来说&#xff0c;算力杠杠的了&#xff0c;至于跑 AI 模型性…

django实现用户的注册、登录、注销功能

创建django项目的步骤&#xff1a;Django项目的创建步骤-CSDN博客 一、前置工作 配置数据库&#xff0c;设置数据库引擎为mysql 1、在settings文件中找到DATABASES, 配置以下内容 DATABASES {"default": {ENGINE: django.db.backends.mysql, # 数据库引擎NAME: dja…

params和data的差别,doc下载

params和data的差别 export function downFile(url, parameter, method) {return axios({url: url,params: parameter,method: method ? method : "get",responseType: "blob",}); }// params: parameter,请求的参数&#xff0c;会作为查询字符串附加到…

实习随笔【前端技术实现全局添加水印】

有一些数据比较重要的项目&#xff0c;往往需要对数据进行保护措施&#xff0c;本文介绍常见策略——全局添加水印。 1、创建水印组件 <template><div class"water-mark"><div class"water-mark-content"><span class"phone&qu…

打破平台限制,使智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏的一款安卓应用

大家好&#xff0c;今天给大家分享一款专为Android设备设计的模拟器应用Winlator。其核心功能是能够在基于ARM架构的智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏。 Winlator是一款Android应用程序&#xff0c;它允许用户使用Wine和Box86/Box64在Android设备上…

docker-compose部署redis-exporter

一、安装prometheus 1、安装 version: 3.1services:redis-exporter:image: bitnami/redis-exporter:latestcontainer_name: redis-exporterports:- 9121:9121environment:TZ: Asia/Shanghaicommand:- --redis.addrredis://127.0.0.1:6379# - --redis.passwordlabels:org.labe…