profunctor

【 profuncor は行列とよく似ている 】

このセッションでは、線形代数の行列に相当するものが、カテゴリー論ではどのようなものになるかを考えます。 

2つのカテゴリー𝖢と𝖣が与えられたとき、カテゴリー論での行列の類似物はprofunctorと呼ばれるもので、集合のカテゴリーSet に値を取るfunctor $f : C^{op} \times D \to Set$ になります。

前にも述べたように、肩について「op」はfunctorのvarianceを示すために使われています。正確を期すためには必要なのですが、最初に見るときには無視しても構いません。ここで説明する線形代数とのアナロジーでは、行と列の間の一種の転置を示すものと考えることができます。

もう少し、詳しく見ていきましょう。

もしprofunctor $f : C^{op} \times D \to Set$ の定義域の二つのカテゴリー $C^{op} とD$が離散カテゴリーで有限集合であるならば、profunctorは単に二つの要素のペアでindexされた集合の集まりです。それは数字の代わりに集合をエントリーとする行列です。

簡単なcurrying で、C, D上のオブジェクト c, d に対する 定義、$c \mapsto  f(c, ,-), d \mapsto  f(-,d)$ で、profunctor fは、ペアのfunctor $f(c,−) : C \to (Set^D)^{op}と f(−,d) : D \to Set^{C^{op}}$を定義することがわかります。

( "op" をないものとしてみれば、このfunctor のペアは、 $f(c,−) : C \to Set^D$ と  $f(−,d) : D \to  Set^C$ のペアになります。確かにこう考えるとわかりやすいです。)

functor $f(c,− )$ は行列fのc行目の集合として描くことができます。 このfunctorは functor $D \to Set$を定義し、このfunctorでDのj番目のオブジェクトは、行 $f(c,− )$ のj番目のオブジェクトの集合にマップされます。

同様に、functor $f(− ,d)$は行列fのd列目の集合を表します。

カテゴリーが、Yoneda (あるいは co-Yoneda) embedding で presheafのカテゴリーに埋め込まれると考えれば、 functor $𝐶\to(𝑆𝑒𝑡^𝐷 )^{𝑜𝑝}と𝐷 \to 𝑆𝑒𝑡^{𝐶^{𝑜𝑝} }$は、一意に、次のfunctor $𝐹^∗,𝐹_∗$に拡張できます。

  $𝐹^∗ : 𝑆𝑒𝑡^{𝐶^{𝑜𝑝} } \to  {(𝑆𝑒𝑡^𝐷) }^{𝑜𝑝}$
  $𝐹_∗ : { (𝑆𝑒𝑡^𝐷) }^{𝑜𝑝} \to 𝑆𝑒𝑡^{𝐶^{𝑜𝑝} }$

"op"を無視すると、こんな形になります。

  $𝐹^∗ : 𝑆𝑒𝑡^𝐶 \to 𝑆𝑒𝑡^𝐷$ 
  $𝐹_∗ : 𝑆𝑒𝑡^𝐷 \to 𝑆𝑒𝑡^𝐶$

--------------------------------

ショートムービー「 profunctor 」を公開しました。
https://youtu.be/VEjUNGr6mJ8?list=PLQIrJ0f9gMcOJYKeUN_8q2K-yxtTfbIoB

「 profunctor 」のpdf資料https://drive.google.com/file/d/1GgHDSRBaWcmjjSiocOXmVIPBxQ0G636j/view?usp=sharing

blog 「 profuncor は行列とよく似ている 」
https://maruyama097.blogspot.com/2024/02/profunctor.html

「言語の意味の数学的構造」まとめページ
https://www.marulabo.net/docs/embedding-dnn/

ショートムービーの再生リスト
https://www.youtube.com/playlist?list=PLQIrJ0f9gMcOJYKeUN_8q2K-yxtTfbIoB 

コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

人間は、善と悪との重ね合わせというモデルの失敗について