このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

アレンジメント計算 8: 計算練習

前回の「アレンジメント計算 7: AlmostSurelyEqual」において、二段ASE〈two-step ASE〉という概念を導入したのですが、この後あれは使わないかもなー(使う可能性も多少はあるけど)。まるっきり無駄だったというのもナンダカラ、計算練習の題材に使おう、っと。

シリーズ第1回 兼 リンクハブ:


マルコフテンソルの圏MarkovTensは、「アレンジメント計算 7: AlmostSurelyEqual // 事例に関して」で述べた圏です。この具体的な圏MarkovTensにおいて、二段ASE  \approx^{p,w} がどう書けるかを見ていきましょう。これを例として、ストリング図からテンソルの計算式に翻訳するやり方を説明します。

まず、一時的にですが、実数([0, 1]区間内の実数)の掛け算の記号として ' \cdot' と '\circ' の2つの演算子記号を使うことにします。それは、実数の掛け算が何の意味だったかを表すためです。モノイド積〈テンソル積〉由来の掛け算なら '\cdot'、結合由来の掛け算なら '\circ' を使うことにします。

例えば、idA\otimesh の成分表示なら、
 \mathrm{id}_A(x\mid x')\cdot h(y\mid x'')
のように '\cdot' で掛け算を書きます。一方、p;w = w\otimesp の成分表示なら、
 \sum_{t\in W}w(x\mid t)\circ p(t\mid)
とします。さらに、結合が束縛変数〈ダミー変数〉tによって計算されることを明示するために、
 \sum_{t\in W}w(x\mid t)\circ^t p(t\mid)
のようにしましょう。これで、ストリング図とテンソル計算の対応がだいぶ分かりやすくなります。

さて、 \approx^{p,w} の記述には、次の図をテンソル計算式に翻訳する必要があります。この図には、翻訳のための細工が施されています。


  1. ワイヤーの脇に使用する変数名をラベルしています。「アレンジメント計算 2: 簡単な実例と注意事項 // 因子グラフ、ストリング図へのラベリング」の約束(変数名をクォートする)は守ってません(苦笑)。
  2. ワイヤー上の点線の丸は恒等射を表します。恒等射の入力と出力で変数名を変えます。
  3. 対角〈余乗法 | コピー〉射の三叉には、同じ変数名が3つラベルされています。テンソル計算式では、同じ変数が3回出現することにより対角を表します。
  4. 右側に注釈されている \sum_{t'\in W},\:\sum_{x'\in A} は、結合を表現する変数と総和をメモしています。

先に赤い境界で囲まれたクラスター(「アレンジメント計算 3: 絵算の基本技法 // クラスター、ブラックボックス化、反ブラックボックス化」参照)hを考えます*1。h:W → A\otimesB in C の成分表示は次のようになります。図の上から下をテキストの左から右へと翻訳します。


h(x, y\mid t') = \sum_{x'\in A} \left[ (\mathrm{id}_A(x \mid \underline{x'}) \cdot f(y \mid \underline{x'})) \circ^{x'} w(\underline{x'} | t') \right]

  1. 対角射ΔAが省略さてます。その代わりに対角射を表す変数3回出現に下線を引いています。
  2. ' \cdot 'はテンソル積由来の掛け算記号です。
  3. ' \circ^{x'} 'は結合由来の掛け算記号です。変数名は、総和記号の変数と呼応します。

 \mathrm{id}_A(x \mid x') は、クロネッカーのデルタと同じで、x = x' のところだけが残り他はゼロなので、次のように簡略化できます。


h(x, y\mid t') =  f(y \mid x) w(x | t')

同じ要領で、図の全体は次のように書き下せます。


\sum_{t'\in W} \left[ (\mathrm{id}_W(t \mid \underline{t'}) \cdot h(x, y \mid \underline{t'})) \circ^{t'} p(\underline{t'} |) \right]

 \mathrm{id}_W(t \mid t') も同様なので  h(x, y \mid t)  p(t |) と簡略化できます。代入すると、

 
f(y\mid x)w(x \mid t)p(t|)

となります。これが絵全体の成分表示です。

今計算した表式を使うと、次の図の二段ASEの関係  f \approx^{p,w} g は、その下の論理式で書けます。


\forall\, (t, x, y)\in W\times A\times B.( \\
\:\:\:\: f(y\mid x)w(x \mid t)p(t|) = g(y\mid x)w(x \mid t)p(t|) \\
)

これは次のように書き換えられます。


\forall\, (t, x, y)\in W\times A\times B.( \\
\:\:\:\: w(x \mid t)p(t|) \neq 0 \Rightarrow f(y\mid x) = g(y\mid x) \\
)

あるいは:


\forall\, (t, x, y)\in W\times A\times B.( \\
\:\:\:\: (w(x \mid t)) \neq 0 \land p(t|) \neq 0) \Rightarrow f(y\mid x) = g(y\mid x) \\
)

冒頭で言ったように、この条件は今後使わないかも知れませんが、例題に使ったのでヨシとします。

*1:[追記]クラスター境界が大きすぎたなー。ワイヤーがクラスター境界を突き抜けて外に出ないとマズイですね。この囲み方だと、クラスターが出力ワイヤーを持たないように見えますが、そんなことないです。[/追記]