Wikipedia + YouTube = WikiTubia

だいぶ以前から、静止画の背景にテキストとナレーションだけのYouTube動画が現れ出して、「これ、動画の意味ないじゃん」と思っていたら、そのうち、Webページの画面ショット2,3枚を動画にするという、口がアングリのしろものまで投稿されるありさま。おそらく、「なんでもいいから楽して視聴数をかせぎたい」ということなのでしょう。

WikiTubiaというYouTubeチャンネルがあります。

WikiPediaページの画面ショット動画かよ?」と思ってしまいますが、想像よりはまともです。冒頭に次のようなお断りが出ます。

This video is automatically generated as a part of a computer science and education project.

この動画は、計算科学と教育のプロジェクトの一環として、自動生成されたものです。

実験的に作られたものらしいです。

「これは意外にいいかも知れない」と思いました。それは音声があるからです。僕は、人名の発音を調べるために、Forve(https://ja.forvo.com/)やPronounceNames(https://www.pronouncenames.com/)を使うのですが、どちらにも発音がないことがあります。でも、Wikipedia項目には目的の人物(や同名の別人)の項目があったりします。

Wikipediaでは、人名・地名などの綴はわかっても音がわかりません。信頼できる発音まで含めたWikipeia項目があれば助かるな、とは思います。本家Wikipediaが、一部でいいから音声付きにしてくれないかな。

圏論図式の描き方と解釈のコツ

圏論では、点と矢印の図〈dots-and-arrows diagram〉を使って計算や証明をすることがよくあります。通常目にする図式は、組版や印刷の都合から、単色でレイアウトも平面的です。でも、手描きするなら、色を付けたり、立体的に描いたりするとだいぶ分かりやすくなりますよ。

内容:

図式の可換性と等値核の例

点(対象を表す)と矢印(射を表す)からなる図が可換〈commutative〉だとは、その図の任意の二点間を結ぶ有向パス(矢印を繋いだ道)がどれも同じ射を表すことです。可換図式は、幾つかの等式と同じことなんですが、等式よりずっと簡略で視認性に優れています。

図式が可換であることを暗黙に仮定する場合が多いですが、矢印で囲まれた多角形が可換であることを明示的に表したいときは、カギの形やクルリンと回った矢印を描くことがあります。僕は、単にマル印で済ませています。

可換性を仮定しない多角形には、バツ印です。

もし色鉛筆があるなら、可換な多角形は色で塗りつぶすといいですよ。塗ってないところは可換とはみなしませんが、念のためにバツ印を付けておいてもいいです。

描いた後で気が付いたんですが、バツ印はエックスと紛らわしいですね。描いた本人は区別できても、他の人がエックスだと思って混乱するかも知れません。バツ印を付けるか付けないかは適宜判断してください。

さて、次の図で、共端な2つの射〈平行ペア〉f, g は可換(等しい)とは限りませんが、e;f = h かつ e;g = h 、つまり e;f = e;g です。

平面図では、hが2本の矢印になってますが、2本のhを重ねて立体的に描けば次のようです。

底面が二辺形であるとんがりコーン〈円錐形〉です。底面は抜けているので、頭に被れるコーンです。コーンの側面が2つの三角形で、どちらも可換なので色が塗ってあります。2つの塗った三角形が、e;f = h と e;g = h です。

抜けた底面を共有するもうひとつのとんがりコーンを持ってくると、頂点から頂点への矢印(射)が一意的に存在するとします。点線と'∃!'は、「点線の射が一意的に存在する」ことを表す目印です。

このとき、eは、f, g の等値核〈等化射 | イコライザー | equalizer〉です。実は、上の図で描いてない可換性(=塗るべき面)があるのですが、それは後で出てきます。

図式と論理記号

現状の組版・印刷の技術・コスト・習慣から、図式と論理記号を混ぜた論理式とかは使えないです。しかし、そのせいで、図式が何を意味するかが曖昧になってしまうことがあります。手描きなら、図式と論理記号のハイブリッド表現も自由ですからやってみます。

前節の等値核を集合圏で考えると、“fとgが定義する方程式の解集合”の埋め込み写像がeになります。等値核の域〈domain〉が解集合です。集合圏以外でも、等値核の域を(方程式の)解対象〈solution object〉と言っていいでしょう。

対象Xが、fとgで定義される方程式の解対象であることを、X is-solution-of (f, g) と表すことにします。これは、圏の対象・射を含む命題です -- is-solution-ofが二項述語です。fとgは共端な射であることも表すには、図式を混ぜ込んだほうがいいでしょう。

X is-solution-of (f, g) の意味は、Xから出る射eがあって、eが(f, g)の等値核であることですから:

2行目の論理式に含まれる左上の'eq.'は、当該の図式が等値核図式であることを示します。等値核図式であること(is-equalizer-diagram)をちゃんと書けば次のようになります。(Xとバツ印が紛らわしいですからご注意。)

論理記号の意味は:

  • :⇔ : 左(または上)側を、右(または下)側で定義する
  • ∃ : …である…が存在する
  • ∧ : かつ
  • ∀ : 任意の…に対して…である
  • ⇒ : ならば
  • ∃! : …である…が一意的に存在する

図式を混ぜないテキストだけの論理式で表現するには、出てくるすべての対象・射に名前を付けなくてはなりません。

これらの名前を使って、先の3行目の論理式(図式混じり)は、次のように書けます。

∃h:X→B.(
  (e;f = h ∧ e:g = h) ∧
  ∀e':X'→A, h':X'→B.(
    (e';f = h' ∧ e';g = h') ⇒
    ∃!φ:X'→X.(φ;e = e' ∧ φ;h = h')
  )
)

ここで、φ;e = e' ∧ φ;h = h' の部分が、先に「描いてない可換性」と言った可換性です。

日本語に直訳すれば:

  (e;f = h かつ e:g = h) かつ
  任意の e':X'→A と h':X'→B に対して、
    (e';f = h' かつ e';g = h') ならば
    (φ;e = e' かつ φ;h = h') である射 φ:X'→X が一意的に存在する
ような射 h:X→B が存在する。

hを消去すると少し単純になりますが、一般論(極限の概念)からすると、hを残しておいたほうが自然とも言えます。

図式は簡便でいいんですが、その簡便さにより、背後にある複雑性が隠れてしまいがちなのが問題です。たまには、テキストで明示的に書き下してみて、背後の複雑さを確認してみるといいでしょう。

朗報です! スピヴァック〈Spivak〉のオンラインコースが無料で公開されました

先週土曜日(2019年4月20日)、タケヲさん(id:bonotake)から古い記事にコメントをいただきました。

朗報です! Spivakのオンラインコースが無料で公開されました!
https://ocw.mit.edu/courses/mathematics/18-s097-applied-category-theory-january-iap-2019/index.htm

とのことです。

コメントが付けられた古い記事は:

デイヴィッド・スピヴァック〈David I. Spivak〉は、関手データモデル/応用圏論で有名なMITの先生です。スピヴァックに関連する記事を幾つか挙げると:

そんなスピヴァックのオンラインコースApplied Category Theory と題されています。

Course Description を引用すると:

Category theory is a relatively new branch of mathematics that has transformed much of pure math research. The technical advance is that category theory provides a framework in which to organize formal systems and by which to translate between them, allowing one to transfer knowledge from one field to another. But this same organizational framework also has many compelling examples outside of pure math. In this course, we will give seven sketches on real-world applications of category theory.

だいたいのところを日本語にしようと思ったら、has transformed がよくわからん[追記]と書いておいたら、コメント欄でtransformの解釈を教えていただきました。それに基づいて修正しました。[/追記]「教えられていた」「伝達されていた」に近いのかな? 「展開されてきた」でお茶を濁して意訳すると

圏論は、数学のなかでは比較的に新しい分野で、純粋数学研究の多くの分野の様相を一変させてきました。圏論がもたらすテクニカルな恩恵とは何でしょう -- 圏論は、形式的体系を組織化して相互に翻訳するフレームワークを提供します。それにより、ある分野の知見を他の分野に移すことが可能となります。純粋数学以外でも、この組織化のフレームワークが極めて有効に活用されている事例には事欠きません。このコースでは、現実世界における圏論の応用事例を7つ取り上げ、簡略に解説します。

スピヴァックともうひとりの講師として、ブレンダン・フォング〈Brendan Fong〉*1の名前があります。フォングは、学生のときはバエズ〈John C. Baez〉のネットワーク理論(といっても、あなたが安直に想像するような理論ではない! http://math.ucr.edu/home/baez/networks_oxford/)もやっていた人で、例えば、ベイズ・ネットワークの圏論的定式化の論文があります。

スピヴァックはもちろん、フォングも応用圏論の実践的エキスパートなので、実のあるコースだろうと思います。

*1:gは、ほとんど発音されないかもしれません。

ファイバー付き圏: 手偏のあるなしとか

pseudo-functor について書いてる記事を検索しようとしたら、思ったより少なくて「アレッ?」。次の4つの表記が使われていて、一発では検索できないのであった。

  1. 擬関手 (手偏あり)
  2. 疑関手 (手偏なし)
  3. pseudo-functor (ハイフンあり)
  4. pseudofunctor (ハイフンなし)

「擬」「疑」を「疑似」「擬似」と書くこともあるから、これを入れるともっとバラエティが増えますねぇ、ウゲーッ。

で、検索語を変えながら検索した結果、昨日書いた「14年ぶりにファイバー付き圏」に関連する記事を発見:

僕は、「ファイバー付き圏」より「ファイブレーション」のほうを多く使っていたみたいです。「ファイブレーション」で検索したほうがイッパイ記事が出てくる。

表記のゆれは、検索のときはけっこう深刻な問題だなー。あいまい検索があればいいけど、言葉の意味・解釈に関わるから、信頼できるあいまい検索の実現は難しそうだし。

14年ぶりにファイバー付き圏

インデックス付き圏を拡張してファイバー付き圏へ」にて、

この辺のことを知るには、今から14年前に紹介したことがあるアンジェロ・ヴィストリのテキスト(解説論文)を拾い読みするといいかもしれません。

と書いたので、ヴィストリ〈Angelo Vistoli〉のテキストを眺めてみました。その感想をダラダラと書きます。前の記事への追記だけど、長めなので別エントリーにします。

ヴィストリのテキストは全114ページでけっこう長い。ですが、僕が読んだ部分は(14年前も今日も)第3章(44p-69p 26ページ)の前半(44p-58p 15ページ)だけです。ここだけ読んでも、ファイバー付き圏〈fibered category〉がどんなものかは分かります。

射影関手 P:EB によるファイバー付き圏の定義では、デカルト射〈cartesian morphism〉という概念が中心になります。デカルト射は、Eの射で特定の条件を満たすものです。デカルト射が十分にある圏がファイバー付き圏です。デカルト射の集まりを K⊆Mor(E) とすると、ファイバー付き圏は、(E, B, P, K) のように表せるでしょう。

  • E : とある圏。ファイバーバンドルの用語に似せて言うなら、全圏〈{entire | total} category〉
  • B : 基底圏〈base category〉、あるいは底圏
  • P : 射影関手〈projectioin functor〉
  • K : (十分にある)デカルト射からなる類

デカルト射という概念は、僕には分かりにくかったです。デカルト射より、引き戻し四角形〈pullback square〉による定義のほうが腑に落ちました。

[追記]分かりにくい感じは、単に言い回しの問題、あるいは心理的な問題ですね。なぜなら、デカルト射と引き戻し四角形は、論理的には同じ概念ですから。「デカルト」という形容詞が唐突に出てくることが心理的に引っかかるのでしょうね。それに比べて、引き戻し四角形は心理的に受け入れやすい、と。[/追記]

Cにおける引き戻し〈ファイバー積〉はよく知られています。以下の図で、黒い四角形が引き戻し四角形であることは、任意の赤い対象と射に対して、点線の射が一意に存在することです。'∀'は「任意の」、'∃!'は「一意に存在」です。

それに対して、P:EB における引き戻し四角形は次のようになります。

説明しましょう; 図のなかに三種類の矢印が登場します。

  1. 丸印が添えてある矢印は、底圏Bの射。
  2. 無印の矢印は、全圏Eの射。
  3. 棒ではじまる矢印(下向き)は、射影関手による対象のあいだの対応を表す。射影対応と呼ぶことにします。

引き戻し四角形の辺のうち縦の2本は射影対応で、上辺がEの射、下辺がBの射になっています。通常の引き戻し図式では単なる射だった矢印のひとつが、「射影対応+底の射」に置き換わっています。

三種類の矢印と、形状の微妙な変化はありますが、引き戻し〈pullback〉である条件は同じで: 任意の赤い対象と射(と射影対応)に対して、点線の射が一意に存在すること、です。

P:EB がファイバー付き圏であることは、引き戻し四角形を使って次のように記述できます。

  • 任意のEの対象ξと、任意のBの射 f:A→P(ξ) に対して、ξ \mapsto P(ξ) を右の辺(射影対応)、fを下の辺(底圏の射)とする引き戻し四角形が存在する。

「分かりやすさ」の感覚は人によって違うでしょうが、「(ちょっと変わった)引き戻し四角形を自由に作れるのがファイバー付き圏」という定義のほうば僕には分かりやすいですね。引き戻し四角形を先に考えた場合は、デカルト射は、引き戻し四角形の上辺(Eの射)のことを意味します。

2つのファイバー付き圏 P:EB, P':E'B のあいだの準同型関手も、引き戻し四角形を引き戻し四角形に移す関手 F:EE' (ただし、F*P' = P)という定義が自然に感じます(感じ方は人それぞれ)。

インデックス付き圏を拡張してファイバー付き圏へ」で述べたタイト2-関手と、デカルト射なり引き戻し四角形で定義されるファイバー付き圏との関係は、ヴィストリのテキストで詳しく扱われています。

ヴィストリは、タイト2-関手ではなくて疑関手〈pseudo-functor | 疑似関手〉と呼んでます。疑関手はよく使われる(しかし、僕は嫌いな)言葉です。「ラックス2-関手とも呼ぶ」と書いてありますが、ラックス2-関手と疑関手は(通常は)別物です。

ファイバー付き圏とタイト2-関手〈疑関手〉を結び付けるには、亀裂〈cleavage〉という概念が必要になります。亀裂を固定しないとタイト2-関手は作れないので、次のような対応になります。

  • 亀裂ファイバー付き圏〈fibered category with cleavage | cloven fibered category〉 ←→ タイト2-関手

「任意のファイバー付き圏に亀裂は取れるから、ファイバー付き圏は亀裂ファイバー付き圏だと思っていい」てなことをヴィストリは書いてますが、「ほんとかな?」という気がしなくもないです。雰囲気としては「任意のベクトル空間に基底を取れる」という主張と似てますが、大規模な状況なので不安を感じます。

とはいえ、亀裂なしではうまくいかないので、「亀裂ありき」で考えるしかないでしょう。

亀裂ファイバー付き圏とタイト2-関手の対応を作るのはだいぶ面倒です*1。ヴィストリのテキストは、そのプロセスがちゃんと書いてある点がいいですね。

*1:細部の確認に手間がかかるだけで、テクニカルに難しいわけではないです。

インデックス付き圏を拡張してファイバー付き圏へ

インデックス付き圏〈indexed category〉の定義を弱く(ゆるく)して、ファイバー付き圏〈fib(e)red category〉と同値な定義を得ます。

内容:

ファイバー付き圏とインデックス付き圏

ファイバー付き圏の定義の方法が二通りあります。

  1. 射影関手 P:EB を使う方法。
  2. Bを添字圏〈indexing category〉とする圏の添字族〈indexed family of categories〉を使う方法

二番目の添字族〈インデックス族〉を使う方法として、インデックス付き圏があります。しかし、インデックス付き圏の定義が強すぎる(きつすぎる)ので、射影関手を使う方法と同値にはなりません。

射影関手を使う方法と同値になるように、インデックス付き圏の定義をゆるめましょう。ゆるいインデックス付き圏をストライプ図で表す方法も示します。

2-関手として考える

2次元の圏と関手に関する概念と用語は、次の記事を見てください。

ここで使う基本的なアイデアは、「インデックス付き圏を2-関手と考える」という発想です。2-関手は、2-圏のあいだの関手です。KLを2-圏として、F:KL が2-関手です。しかし、インデックス付き圏やファイバー付き圏では、一般的な2-関手を扱うわけではなくて、次のようなものに限定します。

  • 2-関手Fの域圏は、1-圏(普通の圏)を“等式を2-射として2-圏とみなしたもの”。
  • 2-関手Fの余域圏は、圏の圏。

Cを1-圏、“等式を2-射として2-圏とみなしたC”を C= と書くことにすると、我々が相手にする関手は、次の形のものです。

  • F:C=Cat in s2-CAT

ここで、s2-CATは、必ずしも小さくない厳密2-圏の圏です。C= ∈ |s2-CAT|, Cat ∈ |s2-CAT| であり、Fはs2-CATの射のひとつです。圏のサイズの問題がありますが、今は気にしないことにします。

2-関手には色々な種類がありますが、Fがタイト2-関手である場合を考えます(タイト2-関手については「高次圏: 用語法と文脈(主に2次元)」参照)。タイト2-関手は、ストライプ図により描きます。

ストライプ図については、次を参照してください。

ストライプ図は、もともとはモノイド圏のあいだのモノイド関手を描くための図法ですが、2-圏/2-関手に対しても使えます。次の対応を心に留めておくと分かりやすいでしょう。

一般の2-圏 2-圏とみなした圏 モノイド圏
0-射 対象 ダミー元
1-射 対象
2-射 射の等号
1-射の結合 射の結合 対象のモノイド積
2-射の縦結合 等式の推移律 射の結合
2-射の横結合 等式と結合の関係 射のモノイド積

ストリング図とストライプ図

圏の圏Catは厳密2-圏なので、その対象/射/2-射はストリング図で描けます。次のように描画します。

Catの構成素 描画の手段
対象=圏 面=エリア
射=関手 線=ワイヤー
2-射=自然変換 点=ノード
射の結合=関手の結合 ワイヤーを横に並べる
2-射=自然変換の縦結合 ノードを縦に並べる
2-射=自然変換の横結合 ノードを横に並べる

ボアンカレ双対をとるので、次元は反転します。

次に、普通の圏Cを厳密2-圏とみなしたC=での描画です。

Catの構成素 描画の手段
対象 面=エリア
線=ワイヤー
2-射=等式 ワイヤー上の点
射の結合 ワイヤーを横に並べる
2-射=等式の縦結合 縦に並んだワイヤー上の点
2-射=等式の横結合 横に並んだワイヤー上の点

2-射を明示的に描くことはありません。射を表すワイヤー上の任意の点が2-射を表すとみなせます。

ストライプ図のストライプは関手を表しますが、ストライプの内部にはエリア(対象を表す)とワイヤー(射を表す)が入り、明示的なノードはありません。ストライプの外部には、自然変換を表すノードが現れますが、次のように自然変換をドットで略記します。

この絵に描いてあるモノは、成分表示すると

  • αA,B,C:F(f;g)→F(f)*F(g) in Cat ('*'は関手の図式順結合記号)

となる変換αです。αを小さなドット(赤丸)で表してもいいとします。

タイト2-関手

C=からCatへのタイト2-関手を考えますが、習慣により反変関手を扱います。反変関手の描画は、特に何もしなくて、描かれているワイヤーの方向を、C=のホントの方向とは逆なんだ、と解釈するだけです。

タイト2-関手(反変関手)は、対象/射/2-射の対応を与えるFと、ゆるめた関手性(の法則)を表す自然同型(成分が可逆な自然変換)τとεにより与えられます。

まず、C=の0-射(対象)、1-射(射)、2-射(等式)を、Catのk射に移す写像です。

Catの対象(圏)F(A)を、Aにオーバーライン  \overline{A} で書きます。面が面に対応している図です。1-射と2-射は、対応を表すストライプ(青、水色)で包んで描きます。2-射は、f = f ::f⇒f:A→B in C という等式です。

次に、F(f;g) \(\mapsto\) F(f)*F(g) という対応を与えるτと、F(idA) \(\mapsto \) idF(A) という対応を与えるεです。

τとεは、結合律と左右の単位律を満たします。(絵がナナメっています。描くとき、紙が斜めの位置だったんです。)

これで、タイト2-関手 (F, τ, ε) の記述は終わりです。ストライプ図の代わりに、可換図式や等式で表現することもできます。翻訳作業はルーチンでつまらないので割愛します。

ファイバー付き圏の構成

前節で定義したタイト2-関手 F:C=Cat in 2s-CAT において、τ, ε が等式の場合、つまり2-関手が厳密〈ストリクト〉な場合が通常のインデックス付き圏になります。

タイト2-関手Fは、A∈|C| ごとに圏F(A)が割り当てられているので、|C|を添字集合とする圏の添字族といえます。圏F(A)をまとまあげた圏Eを作って、P:EC という射影関手を構成できます。この構成は、インデックス付き圏ではお馴染みのグロタンディーク構成の拡張版です。

この辺のことを知るには、今から14年前に紹介したことがあるアンジェロ・ヴィストリのテキスト(解説論文)を拾い読みするといいかもしれません。

14年前の記事:

続きが「14年ぶりにファイバー付き圏」にあります。

古典的微分幾何・ベクトル解析のモダン化: 因習的微分幾何とその構造

久々の「モダン化」シリーズの記事です。以下のエントリーがシリーズのハブになっています。

モダンの反対語として、「因習的」を使うことにします。モダンではない、因習的微分幾何のどこが何故によろしくないかを述べます。因習による弊害は微分幾何に限らないようです。比較のために、確率・統計の因習にも少し触れます。

内容:

因習的とは

「モダンではない」の意味で「古典的」とか「伝統的」とかを使ってきました。が、これらの言葉には「守るべき良きもの」という印象があります。「古式」なんて言葉も使いましたが、これだって「古き良き」の意味で使われます。

僕は「モダンではないもの」に批判的なので、称賛・肯定の意味がなく貶める言葉を使いたい。で、「因習的」にします。因習とは「古くから伝わり、とかく弊害を生むしきたり」ってことなので。

因習的な方法の困ったところは、重要な概念を表す用語・記法が曖昧なままに進んでしまう点です。例えば座標〈局所座標〉、これはとても重要な概念ですが、ハッキリしない記法が因習的に使われています。意味が分からないままに計算の仕方だけが解説されます。

「重要な概念がハッキリしないままに計算の仕方だけが…」 んっ、ほかでもそんなことが … 因習的確率・統計では、確率変数という最重要な概念が曖昧なままに確率分布の計算の仕方が解説されます。状況はとても似ています

微分幾何 確率・統計
重要な概念 座標〈局所座標〉 確率変数
背後にある実体 多様体 確率空間
計算の場 Rn Rn
計算の対象 前送りされた関数など 前送りされた確率測度

背後にある実体に触れずに、手前での計算が縷々〈るる〉と語られる -- それが因習的方法の特徴のようです。微分幾何とベクトル解析、そして確率・統計には、目立った因習が存在します -- 他にも因習があるかもしれません。例えば、因習的線形代数はありそうです*1

因習的方法に共通していることは:

  1. 背後にある実体の隠蔽
  2. 過度なオーバーロード

背後にある実体とは多様体や確率空間のことです。実体の存在をまるで隠すように、Rn上の代理物の計算に終始するのが因習的方法です。例え話が、「古典的微分幾何・ベクトル解析のモダン化: 局所座標って何だ? // モニタールームの孤独な男」にあります。

オーバーロードとは、言葉や記号の多義的な使用です。オーバーロードは便利な点もあります(それゆえに、プログラミング言語にも実装されます)が、過度にオーバーロードすると、ナニガナニヤラ意味不明になります。

次節以降では、微分幾何の因習的方法の実例を挙げましょう。因習的確率・統計については:

チャートとチャートの族

チャートについては、「古典的微分幾何・ベクトル解析のモダン化: 局所座標って何だ?」に書いてありますが、ここで再度述べます。

Mが多様体のとき、Mのチャート〈chart〉とは次のものからなります。

  1. Mの開集合 U
  2. Rn の開集合 C
  3. 連続で可逆(位相同型)な写像 φ:U→C

これらをまとめて書けば、φ:M⊇U→C⊆Rn多様体Mと次元nが了解されているなら、φ:U→C 、あるいは (φ, U, C) と書くことにします。

単一のチャートではなくて、チャートの集まりが問題になります。Iを添字集合〈index set〉として、i∈I ごとにチャート (φi, Ui, Ci) が対応している状況を考えましょう。このようなとき、{(φi, Ui, Ci) | i∈I} をチャート族〈family of charts〉と呼ぶことにします。

チャート族 {(φi, Ui, Ci) | i∈I} が、 \bigcup_{i\in I}Ui = M *2 であるときは、このチャート族をアトラス〈atlas〉と呼びます。チャートの定義域である開集合達がM全体を覆うならアトラスです。が、ここでは特にアトラスに拘らないで、単なるチャート族を扱います。

さて、チャート族 {(φi, Ui, Ci) | i∈I} に対して、いくつかの概念と記法を定義しておきます。以下、α, β∈I とします。

チャート φα : Uα → Cα を、Uα∩Uβ に制限した写像 φα|Uα∩Uβ を考えます。

  • φα|Uα∩Uβ : Uα∩Uβ → Cα

これは可逆(位相同型)とは限りませんが、余域を像集合 Im(φα|Uα∩Uβ)⊆Rn に制限した写像を φα|β と書くことにします。

  • φα|β : Uα∩Uβ → Im(φα|Uα∩Uβ)

φα|β は可逆です。さらに次の記法も導入します。

  • Uα|β := Uα∩Uβ
  • Cα|β := Im(φα|Uα∩Uβ)

すると:

  • φα|β : Uα|β → Cα|β (可逆写像

絵を描けば次のようです。

座標変換

チャート族 {(φi, Ui, Ci) | i∈I} に対して、そのなかの2つのチャート (φα, Uα, Cα), (φβ, Uβ, Cβ) を考えます。次の2つの写像を作れます。

  • φα|β : M⊇Uα|β → Cα|βRn
  • φβ|α : M⊇Uβ|α → Cβ|αRn

Uα|β = Uβ|α ですが、Cα|β = Cβ|α とは限りません。

チャートのことを局所座標〈local coordinate〉とも呼びます。局所座標を単に座標〈coordinate〉とも呼びます。チャートと座標は同義語です。添字 i∈I で添字付けられた座標〈チャート〉を、座標iともいいます。

座標αから座標βへの座標変換〈change of coordinates | coordinate transformation〉 gβ/α は次のように定義します。

  • gβ/α := φβ|α\circφα|β-1 : Cα|β → Cβ|α

φα|β : Uα|β → Cα|β は可逆だったので、逆写像 φα|β-1 : Cα|β → Uα|β は意味を持ちます。したがって、合成〈結合〉写像 φβ|α\circφα|β-1 も意味を持ちます。

逆向きの座標変換は:

  • gα/β := φα|β\circφβ|α-1 : Cβ|α → Cα|β

φα, φα|β, φβ, φβ|α, gβ/α, gα/β の関係を絵に描けば:

因習的オーバーロード

添字集合を I = {1, 2} とします。すると、Iを添字集合とするチャート族は、{(φ1, U1, C1), (φ2, U2, C2)} と書けます。番号の代わりに文字を使って I = {x, y} ならば、{(φx, Ux, Cx), (φy, Uy, Cy)} ですね。x, y でラベルされた、座標xと座標yがあることになります。

さて、ここからは、因習的方法の真骨頂(?)をお見せしましょう。とても便利(事実だが皮肉)なオーバーロードです。

まず、φx を x 、φy を y と書きます。

  • x:Ux→Cx
  • y:Uy→Cy

Cx, Cy 上を走る変数もそれぞれ x, y としましょう。Ux, Uy を走る変数を p, q とするなら:

  • x = x(p)
  • y = y(q)

変数と関数を区別しないことにしたので、pはφx-1、qはφy-1の意味でも使えます。

  • p = p(x)
  • q = q(y)

座標変換 gy/x と gx/y もそれぞれ y, x と書くことにします。

  • y = y(x)
  • x = x(y)

この y(x), x(y) の定義は:

  • y = y(x) = y(p(x))
  • x = x(y) = x(q(y))

とても短くてエレガント(事実だが皮肉)。

それだけではありません。fが多様体M上の関数 f:M→R のとき、f(p) の代わりに f(x) とも書きます。f(x) の意味は実は f\circx-1 = f\circφx-1 です*3

文字'x'がどのくらいオーバーロードされるかと言うと:

  1. φx を x と書く。
  2. Cx 上を走る変数を x と書く。
  3. gx/y を x と書く。
  4. φx-1 を x と書く(f(x)の例)。

チャートに関連する諸々を、味噌も糞も一緒に、チャート〈座標〉のラベルである'x'だけで表現するわけです。そして、変数と関数の区別も曖昧なままに、座標変換や関数を組み合わせたり微分したり… ハァー(ため息)。

因習の淵源と意義

古くは、関数の入力〈引数〉変数を独立変数、関数の出力〈戻り値〉変数を従属変数と呼んでいました。さらには、「関数とは従属変数のことだ」と定義されることがありました。僕は年寄りなので、そういう記述を何度か見たことがあります。

今風の関数〈写像〉の定義からすれば、従属変数は関数の一部ではありません。ましてや、「従属変数=関数」なんてことはあり得ません。しかし、変数によって関数を表す、変数と関数を区別しない、という因習は根強く残っています。今後とも滅びることはないでしょう。

多様体からRnへの座標にしろ、確率空間からRnへの確率変数にしろ、間違いなく関数〈写像〉です。それが、変数と関数を区別しない因習により変数扱いになり、さらに、変数名が過度にオーバーロードされる、という共通の構図が見られます。関数とその域・余域を曖昧なままに、「変数名を使ってそれら諸々をモンヤリと表す」習慣がどうも諸悪の根源のようです。

この悪い習慣が根絶やしにできないのは何故でしょう? -- 便利だからです。φα, φα|β, φβ, φβ|α, gβ/α, gα/β なんてタクサンの記号を使い分けることなく、xとyだけで済んだら簡略ですね、楽ですよね、素早く記述や計算が出来ます。オーバーロードの愛用者はいなくなりません。

事情を分かっている人には簡略で楽で手放せないのですが、最初から過度なオーバーロードを使われるとナニガナニヤラ意味不明になります。

現在においても、因習的な用語・記法にある程度は慣れる必要があるのは:

  1. 因習的方法は今でも使われており、今後も使われ続けるから。
  2. 慣れれば便利なのは確かだから。
  3. 因習的方法を知ることにより、モダンな定式化の意義やメリットがよく見えるようになるから。

残念ながら、因習的方法を無視はできないのです。

*1:Rnと行列計算だけを扱う線形代数は因習的と言っていいでしょう。

*2:左辺のMは、正確には多様体Mの台集合のことです。

*3:f\circx-1 を改めてfと置いて、新しいfに、Uxを走る変数xを入れた、とも解釈できます。いずれにしても分かりにくい!

微分は導関数より接写像のほうが分かりやすい

合成関数の微分公式と逆関数微分公式は大事なんですが、あまり分かりやすくないですね。分かった気分になっても実際に計算に利用しようとすると戸惑ったりします。もうちょっと分かりやすく正確な表現方法はないものか? と考えてみました。

内容:

愚痴と提案

「愚痴」とは、言ってもしょうがないけど思わず口に出してしまうことです。「提案」は、言う価値と効果があるだろうと思って言うことです。

まずは愚痴です。STEM〈Science, Technology/Engineering, and Mathematics〉で使われる用語と記法が、まったく不合理だったり、わけわからん習慣があったりして、なかなかにフラストレーションがたまります。

非確率的・決定性な関数を「確率変数」と呼ぶなんて、タチの悪いジョークとしか思えん。逆関数、逆数、逆像、引き戻しなどが、すべて右肩に'-1'を付けて表すので区別できん。行列の2行1列目の成分を  a_{21} って書くの、なんなんアレ? 21行1列目と2行11列目はどう書くんだよ、書いてみ。

とか言ったところでどうせ変わらないので諦めてます。良し悪しがどうであれ、伝統と習慣には従わざるを得ないです。

で、ここからは提案なんですが; 慣用の用語・記法を変えることはできないにしても、ある段階で一時的に用語・記法を変えて説明するのはいいんじゃないでしょうか。一時的な用語・記法は、世間的・一般的には通用しないので、無駄になると思われるでしょうが、学習と教育の負担が減れば、全体としては効率化になる可能性があります。

というわけで、この記事では、それが慣用(世間一般の普通)ではないと断りを入れながら、一時的な独自記法を使います。「ここでは」が一時的な独自記法を導入するシグナルです。愚痴に近い文言には、最後に「しょうがない」を付けます。

簡単な例と用語・記法の説明

まず、1次元の例を出します。実数の開区間は、(a, b) のように書くのが普通ですが、ペアと区別がつかない*1ので、ここでは I(a, b) と書きます。a < b として、次の4種類の開区間があります。

  1. I(a, b) := {x∈R | a < x < b}
  2. I(a, ∞) := {x∈R | a < x}
  3. I(-∞, b) := {x∈R | x < b}
  4. I(-∞, ∞) := R

U, V は実数の開区間だとします。関数 f:U→V が微分可能なとき、その導関数は Df または f' と書きます。Df と f' は完全に同義なので、意味的な区別はありません。区別はしないけど、適当に混ぜて使います。

ちなみに、「関数」と「写像」はたいてい同義ですが、「導関数」とはいっても「導写像」は聞かないなぁ。同義でも置き換え不可能なのは習慣、しょうがない

f:U→V であっても、導関数Dfの値がV内に収まるとは限らないので、Df:U→R と考えることになります。じゃー、常に f:U→R にしておけばいいのか? x \(\mapsto\) exRR と考えたとしても、逆関数(対数関数)を作るときは R→I(0, ∞) と考え直してからでないと逆関数を作れません。関数の余域〈codomain | target domain〉をRに固定・限定するのは無理です。

もとの関数fと導関数f'の両方の情報を一緒にした関数を考えましょう。それを、fの接関数〈tangent function〉と呼びます。「接関数」はここだけの一時的な用語かと言うと:

  • 写像〈tangent {map | mapping}〉は普通に使う。
  • 接関数はあまり使わない。(使う人がいるかも知れないが。)
  • 同義でも置き換え不可能なのは習慣、しょうがない

ウーム、…、無難に写像にしておきます。

fの接写像を Tf と書きます(これは一般的)。Tfの域と余域は:

  • Tf:U×RV×R

R の要素を (x, ξ) のように書きます。x∈U, ξ∈R、xは直線内の点と考えて、ξは位置の変位と考えます。ξはR内を任意に動けますが、気持ちの上では“小さい範囲で動く”と思います -- あくまで気持ちだけど。

f:U→V の接写像Tfは、(x, ξ) に対して次の値をとります。

  • Tf(x, ξ) = (f(x), f'(x)・ξ)

'・'は掛け算です。ここでは、掛け算の演算子記号を省略することはしません。数の掛け算でも、行列とベクトルの掛け算*2でも、行列どうしの掛け算でも、常に演算子記号'・'を明示的に書きます。

f(x)∈V, f'(x)・ξ∈R ですから、(f(x), f'(x)・ξ)∈V×R で、Tfの定義は合理的(Tfはwell-defined)です。

掛け算記号'・'ともうひとつ、一時的な独自記号として、右肩に三角印を導入しておきます。a は、aの逆数のことだとします。Aが正方行列のときは、A逆行列です。次が成立します。

  • a・a = a・a = 1
  • A・A = A・A = In (Inは、n×nの単位行列

右肩に'-1'は、逆写像逆関数の意味でのみ使います。もちろん、世間一般では、逆数も逆行列も(逆像も引き戻しも)右肩に'-1'です。文脈で判断できる、という理由で同じ書き方、しょうがない

多次元を含む場合

前節の話を任意の次元に拡張します。U⊆R, V⊆Rm, W⊆Rn とします。ℓ, m, n は任意の自然数で、U, V, W は開集合です。次元 ℓ, m, n が0であってもかまいませんが、気になる方は0を除外してもいいです。

多次元の微分を知らない方は、ℓ = m = n = 1 だとして、U, V, W は開区間だと思ってください。すべて1次元の場合でも、当然に意味があります。

U⊆R, V⊆Rm, f:U→V だとすると、fの導関数は、

  • Df:U→Mat(m, ℓ)

となります。Mat(m, ℓ) は、ℓ行m列の行列〈matrix〉の集合です。ℓ = m = 1 だと、Df:U→Mat(1, 1) ですが、通常 Mat(1, 1) をRと同一視するので、Df:U→R なのです。一般的な ℓ, m に対する導関数Dfはヤコビ行列〈Jacobian matrix〉とも呼ばれ、次の形で書かれます。

\(
Df =
\begin{pmatrix}
\frac{\partial f_1}{\partial x_1} & \ldots & \frac{\partial f_1}{\partial x_{\ell}} \\
\vdots & \ddots & \vdots \\
\frac{\partial f_{m}}{\partial x_1} & \ldots & \frac{\partial f_{m}}{\partial x_{\ell}} \\
\end{pmatrix}
\)

さて、fの接写像Tfですが、これは、もとの写像fと導関数〈ヤコビ行列〉Df = f' を一緒にしたものです。が、単なるペア (f, f') として書くと混乱しそうなので、ここでは、(f : f') という特別なペアとして書きます。

  • Tf:U×RV×Rm
  • Tf = (f : f')
  • Tf(x, ξ) = (f : f')(x, ξ) = (f(x), f'(x)・ξ)

Tf(x, ξ) = (f(x), f'(x)・ξ) は、前節の1次元の場合と同じですが、成分を使って表示すれば:

\(
Tf( (x_1, \ldots, x_{\ell}),
\begin{pmatrix}
\xi_1 \\
\vdots \\
\xi_{\ell}
\end{pmatrix}) \\
= \\
(f(x_1, \ldots, x_{\ell}),
\begin{pmatrix}
\frac{\partial f_1}{\partial x_1}(x_1, \ldots, x_{\ell}) & \ldots & \frac{\partial f_1}{\partial x_{\ell}}(x_1, \ldots, x_{\ell}) \\
\vdots & \ddots & \vdots \\
\frac{\partial f_{m}}{\partial x_1}(x_1, \ldots, x_{\ell}) & \ldots & \frac{\partial f_{m}}{\partial x_{\ell}}(x_1, \ldots, x_{\ell}) \\
\end{pmatrix}
\cdot
\begin{pmatrix}
\xi_1 \\
\vdots \\
\xi_{\ell}
\end{pmatrix})
\)

ξ∈R は、列ベクトル(ℓ行1列の行列)とみなして縦に書いています。ベクトルと行列の積も掛け算記号'・'を入れてます。

合成関数と逆関数微分公式

以下、よく知られた微分公式を書き下すだけです。一時的に導入した記法により明確さは増していると思います。

U⊆R, V⊆Rm, W⊆Rn, f:U→V, g:V→W のとき、合成関数の微分公式:

  • T(g\circf) = (g\circf : (g'\circf)・g')
  • T(g\circf)(x, ξ) = (g\circf : (g'\circf)・f')(x, ξ) = ((g\circf)(x), (g'\circf)(x)・f'(x)・ξ) = (g(f(x)), (g'(f(x)))・f'(x)・ξ)

T(g\circf)(x, ξ) = (g(f(x)), (g'(f(x)))・f'(x)・ξ) を成分表示すると:

\(
T(g\circ f)( (x_1, \ldots, x_{\ell}),
\begin{pmatrix}
\xi_1 \\
\vdots \\
\xi_{\ell}
\end{pmatrix}) \\
= \\
(g(f(x_1, \ldots, x_{\ell})), \\
\begin{pmatrix}
\frac{\partial g_1}{\partial y_1}(f(x_1, \ldots, x_{\ell})) & \ldots & \frac{\partial g_1}{\partial y_{n}}(f(x_1, \ldots, x_{\ell})) \\
\vdots & \ddots & \vdots \\
\frac{\partial g_{n}}{\partial y_1}(f(x_1, \ldots, x_{\ell})) & \ldots & \frac{\partial g_{n}}{\partial x_{m}}(f(x_1, \ldots, x_{\ell})) \\
\end{pmatrix}
\cdot \\
\begin{pmatrix}
\frac{\partial f_1}{\partial x_1}(x_1, \ldots, x_{\ell}) & \ldots & \frac{\partial f_1}{\partial x_{\ell}}(x_1, \ldots, x_{\ell}) \\
\vdots & \ddots & \vdots \\
\frac{\partial f_{m}}{\partial x_1}(x_1, \ldots, x_{\ell}) & \ldots & \frac{\partial f_{m}}{\partial x_{\ell}}(x_1, \ldots, x_{\ell}) \\
\end{pmatrix}
\cdot \\
\begin{pmatrix}
\xi_1 \\
\vdots \\
\xi_{\ell}
\end{pmatrix}
)
\)

成分がたくさんあるので複雑化してますが、成分に展開しなければ1次元の場合と同じです。

そして、U⊆R, V⊆Rm, f:U→V で、fが可逆なとき(ℓ = m となります)の逆関数微分公式:

  • T(f-1) = (f-1 : (f'\circf-1))
  • T(f-1)(y, ρ) = (f-1 : (f'\circf-1))(y, ρ) = (f-1(y), (f'\circf-1)(y)・ρ) = (f-1(y), (f'(f-1(y))・ρ)

※ 最初、ギリシャ文字エータ「η」を使っていたのですが、エータが原因でTeXの表示が出来なくなるという謎の現象があるので、エータをロー「ρ」に変えました。「はてなブログのTeXレンダリングが謎の挙動」参照。

T(f-1)(y, ρ) = (f-1(y), (f'(f-1(y))・ρ) を成分表示すると:

\(
T(f^{-1})( (y_1, \ldots, y_{m}),
\begin{pmatrix}
\rho_1 \\
\vdots \\
\rho_{m}
\end{pmatrix}) \\
= \\
(f^{-1}(y_1, \ldots, y_{m}), \\
\begin{pmatrix}
\frac{\partial f_1}{\partial x_1}(f^{-1}(y_1, \ldots, y_{m})) & \ldots & \frac{\partial f_1}{\partial x_{\ell}}(f^{-1}(y_1, \ldots, y_{m})) \\
\vdots & \ddots & \vdots \\
\frac{\partial f_{m}}{\partial x_1}(f^{-1}(y_1, \ldots, y_{m})) & \ldots & \frac{\partial f_{m}}{\partial x_{\ell}}(f^{-1}(y_1, \ldots, y_{m})) \\
\end{pmatrix}^{\triangleleft}
\cdot \\
\begin{pmatrix}
\rho_1 \\
\vdots \\
\rho_{m}
\end{pmatrix}
)
\)

これも成分に展開したから複雑なだけです。引数や成分を書かない抽象的な形で捉えておくことが大事です。次元に関わりなく単純な形をしています。

  • 合成関数の微分公式: T(g\circf) = (g\circf : (g'\circf)・g')
  • 逆関数微分公式: T(f-1) = (f-1 : (f'\circf-1))

*1:ベクトルの内積を (x, y) と書くこともあります。圏論のカンマ圏も、昔は (F, G) のようにカンマで書いていたからカンマ圏なんです。

*2:この場合のベクトルは、1列の行列か1行の行列を指しているので、行列と行列の掛け算の特別な場合です。

はてなブログのTeXレンダリングが謎の挙動

同じTeXコードを書いても、レンダリングされたりされなかったり。僕の環境で閲覧すると:









どちらもまったく同じ内容で:

[tex: ]
\(
T(f^{-1})( (y_1, \ldots, y_{m}),
  \begin{pmatrix}
   \eta_1 \\
   \vdots \\
   \eta_{m}
  \end{pmatrix}) \\ = \\
(f^{-1}(y_1, \ldots, y_{m}), \\
\begin{pmatrix}
  \frac{\partial f_1}{\partial x_1}(f^{-1}(y_1, \ldots, y_{m})) & \ldots & \frac{\partial f_1}{\partial x_{\ell}}(f^{-1}(y_1, \ldots, y_{m})) \\
  \vdots &  \ddots & \vdots \\
  \frac{\partial f_{m}}{\partial x_1}(f^{-1}(y_1, \ldots, y_{m})) & \ldots & \frac{\partial f_{m}}{\partial x_{\ell}}(f^{-1}(y_1, \ldots, y_{m})) \\
\end{pmatrix}^{\triangleleft}
\cdot \\
\begin{pmatrix}
  \eta_1 \\
  \vdots \\
  \eta_{m}
\end{pmatrix}
)
\)

実は、このブログ=「檜山正幸のキマイラ飼育記 (はてなBlog)」でも、一部が生のまま表示されてしまい、書いた記事を公開できないでいます

冒頭に入れている [tex: ] もバグの対処用で、これなしだと、全部生のままで表示されるようです(TeXコードが解釈されなくなるバグ 説明 - (新) 檜山正幸のキマイラ飼育記 メモ編 を参照)。「はてな」に問い合わせはしてます。

TeXレンダリングに関しては安定しない謎の挙動が多くて、まいっちまうなー。

[追記]https://m-hiyama-second.hatenablog.com/entry/2019/04/16/162950http://m-hiyama-memo.hatenablog.com/entry/2019/04/16/163035 で何が違うのだろう? 使っているテーマは Epic で同じ。設定が同じだとは言い切れませんが、管理が面倒になるからほぼ同じ設定のはず。あとは、プロトコルがHTTPとHTTPSの違いがある。

設定は、僕が完全に揃えて実験するしかないけど、HTTPとHTTPSは他の人でも再現できるかもしれません。[/追記]
[さらに追記]理由は分かりませんが、対症療法として、ギリシャ文字エータの使用をやめることで表示できます。MathJaxを使っているようなので、ギリシャ文字もどっかからロードしているのでしょう。エータだけ、なんかの事情で引っかかって、その後が動かない、とか? なのか??

[/さらに追記]

TeXの欧文フォントと文字化け

抽象微分多様体、もうチョット」で、マリオス微分幾何をやっている“マリオス本人以外の人”として名前を挙げたエフスタッヒオス・バシリウー〈Efstathios Vassiliou〉が次の論文を書いています。

ところが、数式が文字化けしちゃってるんです。こんな(↓)感じ。

文脈で判断すると、バックスラッシュは'n'のようです。一部分が、換字式暗号〈かえじしきあんごう〉になっちゃってます。

化けている(置き換えられている)文字を列挙すると:

  1. バックスラッシュ
  2. ゲーデル左括弧: 鉤形。ゲーデル符号化に使う括弧の左のように見えます。
  3. 角キャップ: キャップ記号('∩')の角ばったヤツ。
  4. カップカップ記号('∪')の角ばったヤツ。
  5. テンソル積: \otimes^\inftyテンソル積記号です。文脈的におかしい。
  6. 無限大: 同じく \otimes^\infty の指数の無限大記号です。
  7. 右波括弧: 文脈的におかしい。
  8. 随伴記号: Tを時計回りに90度回転したような形。関手の随伴を表すときに使えます。

TeXで使っている欧文フォントに起因するんじゃないかと、調べてみました。次の記事のフォント一覧で事情が分かりました。

数式で使う欧文フォントが色々ありますが、mathhcalというフォントでは、英字〈ラテン文字〉小文字のところに、特殊な記号が割り当ててあるんですね。

これを参考にすると、次の対応表ができます。テンソル積と無限大は、文脈からの判断です。

番号 化けた文字 もとの文字
1 バックスラッシュ n
2 ゲーデル左括弧 d
3 角キャップ u
4 カップ t
5 テンソル Ω
6 無限大 1
7 右波括弧 f
8 随伴記号 a

化けた文字をもとの文字に置き換えれば:

 {\mathcal L}({\mathcal U}) = {\mathcal M}_n({\mathcal A})({\mathcal U}) \stackrel{\sim}{=} {\mathcal M}_n({\mathcal A}({\mathcal U})),\:\:\: {\mathcal G}{\mathcal L}(n, {\mathcal A})({\mathcal U}) \stackrel{\sim}{=} {\mathcal G}{\mathcal L}(n, {\mathcal A}({\mathcal U})),

 \rho \equiv {\mathcal Ad}: {\mathcal G}{\mathcal L}(n, {\mathcal A}) \longrightarrow {\mathcal Aut}(\Omega^1 \otimes_{\mathcal A}{\mathcal M}_n({\mathcal A}))

 {\mathcal Ad}({\mathcal f})\cdot(\theta \otimes a) := \theta \otimes ({\mathcal f}\cdot {\mathcal a} \cdot {\mathcal f}^{-1}),

比較のために再度化けたバージョン:

バシリウーさん、出来上がった論文を印字してチェックしなかったのかなー? まさか?? この現象は環境依存なのかも知れません。