Italian Trulli

Ryosuke Yoneda’s Homepage

I am a Ph.D. student at the Nonlinear Physics Division, Kyoto University.

My main research areas are nonlinear dynamics and statistical mechanics. I am especially interested in theoretical analysis and numerical simulation of phase transition phenomena. In specific, I have been analyzing the Kuramoto model, which is known to exhibit synchronous phenomena. For numerical analysis, I often use regression with Gaussian process and neural networks. Recently, I am also studying spectral graph theory to investigate the effect of network structure on synchronization phenomena.

Unique lifting property

Hatcherの"Algebraic Topology"のProposition 1.34でUnique lifting propertyとその証明が与えられているのですが、その証明がわかりにくかったのでここに分かりやすくまとめてみます。 Hatcherが全体的に読みにくいと感じるのは自分だけだろうか。。。 Unique lifting property Unique lifting propertyは被覆空間によってリフトされた連続写像が一点を決めれば一意に定まることを主張しています。 Theorem    [Unique lifting property] 被覆写像$p\colon \tilde{X}\to X$と連続写像$f\colon Y\to X$が与えられている。 また、$Y$は連結であるとする。 $f$のリフト$\tilde{f} _{1},\tilde{f} _{2}\colon Y\to\tilde{X}$がある一点で同じ値を取るとき、$\tilde{f} _{1}=\tilde{f} _{2}$である。 この証明は$Y$が連結であることを巧妙に使います。 証明に用いる概略図を以下に示します。 Proof [Of Theorem 1]: はじめに被覆空間にまたがる性質を見る。 $y\in Y$に対して$U\subset X$を均一な被覆を持つ$f(y)$の開近傍とする。 すなわち、$p^{-1}(U)=\bigcup_{\lambda\in\Lambda}\tilde{U} _ {\lambda}$で$\tilde{U} _ {\lambda}$は互いに素な集合となっていることである。 このとき、$\left.p\right| _ {\tilde{U} _ {\lambda}}\colon\tilde{U} _ {\lambda}\to U$が同相写像となる。 今リフトは連続であるから、$y$のある開近傍$N(y)$が存在して、 $$ \tilde{f} _ {1}(N(y))\subset \tilde{U} _ {1},\quad \tilde{f} _ {2}(N(y))\subset \tilde{U} _ {2} $$ なるような$\tilde{U} _ {1},\tilde{U} _ {2}\in\bigcup_{\lambda\in\Lambda}\tilde{U} _ {\lambda}$が存在する。...

February 3, 2023 · 1 min · 169 words · Ryosuke Yoneda

Hermite多項式の係数

Hermite多項式の係数をpythonで求める方法を紹介します。 係数自体は三項間漸化式で求められますが、高次の係数を求めるときには再帰が必要になり計算量が増えてしまいます。 functoolsモジュールのcacheを使うと再帰を高速化できます。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from functools import cache @cache def hermite_coeff(n: int) -> list: """Compute the coefficients of the nth Hermite polynomial.""" if not isinstance(n, int): raise TypeError("n must be an integer") if n < 0: raise ValueError("n must be non-negative") if n == 0: return [1] elif n == 1: return [0, 2] else: return [- 2 * (n - 1) * hermite_coeff(n - 2)[0]]\ + [2 * hermite_coeff(n - 1)[i] - 2 * (n - 1) * hermite_coeff(n - 2)[i + 1] for i in range(n - 2)]\ + [2 * hermite_coeff(n - 1)[n - 2], 2 * hermite_coeff(n - 1)[n - 1]] hermite_coeff(n)はn次のHermite多項式の係数を返します。 hermite_coeff(n)はnが整数でないとき、nが負のときにTypeErrorとValueErrorを返します。...

January 31, 2023 · 2 min · 257 words · Ryosuke Yoneda

Random Fourier Features

カーネル法によるリッジ回帰は表現力が高いことが知られており、またその数学的背景の豊かさから多くの研究がなされてきました。 しかし、$n$個のデータ数に対して推論に$\mathcal{O}(n^{3})$の計算量が必要とされるため、計算量を低減させる方法を検討することは非常に重要です。 ここでは、Random Fourier Features 1と呼ばれる方法を紹介します。 実装も行ったがGistにも公開している。 Random Fourier Features Random Fourier Featuresはカーネル関数$k(x,y)\colon\mathbb{R}^{d}\times\mathbb{R}^{d}\to\mathbb{R}$が$x-y$の関数$\phi(x-y)$で表現できる場合に、それをランダムな基底で近似する手法である。キモとなるのはBochnerの定理である。 Theorem    [Bochnerの定理] $k(x,y)=\phi(x-y)$が連続な正定値カーネルであるための必要十分条件は$\mathbb{R}^{d}$上の有限非負Borel測度$\mu$があって、 $$ k(x,y)=\int_{\mathbb{R}^{d}}e^{i\omega^{\top}(x-y)}\mathrm{d}\mu(\omega) $$ で表されることである。 適当にスケールすれば$\mu$は確率になり、(存在すれば)$\mathrm{d}\mu(\omega)=p(\omega)\mathrm{d}\omega$と書くことが出来る。 このとき、$k$の値域は実数であるので、 $$ k(x,y)=\mathbb{E}_ {\omega}[\cos(\omega^{\top}(x-y))] $$ 実はこれは$b$を$[0,2\pi)$上の一様乱数として、 $$ 2\mathbb{E}_ {\omega,b}[\cos(\omega^{\top}x+b)\cos(\omega^{\top}y+b)] $$ と一致することがわかる。(加法定理を用いよ) Proposition    [Random Fourier Features] カーネル関数$k(x,y)$が$x-y$の関数で与えられるとき、 $$ k(x,y)=2\mathbb{E}_ {\omega,b}[\cos(\omega^{\top}x+b)\cos(\omega^{\top}y+b)] $$ が成立する。ここで、$\omega$は$k$の確率に従い、$b$は$[0,2\pi)$上の一様分布に従う。 この性質を用いてカーネル関数を近似することを考える。$\omega_{i},b_{i}$をそれぞれの分布に従う乱数として$m$個発生させ、関数$z_{i}(x)=\sqrt{2/m}\cos(\omega_{i}^{\top}x+b_{i})$を構成したとき、 $$ \sum_{i=1}^{m}z_{i}(x)z_{i}(y)\to k(x,y) $$ が$m\to\infty$の極限で大数の法則により収束していく。 Kernel Ridge Regression Random Fourier Featuresを用いてカーネル関数を表現することによってカーネルリッジ回帰の計算量が低減される。 データ$\mathcal{D}=\{(x_{i},y_{i})\}_ {i=1}^{n}$が与えられる場合を考える。入力$x_{i}$を特徴写像$\Phi$で写し、写した先の空間$H$でリッジ回帰をする。 損失関数は $$ L=\sum_{i=1}^{n}[y_{i}-f(x_{i})]^{2}+\lambda||f||^{2}_ {H} $$ となり、これを最小化する$f\in H$を探す。$\lambda||f||^{2}_ {H}$は正則化の項である。 Representation定理により$f$は$\Phi(x_{i})$で展開されることがわかり、色々計算すると損失関数を最小化する$\hat{f}$は $$ \hat{f}(x)=\sum_{i=1}^{n}\hat{\alpha}_{i}k(x_{i},x) $$ となることがわかる。ここで、$\hat{\alpha}=(K+\lambda I_{n})^{-1}y,[K]_{ij}=k(x_{i},x_{j})$である。 $\alpha$の計算に逆行列が含まれるため$\mathcal{O}(n^{3})$の計算量が必要となってしまう。...

January 6, 2023 · 4 min · 766 words · Ryosuke Yoneda

AUTOのインストール方法

AUTOはODE(常微分方程式)の分岐解析を扱うソフトウェアで、1980年に開発されて以来力学系界隈で使われてきました。 現在はGitHubにてコードが公開されて細々と(?)開発が続けられています。 https://github.com/auto-07p/auto-07p AUTOは便利ではあるのですが、そのインストール方法がプログラム初心者には少し難しいことがあるそうなのでその流れを少しまとめてみました。 以下では基本的にMac OSでインストールする方法を述べますが、WindowsやLinuxでも同様だと思います。 また、最低限のターミナルでの操作は出来るものとしておきます。 インストール方法 はじめにGitHubからコードをダウンロードする必要があります。これには、リポジトリをcloneする方法とリリースからダウンロードをする方法があります。 cloneという言葉の意味がわからなければリリースからダウンロードする方が良いかもしれません。 GitHubからAUTOのリポジトリをcloneする場合は次のコマンドを打ち込みます。 1 git clone git@github.com:auto-07p/auto-07p.git 次にこのフォルダをホーム直下で~/.auto-07pという名前で移動させましょう。 1 mv auto-07p ~/.auto-07p この場所が嫌ならば他の場所に他の名前で移動させてもらっても構いません。その場合は後で編集するauto.env.shも適切に変えてください。 GitHub内のリリースページ内にある最新のリリースからSource code (zip)をダウンロードしてください。記事作成時点ではバージョン0.9.3が最新でした。例えばDownloadsフォルダ内にzipファイルが格納されたとしましょう。このフォルダを開いてzipファイルを展開してください。同一フォルダ内でauto-07p-0.9.3というフォルダが作られるはずです(後ろの数字はバージョンを表すので変動する可能性はあります)。次にターミナルを開いて次のコマンドを打ち込んでください。 1 mv ~/Downloads/auto-07p-0.9.3 ~/.auto-07p 上に同じですが、この場所が嫌ならば他の場所に他の名前で移動させてもらっても構いません。 このフォルダ内に移動しておきます。 1 cd ~/.auto-07p フォルダ内で./configureを実行した上でmakeを行います。 1 2 ./configure make 何も問題がなければこのmakeは成功しますが、うまくAUTOが起動出来ない場合はこのmakeで失敗している可能性が高いです。エラーが出ていないかはよく見ておいてください。 あとはAUTOの設定ファイルをシェルに読み込ませるだけですが、GitHubからcloneしたファイルに間違いがあるので修正する(間違っているというか、リリースされているもののフォルダ構成がGitHubのフォルダ構成と微妙に違うだけ、ではあります)。~/.auto-07p/cmds/auto.env.shの5行目を次のように編集してください。 1 2 -AUTO_DIR=$HOME/auto/07p +AUTO_DIR=$HOME/.auto-07p このとき~/.auto-07p以外にフォルダを設置している場合はそのようにAUTO_DIRを設定しておいてください。 最終的に~/.auto-07p/cmds/auto.env.shは次のようになります。 1 2 3 4 5 6 7 8 9 10 11 12 13 # # This file has to be sourced before activating AUTO if you are using # a 'sh' compatible shell, such as sh, bash, ksh, or ash....

November 20, 2022 · 1 min · 124 words · Ryosuke Yoneda

Ising model on a Bethe lattice  [draft]

Baxterの本にベーテ格子上のイジングモデルの話があって面白かったのでまとめてみます。臨界点と臨界指数を求めるところまで書いてみます。 Bethe lattice ベーテ格子は無限サイズのグラフの一つで、統計力学において厳密に解ける模型としてしばしば登場するものです。 具体的には次のように構成します。 中心の点からスタートとして$q$個の点と枝を繋ぐ。中心の点を$0$番目の殻、それと繋がる点を$1$番目の殻に属すると呼ぶ。 $r$番目の殻まで構成したとき、その殻に属するそれぞれの点から$q-1$個の点と枝を繋ぎ、この点を$r+1$番目の殻とする。 この操作を無限に繰り返すことでベーテ格子が構成されます。例えば$q=$5として3番目の殻までプロットしたものは次のようになります。 Ising model 統計力学の細かい話はここでは述べません。定義だけさらっとまとめていきます。イジングモデルのエネルギーは、 $$ H(\bm{\sigma})=-J\sum_{\langle i,j\rangle}\sigma_{i}\sigma_{j}-H\sum_{i}\sigma_{i} $$ で与えられ、$\bm{\sigma}$の確率分布は $$ P(\bm{\sigma})=\exp(-H(\bm{\sigma})/k_{B}T)=\exp\left[K\sum_{\langle i,j\rangle}\sigma_{i}\sigma_{j}+h\sum_{i}\sigma_{i}\right] $$ になります。$\bm{\sigma}$の各要素は$\pm1$の値を取ります。 $\langle i,j\rangle$はベーテ格子上の隣接する点を集めたものです。 $k_{B}$はボルツマン定数であり、$K=J/k_{B}T,h=H/k_{B}T$と置いています。 この分布は規格化されていません。規格化定数が分配関数でこれは$Z=\sum_{\bm{\sigma}}P(\bm{\sigma})$になります。 適当な物理量は確率分布をもとに計算されます。例えば中心の磁化を$\sigma_{0}$と置くとその値は $$ M=\langle\sigma_{0}\rangle=\frac{1}{Z}\sum_{\bm{\sigma}}\sigma_{0}P(\bm{\sigma}) $$ で与えられます。次のセクションで$M$の値を実際に計算していきます。 Recurrence relation ベーテ格子の対称性から中心の点はは$q$個の同一の部分木に分けられます。$j$番目の部分木の点集合を$s^{(j)}$と置くと確率分布は、 $$ P(\bm{\sigma})=\exp(h\sigma_{0})\prod_{j=1}^{q}Q_{n}(\sigma_{0}\mid s^{(j)}) $$ で書けます。ここで、 $$ Q_{n}(\sigma_{0}\mid s) = \exp\left[K\sum_{\langle i,j\rangle}s_{i}s_{j}+Ks_{1}\sigma_{0}+h\sum_{i}s_{i}\right] $$ は$\sigma_{0}$と木$s$との接続が寄与する項を表します。そのため和を取る項はすべて$s$内のものになります。 添字$n$はこの段階では$n$番目の殻まで打ち切ったベーテ格子を考えていることから来るものです。このあとで$n\to\infty$の極限を考えます。 これをもとに中心の磁化$M$を計算します。$Q_{n}$を部分木上で和を取ったものを$g_{n}$と置くことにします。すなわち、 $$ g_{n}(\sigma_{0})=\sum_{s}Q_{n}(\sigma_{0}\mid s) $$ です。各部分木上で$g_{n}$の値が一致することを用いると、 $$ \begin{align*} M=&Z^{-1}\sum_{\sigma_{0}}\sigma_{0}\exp(h\sigma_{0})[g_{n}(\sigma_{0})]^{q}=Z^{-1}\left(e^{h}[g_{n}(+1)]^{q}-e^{-h}[g_{n}(-1)]^{q}\right)\\ Z=&\sum_{\sigma_{0}}\exp(h\sigma_{0})[g_{n}(\sigma_{0})]^{q}=e^{h}[g_{n}(+1)]^{q}+e^{-h}[g_{n}(-1)]^{q} \end{align*} $$ になります。ここで、$x_{n}=g_{n}(-1)/g_{n}(+1)$と置くと、 $$ M=\frac{e^{h}-e^{-h}x_{n}}{e^{h}+e^{-h}x_{n}} $$ が得られます。 $x_{n}$は$n$に依存するので、$n$に関する漸化式を求めてみましょう。$Q_{n}$を構成する部分木$s$はそれ自身$q-1$個の部分木を含みます。なので、$Q_{n}$はさらなる分解が期待されます。 $$ Q_{n}(\sigma_{0}\mid s)=\exp(K\sigma_{0}s_{1}+hs_{1})\prod_{j=1}^{q-1}Q_{n-1}(s_{1}\mid t^{(j)}) $$ ここで、$s_{1}$は部分木$s$の根であり、$t^{(j)}$は$s_{1}$に接続する$j$番目の部分木になります。 この式を部分木$s$上で和を取って見ましょう。特に、右辺は$s_{1}$と$t^{(j)}$上の和に分解してみると、 $$ \begin{align*} g_{n}(\sigma_{0})=&\sum_{s_{1}}\exp(K\sigma_{0}s_{1}+hs_{1})[g_{n-1}(s_{1})]^{q-1}\\ =&\exp(K\sigma_{0}+h)[g_{n-1}(+1)]^{q-1}+\exp(-K\sigma_{0}-h)[g_{n-1}(-1)]^{q-1} \end{align*} $$ になるので、$x_{n}$については $$ \begin{align*} x_{n}=&\frac{g_{n}(-1)}{g_{n}(+1)}\\ =&\frac{\exp(-K+h)[g_{n-1}(+1)]^{q-1}+\exp(K-h)[g_{n-1}(-1)]^{q-1}}{\exp(K+h)[g_{n-1}(+1)]^{q-1}+\exp(-K-h)[g_{n-1}(-1)]^{q-1}}\\ =&\frac{e^{-K+h}+e^{K-h}x_{n-1}^{q-1}}{e^{K+h}+e^{-K-h}x_{n-1}^{q-1}} \end{align*} $$ が得られます。...

October 1, 2022 · 1 min · 109 words · Ryosuke Yoneda

はめ込みと埋め込み

松本『多様体の基礎』とTu『トゥー多様体』を読みながらはめ込みと埋め込みについて書いてあったことをまとめます。 はめ込みと埋め込み Definition    [はめ込み] $f\colon M\to N$がはめ込みであるとは、任意の$p\in M$における$f$の微分$(df) _ {p}\colon T_{p} M\to T_{f(p)} N$が単射になることである。 ユークリッド空間のもとでのはめ込みは$\mathbb{R}^{m}$からより高い次元$\mathbb{R}^{m}$への包含写像 $$ i\colon\mathbb{R}^{m}\to\mathbb{R}^{n};(x_{1},\dots,x_{m})\mapsto(x_{1},\dots,x_{n},0,\dots,0) $$ となります。この写像は局所的であり、これを多様体へと拡張したものが次のはめ込み定理になります。 Theorem    [はめ込み定理] $f\colon M\to N$がはめ込みであるとする。任意の点$p\in M$に対してある座標近傍$(U;\phi)$と$f(p)\in N$に対するある座標近傍$(V;\psi)$があって、$\phi(p)$のある近傍で、 $$ (\psi\circ f\circ \phi^{-1})(r_{1},\dots,r_{m})=(r_{1},\dots,r_{n},0,\dots,0) $$ なるものが存在する。 この意味ですべてのはめ込みは局所的には包含写像になることがわかります。しかし、この場合$f(M)$は後で見る部分多様体にはならないことがあります。この場合$f$に次の条件を与えた埋め込みを考えます。 Definition    [埋め込み] $f\colon M\to N$が埋め込みであるとは、$f$がはめ込みであってかつ、$f(M)$に$N$の相対位相を入れたときに$f\colon M\to f(M)$が同相写像となることである。 ただしはめ込み定理があるので、はめ込みは局所的には埋め込みになります。 Proposition   $C^{r}$級はめ込みは局所的には$C^{r}$級埋め込みである。すなわり、任意の点$p\in M$に対して, $p$のある開近傍$U$が存在して、$f|_{U}\colon U\to N$は埋め込みである。 部分多様体 Definition    [正則部分多様体] $n$次元$C^{r}$級多様体$N$の部分集合$S$が$k$次元の $C^{r}$級正則部分多様体であるとは、任意の点$p\in S$に対して、ある座標近傍$(U;x_{1},\dots,x_{n})$が存在して、 $$ U\cap S=\{(x_{1},\dots,x_{n})\in U\mid x_{k+1}=\cdots=x_{n}=0\} $$ が成り立つことである。 『トゥー多様体』ではこのような$N$のチャートを$S$に適合するチャートと呼びます。 Proposition   $n$次元$C^{r}$級多様体$N$の$k$次元$C^{r}$級正則部分多様体$S$はそれ自身$k$次元$C^{r}$級多様体である。 Proof [Of Proposition]: $(U;\phi)=(U;x_{1},\dots,x_{n}),(V,\psi)=(V;y_{1},\dots,y_{n})$を適合するチャートとし、$U\cap V\ne\emptyset$とする。このとき、$p\in U\cap V\cap S$に対して $$ \phi(p)=(x_{1}(p),\dots,x_{k}(p),0,\dots,0),\psi(p)=(y_{1}(p),\dots,y_{k}(p),0,\dots,0) $$ である。そこで、$\phi,\psi$の出力を$k$次元目までのところに制限したものを$\phi_{S},\psi_{S}$と書くことにすると、$\psi_{S}\circ\phi_{S}^{-1},\phi_{S}\circ\psi_{S}^{-1}$はそれぞれ$C^{r}$級の座標変換関数になる。 よって適合するチャートから構成した族$\{(U\cap S;\phi_{S})\}$は$S$の$C^{r}$級のアトラスになる。よって$S$は$k$次元$C^{r}$級多様体である。 次の2つの定理によって多様体の埋め込みと正則部分多様体は同じものとみなすことができます。...

August 30, 2022 · 1 min · 96 words · Ryosuke Yoneda

JAXで蔵本モデル  [draft]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import jax.numpy as jnp from jax import random, jit from jax.lax import fori_loop class AutonomousDiffEq: def __init__(self, n_dim: int): self.n_dim = n_dim def forward(self, state): return NotImplementedError def runge_kutta(self, state, dt): k1 = self.forward(state) k2 = self.forward(state + 0.5 * dt * k1) k3 = self....

August 26, 2022 · 1 min · 157 words · Ryosuke Yoneda

Brouwer's fixed-point theorem

ホモロジーゼミの中でブラウワーの不動点定理の証明が出てきました。特に円盤$D^{2}$上でのブラウワーの不動点定理は基本群を用いて簡便に証明ができることを学んだので備忘録としてまとめておきます。 Theorem    [ブラウワーの不動点定理] $D^{2}\to D^{2}$の任意の連続関数は不動点を持つ。 ホモトピーからの準備 誘導準同型 連続関数を$\varphi\colon(X,x_{0})\to(Y,y_{0})$のように書いたとき、$\varphi\colon X\to Y$で$\varphi(x_{0})=y_{0}$なるものとします。位相空間の間の連続関数$\varphi$から誘導される基本群の間の準同型を次のように定めます。 $$ \varphi_{\ast}\colon \pi_{1}(X,x_{0})\to\pi_{1}(Y,y_{0}),\quad\varphi_{\ast}([f])=[\varphi\circ f] $$ これは$x_{0}$を基点とする$X$内のループ(をホモトピー同値類で割ったもの)を$\varphi$で$y_{0}$を基点とする$Y$内のループ(をホモトピー同値類で割ったもの)に移す写像になります。この写像はwell-definedです。 連続関数の間の合成という操作は誘導準同型を通して準同型写像の間の合成に移ります。すなわち、$\psi\colon(X,x_{0})\to(Y,y_{0}),\varphi\colon(Y,y_{0})\to(Z,z_{0})$に対して、 $$ (\varphi\circ\psi) _ {\ast}=\varphi_{\ast}\circ\psi_{\ast} $$ になります。これは$(\varphi\circ\psi) _ {\ast}([f])=[(\varphi\circ\psi)\circ f]=[\varphi \circ (\psi \circ f)]=\varphi_{\ast}([\psi \circ f])=\varphi_{\ast}(\psi_{\ast}[f])=\varphi_{\ast}\circ\psi_{\ast}([f])$からわかります。 レトラクション $X$から$A\subset X$へのレトラクションを次のように定義します。 Definition    [レトラクション] 連続関数$r\colon X\to A$がレトラクションであるとは、任意の$a\in A$で$r(a)=a$となることである。 Info レトラクションは射影のようなものと見ることができます。線形写像$P$が射影であることは$P^{2}=P\circ P=P$で特徴づけられましたが、同様にレトラクションは$r\circ r=r$となります。 また、レトラクションの対となるものとして包含写像が定まります。 $$ i\colon A\hookrightarrow X $$ すると、$r\circ i=\mathrm{id} _ {A}$になります。誘導準同型からの帰結として、 $$ r_{\ast}\circ i_{\ast}=\mathrm{id} _ {\pi _ {1}(A,x_{0})} $$ になります。特に、$i_{\ast}\colon\pi_{1}(A,x_{0})\to\pi_{1}(X,x_{0})$は単射準同型になります。 証明 Proof [Of Theorem 1]: 背理法で示す。ある連続関数$h\colon D^{2}\to D^{2}$が存在して、任意の$x\in D^{2}$で$h(x)\ne x$であるとしよう。 このとき、$r\colon D^{2}\to\mathbb{S}^{1}$のレトラクションを次のように構成できる。...

August 18, 2022 · 1 min · 89 words · Ryosuke Yoneda

ランダムグラフ上の最小全域木  [draft]

集中不等式に関する勉強をしている中でランダムグラフの最小全域木の重み和の期待値が頂点数無限の極限で$\zeta(3)$に収束するという驚異的な定理を目にしました。 今回はその定理をかんたんに紹介したいと思います。 Info Hugo上で定義・定理・証明環境を整えるのにこのページが参考になりました。ありがとうございます。 また、このinfoはこの拡張機能を用いました。 Minimum Spanning Tree はじめに最小全域木についてまとめておきます。まず、Wikipediaによると全域木は Definition    [全域木] グラフ$G(V,E)$において$T\subseteq E$となる辺集合$T$があるとき、グラフ$S(V,T)$が木(閉路を持たないグラフ)であるなら、$S(V,T)$のことをグラフ$G(V,E)$の全域木であるとする。 で定義されます。 例えば左端のグラフに対して、真ん中と右端のグラフ(実線が選ばれた枝に対応しています)は全域木になっています。この例からわかるように全域木は一意ではありません。 グラフの各辺に重みが与えられているときに、最小の重み和となる全域木を最小全域木と言います。 左のグラフのように辺重みが与えられているとき、最小全域木は右のようになります。また、そのときの重み和は$2+3+1+3=9$になります。 Random Minimum Spanning Tree 今、各頂点が他のすべての頂点と繋がっている完全グラフを考えます。また、それぞれの枝重みは独立に$[0,1]$区間からランダムに取ることにします。 このように構成されたグラフに対して最小全域木の重み和を求めます。この重み和は頂点数が無限の極限で期待値としてどのような値を取るのでしょうか?極限では重み和は発散してしまう可能性もあります。 頂点数が$n$のときの最小全域木の重み和を$T_{n}$という確率変数で表すことにすると、実はその期待値の極限は次のように表せることが知られています。 Theorem    [Alan M. Frieze 1985] $$ \lim_{n\to\infty}\mathbb{E}[T_{n}]=\zeta(3) $$ ここで、$\zeta(s)=\sum_{n=1}^{\infty}n^{-s}$は$\Re s>1$で定義されるリーマンゼータ関数です。 Numerical Simulation Conjecture    [Riemann Hypothesis] This can be sometimes useful Proof [Of Theorem 1]: Insert your proof here gnmatiohnioanhaet@qio $\frac{1}{3}$

July 20, 2022 · 1 min · 57 words · Ryosuke Yoneda

M1 MacでのPython環境構築(tensorflowとか)

Apple Siliconが搭載されたMacが手元に何台かあって、その上で色々と研究をしていたのですが、pythonの環境構築に結構手こずってしまいました。何度か試してうまく行ったものを備忘録として記しておきます。 (ここではpyenvを用いた環境構築について記しています。もちろん他にも良い方法はあると思います。) インストールに手こずることがあれば随時この記事に書き足していきたいと思います。 特にtensorflowのインストールが難しかったのですが、以下の記事が参考になりました。ありがとうございます。 https://qiita.com/chipmunk-star/items/90931fb5180b8024adcb pyenv はじめにpyenvをインストールします。これはpyenvのGitHubページに従えばうまく動きます。 Apple Siliconではarmアーキテクチャが採用されているのでminiforgeを使わないといけない、という説明がネット上に無数にあるのでそれに従います。今ではminiforge以外も対応しているのかもしれないですが、よくわからないです。 この記事を書いている現時点(2022/07/11)ではminiforge3-4.10.3-10が最新のように見えるのでこれをインストールしてglobalの環境に設定しておきます。 1 2 pyenv install miniforge3-4.10.3-10 pyenv global miniforge3-4.10.3-10 TensorFlow tensorflowのインストールが一番大変で、いろんな記事を眺めてはインストールを試みましたが成功には至りませんでした。上のリンクに従うとすんなりとインストールが完了しました。 インストールに必要なのはtensorflow-deps, tensorflow-macos, tensorflow-metalの3つ(多い!!)らしいです。そのうちtensorflow-deps, tensorflow-macosをインストールするときのバージョンがtensorflowのバージョンに対応するらしいです。そのためにまずtensorflow-depsがインストール可能なバージョンを確認します。tensorflow-depsはcondaによるインストールを利用するらしいのでconda searchを行います。 1 2 3 4 5 6 7 8 9 -> % conda search -c apple tensorflow-deps Loading channels: done # Name Version Build Channel tensorflow-deps 2.5.0 0 apple tensorflow-deps 2.5.0 1 apple tensorflow-deps 2.6.0 0 apple tensorflow-deps 2.7.0 0 apple tensorflow-deps 2.8.0 0 apple tensorflow-deps 2....

July 11, 2022 · 1 min · 192 words · Ryosuke Yoneda