数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二、Spectral Networks 和 Deep Locally Connected Networks [2013]
卷积神经网络
Convolutional Neural Networks: CNNs
在机器学习问题中非常成功,其中底层数据representation
的坐标具有网格结构grid structure
(一维、二维、或三维的网格),并且在这些坐标中,这些待研究的数据相对于该网格具有平移相等translational equivariance
性或平移不变性translational invariance
。语音、图像、视频就是属于这一类问题的著名的例子。在常规网格上,
CNN
能够利用多种结构来很好地协同工作,从而大大减少系统中的参数数量:- 平移结构
translation structure
:它允许使用filter
而不是通用的线性映射,从而实现权重共享weight sharing
。 - 空间局部性:
filter
的尺寸通常都远远小于输入信号的尺寸。 - 多尺度:通过步长大于一的卷积或者池化操作来减少参数,并获得更大的感受野
receptive field
。
然而在许多情况下,数据并不是网格结构,如社交网络数据,因此无法在其上应用标准的卷积网络。图
graph
提供了一个自然框架来泛化网格结构,并扩展了卷积的概念。在论文《Spectral Networks and Deep Locally Connected Networks on Graphs》
中,作者将讨论在除了常规网格之外的图上构建深度神经网络。论文提出了两种不同的结构:- 基于空域的卷积构建
Spatial Construction
:通过将空间局部性和多尺度扩展到通用的图结构,并使用它们来定义局部连接和池化层,从而直接在原始图结构上执行卷积。 - 基于谱域的卷积构建
Spectral Construction
:对图结构进行傅里叶变换之后,在谱域进行卷积。
论文主要贡献如下:
- 论文表明,从给定的图结构输入,可以获得参数为
$ O(n) $ 的有效架构( $ n $ 为输入节点总数),并且论文在低维的图数据集上进行了验证。 - 论文介绍了一种使用
$ O(1) $ 参数的结构,通过实验验证了该结构并讨论了它与图上的谐波分析问题harmonic analysis problem
的联系。
- 平移结构
2.1 基础概念(读者补充)
2.1.1 拉普拉斯算子
散度定义:给定向量场
$ \mathbf{\vec F}(\mathbf{\vec x}) $ ,设 $ \Sigma $ 为围绕某一点 $ \mathbf{\vec x} $ 的一个封闭曲面, $ dS $ 为曲面上的微元, $ \mathbf{\vec n} $ 为该微元的法向量,则该曲面的通量为:当
$ \Sigma $ 趋近于零时,即可得到 $ \mathbf{\vec x} $ 点的散度:其中
$ \mathbf{\vec x} = (x_1,\cdots,x_n)^\top, \mathbf{\vec F} = (F_1,\cdots,F_n)^\top $ 。散度的物理意义为:在向量场中从周围汇聚到该点或者从该点流出的流量。
旋度定义:给定向量场
$ \mathbf{\vec F}(\mathbf{\vec x}) $ ,设 $ \Gamma $ 为围绕某一点 $ \mathbf{\vec x} $ 的一个封闭曲线, $ dl $ 为曲线上的微元, $ {\vec \tau } $ 为该微元的切向量,则该曲线的环量为:当
$ \Gamma $ 趋近于零时,即可得到 $ \mathbf{\vec x} $ 点的旋度:在三维空间中,上式等于:
旋度的物理意义为:向量场对于某点附近的微元造成的旋转程度,其中:
- 旋转的方向表示旋转轴,它与旋转方向满足右手定则。
- 旋转的大小是环量与环面积之比。
拉普拉斯算子定义:给定函数
$ f(\mathbf{\vec x}) $ ,其中 $ \mathbf{\vec x} = (x_1,\cdots,x_n)^\top $ ,则梯度定义为:梯度的物理意义为:函数值增长最快的方向。
梯度的散度为拉普拉斯算子,记作:
- 由于所有的梯度都朝着
$ f $ 极大值点汇聚、从 $ f $ 极小值点流出,因此拉普拉斯算子衡量了空间中每一点,该函数的梯度是倾向于流出还是流入。 - 拉普拉斯算子也能够衡量函数的平滑度
smoothness
:函数值没有变化或者线性变化时,二阶导数为零;当函数值突变时,二阶导数非零。
- 由于所有的梯度都朝着
图拉普拉斯矩阵:假设
$ f(x) $ 为离散的一维函数,则一阶导数为一阶差分:二阶导数为二阶差分:
一维函数其自由度可以理解为
2
,分别是+1
和-1
两个方向。因此二阶导数等于函数在所有自由度上微扰之后获得的增益。推广到图结构
$ G=(V,E) $ ,其中节点数量为 $ |V| $ 。假设邻接矩阵为 $ \mathbf W $ ,并且任意两个节点之间存在边(即使不存在边则我们也可以假设存在一个 $ w_{i,j} = 0 $ 的”虚拟“边 )。对于其中任意节点 $ i $ ,对其施加微扰之后该节点可以到达其它任意节点,因此图的自由度为 $ |V| $ 。令
$ f_i $ 为函数 $ f(\cdot) $ 在节点 $ i $ 的值,定义 $ \mathbf{\vec f} = (f_1,f_2,\cdots,f_{|V|})^\top\in \mathbb R^{|V|} $ ,它表示函数 $ f $ 在图 $ G=(V,E) $ 上的取值。对于节点 $ i $ ,其扰动到节点 $ j $ 的增益时 $ (f_j-f_i) $ ,不过这里通常写成负的形式,即 $ (f_i-f_j) $ 。考虑到边的权重,则增益为: $ w_{i,j}(f_i-f_j) $ 。函数
$ f(\cdot) $ 也可以视为定义在图上的信号signal
。对于节点
$ i $ ,总的增益为拉普拉斯算子在节点 $ i $ 的值。即:其中:
$ \mathbf D $ 为图的度矩阵degree matrix
, $ (\cdot)_i $ 表示该向量的第 $ i $ 个元素。考虑所有的节点,则有:
定义拉普拉斯矩阵
$ \mathbf L = \mathbf D - \mathbf W $ ,因此在图的拉普拉斯算子就是拉普拉斯矩阵。上述结果都是基于
$ f_i $ 为标量推导,实际上当 $ f_i $ 为向量时也成立。假设图的节点数量为
$ m $ ,图的拉普拉斯矩阵 $ \mathbf L\in \mathbb R^{m\times m} $ 是一个半正定对称矩阵,它具有以下性质:- 对称矩阵一定有
$ m $ 个线性无关的特征向量。 - 半正定矩阵的特征值一定是非负的。
- 对称矩阵的特征向量相互正交,即:所有特征向量构成的矩阵为正交矩阵。
因此有拉普拉斯矩阵的谱分解:
其中
$ \mathbf{\vec u}_k $ 为第 $ k $ 个特征向量, $ \lambda_k $ 为第 $ k $ 个特征值。解得:
$ \mathbf L = \mathbf U \mathbf\Lambda \mathbf U^\top $ ,其中 : $ \mathbf U $ 每一列为特征向量构成的正交矩阵, $ \mathbf\Lambda $ 为对应特征值构成的对角矩阵。- 对称矩阵一定有
根据
$ \mathbf L=(\mathbf D-\mathbf W) $ 的定义有:根据特征方程:
$ \mathbf L\mathbf{\vec u} = \lambda \mathbf{\vec u} $ ,因此 $ \lambda = 0 $ 是 $ \mathbf L $ 的一个特征值。由于半正定矩阵的特征值一定是非负的,因此 $ \lambda =0 $ 是 $ \mathbf L $ 的最小特征值。在
$ \mathbf L $ 对应的 $ m $ 维谱空间中,特征值 $ \lambda_k $ 越小则表明拉普拉斯矩阵 $ \mathbf L $ 在 $ \lambda_k $ 对应的基 $ \mathbf{\vec u}_k $ 上的分量的信息越少,这意味着该分量是可以忽略的低频部分。其实图像压缩就是这个原理,把像素矩阵分解后,把小的特征值(低频部分)全部变成零。PCA
降维也是同样原理,把协方差矩阵特征分解后,取top K
个特征值对应的特征向量作为新的特征空间。 如下图所示为包含25
个节点的图,其 $ \mathbf L $ 对应的25
维空间中,最大特征值、第12
大特征值、次小特征值(因为最小特征值为零,因此第24
大特征值就是次小的)对应特征向量 $ \mathbf{\vec u}_k $ 的可视化。可以看到:特征值越大则对应特征向量的变化越剧烈,特征值越小则对应特征向量的变化越平缓。注意:最小特征值为零,并且对应的特征向量为全1
的向量(或者乘以常数倍),这意味着该特征向量在所有节点上取值相等(所以变化为零),即频率为零的分量。
2.1.2 卷积
给定函数
$ f(x) $ , 其傅里叶变换为:其中
$ F(k) = \frac{1}{2\pi}\int_{-\infty}^{\infty} f(x) e^{-ikx} dx $ 为傅里叶系数,即频率为 $ k $ 的振幅, $ e^{-iwx} $ 为傅里叶基fouries basis
。可以证明:
$ e^{-ikx} $ 为拉普拉斯算子的特征函数。证明:如果将傅里叶变换推广到图上,则有类比:
拉普拉斯算子对应于拉普拉斯矩阵
$ \mathbf L $ 。频率
$ k $ 对应于拉普拉斯矩阵的特征值 $ \lambda_k $ 。傅里叶基
$ e^{-ikx} $ 对应于特征向量 $ \mathbf{\vec u}_k $ 。傅里叶系数
$ F(k) $ 对应于 $ F(\lambda_k) $ ,其中:写成矩阵形式为:
其中:
$ \mathbf{\vec f} \in \mathbb R^{m} $ 为图上定义的一个 $ m $ 维的信号(空域信号),它由每个节点的特征 $ f_i $ 组成。 $ \hat{\mathbf{\vec f}} $ 为图的傅里叶变换(谱域信号),它是在谱域上对应于不同特征值的振幅构成的向量。 $ \hat{\mathbf{\vec f}} $ 其实就是 $ \mathbf{\vec f} $ 在由 $ m $ 个基向量 $ \left\{\mathbf{\vec u}_1,\cdots,\mathbf{\vec u}_m\right\} $ 所张成的谱空间中的坐标, $ \hat f_i $ 就是 $ \mathbf{\vec f} $ 在基向量 $ \mathbf{\vec u}_i $ 上的投影。
传统的傅里叶逆变换
$ \mathcal F^{-1}(F(k)) = f(x) = \int_{-\infty}^\infty F(k)e^{ikx} dk $ 对应于图结构:其中
$ u_{k,i} $ 对应于特征向量 $ \mathbf{\vec u}_k $ 的第 $ i $ 个分量。写成矩阵的形式为:
卷积定理:两个函数在时域的卷积等价于在频域的相乘。
对应于图上有:
其中:
$ \odot $ 为逐元素乘积, $ \mathbf U $ 为拉普拉斯矩阵 $ \mathbf L $ 特征向量组成的矩阵(每一列为一个特征向量), $ \mathbf K $ 为对角矩阵:这里将逐元素乘积转换为矩阵乘法。
图卷积神经网络的核心就是设计卷积核,从上式可知卷积核就是
$ \mathbf K $ 。我们可以直接令 $ \mathbf{\vec h}\cdot \mathbf{\vec u}_k = \theta_k $ ,然后学习卷积核:我们并不关心
$ \mathbf{\vec h} $ ,仅仅关心傅里叶变换之后的 $ \hat{\mathbf{\vec h}} $ 。
2.2 空域构建 Spatial Construction
2.2.1 基本概念
在通用的图结构上针对
CNN
最直接的推广是考虑多尺度的、局部的感受野。为此,我们使用一个加权图 $ G = (\mathbf\Omega, \mathbf W) $ 来代替网格结构,其中 $ \mathbf\Omega $ 为大小为 $ m $ 的节点集合, $ \mathbf W\in \mathbb R^{m\times m} $ 为对称、非负的权重矩阵(这里采用无向图)。这里的权重指的是图中边的权重,而不是神经网络的权重。
基于
$ \mathbf W $ 的局部性locality
:可以很容易地在图结构中推广局部性的概念。实际上,图中的权重决定了局部性的概念。例如,在 $ \mathbf W $ 上定义邻域的一种直接方法是设置阈值 $ \delta\gt 0 $ ,并设置邻域为:其中
$ \mathcal N_\delta(j) $ 为节点 $ j $ 的邻域节点集合。在执行卷积时,我们可以仅仅考虑将感受野限制在这些邻域上的
sparse filter
,从而获得局部连接的网络locally connected network
,从而将卷积层的参数数量减少到 $ O(S\times m) $ (而不是 $ O(m^2) $ ),其中 $ S $ 为平均邻域大小。每个节点需要
$ S $ 个参数,一共 $ m $ 个节点,所以参数数量是 $ O(S\times m) $图的多分辨率
multiresolution
分析:CNN
通过池化pooling
层和降采样subsampling
层来减少feature map
的尺寸,在图结构上我们同样可以使用多尺度聚类multiscale clustering
的方式来获得多尺度结构。在图结构上如何进行多尺度聚类仍然是个开发的研究领域,我们这里根据节点的邻域进行简单的聚类。图的邻域结构天然地代表了某种意义上的聚类。比如,社交网络的一阶邻域代表用户的直接好友圈子,以一阶邻域来聚类则代表了一个个的”小团体“。基于这些 ”小团体“ 进行聚类得到的高阶聚类可能包含了国家的信息,比如”中国人“被聚合在一个高阶聚类中,”美国人“被聚合在另一个高阶聚类中。
下图给出了多尺度层次聚类的示意图(两层聚类)。原始的
12
个节点为灰色。第一层有6
个聚类,聚类中心为彩色节点,聚类以彩色块给出。第二层有3
个聚类,聚类以彩色椭圆给出。
2.2.2 深度局部连接网络 Deep Locally Connected Networks
空域构建
spatial construction
从图的多尺度聚类开始,并且我们考虑 $ K $ 个尺度scale
。定义第0
个尺度表示原始图,即 $ \mathbf\Omega_0 = \mathbf\Omega $ 。对于之后每个尺度的feature map
, $ \mathbf\Omega_k $ 是通过聚类算法将feature map
$ \mathbf\Omega_{k-1} $ 划分到 $ d_k $ 个聚类而得到,其中 $ d_0 $ 为原始图的节点数量 $ m $ , $ k=1,2,\cdots,K $ 。 $ \mathbf\Omega_k $ 包含 $ d_k $ 个节点,这些节点是 $ d_k $ 个聚类的聚类中心。 $ \mathbf\Omega_{k-1} $ 包含 $ d_{k-1} $ 个节点,第 $ i $ 个节点的邻域记做 $ \mathcal N_{k,i} $ 。定义 $ \mathbf\Omega_{k-1} $ 中全部邻域集合的集合为:有了这些之后我们现在可以定义神经网络的第
$ k $ 层。不失一般性,我们假设输入信号是定义在 $ \mathbf\Omega_0 $ 上的实值信号real signal
(即标量值) ,我们设第 $ k $ 层创建的filter
数量为 $ f_k $ (即输出通道数)。则第 $ k $ 层神经网络将 $ f_{k-1} $ 个 $ d_{k-1} $ 维的信号转换为 $ f_k $ 个 $ d_k $ 维的信号。正式地,假设第
$ k $ 层神经网络的输入为:其中:
$ \mathbf X^{(k)} $ 为第 $ k $ 层神经网络的输入feature map
。 $ \mathbf X ^{(k)} $ 的第 $ i $ 行定义为 $ \mathbf {\vec x}^{(k)}_{i,:} = \left(x^{(k)}_{i,1},\cdots ,x^{(k)}_{i,f_{k-1}}\right)^\top\in \mathbb R^{f_{k-1}} $ 为 $ \mathbf\Omega_{k-1} $ 的第 $ j $ 个节点的feature
。 $ \mathbf X^{(k)} $ 的第 $ j $ 列定义为 $ \mathbf{\vec x}_{:,j}^{(k)} = \left(x_{1,j}^{(k)},\cdots,x_{d_{k-1},j}^{(k)}\right)^\top\in \mathbb R^{d_{k-1}} $ 为第 $ j $ 个信号(一共 $ f_{k-1} $ 个)。
则第
$ k $ 层神经网络的第 $ j $ 个输出信号定义为:其中:
信号的每一维度表示一个通道,因此
$ f_{k-1} $ 为输入通道数, $ f_k $ 为输出通道数。 $ \mathbf F^{(k)}_{j^\prime,j} \mathbf{\vec x}_{:,j^\prime}^{(k)} $ 对第 $ j^\prime $ 个输入通道进行线性变换,变换矩阵为 $ \mathbf F^{(k)}_{j^\prime,j} $ 。 $ \sum_{j^\prime=1}^{f_{k-1}} \mathbf F^{(k)}_{j^\prime,j} \mathbf{\vec x}_{:,j^\prime}^{(k)} $ 的物理意义为:第 $ j $ 个输出通道由所有输入通道的线性变换进行sum
聚合而来。 $ \mathbf F^{(k)}_{j^\prime,j} \in \mathbb R^{d_{k-1}\times d_{k-1}} $ 为一个稀疏矩阵(作为filter
),它表示应用于第 $ j^\prime $ 个输入通道、第 $ j $ 个输出通道的参数矩阵。 $ \mathbf F^{(k)}_{j^\prime,j} $ 的非零项由 $ \mathcal N_k $ 来定义,即:即:当节点
$ v $ 不在节点 $ u $ 的邻域中时 $ F_{j^\prime,j}^{(k)}(u,v) $ 为零,由于对称性此时 $ F_{j^\prime,j}^{(k)}(v,u) $ 也为零。 $ \left\{\theta_{j^\prime,j}^{(k)}(u,v)\right\} $ 为filter
的待学习的参数。这意味着在线性投影时,节点
$ u $ 的输出仅依赖于其邻域节点 $ \mathcal N_{k,u} $ ,即局部性。 $ h(\cdot) $ 为非线性激活函数。 $ \mathbf L^{(k)} $ 为第 $ k $ 层的池化矩阵,矩阵的行表示聚类cluster id
,列表示节点id
,矩阵中的元素表示每个节点对应于聚类中心的权重:如果是均值池化则就是1
除以聚类中的节点数,如果是最大池化则是每个聚类的最大值所在的节点。 $ \mathbf L^{(k)} $ 用于将 $ f_k $ 个 $ d_{k-1} $ 维的输出通道的信号池化为 $ f_k $ 个 $ d_k $ 维的信号。
$ \mathbf\Omega_k $ 和 $ \mathcal N_k $ 的构建过程:初始化:
$ \mathbf W_0 = \mathbf W $ 。根据对
$ \mathbf W_k $ 的 $ \epsilon\text{-covering} $ 得到 $ \mathbf\Omega_k $ 。理论上也可以采取其它聚类算法。对于
$ \mathbf\Omega_k $ ,其簇中心 $ i,j $ 之间的连接权重为两个簇之间的所有连接的权重之和:然后按行进行归一化:
根据
$ \mathbf W_k $ 以及邻域阈值 $ \delta $ 得到 $ \mathcal N_k $ 。
如下图所示
$ K=2 $ 。 $ \mathbf\Omega_0 $ 表示第零层,它有12
个节点(灰色),信号为一个通道(标量)。 $ \mathbf\Omega_1 $ 表示第一层,其输入为 $ \mathbf\Omega_0 $ ,输出6
个节点,输出信号四个通道(四个filter
)。 $ \mathbf\Omega_2 $ 表示第二层,其输入为 $ \mathbf \Omega_1 $ ,输出3
个节点,输出信号六个通道(六个filter
)。
每一层卷积都降低了空间分辨率
spatial resolution
,但是增加了空间通道数。假设
$ S_k $ 为 $ \mathcal N_k $ 中平均邻居数量,则第 $ k $ 层卷积的平均参数数量为:实际应用中我们可以使得
$ S_k\times d_k\simeq \alpha d_{k-1} $ , $ \alpha $ 为一个升采样系数,通常为 $ \alpha \in (1,4) $ 。为什么这么做?论文并未说明原因。
空域构建的实现非常朴素,其优点是不需要对图结构有很高的规整性假设
regularity assumption
。缺点是无法在节点之间实现权重共享。
2.3 谱域构建 Spectral Construction
可以通过图拉普拉斯算子来探索图的全局结构,从而推广卷积算子。
假设构建一个
$ K $ 层的卷积神经网络,在第 $ k $ 层将输入的feature map
$ \mathbf X^{(k)}\in \mathbb R^{d_{k-1} \times f_{k-1}} $ 映射到 $ \mathbf X^{(k+1)}\in \mathbb R^{d_{k-1} \times f_{k}} $ ,则第 $ k $ 层网络的第 $ j $ 个输出通道为:其中:
$ \mathbf{\vec x}^{(k)}_{:,j^\prime} $ 表示第 $ j^\prime $ 个输入信号,即 $ \mathbf X^{(k)} $ 的第 $ j^\prime $ 列。 $ \mathbf U $ 为拉普拉斯矩阵特征向量组成的矩阵(每一列表示一个特征向量)。实际应用中,通常仅仅使用拉普拉斯矩阵的最大
$ D $ 个特征向量,截断阈值 $ D $ 取决于图的固有规整性regularity
以及图的节点数量。此时上式中的 $ \mathbf U $ 替换为 $ \mathbf U_D\in \mathbb R^{d_{k-1}\times D} $ 。这可以减少参数和计算量,同时去除高频噪声。 $ \mathbf K^{(k)}_{j^\prime,j}\in \mathbb R^{d_{k-1}\times d_{k-1}} $ 为第 $ k $ 层的、针对第 $ j^\prime $ 个输入通道、第 $ j $ 个输出通道的谱域filter
。一般而言我们选择filter
$ \mathbf K_{j^\prime,j}^{(k)} $ 为对角矩阵,因此第 $ k $ 层卷积层的参数数量为 $ f_{k-1}\times f_k\times d_{k-1} $ 。我们将在后文看到如何将图的全局规整性和局部规整性结合起来,从而产生具有
$ O(1) $ 参数的层,即模型参数的数量不依赖于输入节点数 $ d_{k-1} $ 。 $ h(\cdot) $ 为非线性激活函数。
谱域构建可能受到以下事实的影响:大多数图仅在频谱的
top
(即高频部分)才具有有意义的特征向量。即使单个高频特征向量没有意义,一组高频特征向量也可能包含有意义的信息。然而,我们的构建方法可能无法访问这些有意义的信息,因为我们使用对角线形式的卷积核,在最高频率处它是对角线形式因此仅包含单个高频特征向量(而不是一组高频特征向量)。
傅里叶变换是线性变换,如何引入非线性目前还没有很好的办法。
具体而言,当在空域执行非线性变换时,如何对应地在谱域执行前向传播和反向传播,目前还没有很好的办法,因此我们必须进行昂贵的
$ \mathbf U $ 和 $ \mathbf U^\top $ 矩阵乘法。为了降低参数规模,一个简单朴素的方法是选择一个一维的排列
arrangement
(这个排列的顺序是根据拉普拉斯特征值的排序得到)。此时第 $ k $ 层网络的每个filter
$ \mathbf K_{j^\prime,j}^{(k)} $ 的对角线可以参数化为:其中:
$ \mathcal K^{(k)}\in \mathbb R^{d_{k-1}\times q_k} $ 为三次样条核函数, $ \alpha^{(k)}_{j^\prime,j}\in \mathbb R^{q_k} $ 为 $ q_k $ 个样条参数。假设采样步长正比于节点数量,即步长
$ \alpha \sim d_{k-1} $ ,则 $ q_k\sim d_{k-1}\times \frac{1}{\alpha} = O(1) $ , 则谱域卷积的参数数量降低为: $ f_{k-1}\times f_k $ 。
2.4 实验
- 我们对
MNIST
数据集进行实验,其中MNIST
有两个变种。所有实验均使用ReLU
激活函数以及最大池化。模型的损失函数为交叉熵,固定学习率为0.1
,动量为0.9
。
2.4.1 降采样 MNIST
我们将
MNIST
原始的28x28
的网格数据降采样到400
个像素,这些像素仍然保留二维结构。由于采样的位置是随机的,因此采样后的图片无法使用标准的卷积操作。采样后的图片的示例,空洞表示随机移除的像素点。
空域层次聚类的可视化,不同的颜色表示不同的簇,颜色种类表示簇的数量。图
a
表示 $ k=1 $ ,图b
表示 $ k=3 $ 。可以看到:层次越高,簇的数量越少。谱域拉普拉斯特征向量的可视化(谱域特征向量每个元素就是对应于每个节点的取值)。图
a
表示 $ \mathbf{\vec v}_2 $ (对应于较小的特征值),图b
表示 $ \mathbf{\vec v}_{20} $ (对应于较大的特征值)。可以看到:特征值越小的特征向量对应于低频部分(变化越缓慢,左图),特征值越大的部分对应于高频部分(变化越剧烈,右图)。不同模型在
MNIST
上分类的结果如下。基准模型为最近邻模型kNN
,FCN
表示带有N
个输出的全连接层,LRFN
表示带有N
个输出的空域卷积层,MPN
表示带有N
个输出的最大池化层,SPN
是带有N
个输出的谱域卷积层。- 基准模型
kNN
(第一行)的分类性能比完整的(没有采样的)MNIST
数据集的2.8%
分类误差率稍差。 - 两层全连接神经网络(第二行)可以将测试误差降低到
1.8%
。 - 两层空域图卷积神经网络(第三行的下面部分)效果最好,这表明空域卷积层核池化层可以有效的将信息汇聚到最终分类器中。
- 谱域卷积神经网络表现稍差(第四行),但是它的参数数量最少。
- 采用谱域平滑约束(选择
top
的 $ 200 $ 个频率)的谱域卷积神经网络的效果优于常规的谱域卷积神经网络。
- 基准模型
由于
MNIST
中的数字由笔画组成,因此具有局部性。空域卷积通过filter
$ \mathbf F^{(k)}_{j^\prime,j} $ 的定义从而很明确的满足这一约束,而谱域卷积则没有强制空间局部性。在谱域filter
上添加平滑约束可以改善分类结果,因为filter
被强制具有更好的空间局部性。- 图
(a),(b)
表示同一块感受野在空域卷积的不同层次聚类中的结果。 - 图
(c),(d)
表示谱域卷积的两个拉普拉斯特征向量,可以看到结果并没有空间局部性。 - 图
(e),(f)
表示采用平滑约束的谱域卷积的两个拉普拉斯特征向量,可以看到结果有一定的空间局部性。
- 图
2.4.2 球面 MNIST
我们将
MNIST
图片映射到一个球面上,构建方式为:- 首先从单位球面上随机采样
4096
个点 $ \mathbb S =\{s_1,\cdots,s_{4096}\} $ 。 - 然后考虑三维空间的一组正交基
$ \mathbf E = (\mathbf{\vec e}_1,\mathbf{\vec e}_2,\mathbf{\vec e}_3) $ ,其中 $ ||\mathbf{\vec e}_1|| = 1,||\mathbf{\vec e}_2||=2,||\mathbf{\vec e}_3||=3 $ ,以及一个随机方差算子 $ \mathbf\Sigma = (\mathbf E + \mathbf W)^\top(\mathbf E + \mathbf W) $ ,其中 $ \mathbf W $ 是一个方差为 $ \sigma^2\lt 1 $ 的独立同部分的高斯分布的分布矩阵。 - 对原始
MNIST
数据集的每张图片,我们采样一个随机方差 $ \Sigma_i $ 并考虑其主成分分析PCA
的一组基 $ \{\mathbf{\vec u}_1,\mathbf{\vec u}_2,\mathbf{\vec u}_3 \} $ 。这组基定义了一个平面内的旋转。我们将图片按照这组基进行旋转并使用双三次插值将图片投影到 $ \mathbb S $ 上。
由于数字
6
和9
对于旋转是等价的,所以我们从数据集中移除了所有的9
。下面给出了两个球面
MNIST
示例:下面给出了谱域构建的图拉普拉斯矩阵的两个特征向量的可视化。图
a
表示 $ \mathbf{\vec v}_{20} $ ,图b
表示 $ \mathbf{\vec v_{100}} $ 。可以看到:特征值越小的特征向量对应于低频部分(左侧),特征值越大的部分对应于高频部分(右侧)。- 首先从单位球面上随机采样
首先考虑“温和”的旋转:
$ \sigma^2=0.2 $ ,结果如下表所示。- 基准的
kNN
模型的准确率比上一个实验(随机采样MNIST
)差得多。 - 所有神经网络模型都比基准
KNN
有着显著改进。 - 空域构建的卷积神经网络、谱域构建的卷积神经网络在比全连接神经网络的参数少得多的情况下,取得了相差无几的性能。
- 基准的
不同卷积神经网络学到的卷积核(即
filter
)如下图所示。- 图
(a),(b)
表示同一块感受野在空域卷积的不同层次聚类中的结果。 - 图
(c),(d)
表示谱域卷积的两个拉普拉斯特征向量,可以看到结果并没有空间局部性。 - 图
(e),(f)
表示采用平滑约束的谱域卷积的两个拉普拉斯特征向量,可以看到结果有一定的空间局部性。
- 图
最后我们考虑均匀旋转,此时
$ \{\mathbf{\vec u}_1,\mathbf{\vec u}_2,\mathbf{\vec u}_3 \} $ 代表 $ \mathbb R^3 $ 中的随机的一组基,此时所有的模型的效果都较差。这时需要模型有一个完全的旋转不变性,而不仅仅是平移不变性。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论