【A mathematical theory of semantic development in deep neural networks】
人类的认知能力很大程度上依赖于语言,语言的抽象化可以让人类以一种更加高效的方式进行交流。最近的神经科学的研究通过看人脑之中的相关的结构的被点亮的状态来研究Semantic的相关的内容。研究人员发现具有相似的Semantic Similarity的文字会对于大脑之中的相似的部位产生刺激,并且有意思的是,不仅仅是人类会产生这种现象,对于猴子也会产生类似的现象(猴语?)。
那么上面的实证的结果也带来了一些基础性的概念的问题,比如说人类所感应这些现象的机制到底是什么?在本文之中,其主要是想要使用一个简单的深度线性网络(Deep Linear Networks)来处理在Semantic之中所蕴含的信息。
Deep Linear Neural Network
深度神经网络大家应该都非常熟悉了,现在最常见的神经网络之中采用的是非线性的激活函数处理赋权之后的结果,但是还有一类神经网络并不采用非线性的激活函数,而仅仅是线性变换的拼接和组合。
和普通的神经网络一样,其输入的是词语$x$而其输出是词语所代表的一些性质,记作是$y$。由于在线性神经网络之中的运算属于线性的运算,理论上深层网络是可以通过矩阵联乘得到一个Fianl Matrix达到类似的效果。但是在实验之中,作者发现通过线性的神经网络也可以得到类似的非线性的特征。也就是那些hierarchal的特征可以通过线性的结构给得到。
而通过充分的训练之后,如果输入了一些Inputs到模型之中,可以发现其输出满足下图之中的形状
可以发现,类似的词语是会有明显的聚类的倾向的。而对于上图之中的这种现象,作者也给出了一个数学的解释
模型之中的参数的更新的过程如果是按照梯度下降法的话是按照下面的公式进行的
$$\Delta W^1 = \lambda W^{2^{T}} (y^{i} – \hat{y}^{i})x^{iT}$$
$$\Delta W^2 = \lambda (y^{i} – \hat{y}^{i})h^{iT}$$
其中的$\lambda$是学习率。如果将训练的过程看成是一个一个的小Epoch的过程,而在每一个Epoch之中都是随机的抽取样本然后进行优化。那么其实在足够多的Epoch之后,优化的时候就相当于是对于上面的公式进行一个平均,也就可以看成是下面的这样的一个优化的过程
$$\frac{d}{d t}W^{1} = W^{2^{T}} (\Sigma^{yx} – W^2W^1\Sigma^{x})$$
$$\frac{d}{d t}W^{2} = (\Sigma^{yx} – W^2W^1\Sigma^{x})W^{1^{T}} $$
其中的$\Sigma^{x} =E(xx^{T})$,是输入向量之间的相关矩阵,而$\Sigma^{yx} = E(yx^T)$是输入和输出的相关矩阵。作者认为输入矩阵之间应该可以近似的认为是两两正交的,而将$\Sigma^{yx} $进行SVD的话
$$\Sigma^{yx} = USV^{T} = \sum_{\alpha = 1}^{N_1}s_{\alpha}u^{\alpha}v^{\alpha T}$$
可以表示为下图的形式
所以在这里的$V$可以表示事物的向量。$S$表示的整体上而言,词语和其Label的契合的程度。而如果将转换矩阵(线性神经网络的Weight Matrix)进行SVD的话,可以表示成为下面的形式
$$W^2(t)W^1(t) = UA(t)V^{T} = \sum_{\alpha = 1 }^{N_2} a_{\alpha}(t)u^{\alpha}v^{\alpha T} $$
其中的
$$a_{\alpha }(t) = \frac{s_{\alpha} e^{2s_{\alpha} t/\tau}}{ e^{2s_{\alpha} t/\tau} – 1 + s_{\alpha}/a_{\alpha}^{0}}$$
而$W^1 , W^2$的解析解可以看成是下面的这种形式
$$W^1 (t) = Q\sqrt{A(t)} V^T, \quad W^2 (t) = U\sqrt{A(t)}Q^{-1}$$
其中的$Q$是一个可逆的任意的矩阵,对于其中的Item i来说,其Hidden Rep可以表示成为
$$h_{i}^{\alpha} = \sqrt{a^\alpha(t)} v_{i}^{\alpha}$$
然后通过MDS(multidimensional scaling)的可视化的方法就可以将其转换成下面的这个样子
随着不断的Epoch的训练,不同的Item之间也就慢慢的进行了区分。
当然上面的这种方法属于一种比较粗糙的方法,后面作者也通过更加细致的分析对于知识进行了处理。
Organization and Encoding Knowledge
不同的Item以及Feature是以一种Underlying的 Hierarchy结构相互勾稽的。根据长时间以来的实证结果表示,物品所属类别的分类不仅仅是二元的分类,其实可以认为在这里存在着一种Score的机制,比如说Sparrow在Bird这一类的Score就要高于Penguin的Score.所以说假设当一个Item $i$ 属于Categorial $\alpha$的时候我们就将这个分数记作是$v_{i}^{\alpha}$.为什么要这样记呢?现在假设在神经网络之中的内部表示空间存在着一条分割线,我们将其记作是$\alpha$,对于不同的object i 也都有一个向量化的表示,而对于向量来说,其也可以表示在空间上的一个点,如果这个点落在了分割线的任何的一侧,我们就可以认为其是属于这个类之中的,而其落入之中的可能性,就是上面的那个分数。有点抽象,我们举个例子,如果说假设$\alpha$是属于Bird和Fish的分隔,如果一个Object i 有较大的正向$v_{i}^{\alpha}$,我们就可以认为其属于鸟这一边,而这个分数也可以被称为是Typicality自己将其翻译成为是典型性。而对于神经网络的输出$y_{m}^{\alpha}$,根据SVD的公式可以得到
所以说上面的这个记号有良好的数学性质,可以通过SVD进行形式化的表达,也可以很好的与神经网络的表现相联系。
而如何获得呢?之前的文献表示获得Typicality的方式一般都涉及到了计算Item的Feature的加权平均,比如说Sparrow比Penguin更像鸟就是因为在Fly这个Feature上面比Penguin的的值更高,但是如何确定这个权重呢?或者说如何确定哪些类会注重哪些特征,作者使用的公式如下
这里的Item i 由其特征向量所表示即$o^{i} \in R^{N_{3}} $,通过与特征合成器(Feature Synthesizer) $u^{\alpha}$之中的相应元素的点乘(加权)之后,可以得到其最后的表示。通过上面的这样的计算之后,就可以映射在了一个一维的空间之中,其可视化的表示如下图。
Category Coherence
我们拿到的Category并非是任意的,在不同的Category之间应该是存在着一些Coherent的东西的,比如说一个类可以被命名为电脑或者是被命名为不能进水,有键盘,有屏幕,有独立电源的电子设备。从人类的角度上来说,肯定会更加倾向于选择之前的方式。而一个所谓的Coherent的Categories的话,其应该在类内差距足够小而类间的差距足够大。为了知道这一点,我们就需要知道哪些特征在是在该类别之中最重要的,而为了得到这一点我们需要知道在这个类别之中包含了哪些Member。但是如果要知道在这些类别之中分别包含了哪些Member的话,我们又必须有一个很好的分类的标准,也就是说,需要知道哪些特征是最重要的。看起来这就是进入了一个循环了,很像先有鸡还是先有蛋的问题了。而为了解决这样的一个Gordian knot of circularity 的问题呢。其受到了Piror Network Simulation 的激发,尝试使用下面的这些方法来处理
假设我们现在有了一个数据集,其中包含了$N_{0}$个Object,其中含有$N_{f}$个特征。现在考虑一个Category,其中有$K_{f}$个特征是倾向于以高概率$p$发生的,而在其中有$K_{o}$个特征是倾向于以低概率$q$发生的。记一个Ratio为Signal to Noise Ratio = $\frac{(p-q)^{2}}{q(1-q)}$,如果$K_{o},K_{f}$或者上面SNR增加的话,都会导致其分类的表现增加。
通过随机矩阵理论,可以知道最终的表现依赖于下面的这样的一个变量
$$C = SNR \frac{K_{o} K_{f}}{\sqrt{N_{o} N_{f}}}$$
作者通过可视化之后发现了一个非常有意思的现象,在这里存在一个阈值1,当C超过1的时候,模型的表现才会逐渐的增加,而当其小于1的时候则并不会发生较大的变化。
而我们现在在处理的问题可以被看成是在处理一些Basic的Category的问题,因为我们这里的假设是不同的Category之间是不存在所谓的Hierarchy的结构的。但是一个非常显然的问题就是在现实的生活之中是存在着这种所谓的层次化的结构的,那我们的神经网络又应该怎么样才可以学习到这样的结构呢?一个简单的方式就是通过PGM的方式,建造出一个图的结构,因此我们便可以创造出各种复杂的高阶的结构。而由于PGM之中也有一个常见的假设就是在相邻的两个节点之间的关系会更加的接近,所以我们也可以更加细致的处理不同的低层节点之间的关系。作者认为在网络之中分别存在了下面的这五种不同的形式的基本高级结构,分别是Cluster,Trees, Rings and Grids ,Orderings ,Cross-cutting Structure.
他们所对应的不同的特点和结构都在上面进行了一个简单的表示。
Inductive Projection
在小学生上课的时候,当人学习到了一个新的概念的时候,比如说Canary is Warm-Blooded 这样的一个Fact,他们可能会基于自己知道的事实再进行一些简单的推广,他们会提出问题,比如说Is a Robin warm-blooded.但是这样的一个问题的提出的质量是和学生的相关的知识水平息息相关的,对于那些年轻的学生的话,他们很有可能提出一些看起来很幼稚的问题,但是对于那些稍微年长的学生的话,他们也就可以提出那些更加高质量的问题。这样的一种提问的Pattern的改变是如何发生的呢?作者基于之前的Network Simulation的机制继续处理这个问题。
假设现在我们已经知道了一个Item具有某些特征,比如说知道一个Pine有特征$x$,为了使用这样的一些Knowledge,在神经网络之中是很容易实现的,其一定程度上是可以通过输入的向量的相似的程度而实现的。因为相似的向量的输入在网络之中,其输出的结果理应就是相似的。那么也就是说,可以通过向量的输入的特征,经过神经网络的Projection就得到其可能具有的Property.
Comments
全文的讲解非常的充实,当然也非常的艰深,其中的所需要的数学基础还是非常厚实的,所以我也读的非常的费劲。我在最后再捋一遍整篇文章的思路,作者是受到了在实证结果之中的大脑会对于语义相似的词语在大脑之中的相关的区域发出类似的信号,所以作者尝试使用一个Deep Linear Network进行模拟,在模拟的过程之中,神经网路的输入是词语的向量,而$y$则是其所具有的相关的特征。这里可能就会产生一些混淆了,词语的向量里面当然是具有了相关的词语的特征,但是这种信息可以看成是一些不可知的信息,而神经网络的输出可以看成是一些人类手工添加的消息,是可以知道的信息。
而由于模型的整体是一个Linear的Transformation,所以在作者的对于网络的分析之中大量的使用了矩阵论之中的知识,其中还涉及到一些关于随机矩阵(Random Matrix)的分析,通过这些矩阵分析的技巧,作者给出了如何设计不同的分类的结构以及如何观察在不同的分类之中的Hierarchy的结构的方法。
本文真的可以感觉到是一篇很不错的文章,但是也真的是一个难度非常高的文章,自己的这次阅读感觉也仅仅是了解了个大概,以后应该会重读再更加深入的理解。
Reference
A mathematical theory of semantic development in deep neural networks
Comments
Leave a Comment