「「確率変数」の正体は米田埋め込み」では、「確率変数(random variable)」という概念を、確率空間と確率を保存する(可測)写像の圏Probの米田埋め込みyProbとして定式化しました。これは、有名な圏論の手法をそのまま適用できる点がとても良いのですが、場合によっては具合が悪いことがあります。定式化を少し修正すると、問題点を解決できます。
内容:
米田埋め込みではウマクないとき
「確率変数」という概念の実体をRandVarと書くことにして、RandVar := yProb : Prob→PSh(Prob) と定義しました(詳細は「「確率変数」の正体は米田埋め込み」)。RandVarに、“値となる確率空間”Vを渡すと:
- RandVar(V) = Prob(-, V) : Probop→Set
ここで、Vの台集合がRである場合を考えてみます。話を具体的にするために次のように決めます。
- ΩV = R
- ΣV = Rの標準位相のボレルσ集合代数
- μV = 1次元標準正規分布が定める測度
適当な確率空間Aに対して、RandVar(V)(A) = Prob(A, V)を考えます。Rには足し算や掛け算がありますから、AからのR値可測関数も足し算や掛け算できます。しかし、RandVar(V)(A)に入っているのは確率保存写像だけなので、RandVar(V)(A)内で足し算や掛け算ができません。X, Y∈RandVar(V)(A) でも、(X + Y), XY∈RandVar(V)(A) とは限らないのです。
確率変数を自由に足したり掛けたりするには、値の空間であるVに測度は入れず、単なる可測空間にして、任意の可測写像を許すべきです。そうなると、RandVar := yProb という定義はウマクないですね。
関手のカリー化と米田埋め込み
RandVarの定義を修正したいのですが、その前に、圏Cの米田埋め込みyCが、ホムセット関手のカリー化であることを確認しましょう。カリー化は、ラムダ計算や関数型プログラミングではお馴染みの操作です。
集合圏Setで、次のホムセット間の同型が成立します。
- Set(A×B, C) Set(A, [B, C])
ここで、[B, C]はBからCへの関数(写像)の集合です。この同型の左辺から右辺への双射をカリー化、右辺から左辺への双射をアンカリー化と呼びます。
小さい圏の圏Catでも、同様なホムセット間の同型が成立します。
- Cat(C×D, E) Cat(C, [D, E])
ここの[D, E]は関手圏で、自然変換を射とする圏になります。集合圏と同様なカリー化/アンカリー化で、“二項関手”と“関手圏への単項関手”が1:1対応します。
大きい圏(必ずしも小さくはない圏)に対して同様な議論をしていいのか? たぶん、まー、なんとか大丈夫でしょう。
- CAT(C×D, E) CAT(C, [D, E])
CATは大きい圏も許す“圏の圏”です。
さて、大きいかも知れない圏Cの2つの対象A, Bに対してホムセット HomC(A, B) = C(A, B) を定義できますが、2つの射 f:A→B, g:C→D に対しても HomC(f, g):HomC(B, C)→HomC(A, D) を次のように定義できます。
- u∈HomC(B, C) に対して、(f;u;g)∈HomC(A, D) を対応付ける。
これにより、HomCは Cop×C→Set という二項関手となります。この二項関手を、Cのホムセット関手またはホム関手と呼びます。HomC∈CAT(Cop×C, Set) なので、カリー化すると、
- HomCΛ : Cop→[C, Set]
(-)Λは、第二変数(右の変数)に関するカリー化(ラムダ抽象ともいう)を表します。第一変数(左の変数)に関するカリー化をΛ(-)で表すと:
- ΛHomC : C→[Cop, Set]
[Cop, Set]はCの前層の圏なので、
- ΛHomC : C→PSh(C)
もうお分かりでしょう、ΛHomCは米田埋め込みyCそのものです。米田埋め込みとは、ホム関手の第一変数(左の変数)に関するカリー化だったのです。
無制約確率変数
「「確率変数」の正体は米田埋め込み」で述べた確率変数の定式化は、圏Probのホム関手 HomProb:Probop×Prob→Set をカリー化した ΛHomProb = yProb としてProbVarを与えたわけです。カリー化は、ホム関手じゃなくても任意の二項関手に(必要なら多項関手にも)適用できるので、我々の目的に都合の良い二項関手を作って、カリー化してみます。
Measは可測空間と可測写像の圏だとします。Probの対象 A = (ΩA, ΣA, μA) に対して、(ΩA, ΣA)は可測空間なので、これをMe(A)と書きます。Me(-)は忘却関手ではありません。Probのホムセットが同値類の集合なので、ProbからMeasへの忘却関手はうまく作れません。
二項関手 H:Probop×Meas→Set を次のように定義します。
- A∈Prob, M∈Meas に対して、H(A, M) := Meas(Me(A), M)/〜 。〜は、「測度0の集合を除いて一致する」という同値関係。u∈Meas(Me(A), M) の同値類を[u]と書く。
- f:A→B in Prob と k:M→N in Meas に対して、H(f, k):H(B, M)→H(A, N) は、[u]∈H(B, M) に対して、[f;u;k]∈H(A, N) を対応させる写像。
Hが実際に二項関手になっていることは定義を追いかければ分かります。
Hのカリー化ΛHは、Meas→[Probop, Set] となります。関手圏[Probop, Set]は前層の圏PSh(Prob)なので、
- ΛH:Meas→PSh(Prob)
ΛHは、米田埋め込み yProb = ΛHomProb : Prob→PSh(Prob) とよく似た関手です。違う点は、ΛHの引数が(確率空間ではなく)可測空間であることです。例えば、確率測度を持たないR(σ集合代数はボレルσ集合代数)をΛHの引数に渡すことができます。
無制約確率変数(unrestricted random variable)を次のように定義します。
- UnrRandVar := ΛH : Meas→PSh(Prob)
Vを可測空間(確率空間ではない)とすると、UnrRandVar(V)はProb上の前層になるので、任意の確率空間Aで具体化されると、集合 UnrRandVar(V)(A) = (ΛH)(V)(A) = H(A, V) = Meas(Me(A), M)/〜 が生じます。この集合には全ての可測写像(の同値類)が含まれるので、その上に代数構造などを構成することが自由にできます。例えば、UnrRandVar(V)(A)をベクトル空間にしたりします。
最初に述べた「米田埋め込みではウマクない」ケースでは、RandVarの代わりにUnrRandVarを使えばいいのです。