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

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

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

参照用 記事

カッコイイけど使える線形代数とは?

「カッコよさ」と「使えること」を両立させるにはどうしたらいいんでしょう?

内容:

古式テンソル計算のモダン化

ここ最近、「古典的微分幾何・ベクトル解析のモダン化」というシリーズ記事を書いています。この一環として、古式テンソル計算のモダン化をやりたいな、と思っています。

古式テンソル計算ってなに? -- 古いスタイルの(古典的、古式)微分幾何・ベクトル解析には、通常の(オーソドックスな)線形代数とはだいぶ違った線形計算体系が付属しています。これを、古式テンソル計算〈old-style tensor calculation〉と呼ぶことにします。上下の添字をあやつって計算する職人ワザです

「古典的微分幾何・ベクトル解析のモダン化」の方針を四字熟語で表現するなら「温故知新」です。古式テンソル計算のような古い方式を捨てる(全面廃棄処分にする)のではなく、良い部分は残してリフォーム/リノベーションしたいのです。このとき、モダンなデザインを注入してカッコよくしたい。そう思ってます。

で、モダンて何だろう? 時代的に新しいだけではダメな気がします。やっぱりカッコよさですね。カッコイイかどうかの判断は完全に個人の趣味嗜好の反映なので、僕が感じるカッコよさです。

古式テンソル計算のモダン化として、(おそらく)メジャーな方法はテンソル代数tensor algebra〉を使う方法でしょう。n次元多様体の(一点での)接ベクトル空間*1をXとして、Xからテンソル代数 TA(X) を作ります。TA(X) は、二重次数付き代数〈bi-graded algebra〉で、TAkj(X) は共変k階-反変j階のテンソル空間です。共変k階の交代〈反対称〉部分を取り出すと、k-形式の空間 Λk(X) となり、kを 0, 1, ..., n と動かした全体*2として外積代数〈exterior algebra〉*3 Λ(X) ができます。

今述べた定式化は十分にモダンだと思いますが、あまりカッコイイ気がしない。それに、多様体論に寄り過ぎていて、古式テンソル計算の技法を一般的な線形代数に適用したいときにどうしたらいいか分かりません。テンソル代数/外積代数のような、特定目的の代数系に注目するのではなくて線形代数全体をモダン化するフレームワークのなかで古式テンソル計算をリノベーションしたいのです。

圏論線形代数

僕は、「圏論バキバキに使ってるぜ」をカッコイイと感じるので、カッコよさの感覚が正常とは思えません。感覚に正常も異常もないとも言えますが、マジョリティでないのは確かでしょう。

とにかくマイナーでもなんでも、モダンな線形代数フレームワークとして圏論線形代数を使いたいのです。圏論線形代数というと、アーベル圏論がまず候補にあがるでしょう。しかし、アーベル圏〈Abelian category〉は、環上の加群達を抽象化したもので、体上のベクトル空間を扱うにはオーバースペックです。僕、アーベル圏苦手だし*4

体K上の有限次元ベクトル空間達*5を、線形写像と共に圏にしたものは、FdVectKです。テンソル積がとても重要なので、テンソル積をモノイド積とするモノイド圏〈monoidal category〉 FdVectK = (FdVectK, \otimes, I) (←書き方は記号の乱用)を考えます。Iは特定された〈distinguished〉1次元空間(Kと同型)で、テンソル積の単位対象です*6

テンソル積を備えた FdVectK はモノイド圏なので、背景となる一般論はモノイド圏の理論となります。さらに、有限次元ベクトル空間Xにはその双対ベクトル空間X*が存在して、これまた重要です。モノイド圏に双対概念を取り込んだものとしてコンパクト閉圏〈compact closed category | compact category〉があります。双対まで含めると、コンパクト閉圏としてのベクトル空間の圏 FdVectK = (FdVectK, \otimes, I, (-)*, η, ε) を考えることになります。ここで、(-)*双対化子〈dualizer〉、ηは余評価射〈coevaluation | coevaluator〉、εは評価射〈evaluation | evaluator〉です。

内積を備えた有限次元ベクトル空間(有限次元ヒルベルト空間)の全体はFdHilbKという圏を作ります。Kは共役〈conjugate〉を備えた体とします。K = C なら共役は普通の複素共役です。K = R なら恒等写像idRを共役とします。FdHilbKは、コンパクト閉構造に加えて、内積から導かれるダガー構造を持ち、ダガーコンパクト閉圏〈dagger compact closed category〉になります(長たらしいので、最近はダガーコンパクト圏〈dagger compact category〉とも呼ぶようです)。

結局、内積を持たない線形代数ならコンパクト閉圏で定式化し、内積を持つ線形代数ならダガーコンパクト閉圏で定式化することになります。

参考(nLab項目):

思い起こせば

コンパクト閉圏/ダガーコンパクト閉圏をベースに初等的線形代数をやりたいという願望(?)はだいぶ昔からあって、ちょうど10年前の記事の「第三の流儀」は、圏論線形代数を意図しています。

この頃(2008年夏)、テンパリー/リーブ圏がマイブームで、シブシブながら古式テンソル計算をしていました。次の記事に、内積空間において番号インデックス方式を用いた計算(への参照)があります。伝統的(古式)テンソル計算をダガーコンパクト閉圏で解釈する心づもりだったようです。

2016年になって、もう一度テンパリー/リーブ圏について書いてみた記事は:

2016年記事の冒頭に、2008年当時の記録への参照と、(2016年に)整理した定式化が書いてあります。2016年版の方法は、圏論線形代数の良いヒントになりそうです。

コンパクト閉圏は、コンパクト論理のシーケント計算の解釈も与えるので、論理計算の観点から線形代数を考えた断片的メモも残っています。

入り口から一歩しか進めなかったですね(苦笑)。

コンパクト閉圏/ダガーコンパクト閉圏をベースにした線形代数は、アブラムスキー〈Samson Abramsky〉やボブ・クック〈Bob Coecke〉が十分に開拓していて、その紹介をしたことがあります。次の記事と、そこからのリンク先記事を見てください。

アブラムスキー/クックが率いるオックスフォード量子組(Oxford Quantum Group)は、古式テンソル計算を唾棄すべきものとみなしているようで、古式テンソル計算には(批判を除けば)言及していません。彼らには、コンパクト閉圏/ダガーコンパクト閉圏と古式テンソル計算をブリッジする気はなさそうです。

ニョロニョロ線形代数

コンパクト閉圏/ダガーコンパクト閉圏をベースにすると、双対性の概念はニョロニョロ〈snaky〉を使って定義します。ニョロニョロのことは次の記事で書いています。

ソフトウェアGlobularのなかで、ニョロニョロを定義したこともあります。

ニョロニョロとは、双対性/随伴性を定義するための基本関係式で snake {relation | equation | identity} と呼ばれるものです*7。蛇関係式よりはニョロニョロ関係式のほうが可愛い感じがするんで*8、そう呼んでいます。

*9

一番有名なニョロニョロは、随伴関手対の定義に登場するニョロニョロでしょう。次の記事に、随伴関手対とニョロニョロ関係式を詳しく述べています。

双対と随伴をキチンと区別することは出来ません。結局は、どっちも同じ定義になってしまうので、気分的・雰囲的に「双対」「随伴」と呼び分けているだけです。典型的な例として、関手の随伴対、双対ベクトル空間対、ガロア接続のあいだの対応表が「3Dでニョロニョロしたい」にあります。

大きな枠組みとしては、随伴関手対と双対ベクトル空間対〈双対ペア〉は同じ概念なんです。具体的なレベルでは、もちろん違いがあります。例えば、随伴関手対ではホムセット同型から随伴性を定義できますが、双対ベクトル空間対でホムセット同型は何の意味もありません(まったく使えない)。

大きな枠組みを意識したほうがいいな、と僕が思うのは、記法の統一などです。例えば、随伴関手対の F -| G にあわせて、双対ベクトル空間対(双対ペア)も X -| Y と書きたい、とか。もっとも、ペアのどっちを左(あるいは右)と呼ぶかで紛糾しそうですが … (左右問題はホントに頭が痛い。)

そして、ベクトル空間だけで見ていると見過ごしてしまうようなポイント(けっこう重要だったりする)も、大きな枠組み内で考えるとハッキリ見えたりします。

お絵描き線形代数

古式テンソル計算というと、数式の添字を記号操作するワザが思い浮かぶのですが、ペンローズ〈Roger Penrose〉は早くから絵を使ってテンソル計算をしていました。

ペンローズの俺流計算術だったペンローズヒエログリフに、圏論的な定式化を与えた(そしてそれ以上のことも成した)歴史的な論文が次です。

この論文は長らく紙印刷物でしか読めなかったんですが、今はWeb上で見られます。続き(というか、ほぼ独立な)"II" (18ページ) もありますが、目ぼしいことは上記の"I"に書いてあります。

ニョロニョロ(ヘビ、蛇行)という言葉の語源も、当該の等式を絵に描いたときの形状からです。実際、ニョロニョロの計算には絵が極めて有効です*10。絵による計算を、そのまんま絵算〈{pictorial | graphical | diagrammatic} calculation〉と呼んでいます。絵算については次の記事あたりから読むといいでしょう。

絵算の系譜は次の記事に書いています。

上記のジョイアル/ストリート論文の手法を、(主に量子情報処理のために)さらに徹底してビジュアルにしたのが、既に触れたアブラムスキー/クック流線形代数です。ボブ・クックに言わせると、量子力学(のための線形代数)は、絵を使えば幼稚園児でも分かるそうです。

同一じゃなくて同型、これがイヤ!

ここまでで、幾つかの方針が決まってきました。

  1. ベクトル空間の圏を、コンパクト閉圏またはダガーコンパクト閉圏として捉える。
  2. ニョロニョロ関係式を基本に据える。
  3. 随伴・双対の一般論(ビッグ・ピクチャー)を意識する。
  4. 絵算を使う。

このような方針に沿った“モダンな線形代数”と、古式テンソル計算を結びつけたいのですが、ネックがあります。

モノイド圏のなかでは、ベクトル空間 X, Y, Z とテンソル積に関して、次のような等式は成立しません

  • (X\otimesY)\otimesZ = X\otimes(Y\otimesZ)
  • I\otimesX = X
  • X\otimesI = X

次のような同型があるだけです。

  • (X\otimesY)\otimesZ \stackrel{\sim}{=} X\otimes(Y\otimesZ)
  • I\otimesX \stackrel{\sim}{=} X
  • X\otimesI \stackrel{\sim}{=} X

また、双対に関して次の等式も期待できません。

  • (X*)* = X

これも同型があるだけです。

  • (X*)* \stackrel{\sim}{=} X

このような同型を「めんどうだから等式にしてしまえ」とは、簡単には言えません。それどころか、「等式にできるのか?」はモノイド圏論の大きな問題意識です。高次圏になると、この問題はとてつもなく難しい問題です。

また、同型・同値ではなくて同一性を安易に使うことは、同値性の原理からは邪悪〈evil〉だと言われています。

いや、しかし、だけども、そうはいっても、同型を扱うのはホントにめんどくさいんですよ。やってられんのですよ。古式テンソル計算なんて、ぜーんぶ等号ですからね。同型なんて使ってませんから。

このギャップを解決するには、おそらく計算デバイスとしての圏(これが古式テンソル計算に対応)は、等号が成り立つように構成して、そこからVectKへの“計算の意味論”関手を作る、という方策かな、と。古式テンソル計算の圏 OTC = (OTC, \odot, I, (-), η, ε) では、次の等式が成立しているとします。

  1. (A\odotB)\odotC = A\odot(B\odotC)
  2. I\odotA = A
  3. A\odotI = A
  4. (A) = A

これらの等式が成立してないと、計算デバイスとしては(煩雑過ぎて)使えないですよ。

おわりに

ボブ・クック教授のように、「古式テンソル計算? ハッ、そんなのクソくらえだぜ!」と言ってしまえば、人生が楽になるのかも知れません。
*11
しかし、古式テンソル計算は根強く生き残っています。モダンな線形代数と古式テンソル計算の通路を作ること、相互翻訳のマニュアルを作ることは意味があるんじゃないかな、と思います。

*1:ベクトルバンドルの典型ファイバーと言ってもいいです。

*2:多様体の次元n以上の階数を考えてもいいですが、全部ゼロ空間になります。

*3:交代テンソルの代数はグラスマン代数〈Grassmann algebra〉とも呼びます。

*4:そうはいっても、いずれアーベル圏を使わざるを得ないのですけどね。

*5:無限次元まで含めると、扱いが困難になるので有限次元に限定します。

*6:IはKと同型ですが、I = K とは限りません。I, K, End(I), II, I* などのあいだの関係は難しい問題です。

*7:ニョロニョロ等式をニョロニョロ同値に一般化したものは、snakeorator〈ニョロニョロ律子〉と呼ばれる2-射になります。例えば、"Surface proofs for linear logic" by Lawrence Dunn, Jamie Vicary に登場します。ニョロニョロ等式より難しくなります。

*8:それと、蛇の補題と紛らわしいので別な言葉を使っている、という理由もあります。

*9:画像: https://chicodeza.com/freeitems/hebi-illust.html より

*10:随伴/双対をニョロニョロで定義しても、絵を使わない人もいます。エミリー・リエル〈Emily Riehl〉女史などは、絵(ストリング図)を使わない人です。

*11:ボブ・クック教授はミュージシャンです