Processing math: 100%
スキップしてメイン コンテンツに移動

位相の定義

Introduction

今日から位相空間論について書いていきます。自分の復習のためですが、、、
位相空間は数学を学ぶ上でとても重要になってきます。
位相空間を定義する利点の一つは写像の連続性を位相を用いて定義できるからです。
今日は位相の定義について書いていきたいと思います。


概要

  •   距離空間
  • 位相の公理
  • 位相空間
  • 開集合


距離空間
初めに距離空間を定義します。
Xを集合,関数dを d:X\times X ->\mathbb{R}とします。この時、

(X,d)が距離空間である\iff

  • \forall x,y \in X,~~~~~d(x,y) \geq 0
  • \forall x,y \in X,~~~~~x = y \implies d(x,y) = 0
  • \forall x,y \in X,~~~~~d(x,y) = d(y,x)
  • \forall x,y,z \in X, ~~~~d(x,y) + d(y,z) \geq d(x,z)

この条件は距離の公理と呼ばれています。
dは距離関数と呼ばれています。

位相空間
(X,d)を距離空間とします。この時、
\mathbb{O} \in 2^Xが(X,d)の位相\iff


  • \phi,X \in \mathbb{O}
  • \forall O_1,O_2 \in \mathbb{O} \implies O_1 \cap O_2 \in \mathbb{O}
  • \forall \Lambda ,~~\forall \{O_\lambda \}_{\lambda \in \Lambda} \in O \implies \bigcup_{\lambda \in \Lambda} O_\lambda \in \mathbb{O}


ここで2^X := \{A | A \subset X \}です。

この条件は位相の公理と呼ばれています。

気を付けるべき点は \Lambda は任意の添え字集合であることです。つまり、\mathbb{N}でなくても\mathbb{R}のような実数無限集合でもよいのです。


この時、(X,d,\mathbb{O})を位相空間と呼びます。
(X,\mathbb{O})と書くことが多いです。

開集合
A \subset Xが開集合\iff

\forall x \in A,~~\exists \epsilon > 0, ~~s.t.~~ B(x,\epsilon) \subset A
ここで、B(x,\epsilon):= \{y\in A| d(x,y) < \epsilon\}とします。

この開集合の定義は位相の公理を満します。

X:集合, d:X \times X -> \mathbb{R}:距離関数とします。

\mathbb{O} := \{A \subset X|A :open set\}.
と定義するとき、 \mathbb{O}は位相の公理を満たす。


証明.


  • \phi,X \in \mathbb{O}


これは明らかです。なぜなら、\phiは要素を持っていないため、 \phiは開集合の定義を満たします。そして、\forall x \in X, \exists \epsilon > 0 ~~s.t.~~ B(x,\epsilon) \subset X.これはXが全体集合なので明らかに成り立ちます。


  • \forall O_1,O_2 \in \mathbb{O} \implies O_1 \cap O_2 \in \mathbb{O}


\forall O_1,O_2 \in \mathbb{O}について、\forall x \in O_1 \cap O_2を考えます。
x \in O_1and x \in O_2なので、 \exists \epsilon_1 ~~s.t.~~ B(x,\epsilon_1) \in O_1 and \exists \epsilon_2 ~~s.t.~~ B(x,\epsilon_2) \in O_2
よって\epsilon := \min\{\epsilon_1,\epsilon_2\}と定義すると、
B(x,\epsilon) \subset B(x,\epsilon_1)
B(x,\epsilon) \subset B(x,\epsilon_2)
が満たされます。
よってB(x,\epsilon) \subset O_1 \cap O_2


  • \forall \Lambda ,~~\forall \{O_\lambda \}_{\lambda \in \Lambda} \in O \implies \bigcup_{\lambda \in \Lambda} O_\lambda \in \mathbb{O}


\forall \{O_\lambda\}_{\lambda \in \Lambda}について、
\forall x \in \bigcup_{\lambda \in \Lambda} \{O_\lambda\}_{\lambda \in \Lambda},を考えます。
 \forall x \in \{O_\lambda\}_{\lambda \in \Lambda},について、
\exists \lambda_0 \in \Lambda ~~.st.~~ x \in O_{\lambda_0}
が成り立つので、
 \exists \epsilon ~~s.t.~~ B(x,\epsilon) \subset O_{\lambda_0}
従って、 B(x,\epsilon) \subset \{O_\lambda\}_{\lambda \in \Lambda}

Q.E.D

結論
位相にはほとんど開集合が使われます。
位相を用いた写像の定義はまた、別の機会に書こうと思います。

Reference
https://ja.wikipedia.org/wiki/%E8%B7%9D%E9%9B%A2%E7%A9%BA%E9%96%93

https://ja.wikipedia.org/wiki/%E4%BD%8D%E7%9B%B8%E7%A9%BA%E9%96%93

コメント

このブログの人気の投稿

カーネルk-meansの実装

Introduction   English ver 今日はカーネルk-meansの実装をしました。k-menasアルゴリズムはクラスタリングのためのアルゴリズムです。僕がカーネルk-meansを実装しようと思ったのには一つ理由があります。それは僕の友人がk-meansのプレゼンを、僕がカーネルのプレゼンをしていた時に、k-meansにカーネルを適応できないかと思ったからです。そこで、カーネルk-meansについての論文を探しました。 ここのpdf を主に参考にさせていただきました。うまくカーネルk-meansを実装できたと思います。ここでは、普通のk-meansとカーネルを用いた,kernel k-meansについての実装の結果を紹介します。 また、この記事では実装結果のみ書きますが、理論のほうも別の記事で書くつもりです。書き終えたらリンクをこの記事にも貼っておきます。 #  理論編書きました。K-means 理論編 概要 dataset   ちょっとだけ理論の説明  k-means    kernel k-means   Dataset   English ver 今回使うのは二つのデータセットです。一つ目は、普通のk-means用のデータです。二つ目はkernel k-means用のデータセットです。 一つ目のデータは、三つのグループで構成されており、次元は2で、サンプル数は300です。以下のような分布になっています。 二つ目のデータは二つのグループで構成されており、次元は2でサンプル数は300です。   this page にデータセットを作ったコードを載せています。 ちょっとだけ理論の説明 k-meansとは、k-平均法とも呼ばれています。初めに、適当なクラスに分け、各クラスの中で平均となるベクトルを求めます。そして、各データに対して、すべての平均ベクトルとの距離を求めます。そして、最小となる距離になるクラスに改めて、そのデータをクラスタリングします。そして、新たに得られたクラスの中でそれぞれ平均ベクトルを求め、これを繰り返し、平均ベクトルが動かな...

ダイクストラ法

Introduction English ver 今日は、ダイクストラ法について書きます。ダイクストラ法とは最短距離を求めるアルゴリズムです。地図はグラフで表されます。もし、まだ this page を見ていない方は先にこちらをご覧ください。今回はこの記事を前提としています。このページでは、グラフの定義と、ヒープ構造について書いています。ダイクストラ法ではヒープ構造を使って、かなりの計算量を落とします。 この スライド はダイクストラ法を説明したスライドです。 Overview アルゴリズム 実装 アルゴリズム このアルゴリズムは スタート始点のノードを決める。そして、それをAと名付ける。 各ノードにd=\inftyを割り当てる。ただし、スタート地点はd=0 Aの隣接ノードのリストをadj_listと名付ける。  For adj in adj_list:  If d of adj > d of A + weight to adj -> d = A + weight to adj. グラフnetworkからAを取り除く グラフnetworkの中で最初のdを持っているノードをAとし、4に戻る。 となっています。 このアルゴリズムを図を用いて説明します。  このグラフを使って説明します。  初めに、スタート地点を決めます。そして、各ノードにd=\inftyを割り当てます。  Aから始まります。Aの隣接ノードであるBのdを更新します。もし、現在のBよりもAのdとA->Bへの重みを足したもののほうが小さいならdをその値に更新します。同じようにCnのdを更新します。 次にAを取り除きます。  次はBから始まります。Aと同じことをやります。 このダイクストラ法では今のような操作をグラフの全てのノードに×がつくまで続きます。 実装 このアルゴリズムではO(log(|V|^2))という計算量を持っています。最小のdを持つノードを探すのに時間がかかります。 しかし、ヒープ構造を使えばO((E+V)log(V))に減らせます。ヒープ構造で現時点での...

ヘッセ行列

Introduction English ver 今日は、ヘッセ行列を用いたテイラー展開について書こうと思います。 これは最適化を勉強するにあたって、とても大事になってくるので自分でまとめて残しておくことにしました。とくに、機械学習では最適化を必ず行うため、このブログのタイトルにもマッチした内容だと思います。 . 概要 ヘッセ行列の定義 ベクトルを用いたテイラー展開 関数の最適性 ヘッセ行列の定義 仮定 f は次のような条件を満たす関数です。. f はn次元ベクトルから実数値を出力します。 このベクトルは次のように表せます。 x = [x_1,x_2,,,,x_n] \forall x_i , i \in {1,2,,,n}, f は二回偏微分可能です。 定義 ヘッセ行列は \frac{\partial^2}{\partial x_i \partial x_j}を (i,j)要素に持ちます。 よってヘッセ行列は次のように表せます。 \[ H(f) = \left( \begin{array}{cccc} \frac{\partial^ 2}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & &\ldots \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^ 2 f}{\partial x_1 \partial x_2} & \frac{\partial^ 2 f}{\partial x_2^ 2} & \ldots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^ 2 f}{\partial x_n \partial x_2} & \frac{\partial^ 2 f}{\partial x_n \partial x_2} & \ldo...