Graph Neural Tangent Kernel

Neural Tangent Kernel

对于一个参数θ随机初始化的神经网络f(x;θ),在小批量随机梯度下降SGD的过程中,训练样本(x,y)(此处假设批量大小为1)会使得f(x;θ)向着减小f(x;θ)y之间误差的方向移动:

Fig. 1. SGD

而Neural Tangent Kernel就是一个用于衡量曲线f(x;θ)变化的函数,其定义为:

ηK(x,x)=f(x;θ+ηdf(x;θ)dθ)f(x;θ)

式中,η是一个更新步长,即学习率。当学习率无限小时,我们便得到f(x;θ)变化曲线:

K(x,x)=limη0f(x;θ+ηdf(x;θ)dθ)f(x;θ)η

使用一阶泰勒展开,我们可以得到:

K(x,x)=limη0f(x;θ)+f(x;θ)ηdf(x;θ)dθf(x;θ)η=f(x;θ)df(x;θ)dθ=<df(x;θ)dθ,df(x;θ)dθ>

对于Fig. 1,其变化曲线为:

Fig. 2. Changing curve

此处假设(x,y)=(10,50)。除K(10,10)只是为了标准化。

如果不断地进行SGD,那么最终,K(x,x)f(x;θ)均会收敛到一个稳定的曲线:

Fig. 3. SGD

另一方面,若神经网络的宽度足够大,则在SGD的过程中,参数θ的变化将会十分小,K的变化也会非常小,整个神经网络实际上可以用f(x;θ)的一阶泰勒函数拟合:

f(x;θ)f(x;θ0)+df(x;θ0)dθ(θθ0)

上式中,对于确定的初始化θ0f(x;θ0)是常数,而df(x;θ0)dθx的函数,也就是说,若将df(x;θ0)dθ视作一个整体,则f(x;θ)实际上成为了一个线性函数。而这个将非线性空间的回归转化为线性空间回归的df(x;θ0)dθ就是核方法中的映射函数ϕ(x)

ϕ(x)=df(x;θ0)dθK(x,z)=ϕ(x)Tϕ(z)=<df(x;θ)dθ,df(z;θ)dθ>

Neural Tangent Kernel的作用在于,对于无限宽的网络(能拟合任何函数的神经网络),只要参数θ以某种合适的方式初始化,K(x,x)一开始就是收敛值;而对于一般的网络,K(x,x)在训练过程中也会最终收敛,此时,神经网络的训练实际上就是一个Kernel Gradient Descent的过程。即,用SGD训练神经网络等同于拟合核函数。换句话说,此时的神经网络(的隐藏层)本质上是一个映射函数ϕ(x)。这也解释了为什么复杂的神经网络不仅没有过拟合,反而得到了很强的泛化精度,因为其最终的收敛值无限地接近核方法得到的解析解。

Graph Neural Tangent Kernel

Graph Neural Tangent Kernel是Neural Tangent Kernel在GNN上的应用。它定义:

K(G,G)=<df(G;θ)dθ,df(G;θ)dθ>

其中GG是两张不同的图,G=(V,E)G=(V,E)。最终K(G,G)是个核矩阵,维度为|V|×|V|。此时,若把G当作测试集,而G当作训练集,根据SVM中的预测算法:

K(G,G)Y

就是对测试集的预测。

考虑正则则为:

K(G,G)[K(G,G)+λI]1Y

参考