スキップしてメイン コンテンツに移動

位相を用いた写像の連続性の定義

Introduction


今日は写像の連続性の定義を位相を用いて行います。こちらの記事では位相の定義、開集合、開集合が位相の公理を満たすことを示しました。しかし、写像の連続性の定義は行いませんでした。この記事ではそれをやっていきます。重要なことであり、証明を書きます。

概要

  •  開集合
  • $\epsilon-\delta$論法
  • 開集合による写像の連続性の定義
  • 同値の証明


開集合

(X,d)を距離空間とします。
$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\}$$

この定義は位相の公理を満たすので位相として距離空間に入れることができます。そのことは前回の記事で書きました。

$\epsilon-\delta$ 論法

$\epsilon-\delta$論法について確認します。この論法は学部一年生で習うと思います。

f:X-> Y:写像で、
fが$x=x_0$で連続とは
$$\iff$$
$$\lim_{x \rightarrow x_0} f(x) = f(x_0)$$
$$\iff$$
$$\forall \epsilon > 0,~~\exists \delta >0 ~~s.t~~ d(x,x_0) < \delta \implies d(f(x),f(x_0)) < \epsilon $$

開集合を用いた写像の連続性の定義

Define1.0

$(X,\mathbb{O}_X),(Y,\mathbb{O}_Y)$を位相空間とします。
$f:X \rightarrow Y$が$x=x_0$で連続
$$\iff$$
$$f(x_0) \in \forall V:\textrm{open set} \subset Y~~,f^{-1} (V) \subset X ~~\textrm{is open set}$$
ここで、$\mathbb{O_X}$ and $\mathbb{O_Y}$はそれぞれ、X,Yの開集合族です。さらに、$f^{-1} (V) := \{a \in X| f(a) \in V \}$とします。

この定義は$\epsilon-\delta$論法と同値になります。
同値の証明


  • Define 1.0 $\implies$ $\epsilon-\delta$論法

$\forall V, f(x_0) \in V$.よって、 $x_0 \in f^{-1}(V)$.
$f^{-1}(V)$は開集合なので、$\exists \delta > 0 ~~s.t.~~ B(x_0,\delta) \subset f^{-1}(V)$.
よって、$\forall x \in X ,~~x \in B(x_0,\delta) \implies x \in f^{-1}(V)$.
$x \in B(x_0,\delta) \iff d(x,x_0) < \delta$
$x \in f^{-1}(V) \iff f(x) \in V$.
ここで、$V$の半径を$\frac{\epsilon}{2}$とします。
$f(x) \in V$なので、$~~d(f(x),f(x_0)) < \epsilon$.

結果、$V$が任意なので、
$$\forall \epsilon ~~\exists \delta ~~s.t.~~ d(x,x_0) < \delta \implies d(f(x),f(x_0)) < \epsilon$$


  • $\epsilon-\delta$ reasoning. $\implies$ Define 1.0

$\forall x \in f^{-1}(V)$,$f(x) \in V$と$f(x_0) \in V$が成り立つので、 $d(f(x),f(x_0)) < \epsilon$.ここで、$\frac{\epsilon}{2}$は$V$の半径とします。
$\epsilon-\delta$論法により、 $\exists \delta > 0 ~~s.t.~~ d(x,x_0) < \delta$.

$B(x,\delta):= \{y \in X|d(x,y) < \delta \}$とします。
$\forall y \in B(x,\delta),$ because $d(x,y) < \delta$, $d(f(x),f(y)) < \epsilon$. よって、$f(y) \in B(f(x),\epsilon) \subset V$
$f(y) \in V$なので、$y \in f^{-1}(V)$.
よって、$y \in B(x,\delta) \implies y \in f^{-1}(V)$.
結果、$B(x,\delta) \subset  f^{-1}(V)$.
よって、$f^{-1}(V)$は開集合。

Q.E.D

コメント

このブログの人気の投稿

カーネルK-means 理論編

Introduction English ver 今日は、カーネルK-meansの理論について書きます。カーネルK-meansは通常のK-meansの欠点を補うことができます。通常のK-meansの欠点とカーネルK-meansの強みも説明します。もし、まだ御覧になられていなければ、通常の K-means 理論編 の記事を見ていただけるとよいのではないかと思います。 カーネルK-meansの実装編 も併せてご覧ください。 概要 K-meansの弱点 カーネルトリック カーネルK-means アルゴリズム K-meansの弱点 例えば、次のようなデータを用意します。 このデータはK-meansによってうまく分類することはできません。なぜなら通常のK-meansでは、データとプロトタイプのユークリッド距離に依存しているからです。そのため、このような円状に分布しているデータはうまく分類することができません。 プロトタイプとはそれぞれのクラスにあり、そのクラスを代表するようなもののことです。K-meansでは各クラスの平均ベクトルとなります。それゆえ、以下のような分類になってしまいます。 このようなデータではK-meansはうまくいきません。 K-meansで分類できるデータセットは次のように各クラスで固まっている必要があります。 カーネルK-meansはK-meansの弱点を補います。 カーネルトリック 初めに、カーネルトリックを説明します。 線形分離できないようなデータ$X$を例えば次のように線形分離できるように$\phi(x)$に送る写像$\phi$を考えます。 カーネルは次のように定義されます。 $$K(x,y) = \phi(x)^T \phi(y)$$ $\phi$を具体的に計算することは難しいですが、$K(x,y)$を計算することなら簡単です。 この手法をカーネルトリックと呼ばれます。 カーネルK means K-meansの目的関数を復習しておきます。 $$J = \sum_{n=1}^{N} \sum_{k=1}^{K} r_{nk} ||x_n-\mu_k||^2$$ ここで、 プロトタイプは$\mu_i ~\forall k \in 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))に減らせます。ヒープ構造で現時点での...

Pythonでスペースを扱う

English ver Introduction 失敗 成功 Reference Introduction コマンドラインで次のような表示をさせたい。 apple   apple     apple       apple         apple 失敗 次のようなprintを使ったcodeでは失敗する def main () : i = 0 while i< 5 : print( 'apple' ) j = 0 while j < i: print( ' ' ) j = j + 1 i = i + 1 if __name__ == '__main__' : main() 結果は、、、 Printは使うごとに改行してしまうのです。 成功 次のようなcodeを見てください。 import sys def main () : i = 0 while i < 5 : print( 'apple' ) j = 0 while j <= i: sys.stdout.write( ' ' ) j = j + 1 i = i + 1 if __name__ == '__main__' : main() sys.stdout.write は改行を無視してくれます。 結果!! 一つ注意することはsys.stdout.weiteはstrしか受け付けないことです。 Reference https://www.lifewithpython.com/2013/12/python-print-without-.html