profunctor
【 profuncor は行列とよく似ている 】
このセッションでは、線形代数の行列に相当するものが、カテゴリー論ではどのようなものになるかを考えます。
2つのカテゴリー𝖢と𝖣が与えられたとき、カテゴリー論での行列の類似物はprofunctorと呼ばれるもので、集合のカテゴリーSet に値を取るfunctor f:Cop×D→Set になります。
前にも述べたように、肩について「op」はfunctorのvarianceを示すために使われています。正確を期すためには必要なのですが、最初に見るときには無視しても構いません。ここで説明する線形代数とのアナロジーでは、行と列の間の一種の転置を示すものと考えることができます。
もう少し、詳しく見ていきましょう。
もしprofunctor f:Cop×D→Set の定義域の二つのカテゴリー CopとDが離散カテゴリーで有限集合であるならば、profunctorは単に二つの要素のペアでindexされた集合の集まりです。それは数字の代わりに集合をエントリーとする行列です。
簡単なcurrying で、C, D上のオブジェクト c, d に対する定義、c↦f(c,,−),d↦f(−,d) で、profunctor fは、ペアのfunctor f(c,−):C→(SetD)opとf(−,d):D→SetCopを定義することがわかります。
( "op" をないものとしてみれば、このfunctor のペアは、 f(c,−):C→SetD と f(−,d):D→SetC のペアになります。確かにこう考えるとわかりやすいです。)
functor f(c,−) は行列fのc行目の集合として描くことができます。 このfunctorは functor D→Setを定義し、このfunctorでDのj番目のオブジェクトは、行 f(c,−) のj番目のオブジェクトの集合にマップされます。
https://www.marulabo.net/docs/embedding-dnn/
https://www.youtube.com/playlist?list=PLQIrJ0f9gMcOJYKeUN_8q2K-yxtTfbIoB
コメント
コメントを投稿