神经网络,流形和拓扑

作者&投稿:巴牲 (若有异议请与网页底部的电邮联系)
~ 本文翻译自colah的博客中的文章《Neural Networks, Manifolds, and Topology》

链接:http://colah.github.io/posts/2014-03-NN-Manifolds-Topology/

发布于2014年4月6日

关键词:拓扑,神经网络,深度学习,流形假设(manifold hypothesis)

最近,深度神经网络给人们带来很大的振奋,引起了极大的兴趣,因为其在像计算机视觉等领域中取得的突破性成果。[1]

但是,人们对其仍存在一些担忧。一个是要真正理解一个神经网络在做什么是一件十分具有挑战的事情。如果一个人将其训练得很好,它可以取得高质量的结果,但是要理解其是如何做到这一点很难。如果网络出现故障,很难了解哪里出现了问题。

虽然,总体上来说要理解深度神经网络的行为具有挑战性,但事实证明,探索低维深度神经网络要容易得多,低维深度神经网络是指每层中只有少量神经元的网络。事实上,我们可以创建可视化来完全理解这种网络的行为和训练过程。这种观点将使我们能够更深入地了解神经网络的行为,并观察到神经网络和一个称为拓扑的数学领域之间的联系。

从中可以得到许多有趣的东西,包括能够对某些特定数据集进行分类的神经网络复杂度的基本下界。

让我们从一个非常简单的数据集开始,在平面上有两条曲线。网络将学习把点归类为属于一个或另一个。

对于这个问题,可视化神经网络行为的明显方法 - 或者任何分类算法 - 就是简单地看一下它如何对每个可能的数据点进行分类。

我们将从最简单的神经网络类别开始,只有一个输入层和一个输出层。这样的网络只是试图通过用直线划分它们来分离这两类数据。

那种网络不是很有趣。现代神经网络通常在其输入和输出之间具有多个层,称为“隐藏”层。至少有一个。

和前面一样,我们可以通过查看它对域中不同点的划分来可视化该网络的行为。它使用比直线更复杂的曲线将数据分离。

对于每一层,网络都会转换数据,创建一个新的表示。[2] 我们可以查看每个表示中的数据以及网络如何对它们进行分类。当我们到达最终表示时,网络将只绘制一条穿过数据的线(或者,在更高维度下,绘制一个超平面)。

在之前的可视化中,我们以“原始”表示形式查看了数据。当我们看输入层时,你可以想到这一点。现在我们将在第一层转换后查看它。你可以把它想象成我们在看隐藏层。

每个维度对应于层中神经元的发射。

在上一节中概述的方法中,我们通过查看与每个层对应的表示来学习理解网络。这给了我们一个离散的表示序列。

棘手的部分是理解我们如何从一个到另一个。值得庆幸的是,神经网络层具有很好的属性,使这很容易实现。

在神经网络中使用各种不同类型的层。我们将讨论tanh(双曲正切)层作为一个具体示例。 tanh层 tanh(Wx + b) 包括:

1. 经过“权重”矩阵 W 的线性变换

2. 经过矢量 b 的平移

3. 点式地应用tanh。

我们可以将其视为一个连续的转换,如下所示:

其他标准层的过程大致相同,包括仿射变换,然后逐点应用单调激活函数。

我们可以应用这种技术来理解更复杂的网络。例如,以下网络使用四个隐藏层对两个略微纠缠的螺旋进行分类。随着时间的推移,我们可以看到它从“原始”表示转变为它为了对数据进行分类而学到的更高级别的表示。虽然螺旋最初是缠绕的,但最终它们是线性可分的。

另一方面,以下网络也使用多个层,无法对两个更纠缠的螺旋进行分类。

值得明确指出的是,这些任务只是有些挑战,因为我们使用的是低维神经网络。如果我们使用更广泛的网络,所有这一切都会非常容易。

(Andrej Karpathy基于ConvnetJS做了一个很好的演示,它允许您通过这种对训练的可视化来交互式地探索网络!)

每一层都伸展并占据空间,但它永远不会削减,折断或折叠它。直觉上,我们可以看到它保留了拓扑属性。例如,如果一个集合之前是连通的那其之后也是连通的(反之亦然)。

像这样不会影响拓扑的变换,称为同胚。在形式上,它们是双向连续函数的双射。

定理 :如果权重矩阵W是非奇异的,则具有 N 个输入和 N 个输出的层是同胚。 (虽然需要注意域和范围。)

证明 :让我们一步一步考虑:

1. 假设W具有非零行列式。然后它是具有线性逆的双射线性函数。线性函数是连续的。因此,乘以 W 是同胚。

2. 平移是同胚的。

3. tanh(和sigmoid和softplus但不是ReLU)是具有连续逆的连续函数。如果我们对我们考虑的域和范围保持谨慎,它们就是双射的。逐点应用它们是同胚。

因此,如果 W 具有非零行列式,则我们的层是同胚。 ∎

如果我们将这些层中任意多个组合在一起,这个结果就会继续存在。

考虑一个二维数据集,有两个类A和B⊂R2:

A={x|d(x,0)<1/3}

B={x|2/3<d(x,0)<1}

声明 :如果没有具有3个或更多隐藏单位的层,神经网络就无法对此数据集进行分类,无论深度如何。

如前所述,使用S形单元或softmax层进行分类等同于尝试找到在最终表示中分离A和B的超平面(或在这种情况下为线)。由于只有两个隐藏单元,网络在拓扑上无法以这种方式分离数据,并且注定要在此数据集上失败。

在下面的可视化中,我们观察到网络训练时的隐藏表示以及分类线。正如我们所看到的那样,它正在努力学习如何做到这一点。

最终,它会被拉入一个相当低效的局部最小值。 虽然,它实际上能够达到~ 80% 的分类准确度。

这个例子只有一个隐藏层,但无论如何都会失败。

证明 :每一层都是同胚,或者层的权重矩阵具有行列式0.如果它是一个同胚,A仍然被B包围,并且一条线不能将它们分开。 但是假设它有一个行列式为0:那么数据集会在某个轴上折叠。 由于我们处理与原始数据集同胚的某些东西,A被B包围,并且在任何轴上折叠意味着我们将有一些A和B混合的点并且变得无法区分。∎

如果我们添加第三个隐藏单元,问题就变得微不足道了。 神经网络学习以下表示:

通过这种表示,我们可以使用超平面分离数据集。

为了更好地了解正在发生的事情,让我们考虑一个更简单的1维数据集:

A=[−1/3,1/3]

B=[−1,−2/3]∪[2/3,1]

如果不使用两个或更多隐藏单元的层,我们就无法对此数据集进行分类。 但是如果我们使用有两个单元的层,我们学会将数据表示为一条很好的曲线,允许我们用一条线来将不同的类分隔开来:

发生了什么? 一个隐藏单元在x > -1/2时学会开火,一个在x > 1/2时学会开火。当第一个开火但第二个没开火时,我们知道我们在A中。

这与现实世界的数据集,比如图像数据有关吗? 如果你真的认真对待流形假设,我认为值得考虑。

流形假设是自然数据在其嵌入空间中形成低维流形。 理论上[3]和实验上[4]都有理由认为这是真的。 如果你相信这一点,那么分类算法的任务就是从根本上分离出一堆纠结的流形。

在前面的例子中,一个类完全包围了另一个类。 然而,狗图像流形似乎不太可能被猫图像流形完全包围。 但是,正如我们将在下一节中看到的那样,还有其他更合理的拓扑情况可能仍然存在问题。

另一个值得考虑的有趣数据集是两个链接的圆环, A 和 B .

与我们考虑的先前数据集非常相似,如果不使用n+1维,即第4维,则无法分离此数据集。

链接是在结理论中研究的,这是一个拓扑领域。 有时当我们看到一个链接时,它是否是一个非链接(一堆东西纠结在一起,但可以通过连续变形分开)并不是很明显。

如果使用仅有3个单元的层的神经网络可以对其进行分类,那么它就是非链接。 (问题:理论上,所有非链接是否都可以被只有3个单元的网络进行分类?)

从这个结的角度来看,我们对神经网络产生的连续可视化的表示不仅仅是一个很好的动画,它还是一个解开链接的过程。在拓扑中,我们将其称为原始链接和分离链接之间的环境同位素(ambient isotopy)。

形式上,流形A和B之间的环境同位素是连续函数F:[0,1]×X→Y,使得每个Ft是从X到其范围的同胚,F0是恒等函数,F1将A映射到B。也就是说,Ft连续地从A向自身映射转换到A向B映射。

定理 :在输入和网络层表示之间存在环境同位素,如果:a) W 不是奇异的,b)我们愿意置换隐藏层中的神经元,并且c)存在多于1个隐藏单元。

证明 :同样,我们分别考虑网络的每个阶段:

1. 最难的部分是线性变换。 为了使这成为可能,我们需要 W 有一个正的行列式。 我们的前提是它不是零,如果它是负的,我们可以通过切换两个隐藏的神经元来翻转符号,那么我们可以保证行列式是正的。 正行列式矩阵的空间是路径连通的,因此存在 p :[ 0,1 ] →  GLn (R)5,使得  p(0) = Id  且  p(1) = W 。 我们可以用函数  x → p(t)x  连续地从恒等函数转换到 W 变换,在每个时间点 t 将 x 乘以连续转换矩阵 p(t) 。

2. 我们可以用函数 x → x + tb 不断地从恒等函数转换到b转换。

3. 通过函数: x → (1- t)x +tσ(x) ,我们可以不断地从恒等函数过渡到σ的逐点使用。∎

我想可能有兴趣自动发现这种环境同位素并自动证明某些链接的等价性,或某些链接是可分离的。知道神经网络能否击败现有技术水平将会很有趣。

(显然确定结是否平凡是NP问题。这对神经网络来说不是好兆头。)

到目前为止我们谈到的那种链接似乎不太可能出现在现实世界的数据中,但是有更高的维度的拓展。在现实世界的数据中可能存在这样的事情似乎是合理的。

链接和结是一维流形,但我们需要4个维度才能解开所有这些。类似地,人们可能需要更高维度的空间以能够解开n维流形。所有n维流形都可以在 2n + 2 维中解开。[6]

(我对结理论知之甚少,真的需要更多地了解有关维度和链接的知识。如果我们知道流形可以嵌入到n维空间中,而不是流形的维数,我们有什么限制? )

一个神经网络要做的自然的事情,非常简单的路线,是试图将流形分开,并尽可能地拉伸缠绕的部分。 虽然这不会接近真正的解决方案,但它可以实现相对较高的分类准确度并且是诱人的局部最小值。

它会在它试图拉伸的区域中表现为 非常高的衍生物 (very high derivatives)和近乎不连续性。我们知道这些事情会发生.[7] 在数据点处惩罚层的衍生物的收缩惩罚是对抗这种情况的自然方式.[8]

由于这些局部极小值从试图解决拓扑问题的角度来看是绝对无用的,拓扑问题可能提供了探索解决这些问题的良好动机。

另一方面,如果我们只关心实现良好的分类结果,似乎我们可能不在乎。如果数据流形的一小部分被另一个流形钩住,对我们来说这是一个问题吗?尽管存在这个问题,似乎我们也应该能够获得主观上来看不错的分类结果。

(我的直觉是试图欺骗这个问题是一个坏主意:很难想象它不会是一个死胡同。特别是在一个优化问题中,局部最小值是一个大问题,选择一个架构,不能真正解决问题似乎是表现不佳的秘诀。)

我对标准神经网络层的思考越多 - 即是,通过仿射变换后跟一个逐点激活函数 - 我感觉更加失去理智。 很难想象这些对于操纵流形真的很有益。

或许有一种非常不同的层可以用来组成更传统的层?

我自然想到的是学习一个矢量场,这个矢量场带有我们想要改变流形的方向:

然后根据它来变形空间:

人们可以在固定点学习矢量场(只需从训练集中取一些固定点作为锚点)并以某种方式进行插值。 上面的矢量场的形式如下:

其中v0和v1是向量,f0(x)和f1(x)是n维高斯。 这受到径向基函数的启发。

我也开始思考线性可分性对于神经网络的需求可能是巨大的,虽然可能是不合理的。在某些方面,感觉自然要做的就是使用k近邻(k-NN)。然而,k-NN的成功在很大程度上取决于它对数据进行分类的表示,因此在k-NN能够很好地工作之前需要一个好的表示。

作为第一个实验,我训练了一些MNIST网络(两层卷积网,没有丢失),达到了约1%的测试误差。然后我丢弃了最终的softmax层并使用了k-NN算法。我能够始终如一地将测试误差降低0.1-0.2%。

尽管如此,还是觉得哪里有些问题。网络仍在尝试进行线性分类,但由于我们在测试时使用k-NN,因此能够从错误中恢复一点。

由于1/距离的加权,k-NN在它所作用的表示方面是可微的。因此,我们可以直接为k-NN分类训练一个网络。这可以被认为是一种“最近邻”层,可以作为softmax的替代品。

我们不希望为每个小批量提供整个训练集,因为这在计算上非常昂贵。我认为一个很好的方法是根据小批量的其他元素的类别对小批量的每个元素进行分类,给每个元素一个权重1 /(与分类目标的距离)。[9]

遗憾的是,即使使用复杂的架构,使用k-NN也只会降低5-4%的测试错误 - 使用更简单的架构会导致更糟糕的结果。但是,我花了很少的精力去调整超参数。

尽管如此,我在美学上仍然喜欢这种方法,因为看起来我们“要求”网络做的事情要合理得多。我们希望相同流形的点比其他点更接近,而流形可以通过超平面分离。这应该对应于扩张不同类别流形之间的空间并使各个流形收缩。感觉就像简化。

数据的拓扑属性(例如链接)可能使得无法使用低维网络线性分离类,无论深度如何。即使在技术上可行的情况下,例如螺旋,这样做也是非常具有挑战性的。

为了使用神经网络准确地对数据进行分类,有时需要宽层。此外,传统的神经网络层似乎不能很好地表示对流形的重要操作;即使我们巧妙地手工设置权重,紧凑地表示我们想要的变换也是一项挑战。新的层,特别是受机器学习的流形观点驱动的,可能是有用的补充。

(这是一个正在开发的研究项目。它是作为公开进行研究的实验而发布的。我很高兴收到你对这些想法的反馈:你可以内联或最后发表评论。对于拼写错误,技术错误或你想要的澄清看到添加,我们鼓励你在github上发出pull请求。)

感谢Yoshua Bengio, Michael Nielsen, Dario Amodei, Eliana Lorch, Jacob Steinhardt, and Tamsyn Waterhouse的评论和鼓励。

1. This seems to have really kicked off with  Krizhevsky  et al. , (2012) , who put together a lot of different pieces to achieve outstanding results. Since then there’s been a lot of other exciting work. ↩

2. These representations, hopefully, make the data “nicer” for the network to classify. There has been a lot of work exploring representations recently. Perhaps the most fascinating has been in Natural Language Processing: the representations we learn of words, called word embeddings, have interesting properties. See  Mikolov  et al.  (2013) ,  Turian  et al.  (2010) , and,  Richard Socher’s work . To give you a quick flavor, there is a  very nice visualization  associated with the Turian paper. ↩

3. A lot of the natural transformations you might want to perform on an image, like translating or scaling an object in it, or changing the lighting, would form continuous curves in image space if you performed them continuously. ↩

4.  Carlsson  et al.  found that local patches of images form a klein bottle. ↩

5. GLn(R)is the set of invertible n×n matrices on the reals, formally called the  general linear group  of degree n. ↩

6. This result is mentioned in  Wikipedia’s subsection on Isotopy versions . ↩

7. See  Szegedy  et al. , where they are able to modify data samples and find slight modifications that cause some of the best image classification neural networks to misclasify the data. It’s quite troubling. ↩

8. Contractive penalties were introduced in contractive autoencoders. See  Rifai  et al. (2011) . ↩

9. I used a slightly less elegant, but roughly equivalent algorithm because it was more practical to implement in Theano: feedforward two different batches at the same time, and classify them based on each other. ↩


“拓扑”是什么意思?
包括:Euler-Poincare示性数,五色地图着色问题,Jordan曲线定理,Riemann关于闭曲面间的拓扑分类。其成为学科应归功于Poincare,他在研究代数簇的基础上,通过将空间剖分成若干个单形的组合,得出空间的Betti数、挠系数的计算方法(同调群),还得出Euler定理的一般形式和基本群,流形对偶定理等。在1894~1912...

请问“拓扑”是什么?
我国早期曾经翻译成“形势几何学”、“连续几何学”、“一对一的连续变换群下的几何学”,但是,这几种译名都不大好理解,1956年统一的《数学名词》把它确定为拓扑学,这是按音译过来的。 拓扑学是几何学的一个分支,但是这种几何学又和通常的平面几何、立体几何不同。通常的平面几何或立体几何研究的...

流形拓扑学:理论与概念的实质图书目录
《现代数学基础丛书》的引言部分,深入探讨了流形拓扑学的理论与概念,以一系列章节展开阐述。首先,第1章"微分流形"从基本概念出发,解释了流形的定义,包括物理背景中的应用,以及坐标系和微分结构的重要性。章节中详细讨论了流形的嵌入、Frobenius定理、正则值与横截性,以及向量丛和管形邻域等关键概念。

怎么通俗理解拓扑
此外,拓扑学还有一些重要的概念和方法,如拓扑群、复形、纤维丛、同伦等,可以用于研究许多数学问题、物理问题和工程问题等。例如,在几何拓扑中,拓扑学家可以研究如何在流形上定义曲率,在应用拓扑学中,我们可以研究随机网络和通信信道的性质等。总之,拓扑学是一门探究空间性质抽象、深奥但对于解决许多...

微分几何中的曲率与流形的拓扑性质有何关联?
首先,曲率可以反映流形的局部形状。例如,高斯曲率张量可以用来描述曲面的形状,如球面、柱面等。通过研究曲率的变化,我们可以了解流形的弯曲程度和扭曲情况。这对于理解流形的几何特性非常重要。其次,曲率与流形的拓扑性质之间存在一定的联系。例如,对于欧几里得空间中的曲线,其曲率为零意味着该曲线是一条...

国外数学名著系列67:拓扑学2内容简介
在国外数学名著系列的最新作品67中,特别呈现了《拓扑学2(同伦与同调,经典流形)》。这本由两位顶尖拓扑学家,O.Ya. Viro和D.B. Fuchs合著的书籍,全面介绍了当前拓扑学和李群理论的前沿研究内容。书中详细探讨了同伦、同调理论,这是数学和数学物理学研究生及研究人员不可或缺的基础知识。此外,作者...

拓扑结构分为哪几类
网络拓扑结构主要分为形状分类和功能性分类两类。网络拓扑结构按照形状分类包括星型、环型、总线型、树型和网状型。这些结构具有不同的特点,如星型将所有节点与中央节点连接,环型形成闭合的环型线路,总线型通过一条公共主干电缆连接所有节点。按功能性分类则包括基础、离散、流形和度量拓扑结构,更侧重于...

流形构造
通过流形上的认同过程,不同点可以视为同一,有时会形成非流形,但特定条件下仍为流形,如通过群作用或边界粘合。最后,流形的构造还包括直积和边界粘合,如有限圆柱面和克莱因瓶的形成,它们通过适当的微分同胚将不同的部分粘合在一起,形成具有特定拓扑和微分结构的流形。

流形流形的其他类型和推广
巴拿赫和Fréchet流形: 当考虑无限维空间时,可以引入巴拿赫流形,它们在局部与巴拿赫空间同胚。类似地,Fréchet流形则对应于局部与Fréchet空间的同胚。轨形(Orbifolds): 轨形是流形的一种扩展,允许存在"奇异点",这些点在拓扑结构上不同于常规流形。它们表现为局部像欧氏空间通过有限群作用的商空间,奇异...

简单介绍一下拓扑学
利用代数学的手段研究拓扑性质,如同伦论和同调论;微分拓扑学,利用分析学的手段(主要是微分)研究拓扑性质;几何拓扑学,研究几何意义明显的东西(成为流形),如扭结;等等。注:以上的叙述只是介绍,语言都是在数学上不严谨的。实际的拓扑学研究中,像连续、变换、点等概念,都是需要严格定义的。

海淀区13629886719: 神经网络模型的介绍 -
彤败七子: 神经网络(Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统.神经网络具有大规模并行、分布式存储和处理...

海淀区13629886719: 人工神经网络常用的网络结构有哪些 -
彤败七子: 人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等.目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等. ann:人工神经网络(Artificial Neural ...

海淀区13629886719: 神经网络的分类 -
彤败七子: 神经网络有多种分类方式,例如,按网络性能可分为连续型与离散型网络,确定型与随机型网络:按网络拓扑结构可分为前向神经网络与反馈神经网络.本章土要简介前向神经网络、反馈神经网络和自组织特征映射神经网络. 前向神经网络是数...

海淀区13629886719: BP神经网络的介绍 -
彤败七子: BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程.它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小.BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer).

海淀区13629886719: 人工神经网络的分类ann和bp是什么意思 -
彤败七子:[答案] 人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等.目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等. ann:人工神经网络(Artificial Neural Networks)...

海淀区13629886719: 哪些神经网络可以用在图像特征提取上 -
彤败七子: BP神经网络、离散Hopfield网络、LVQ神经网络等等都可以.1.BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一....

海淀区13629886719: 流形的范畴 -
彤败七子: 最容易定义的流形是拓扑流形,它局部看起来象一些“普通”的欧氏空间Rn.形式化的讲,一个拓扑流形是一个局部同胚于一个欧氏空间的拓扑空间.这表示每个点有一个领域,它有一个同胚(连续双射其逆也连续)将它映射到Rn.这些同胚...

海淀区13629886719: Matlab里的神经网络是什么意思啊,我是新手,谁能简单通俗地解释下啊?谢谢了!!! -
彤败七子: 所谓神经网络算法顾名思义是模拟生物神经网络而产生的一种算法,首先需要用一些已知的数据输入到神经网络中,使它知道什么样的数据属于哪一类(训练),然后将未知的数据输入进去,神经网络通过已知的数据对其进行判断来完成分类(分类).可以用来进行图像识别、分类;数据预测;曲线拟合等.推荐找本机器学习,人工智能方面的书看.

海淀区13629886719: 流形的介绍 -
彤败七子: 一个流形的一个坐标映射,坐标图, 或简称图是一个在流形的一个子集和一个简单空间之间的双射,使得该映射及其逆都保持所要的结构.对于拓扑流形,该简单空间是某个欧氏空间Rn而我们感兴趣的是其拓扑结构.这个结构被同胚保持,也...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网