通过将向量场的概念应用到神经网络,可以在其中发现大量已建立的数学和物理概念、抽象和可视化分析方法。例如,本研究利用了欧拉的求解常微分方程的方法 [11] 实现将数据点作为粒子随向量场流动的过程。
本文利用三个二维非线性可分数据集完成计算实验,并使用了由简单高斯核函数生成的向量场。在不同的初始化超参数下,损失函数一致地随 epoch 的增加而减少。此外,作者也进一步分析了实验结果。
论文:Vector Field Based Neural Networks
论文地址:https://arxiv.org/abs/1802.08235
本文提出了一种新的神经网络架构,它结合向量场中丰富的数学和物理思想,并将向量场作为隐藏层对数据进行非线性变换。其中,数据点被当成粒子,遵循向量场定义的方向而流动,直观地表征了分类过程中数据点的变换。该架构将数据点跟随向量场的流线从初始分布移向新的分布,其最终目标是将不同类别的数据点分离。本文通过梯度下降学习该向量场,解决了优化问题。
2 向量场神经网路
N 维空间中的向量场是一个平滑函数 K:R^n → R^n,对应的常微分方程(ODE):
其中 X ∈ R^n,ODE 的解曲线 X(t) 被称为向量场 K 的流线。给定在时间 t_0 上位置为 X(t_0) = X_0 的粒子,其物理解释是每一个向量 K(X) 表示作用于给定空间位置中粒子的速度,流线表示粒子沿着路径 X(t) 传播时所完成的位移。在时间 t_N > t_0 时,粒子将处于位置 X(t_N)。
给定由一些参数θ定义的向量场族 K(X, θ),作者提出了一种在向量场族中搜索最佳向量场以变换输入空间中所有点 X_0 的方法。此外,在变换空间中的点 X(t_N) 间,不同类别的点可以线性分离。直观上,向量场表征了使得数据线性可分的变换。
作者使用了欧拉的方法 [11] 以利用 X_N 逼近 ODE 的解 X(t_N),其中可离散化为 X_i ≈ X(t_0 + ih),K(X, θ) 可作为我们迭代更新的向量场:
其中 h 是步长,N 是迭代数,因此 t_N = t_0 + Nh 是超参数,θ 表示向量场的参数。对于欧拉方法,当 h → 0,K(θ, X) 的流线可以精确计算。
下图 1 展示了由向量场层级架构变换的输入数据,它还提出了旨在线性分离数据的最优化向量场。注意架构的最后一层为线性分离器,它可以通过 Logistic 函数实现。
图 1:从左向右,第一行展示了输入数据、神经网络架构和由向量场层变换后的数据点分布。第二行展示了向量场和空间扭曲。
4 结果和讨论
本文使用了两个 scikit-learn 机器学习数据集 [12](moons 和 circle)和一个正弦数据集(由作者创建)。
图 2:sin、moons 和 circle 数据集。
图 3:损失函数 vs. epoch 的曲线图。circle 数据集,其中θ分别等于 0.03、0.3、3.0。
在图 4 中,可以看到初始的边界层在变换后的空间中转换成了一个超平面。虽然该算法通过弯曲空间和将圆的中心提取到外部而获得了很好的分类结果,它还生成了初始空间不同点的重叠。
图 4:初始空间、向量场和变换后的空间。
一种缓解出现变换空间的数据点重叠的方法是利用正则化,正则化将作为阻尼器,将初始空间中的粒子移动平滑化,以防止初始空间的不同点在变换后的空间中重叠。
图 5:sin 数据集的正则化(5000 个 epoch、η = 3.0、λ = 0.0005)。