めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

圏論における随伴関係の導入例

線形変換の2つの見方

ベクトル空間 W からベクトル空間 V への線形変換 f は、本質的には、W の基底の集合 \{\mathbf e_i\} の像で決まるので、

 (\{\mathbf e_i\},\, V) := 「\{\mathbf e_i\} から V への写像全体」--- (1)

 (W,\, V) := W から V への線型写像全体」--- (2)

は、本質的に同一であり、それぞれの要素の間には 1:1 の対応が付けられます*1

この時、(1) においては、V はベクトル空間であることは忘れて、単なる集合間の任意の写像を考えている事に注意してください。この点を明確にするために、ベクトル空間 V の要素を集めた集合(つまり、要素間の演算の事を忘れ去った集合)を G(V) と表すことにして、(1) を

 (\{\mathbf e_i\},\, G(V)) := 「\{\mathbf e_i\} から G(V) への写像全体」--- (1)'

と書き直すことにします。また、\{\mathbf e_i\} が張るベクトル空間を F(\{\mathbf e_i\}) という記号で表すことにすると、W=F(\{\mathbf e_i\}) となるので、(2) は、

 (F(\{\mathbf e_i\}),\, V) := F(\{\mathbf e_i\}) から V への線型写像全体」--- (2)’

と書き直すことができます。(1)' と (2)' の要素の間に 1:1 の対応が付けられるという事実を

  (\{\mathbf e_i\},\, G(V)) \cong (F(\{\mathbf e_i\}),\, V) --- (3)

という記号で書き表します。

実はこれは、圏論で言うところの「随伴関係」の一例になっています。

(1)' では、集合間の任意の写像を考えることができる代わりに、写像の定義域が「基底の集合」という制限された集合になっています。一方、(2)' は定義域も値域も一般的なベクトル空間である代わりに、その写像には「線形性を満たす」という制限が加えられています。このように本質的に同一の「変換」に対して、2種類の異なった「見方」を与えるものが、圏論における随伴関係と言えるでしょう。

「ズレ」が無い場合の変換(関手)

上述の (1)' では、写像の定義域と値域にちょっとした「ズレ」がある点がポイントですが、2つのベクトル空間の基底同士を直接に対応づけて、

 \{\mathbf e'_j\} \xrightarrow{f} \{\mathbf e_i\} --- (4)

という「ズレ」の無い写像を考えることもできます。ここで、\{\mathbf e'_j\}\{\mathbf e_i\} は、それぞれ、異なるベクトル空間の基底の集合としてください。この場合も、それぞれの基底が張るベクトル空間 F(\{\mathbf e'_j\})F(\{\mathbf e_i\}) の間に、対応する線型写像が決まりますが、これを F(f) という記号で表すことにします。

 F(\{\mathbf e'_j\}) \xrightarrow{F(f)} F(\{\mathbf e_i\}) --- (5)

こちらは、圏論の世界では、「関手」と呼ばれる関係性になります。基底の集合をそれらが張るベクトル空間に変換する操作 F は、それと同時に、基底の集合間の写像 f を対応する線型写像 F(f) に変換する操作を生み出すというわけです。

なお、先ほどの随伴では、あらゆる線型写像が網羅的に 1:1 対応できていたのに対して、こちらではそのような対称性はありません。定義域と値域、両方のベクトル空間で特定の基底 \{\mathbf e'_j\}\{\mathbf e_i\} を定めてしまうと、これらの間で表現できる線型写像は限定的なものになるので、(4) の世界の写像で (5) の世界の写像を網羅することにはなりません。つまり、(4) の世界から (5) の世界への変換はできても、その逆変換はできないのです。

それでは、ベクトル空間を単なる要素の集合に変換する操作 G について、同様のことを考えるとどうなるでしょうか?

まずは、2つのベクトル空間の間の線型写像を考えます。

 W\xrightarrow{f} V --- (6)

そして、それぞれのベクトル空間を単なる集合と思い直せば、写像 f はそのままの形で、集合間の写像と思い直すことができます。これを G(f) と表すことにしましょう。

 G(W)\xrightarrow{G(f)} G(V) --- (7)

これもまた、「関手」の一例となりますが、ここでもまた、随伴のような対称性は失われています。(7) は単なる集合間の写像ですので、(7) の世界で考えた写像の中には、線型写像にならないものもあります。先ほどと同様に、(6) から (7) への変換はできても、その逆はできません。随伴は、逆向きの2つの変換 F, G をうまく「入れ子」にすることで、対称性を作り出していると言えるでしょう。

随伴関係の Naturality

随伴関係では、2つの世界の写像の間に 1:1 の対応関係がありました。そこで、(1)' の世界の写像 f から決まる (2)' の世界の線型写像を \overline f で表す事にします。同様に、(2)' の世界の線型写像 g に対応する (1)' の世界の写像を \overline g で表します。反対方向の対応づけに同じ記号 \overline{\,\cdot\,} を使うのは、ちょっとよろしくないかもしれませんが、もともと 1:1 対応することが分かっているので、特に混乱することはないでしょう。(行列の転置記号のようなものと思えばよいかも?)この記号を使うと、当然ながら、\overline{\overline f}=f が成り立ちます。

この記号を用いると、随伴関係とそれを構成する2つの関手には、ある自然な関係が成り立つことがわかります。たとえば、

   \{\mathbf e_i\}\,\xrightarrow{f}\,G(W) --- (8)
  F(\{\mathbf e_i\})\,\xrightarrow{\overline f}\,W --- (9)

という随伴の意味で同等な変換があった時、この変換の手前に、

  \{\mathbf e'_j\}\,\xrightarrow{p}\,\{\mathbf e_i\}
 F(\{\mathbf e'_j\})\,\xrightarrow{F(p)}\,F(\{\mathbf e_i\})

という関手の世界での変換を付け加えてみます。

   \{\mathbf e'_j\}\,\xrightarrow{p} \{\mathbf e_i\}\,\xrightarrow{f}\,G(W) --- (10)
 F(\{\mathbf e'_j\})\,\xrightarrow{F(p)} F(\{\mathbf e_i\})\,\xrightarrow{\overline f}\,W --- (11)

この時、(10) の世界の合成変換 f\circ p を考えると、対応する (11) の世界の線形変換 \overline{f\circ p} はどのようなものになるでしょうか? 落ち着いて考えると分かるように、

 \overline{f\circ p} = \overline f\circ F(p) --- (12)

が成り立ちます。(基底ベクトル \mathbf e'_j の最終的な行き先が同じになることが確認できればOKですよね。)

同様にして、(8)(9) の後ろに、

 G(W)\,\xrightarrow{G(q)}\,G(V)
   W\,\xrightarrow{q}\,V

という変換を付け加えてみます。

  \{\mathbf e_i\}\,\xrightarrow{f}\,G(W)\,\xrightarrow{G(q)}\,G(V)
  F(\{\mathbf e_i\})\,\xrightarrow{\overline f}\,W\,\xrightarrow{q}\,V

この場合は、合成変換 G(q)\circ f に対応する線形変換を考えて、

 \overline{G(q)\circ f} = q\circ \overline f

という対応関係が成り立ちます。(12) と見た目が違うのが気になる場合は、g=\overline f と置いて、\overline{\overline\cdot} = \cdot の関係を使うと、

 \overline {q\circ g} = G(q)\circ\overline g --- (13)

と書き直すこともできます。

圏論における随伴関係では、一般に、(12)(13) の関係が成り立つことも随伴であることの条件として含まれます。

行って帰ってくるとどうなるか?(unit / counit)

随伴関係の 2 つの関手 F,G は 2 つの世界を行ったり来たりするものですが、行って帰ってくるとどうなるか?という素朴な疑問が湧いたりもします。どういうことかというと、さきほどの (8)(9) で、W=F(\{\mathbf e_i\}) として、(9) の世界では単純な恒等変換 1_{F(\{\mathbf e_i\})} を取ってみます。

   \{\mathbf e_i\}\,\xrightarrow{\overline{1_{F(\{\mathbf e_i\})}}}\,G(F(\{\mathbf e_i\})) --- (14)
  F(\{\mathbf e_i\})\,\xrightarrow{1_{F(\{\mathbf e_i\})}}\,F(\{\mathbf e_i\}) --- (15)

この時、対応する (14) の世界では何がおきているのでしょうか?

まず、G(F(\{\mathbf e_i\})) というのは、ベクトル空間 F(\{\mathbf e_i\}) から演算を忘れたものなので、集合としては F(\{\mathbf e_i\}) と同等でした。また、(14) の世界は、(15) の世界における線型写像から、基底の像だけを取り出したものですので、恒等変換 1_{F(\{\mathbf e_i\})} に対応する写像 \overline{1_{F(\{\mathbf e_i\})}} は、単純に、恒等変換 1_{F(\{\mathbf e_i\})} の定義域を基底だけに制限したものと考えればOKです。

まあまあ、シンプルですね。

これは、F で行って G で帰ってきた場合の話ですが、では、その逆に、G で行って F で帰ってくるとどうなるでしょう? こちらはちょっと複雑ですが、なかなか興味深い結果になります。

ちょっと病的(?)な操作にも思えますが、まず、さきほどの (8)(9) で、\{\mathbf e_i\} = G(W) と置いて、(8) の世界で恒等変換 1_G(W) を取ります。

   G(W)\,\xrightarrow{1_G(W)}\,G(W) --- (14)
  FG(W)\,\xrightarrow{\overline{1_{G(W)}}}\,W --- (15)

G(W) はベクトル空間 W のあらゆる要素を集めた集合ですので、(14) は、ベクトル空間 W の恒等写像と本質的には同じものです。一方、よくわからないのが、(15) にある FG(W) です。F(S) というのは、集合 S のそれぞれの要素を基底として、これらが張るベクトル空間を考えたものでしたので、今の場合、ベクトル空間 W のあらゆる要素を(ベクトルという事実を忘れた、単なる集合の1要素と思って)独立した基底ベクトルとする、(無限個の基底ベクトルからなる)無限次元のベクトル空間が FG(W) になります。

むむむ。どういうことでしょう。

たとえば、G(W) の中には、\mathbf v_1 = 2\mathbf e_i\mathbf v_2 = 3\mathbf e_i という2つの要素があります。FG(W) の中では、これらは「独立した基底ベクトル」とみなされるので、線型結合 \mathbf w = a\mathbf v_1 + b\mathbf v_2 は、これ以上簡単にすることはできません。もとの W の世界であれば、

 \mathbf w = a\mathbf v_1 + b\mathbf v_2 = (2a+3b)\mathbf e_i

という計算ができるにも関わらずです。なんだか、病的に「膨れ上がった」世界のようです。

そして、(15) の変換 \overline {1_{G(W)}} は、この膨れ上がった世界 FG(W) の要素を元のベクトル空間 W の要素に変換しているようですが、どのような変換でしょうか?

(14) の世界は、「基底ベクトル」の行き先を表すことを思い出すと、上記の G(W) の世界の基底ベクトル \mathbf v_1,\mathbf v_2 はそのまま、W の世界のベクトル \mathbf v_1,\mathbf v_2 に移る事になります。そして、 \overline {1_{G(W)}} は線形変換であることから、先ほどの \mathbf w の行き先は、

 \mathbf  w = a\mathbf v_1 + b\mathbf v_2\, \xrightarrow{\overline {1_{G(W)}}}\,a\mathbf v_1 + b\mathbf v_2 --- (16)

という結果になります。

え?やっぱり恒等写像?

いいえ。違います。

(16) の右側は、ベクトル空間 W ですので、左側の FG(W) と異なり、\mathbf v_1\mathbf v_2 はもはや独立な基底ではありません。普通に、W の要素として、

 \mathbf w = a\mathbf v_1 + b\mathbf v_2 = (2a+3b)\mathbf e_i

という計算ができてしまいます。

つまり、{\overline {1_{G(W)}}} は、FG(W) の要素を W の要素と思い直して、「膨れ上がった世界」を元の W の世界に戻してしまう(W の世界での演算を許す)という操作に対応しています。

いやー。なんだか面白いですね。

一般には、随伴関係 F, G があった場合、\eta_A := \overline {1_{F(A)}} で決まる写像を Unit、\epsilon_B := \overline {1_{G(B)}} で決まる写像を counit と呼びます。これらは、さらに圏論で言うところの自然変換になっていて、三角恒等式を満たして・・・・という面白い話があるのですが、ここから先は、ぜひ、ちゃんとした圏論の教科書で学んでみてください。随伴については、下記の教科書がおすすめです。

*1:本来は {\rm Hom}(\{\mathbf e_i\},\, V) などと表記するべき所ですが、{\rm Hom} の意味を過剰に読み取ろうとすると混乱するので、あえてシンプルに表記しています。