问题来源
在学习机器学习时经常会遇到一些数学概念,比如度量空间、内积空间、赋范线性空间等等,遇到这些概念时,经常会提及一个叫拓扑空间(topological space)的东西,还说什么度量空间是一个拓扑空间。前段时间查阅什么叫测度空间时也碰到了它,那时候去维基百科看了看,什么开集闭集、交啊并啊,看得迷迷糊糊,终究也没看懂什么是拓扑空间,它有什么用?
能看懂的也就下面这个图吧。
Let τ \tau τ be denoted with the circles, here are four examples and two non-examples of topologies on the three-point set { 1 , 2 , 3 } \{1,2,3\} {1,2,3}. The bottom-left example is not a topology because the union of { 2 } \{2\} {2} and { 3 } \{3\} {3} [i.e. { 2 , 3 } \{2,3\} {2,3}] is missing; the bottom-right example is not a topology because the intersection of { 1 , 2 } \{1,2\} {1,2} and { 2 , 3 } \{2,3\} {2,3} [i.e. { 2 } \{2\} {2}], is missing.
经历了一波扯淡后,逐渐懂了点。查阅资料很费劲,多数博客都是像维基百科中一样直接给出定义,然后扯扯淡了事,估计博主自己也不懂吧。终于,B 站的一个视频《拓扑入门(下)从度量空间到拓扑空间》点醒了我,此外还有两个视频很有帮助,我把这三个视频的链接放到下面,并作简要说明:
- 《拓扑入门(下)从度量空间到拓扑空间》
这个视频讲述了拓扑的由来,就是从度量空间的开集的性质,经过抽象加以泛化,形成拓扑。不用再纠结啥是拓扑了。 - 《拓扑空间与开集》
从这个简短的视频,可以得知拓扑空间和度量空间的关系。 - 《点集拓扑学总览》
讲述的更多,可以见识一些关于拓扑空间的概念。
从度量空间到拓扑空间 | 从开集到拓扑
第一个视频中,从层层抽象的角度,解释了拓扑的由来,自然也就理解了什么是拓扑。其讲述的过程是这样的:度量空间 → \rightarrow → 度量(距离) → \rightarrow → 球形邻域 → \rightarrow → 开集 → \rightarrow → 拓扑(空间)。
在度量空间 ( X , ρ ) (X, \rho) (X,ρ) 中,有开球的概念 B r ( x , ρ ) = { y ∣ ρ ( x , y ) < r } B_r(\bm{x}, \rho) = \{\bm{y} | \rho(\bm{x}, \bm{y}) < r\} Br(x,ρ)={y∣ρ(x,y)<r}. 有了开球的概念,就可以定义开集为:
设 ( X , ρ ) (X, \rho) (X,ρ) 为度量空间,集合 A ⊆ X A \subseteq X A⊆X,如果 ∀ x ∈ A \forall \bm{x} \in A ∀x∈A, ∃ ϵ > 0 \exist \epsilon > 0 ∃ϵ>0,使 B ϵ ( x , ρ ) ⊂ A B_\epsilon(\bm{x}, \rho) \subset A Bϵ(x,ρ)⊂A 成立,那么称 A A A 为该度量空间中的一个开集。
然后就有了开集的性质:
- 任意个开集的并还是开集;
- 有限个开集的交还是开集;
定理:令 τ \tau τ 为度量空间 ( X , ρ ) (X, \rho) (X,ρ) 中所有开集组成的集合,则 τ \tau τ 满足以下性质:
- ∅ \emptyset ∅ 和 X X X 在 τ \tau τ 中;(不知道为何 X X X 也是开集,视频中是糊弄过去的)
- 任意个 τ \tau τ 中的成员的并在 τ \tau τ 中;
- 有限个 τ \tau τ 中的成员的交在 τ \tau τ 中。
这个定理还是比较直观的,至于证明什么的,感觉没必要。
UP 主说,将这三个公理剥离度量空间,就得到拓扑空间的概念:设 X X X 是非空集合,如果 τ ⊆ 2 X \tau \subseteq 2^X τ⊆2X 满足:
- ∅ , X ∈ τ \emptyset, X \in \tau ∅,X∈τ
- 任意个 τ \tau τ 中的成员的并在 τ \tau τ 中;
- 有限个 τ \tau τ 中的成员的交在 τ \tau τ 中。
则称 τ \tau τ 是 X X X 上的一个拓扑, ( X , τ ) (X, \tau) (X,τ) 是一个拓扑空间。然后嘞,就是最迷糊的地方:称 τ \tau τ 中的元素为开集。
啥?简直不可思议啊!如果令 X = { 0 , 1 , 2 , 3 } X = \{0, 1, 2, 3\} X={0,1,2,3}, τ = { ∅ , { 0 } , { 1 } , { 0 , 1 } , X } \tau = \{\emptyset, \{0\}, \{1\}, \{0, 1\}, X\} τ={∅,{0},{1},{0,1},X},则 τ \tau τ 满足以上三个公理, τ \tau τ 是 X X X 上的一个拓扑, τ \tau τ 中的元素为开集,意思就是说: ∅ , { 0 } , { 1 } , { 0 , 1 } , X \emptyset, \{0\}, \{1\}, \{0, 1\}, X ∅,{0},{1},{0,1},X 都是开集。等等!刚才还说 A A A 中任意元素都有开球包含于 A A A,其才是开集,这里哪有什么开球的概念,邻域的概念也没有啊? 分析中说离散点不是开集。
答曰:这里的开集是一个全新的概念,要抛掉度量空间中开集的概念,假装我是先遇到拓扑的。如果 τ \tau τ 满足三个公理,则 τ \tau τ 就是一个拓扑,其中的元素就是开集,这是定义。比较扯的是,既然是根据度量空间中开集的性质对其进行抽象推广,那你也起个新的名字啊,就好比我们现在对老虎很感兴趣,发现了老虎的一些特点:有锋利的牙齿、有锋利的爪子、奔跑速度很快,根据这三个特点进行抽象,我们得到一个新概念 “老虎”,以后我们见了符合这三个特点的猫咪、狮子啥的,都称为 “老虎”。。。而不是叫猫科动物,是不是很别扭?
比如 X = [ 0 , 3 ] X = [0, 3] X=[0,3], τ = { ∅ , [ 0 , 3 ] , [ 0 , 1 ] , [ 2 , 3 ] , [ 0 , 1 ] ∪ [ 2 , 3 ] } \tau = \{\emptyset, [0, 3], [0, 1], [2, 3], [0, 1] \cup [2, 3]\} τ={∅,[0,3],[0,1],[2,3],[0,1]∪[2,3]},则 τ \tau τ 满足以上三个公理, τ \tau τ 是 X X X 上的一个拓扑, τ \tau τ 中的元素为开集,你没看错, [ 0 , 1 ] [0, 1] [0,1] 是开集。
不过要说明的是,虽然脱离了度量,已经没了距离的概念,但拓扑空间中依然有邻域的概念,虽然这从字面上看起来很扯。对于一点 x \bm{x} x,只要开集 N ∋ x N \ni \bm{x} N∋x, N N N 就是 x \bm{x} x 的一个邻域。 比如开集 { 0 } , { 0 , 1 } \{0\}, \{0, 1\} {0},{0,1} 都是点 0 0 0 的邻域。
不同的拓扑,不同的开集
第二个视频所传达的主要知识是:集合上可以定义不同的拓扑,当你的拓扑定义的不同时,随之定义的开集有所不同。度量空间中所定义的开集,事实上是某一个特殊的 X 上的拓扑所导出的开集,这个拓扑称为 “由度量所诱导的拓扑”【度量拓扑】。
UP 主举了三个拓扑的例子:
- 平凡拓扑
τ
=
{
∅
,
X
}
\tau = \{\emptyset, X\}
τ={∅,X}
只包含空集和 X 本身,最简单的拓扑吧。 - 离散拓扑
τ
=
2
X
\tau = 2^X
τ=2X
最细粒度的,之所以叫离散拓扑,可能就是因为每个单点集 { x } \{\bm{x}\} {x} 都在 τ \tau τ 中吧。此拓扑下理解上面说的邻域更为合适。 - 度量拓扑
给定度量空间 ( X , d ) (X, d) (X,d),(嗯: X X X 不仅是一个集合,其上还带了一个度量 d d d) τ d : = { ⋃ x ∈ Λ B ( x , δ x ) : Λ ∈ 2 X , δ x > 0 } \tau_d := \{\bigcup_{\bm{x} \in \Lambda} B(\bm{x}, \delta_{\bm{x}}): \Lambda \in 2^X, \delta_{\bm{x}} > 0\} τd:={x∈Λ⋃B(x,δx):Λ∈2X,δx>0} 叫度量拓扑,这个拓扑下,开集才是我们在分析中看到的开集,它是个特例。
A Quick View
第三个视频中,UP 主带我们快速浏览一些点集拓扑学的基本概念。
拓扑学中不关心长度角度等概念,关心拓扑性质:有几个洞;对拓扑空间进行分类,同胚的空间分为一类;哪些东西在拓扑意义下是一样的,哪些是不一样的。还需要一些工具,比如拓扑不变性、连通性。。。
对于开集的概念,UP 主也说了,顺序是反过来的 数学分析:内点 → 内部 → 开集 点集拓扑:内点 ← 内部 ← 开集 数学分析:内点 \rightarrow 内部 \rightarrow 开集 \\ 点集拓扑:内点 \leftarrow 内部 \leftarrow 开集 数学分析:内点→内部→开集点集拓扑:内点←内部←开集 数学分析中先根据度量定义邻域,再有内点内部,进而有开集的定义;而点集拓扑中是先定义开集(而且还是更宽的概念),再有内部内点的概念。
除了上面三个拓扑的例子外,这个视频又给了两个拓扑的例子:
- 余可数拓扑( A o p e n ⇔ A c c o u n t a b l e A \ open \Leftrightarrow A^c \ countable A open⇔Ac countable )
- 余有限拓扑( A o p e n ⇔ A c f i n i t e A \ open \Leftrightarrow A^c \ finite A open⇔Ac finite )
这里咱不纠结这俩满不满足拓扑的性质,我们应注意的是:开集是定义的,指定哪些子集是开集,如果能验证满足拓扑性质,这些指定的子集就是开集。
内部(开核)
定义:设
A
⊂
X
A \subset X
A⊂X,称
I
n
t
A
:
=
⋃
U
⊂
o
p
e
n
A
U
Int A := \bigcup_{U \subset_{open} A} U
IntA:=U⊂openA⋃U 为
A
A
A 的内部或者开核,其中
⊂
o
p
e
n
\subset_{open}
⊂open 表示
U
U
U 是开的,或者说
U
⊂
o
p
e
n
A
U \subset_{open} A
U⊂openA 表示
U
U
U 是
A
A
A 的开子集。
对于我们所熟知的度量拓扑,这很好理解,就是所有包含于
A
A
A 的开球的并,自然就是
A
A
A 的开核了。对于
X
=
[
0
,
3
]
X = [0, 3]
X=[0,3],
τ
=
{
∅
,
[
0
,
3
]
,
[
0
,
1
]
,
[
2
,
3
]
,
[
0
,
1
]
∪
[
2
,
3
]
}
\tau = \{\emptyset, [0, 3], [0, 1], [2, 3], [0, 1] \cup [2, 3]\}
τ={∅,[0,3],[0,1],[2,3],[0,1]∪[2,3]},不好理解,而且我们初学者可能很容易按标准拓扑(欧式空间下的拓扑)的概念认为其中的闭区间为闭集,求开核就是把端点去掉。但事实是现在不在标准拓扑下,所以就按定义求开核吧:
I
n
t
(
[
0
,
1
]
∪
[
2
,
3
]
)
=
[
0
,
1
]
∪
[
2
,
3
]
Int([0, 1] \cup [2, 3]) = [0, 1] \cup [2, 3]
Int([0,1]∪[2,3])=[0,1]∪[2,3]. 其包含的开子集
[
0
,
1
]
,
[
2
,
3
]
[0, 1], [2, 3]
[0,1],[2,3] 的并。
闭包
Similarly,有闭包的定义:设
A
⊂
X
A \subset X
A⊂X,称
A
ˉ
:
=
⋂
V
⊃
c
l
o
s
e
d
A
V
\bar A := \bigcap_{V \supset_{closed} A} V
Aˉ:=V⊃closedA⋂V 为
A
A
A 的闭包,其中
⊃
c
l
o
s
e
d
\supset_{closed}
⊃closed 表示
V
V
V 是闭的,或者说
V
⊃
c
l
o
s
e
d
A
V \supset_{closed} A
V⊃closedA 表示
V
V
V 是
A
A
A 的闭超集。
A
ˉ
\bar{A}
Aˉ 可能就是包含
A
A
A 的最小闭集吧。
对于我们所熟知的度量拓扑,这很好理解,就是所有包含
A
A
A 的闭集的交,由于给定了拓扑,什么是开集什么是闭集都规定好了,闭包自然也就直观了。但是对于比较奇怪的拓扑,就很扯淡。例如,
X
=
[
0
,
3
]
X = [0, 3]
X=[0,3],
τ
=
{
∅
,
[
0
,
3
]
,
[
0
,
1
]
,
[
2
,
3
]
,
[
0
,
1
]
∪
[
2
,
3
]
}
\tau = \{\emptyset, [0, 3], [0, 1], [2, 3], [0, 1] \cup [2, 3]\}
τ={∅,[0,3],[0,1],[2,3],[0,1]∪[2,3]},现求
[
0
,
1
]
‾
\overline{[0, 1]}
[0,1],怎么求?根据闭集的定义,
∅
,
[
0
,
3
]
,
(
1
,
3
]
,
[
0
,
2
)
,
(
1
,
2
)
\emptyset, [0, 3], (1, 3], [0, 2), (1, 2)
∅,[0,3],(1,3],[0,2),(1,2) 是闭集,其中包含
[
0
,
1
]
[0, 1]
[0,1] 的最小闭集是
[
0
,
2
)
[0, 2)
[0,2),那么
[
0
,
1
]
‾
=
[
0
,
2
)
\overline{[0, 1]} = [0, 2)
[0,1]=[0,2). 我不知道这对不对啊,但根据定义应该是这样的,怪怪的吧?
抽象后的拓扑空间,也有度量空间的那一套性质: A o p e n ⇔ I n t ( A ) = A A c l o s e ⇔ A ˉ = A \begin{aligned} A \ open &\Leftrightarrow Int(A) = A \\ A \ close &\Leftrightarrow \bar{A} = A \end{aligned} A openA close⇔Int(A)=A⇔Aˉ=A 这个在度量拓扑中自然是成立的,对于刚才看到的两个例子也成立,如 [ 0 , 1 ] ‾ = [ 0 , 2 ) ≠ [ 0 , 1 ] \overline{[0, 1]} = [0, 2) \ne [0, 1] [0,1]=[0,2)=[0,1],这回理解为啥闭区间 [ 0 , 1 ] [0, 1] [0,1] 是开集而不是闭集了吧。且下面的式子依然成立 I n t ( A ) ⊆ A ⊆ A ‾ [ 0 , 1 ] ⊆ [ 0 , 1 ] ⊆ [ 0 , 1 ] ‾ = [ 0 , 2 ) Int(A) \subseteq A \subseteq \overline{A} \\ [0, 1] \subseteq [0, 1] \subseteq \overline{[0, 1]} = [0, 2) Int(A)⊆A⊆A[0,1]⊆[0,1]⊆[0,1]=[0,2) 在实分析中,或者说度量空间中,有 x ∈ A ‾ ⇔ ∀ U ∋ x , U ∩ A ≠ ∅ \bm{x} \in \overline{A} \Leftrightarrow \forall U \ni \bm{x}, U \cap A \ne \emptyset x∈A⇔∀U∋x,U∩A=∅ 如今是依然成立的,看 τ \tau τ 中包含 x = 1.5 \bm{x} = 1.5 x=1.5 的只有 [ 0 , 3 ] [0, 3] [0,3], [ 0 , 3 ] ∩ [ 0 , 1 ] ≠ ∅ [0, 3] \cap [0, 1] \ne \emptyset [0,3]∩[0,1]=∅。
导集和聚点
导集的概念和度量空间中一样: x ∈ A ′ ⇔ ∀ U ∋ x , U ∩ ( A \ { x } ) ≠ ∅ \bm{x} \in A' \Leftrightarrow \forall U \ni \bm{x}, U \cap (A \backslash \{\bm{x}\}) \ne \emptyset x∈A′⇔∀U∋x,U∩(A\{x})=∅ A ′ A' A′ 是 A A A 的导集, x ∈ A ′ \bm{x} \in A' x∈A′ 是一个聚点。现在我们试求 A = [ 0 , 1 ] A = [0, 1] A=[0,1] 的导集:
分阶段取代表点吧:
(1) 取点 x = 0 \bm{x} = 0 x=0
包含 x = 0 \bm{x} = 0 x=0 的开集有 U = [ 0 , 1 ] , [ 0 , 1 ] ∪ [ 2 , 3 ] , [ 0 , 3 ] U = [0,1], [0, 1] \cup [2, 3], [0, 3] U=[0,1],[0,1]∪[2,3],[0,3],都有 U ∩ ( A \ { x } ) ≠ ∅ U \cap (A \backslash \{\bm{x}\}) \ne \emptyset U∩(A\{x})=∅,故 x = 0 ∈ A ′ \bm{x} = 0 \in A' x=0∈A′
(2) 取点 x = 1.5 \bm{x} = 1.5 x=1.5
包含 x = 1.5 \bm{x} = 1.5 x=1.5 的开集有 U = [ 0 , 3 ] U = [0, 3] U=[0,3],都有 U ∩ ( A \ { x } ) ≠ ∅ U \cap (A \backslash \{\bm{x}\}) \ne \emptyset U∩(A\{x})=∅,故 x = 1.5 ∈ A ′ \bm{x} = 1.5 \in A' x=1.5∈A′
(3) 取点 x = 2 \bm{x} = 2 x=2
包含 x = 2 \bm{x} = 2 x=2 的开集有 U = [ 0 , 3 ] , [ 2 , 3 ] , [ 0 , 1 ] ∪ [ 2 , 3 ] U = [0, 3], [2, 3], [0, 1] \cup [2, 3] U=[0,3],[2,3],[0,1]∪[2,3],其中 [ 2 , 3 ] ∩ ( A \ { x } ) = ∅ [2, 3] \cap (A \backslash \{\bm{x}\}) = \emptyset [2,3]∩(A\{x})=∅,故 x = 2 ∉ A ′ \bm{x} = 2 \notin A' x=2∈/A′
其他点同理。可见, A ′ = [ 0 , 2 ) A' = [0, 2) A′=[0,2)。
A ′ = [ 0 , 2 ) A' = [0, 2) A′=[0,2),虽然看起来怪怪的,但这确实符合理论。且 A ∪ A ′ = A ‾ A \cup A' = \overline{A} A∪A′=A 也是对的。
还有其他一些我们在数学分析中见到的关于集合的结论,放在抽象出来的拓扑空间中,还是对的,就不全拿出来了,有了这个认识就行。
拓扑基
定义: ( X , τ ) (X, \tau) (X,τ) 是一个拓扑空间, β \beta β 里装了一堆开集,如果它满足 ① ∀ x ∈ X , ∃ B ∈ β , x ∈ B ; ② ∀ x ∈ B 1 ∩ B 2 , ∃ B 3 ∈ β , x ∈ B 3 ; \begin{aligned} &① \forall \bm{x} \in X, \exist B \in \beta, \bm{x} \in B; \\ &② \forall \bm{x} \in B_1 \cap B_2, \exist B_3 \in \beta, \bm{x} \in B_3; \end{aligned} ①∀x∈X,∃B∈β,x∈B;②∀x∈B1∩B2,∃B3∈β,x∈B3; 不断地迭代地并 β \beta β 中的元素,就可以的生成 τ \tau τ,称 β \beta β 是一个拓扑基。
积拓扑 (product topology)
对于集合 X X X 和 Y Y Y,我们见过笛卡尔积 X × Y = { ( x , y ) ∣ x ∈ X , y ∈ Y } X \times Y = \{(\bm{x}, \bm{y}) | \bm{x} \in X, \bm{y} \in Y\} X×Y={(x,y)∣x∈X,y∈Y}。带上拓扑依然可以乘积,设 ( X , τ x ) , ( ( Y , τ y ) ) (X, \tau_x), ((Y, \tau_y)) (X,τx),((Y,τy)) 是两个拓扑空间,则 ( X × Y , τ p r o d u c t ) (X \times Y, \tau_{product}) (X×Y,τproduct) 是一个拓扑空间,其中 τ p r o d u c t = { U × V ∣ U ∈ τ x , V ∈ τ y } \tau_{product} = \{U \times V | U \in \tau_x, V \in \tau_y\} τproduct={U×V∣U∈τx,V∈τy}
连续映射
拓扑空间 ( X , τ x ) (X, \tau_x) (X,τx) 和 ( Y , τ y ) (Y, \tau_y) (Y,τy) 之间的函数 f : X → Y f: X \rightarrow Y f:X→Y 是连续的 ⇔ \Leftrightarrow ⇔ 对于 ∀ x ∈ X \forall \bm{x} \in X ∀x∈X 及 f ( x ) f(\bm{x}) f(x) 的邻域 N N N,存在 x \bm{x} x 的邻域 M M M 使 f ( M ) ⊆ N f(M) \subseteq N f(M)⊆N. 另说,开集的原象是开集。
在度量空间中,这可以联系到 ϵ − δ \epsilon - \delta ϵ−δ 语言定义的连续函数。在博文《数学分析那点事儿~(1)开集与连续性》 有证明。而在一般的拓扑空间中,这也是成立的,也许经过抽象之后,这就是连续映射的定义。
当然,这放到一些拓扑下,会感觉怪怪的,也许是习惯了标准拓扑的原因吧。比如说 ,函数 f ( x ) = { x − 1 x < 0 x + 1 x ≥ 0 f(x) = \left\{\begin{matrix} x - 1 & x \lt 0 \\ x + 1 & x \ge 0 \end{matrix}\right. f(x)={x−1x+1x<0x≥0 在标准拓扑下,这它肯定不是连续的。而在离散拓扑下,它符合连续映射的定义,是连续映射。【不知道我的理解对不对】看来以后扯什么都得给定拓扑。
同胚
UP 主说这很难,也没讲多,我也不懂。把定义放这吧:有一映射 f : X → Y f: X \rightarrow Y f:X→Y,如果: { ① f 是双射 ② f 连续 ③ f − 1 连续 \begin{cases} ①\ f \ 是双射 \\ ②\ f \ 连续 \\ ③\ f^{-1} \ 连续 \end{cases} ⎩ ⎨ ⎧① f 是双射② f 连续③ f−1 连续 则 X X X 和 Y Y Y 同胚。讲拓扑学的时候,都会先举一个例子:咖啡杯和甜甜圈同胚。
总结
就到这吧,再多我也看不懂了,累了!整理这篇博文主要是记录最近对拓扑空间的学习,把零零碎碎的东西连贯起来,会有新的体会,加深理解的同时,也便于以后返回复习。以后可能还会有希尔伯特空间的整理。要学的东西太多了!
Update
终究还是没有真的理解拓扑空间到底是啥,它有什么用?按照上面的说法,拓扑空间是从度量空间一步步抽象泛化得到的,最直接的是从度量空间中开集的三个性质抽象出三个公理用以定义拓扑,再反过来,拓扑规定了哪些集合是开集。强迫症的我还是难以接受这就是拓扑空间,因为这些都太过抽象了。于是我终于忍不住去图书馆找了两本相关的教材,一本是熊金城的《点集拓扑讲义》,一本是杨鎏的《点集拓扑学简明教程》,这两本书对拓扑空间的讲法截然不同。前者基本上和视频《拓扑入门(下)从度量空间到拓扑空间》的讲法一致,是从开集的角度定义拓扑空间的,也许视频的 UP 主学习点集拓扑时用的是这本教材;后者则是从邻域的角度定义拓扑空间的,我比较接受这种定义方式,因为它比较直观,让人觉得很自然而不僵硬。
于是会想起 Wikipedia 中的话:There are several equivalent definitions of a topology, the most commonly used of which is the definition through open sets, which is easier than the others to manipulate. 。。。The most commonly used is that in terms of open sets, but perhaps more intuitive is that in terms of neighbourhoods and so this is given first. 也就是说,从开集的角度看拓扑更易操作更常用,而就邻域而言,才是最直观的。
现在回去看 Wikipedia,自然是能看得懂了,而且觉得其非常精辟,你也可以去看看,但警告是,如果你还没看过教材给你讲的故事,可能会看得一头雾水,因为毕竟太过习惯于欧式空间,再进行抽象泛化后,仅仅给出定义和一些例子是难以让你接受这个新概念的。本人就是如此,即使看过 Wikipedia、各种博客以及讲解视频,始终难以接受拓扑空间这个抽象的家伙。
由于《点集拓扑讲义》内容和《拓扑入门(下)从度量空间到拓扑空间》基本一致(可能更为详细吧),下面我仅对《点集拓扑学简明教程》进行学习的记录总结吧。后面可能还会部分注释 Wikipedia。
Definition via Neighbourhoods(点集拓扑学简明教程)
Motivation
Motivation 才是最重要的,因为它能让你知道 “拓扑” 这个概念是怎么来的,有什么用。这本书的好处就在于作者首先给出的就是 Motivation。
空间 Space 就是点集,书中说的 “最一般的空间”,我的理解是:一盘散沙,点集中的点没有距离等概念,啥都没有,抛掉欧式空间的包袱,让其变得更简单吧。在这盘散沙上定义拓扑的目的是定义什么是连续映射。
“一个集合上可以有很多不同的拓扑结构,表达出很多不同的(可能是很稀奇古怪的)连续性”。我们在欧式空间看到了连续函数,其实是因为欧式空间是一个拓扑空间,点集上定义了一种拓扑,这种拓扑结构决定了我们在欧式空间看到的函数连续性。如果换一种拓扑,也许函数就有不同的连续性,上面我已经举过例子了。
至于下一段 Cantor 的故事,我没看懂,但这段想表达的意思是明确的:聚点、导集、开集、闭集等拓扑术语是 Cantor 对函数连续性研究的产物。
这一段基本就是对上面 Motivation 的大致总结,不过这里的 f : X → R f:X \rightarrow \mathbb{R} f:X→R 不太合适,我认为应该是 f : X → Y f:X \rightarrow Y f:X→Y。这本书内容是不错,只不过错别字还有符号啥的错误太多。
用邻域表示连续性
这一段通过 “如何在一般点集上定义函数连续” 自然地引出我们熟悉的微积分中的函数连续。
对 “ ϵ − δ \epsilon - \delta ϵ−δ” 语言定义的函数连续进行了一番解释后,作者引出了邻域的概念。所有接近 x 0 x_0 x0 的程度达到标准 δ \delta δ 的点构成的集合为 B δ ( x 0 ) B_{\delta}(x_0) Bδ(x0)。注意其中的 “接近”, ∣ x − x 0 ∣ < δ |x-x_0| \lt \delta ∣x−x0∣<δ 被认为是判断 x x x 接近 x 0 x_0 x0 程度的标准。任何稀奇古怪的 “标准” 则表示这个标准是可以换的,它定义了什么叫邻域,标准不同,则邻域的概念也不同。
回过头来,刚才说 “最一般的空间” 是一盘散沙,连距离的概念都没有,如何定义 “接近程度”?上面的 ∣ x − x 0 ∣ |x-x_0| ∣x−x0∣ 可表示了一个距离哎!拓扑就是为此而生,下面会有介绍拓扑如何衡量点之间的 “接近程度”。搞了半天,拓扑是用来表示 “接近程度” 的,进而就可以定义连续了。
接下来看如何将微积分中的函数连续概念泛化。
把 ∣ x − x 0 ∣ < δ |x-x_0| \lt \delta ∣x−x0∣<δ 改写为 B δ ( x 0 ) B_{\delta}(x_0) Bδ(x0) 后,就可以仅用邻域的概念定义函数连续了。重磅:定义中,实数的和差积商这些具体的运算都神奇地消失了。这就是泛化,这意味着可以脱离距离计算了,只要能定义 “接近某点的程度的标准” 以及 “所有达到该标准的点构成的所谓邻域”,就能定义函数连续性。
基准开邻域
那么问题是:如何定义 “接近某点的程度的标准”?不能胡乱定义啊,既然是泛化,那这个概念应该能包含 B δ ( x 0 ) B_{\delta}(x_0) Bδ(x0)。
果然,可以根据 B δ ( x 0 ) B_{\delta}(x_0) Bδ(x0) 的性质进行泛化。书中用三条公理给出了基准开邻域(base open neighborhood)的概念, B δ ( x 0 ) B_{\delta}(x_0) Bδ(x0) 符合这三条公理。那么它能不能表示 “接近某点的程度的标准” 呢?答案是肯定的,只要 x x x 在 N ( x 0 ) \mathcal{N}(x_0) N(x0) 中, x x x 就是足够接近 x 0 x_0 x0 的。
这段需要注意的还有一个概念 “邻域”,不要和基准开邻域混淆,包含基准开邻域的 X 的子集称为邻域。
下面看看实数 R \mathbb{R} R 的基准开邻域是怎样的吧。
至此,拓扑的概念应该已经呼之欲出了。
乘胜追击,来看一个与欧式直线很像,但又不那么一样的东西。
N ( x ) = { ( x , x + ϵ ) ⊆ R ∣ ϵ > 0 } \mathcal{N}(x) = \{ (x, x + \epsilon) \subseteq \mathbb{R} | \epsilon \gt 0 \} N(x)={(x,x+ϵ)⊆R∣ϵ>0} 与 欧式直线相比,少了左边的 x − ϵ x - \epsilon x−ϵ,满足公理的同时,又有 “方向歧视”,从左侧要想 “充分接近” 一个点,必须要完全贴上去才行。
基准开邻域生成拓扑
然后就是一段对比基准开邻域结构和邻域结构的分析,并指出由两者刻画连续性的缺点:基准开邻域结构不唯一,邻域结构有冗余。最终决定 “选取另一套与之相互唯一决定的,更域结构加简洁齐整的东西,把它称为拓扑结构”。之后就开始定义拓扑了。
与之前的博客或视频不同的是,此处先给出了开集的概念,而不是说拓扑结构规定了哪些子集是开集。如果 X X X 的子集 U U U 是每一个元素 x ∈ U x \in U x∈U 的邻域,则称 U U U 为一个开集(open set)。这个概念符合我们在实分析中的开集概念。什么是邻域呢?前面有:包含基准开邻域的 X 的子集称为邻域,也就是说 U U U 包含了 x x x 的某个基准开邻域。那么,开集是由基准开邻域的定义所决定的。有了开集的概念,进而称 X X X上所有开集构成的子集族 τ \tau τ 为一个由 N \mathcal{N} N 生成(generate)的 拓扑结构 (topological structure),简称拓扑(topology), X X X 和 τ \tau τ 合在一起,为一个拓扑空间(topological space),记做 ( X , τ ) (X, \tau) (X,τ). 所以,过程是这样的 基准开邻域 → 开集 → 拓扑结构 → 拓扑空间 基准开邻域 \rightarrow 开集 \rightarrow 拓扑结构 \rightarrow 拓扑空间 基准开邻域→开集→拓扑结构→拓扑空间 核心自然是基准开邻域,它决定了 “接近某点的程度的标准”,决定了一个拓扑。啊!清楚了!神清气爽了!
进一步认识拓扑
拿欧式直线来说,基准开邻域就是球形邻域 B δ ( x 0 ) = { x ∈ R ∣ ∣ x − x 0 ∣ < δ } B_{\delta}(x_0) = \{ x \in \mathbb{R} | |x - x_0| \lt \delta \} Bδ(x0)={x∈R∣∣x−x0∣<δ};拿 Sorgenfrey 直线来说,基准开邻域是 B ϵ ( x 0 ) = { ( x , x + ϵ ) ⊆ R ∣ ϵ > 0 } B_{\epsilon}(x_0) = \{(x, x + \epsilon) \subseteq \mathbb{R} | \epsilon \gt 0 \} Bϵ(x0)={(x,x+ϵ)⊆R∣ϵ>0};下面再看两个例子:
这两个例子依然是从定义 “接近程度” 的角度定义基准开邻域,然后生成拓扑结构。对于平凡拓扑,此定义是 “在 X X X 上随便怎么着都算充分接近”,即只取一个 X X X 作为 x x x 的基准开邻域。对于离散拓扑,“在 X X X 上只有等于 x x x 才算是和 x x x 充分接近”,即只取一个 { x } \{x\} {x} 作为 x x x 的基准开邻域,也就是说, X X X 中的任何两个不同点之间都是不接近的,全是孤立点,不就成了离散的了吗!这看起来比直接拿拓扑结构的三条公理来定义一个离散拓扑要好理解得多。
在给出拓扑的公理化定义时,作者依然没忘记提醒读者 “拓扑结构是由基准开邻域结构生成的”。
这里还说明了为什么交的时候不是 “任意个”,无穷多个开集的交集不一定是开集,但只是不一定哦。
现在从基准开邻域的角度看 “由度量诱导的拓扑” 是如此自然舒适。
到此为止吧!还有太多太多的东西来不及看,时间与精力有限。已经理解了什么是 Topological Space,告一段落!
Wikipedia
经过上面的学习,回过头来再看 Wikipedia,就觉得它不乱,而且精辟。之前之所以看不懂,大概是因为它确实精简,加之我们的欧几里得空间思维惯性,故而一头雾水。
Topological Space 简介
先看黄色部分:懂 closeness 是啥了吧,拓扑空间中是要有 “接近程度” 的概念的,而且不必是一个数值距离。不就是基准开邻域嘛。
绿色部分:拓扑空间是一个点集,并带有一个叫拓扑的结构,该结构定义为每个点的一批满足一些公理的邻域,这些公理形成 closeness 的概念。咋样?没看《点集拓扑学简明教程》的话,你会一脸懵逼,即使你看了从开集角度直接定义拓扑的教程。
下一段的粉色和蓝色:拓扑空间是最泛的空间,它允许定义极限、连续和连通。确实是最泛的空间,仅仅定义了 closeness,啥都没有。连续我们已经知道了,拓扑就是为此而生;而极限还没接触;至于连通性,我翻过书的后面,很好理解。拓扑空间包括的例子:欧式空间和度量空间,前面都说过了,有距离就可诱导一个基准开邻域,从而生成对应的拓扑。而流形空间,我还在查阅资料,只有初步的印象。
最后一段:这正是我在这辛辛苦苦扒拉拓扑空间的原因,学习机器学习时,老是说什么拓扑空间,虽然可以置之不理也不影响,但咱的强迫症不允许,君子以不知为耻。
History
历史就不说了,大概就是历代数学家们是如何走向拓扑的。
Definitions
这一段咱在上面说过了:从开集角度定义拓扑,简单实用;从邻域角度定义拓扑,更直观。
Definition via neighbourhoods
N ( x ) \mathcal{N}(x) N(x) 定义了 x x x 的邻域系,然后就是一句: X X X with N \mathcal{N} N is called a topological space. 这能不懵逼吗?关键在于,这始终未说明什么叫 closeness,那咱很容易顺着欧式空间的距离概念想邻域,然后还引发很多匪夷所思的问题。
看紫色的那一段注释,咱那时还认为 “在没有度量的情况下,你定义个锤子的邻域”。。。
那时还在为 “ X X X 是 x x x 的邻域” 而迷惑不解。
绿色:我都不知道什么叫 neighbourhood,能理解啥叫开集吗?况且咱还带着欧式空间的惯性思维呢。
不说了,总之,由于缺了一些关键的概念,主要是对 closeness 的价绍吧,整盘懵逼。现在好多了!
总结
看来以后查阅 Wikipedia 后还没有把概念彻底搞清楚的时候,最好还是去图书馆借阅两本相关的好教材,仔仔细细地看一下来龙去脉,才能真正认识一个新概念。