2020-08-03 (Mon.)
\(\def\C{\mathcal C}\def\Sets{\mathbb{Sets}}\def\D{\mathcal D}\def\Kl{\mathcal{Kl(D)}}\)
CD圏は Copy/Discard と呼ばれる特別な射を持つ対称モノイド圏 (symmetric monoidal category) のことで, 確率を一般化して表現できることからマルコフ圏とも呼ばれる.
ここではCD圏の定義と簡単なケースとして離散確率分布を表現する方法を紹介する.
単集合 \(1 = \{\ast\}\) をドメインとする写像 \(f \colon 1 \to X\) があるとき, 値 \(f(\ast)\) も記号を乱用して単に \(f ~(\in X)\) と書く.
考える圏は対称モノイド圏だとする. すなわちテンソル積 \(\otimes\) と対象 \(I\) があって,
が成り立つ.
ここに更に, 各対象 \(X\) について copy 射 \(c_X\) と discard 射 \(d_X\) があるとする.
この二つは次を満たすことを要請する:
特にこの二つ目は \(X\) から copy 射によって作った \((X \otimes X) \otimes X\) と \(X \otimes (X \otimes X)\) が等しいことを言っている. したがって単に \(c_X^3 \colon X \to X \otimes X \otimes X\) などと書いていいし一般に \(c_X^n \colon X \to X^{\otimes n}\) があると言っていい.
以上の copy/discard 射を持つ対称モノイド圏を CD 圏という.
CD圏 \(\C\) において, 射 \(f \colon X \to Y\) が \(d_Y f = d_X\) を満たす時, \(f\) は 因果的 (causal) という. 因果的な射のことを チャンネル (channel) という.
\(\C\) のすべての射が因果的であるとき, \(\C\) は affine であるという.
チャンネル \(\omega\) のドメインが \(I\) のとき, つまり \(\omega \colon I \to X\) のとき, \(\omega\) を \(X\) 上の 状態 (state) という.
離散確率分布をまずモナドとして定式化し, そこから導かれるクライスリ圏がまさに確率分布を表現する圏であることを, これから見ていく.
集合 \(X\) について, これの有限部分集合 \(\{x_1,x_2,\ldots,x_n\} \subset X\) を取り出して, これらに確率分布 \((r_1,r_2, \ldots,r_n); ~~ r_i \in [0,1], \sum_i r_i=1\) を載せたものが離散確率分布と呼ばれる. ここでは便利さのために, 関数
のことを \(X\) の上の 離散確率分布 と呼ぶことにする.
\(X\) に対して, \(X\) 上の離散確率分布すべてを集めたもの(これは集合になる)を \(\D(X)\) と書く. すると \(\D\) は \(\Sets\) 上のモナドになる.
モナド \(\D\) についてのクライスリ圏 \(\Kl\) が定められる. これは次のようなもの
copy/discard 射を導入できればオッケーだけどこれは次の通り.
以上から \(\Kl\) は CD 圏であり, \(\D(I)\) が終対象であることに由来して affine である.
\(\Kl\) は確率分布としての機能を備えている.
状態と定義した \(I \to X\) の形をしたチャンネル \(p\) があるとき, \(p\) は \(X\) の上の離散確率分布を表している. このことから, 対象 \(X\) のことを確率変数だと, \(p(x)\) のことを確率 \(P(X=x)\) だと思うことができる.
同時確率はテンソル積への射である. すなわち状態 \(\omega \colon I \to X \otimes Y\) があるとき, これは \(X \otimes Y\) の上の確率分布を与えるから \(\omega(x,y)\) は \(P(x, y)\) を表す.
\(\Kl\) における射 \(f \colon X \to Y\), \(g \colon U \to V\) があるとき, \[f \otimes g \colon X \otimes U \to Y \otimes V\] \[(x, u) \mapsto ((y, v) \mapsto f(x)(y) \times g(u)(v))\]
次に確率の周辺化を考える. これは確率変数 \(X,Y\) について同時確率 \(P(x,y)\) があるとき, \(X\) の確率が \[P(x) = \sum_y P(x,y)\] で求まるというものだった.
\(\Kl\) では同時確率 \(P(x,y)\) を状態 \(\omega \colon I \to X \otimes Y\) が与えるとする.
周辺化によって確率変数 \(Y\) を消すことを考える. これは discard \(d_Y\) を合成することが対応する. ちゃんというと, \(X \otimes Y\) の \(Y\) にだけ discard を適用したいので \((1_X \otimes d_Y)\) を合成する.
射の合成の定義に振り返るとこれは \(\Sets\) において bind すればいいのだった.
\((\eta_X \otimes d_Y)^\ast(\omega) = \psi\) と置くと, \[\begin{align*} \psi(x) & = \sum_{(x',y') \in X \otimes Y} \omega(x',y') \cdot (\eta_X \otimes d_Y)(x',y')(x) \\ & = \sum_{(x',y')} \omega(x',y') \cdot 1[x'=x] \\ & = \sum_{y' \in Y} \omega(x,y') \end{align*}\]
を得る. これはまさに \(\sum_y P(x,y)\) と対応している.
チャンネル \(f \colon X \to Y\) があるとき, これは条件付き確率 \(P(y \mid x)\) とみなせる. 状態 \(\omega \colon I \to X\) との合成を考えると, \[(f \circ \omega)(y) = \sum_x \omega(x) \cdot f(x)(y)\] となって, これは \[P(y) = \sum_x P(x) P(y|x)\] に対応している.
今度は \(X\) の確率 \(\omega \colon I \to X\) から始めて, これをコピーしてから \(f \colon X \to Y\) を適用してみる. すなわち \[(1 \otimes f) c_X \sigma \colon I \to X \otimes Y\] という合成射を考える. 全体としてみるとこの射は状態 \(I \to X \otimes Y\) なので単に同時確率 \(P(x,y)\) を表していそう.
この射を \(\Sets\) に持ってくると, \[(\eta_X \otimes f)^\ast c_X^\ast \sigma \colon I \to \D(X \otimes Y)\] 実際の値を計算すると, \(c_X(x_0)(x_1,x_2) = 1 \iff x_0=x_1=x_2\) と \(\eta_X(x)(x_1) = 1 \iff x=x_1\) に注意して, \[\begin{align*} \ast \mapsto (x,y) & \mapsto \sum_{x_0} \sigma(\ast)(x_0) \times \sum_{(x_1,x_2)} c_X(x_0)(x_1,x_2) \times (\eta_X \otimes f)(x_1,x_2)(x,y) \\ & = \sigma(\ast)(x) \times f(x)(y) \end{align*}\] この右辺値は \(P(x) \times P(y|x)\) に相当していて結局 \[P(x,y) = P(x) P(y|x)\] を表している.
このように \(\sigma\) と \(f\) をうまく合成することで同時確率を得る操作を integration という.
integration の逆の操作を考えることができる.
確率の等式 \[P(y|x) = \frac{P(x,y)}{P(x)}\] を考えると次のようなことができる.
状態 \(\omega \colon I \to X \otimes Y\) があるとき, 確率 \(P(x)\) は周辺化によって取り出せて, \[\omega_1 \colon I \to X\] \[\omega_1 = (1 \otimes d_Y) \omega.\] これを用いて \[f \colon X \to Y\] \[f(x)(y) = \frac{\omega(x,y)}{\omega_1(x)}\] ただし \(\omega_1(x)=0\) のときは適当な(なんでも良い)確率分布を割り当てればオッケー.
このようにすると \[\omega = (1 \otimes f) c_X \omega_1\] という分解ができる.
\(\omega \colon I \to X \otimes Y\) からこのような \(f \colon X \to Y\) (或いは \(Y \to X\))を作ることを disintegration という.