圏論を独学で勉強した人のサンプル(趣味人用)
何かの参考になったら幸いです.
これまでの話も思い出しながら書きます.
~圏論を見つけるまで~
試験のために数学を学びなおす.
ベクトル空間に含まれるか?という問題が分からない.
定義から数学理論を構築していくことに初めて触れる.
確率がガチで分からない.友達はポ〇モンとかやってたせいか全然勉強してないのに平然と正解しやがる.(今思えば集合の含意や論理学,背理法を理解してなかったように思える)
本題から反れて,厳密な定義が気になるようになる.
「ほんとにわかってるの?」と先生に言われたのが悔しく,証明にこだわるようになる.
工学系の様々なことが数学で理解できることに気づく.
圏論に出会う
~圏論勉強し始め~
受験が終わってからも圏論を調べ始める.
圏論の道案内・圏論の歩き方を読む.:分からない.
出来ることはホントにたくさんあって,あらゆる分野をつなぎます!
という話に感動し
「あらゆる真実は圏論にある」と妄信する期間に入る.
だが諸概念が全く分からない.
使いどころや自分で使う方法が全く分からない.
何となく,この世のすべては射なのだ!と自分を納得させる.
何やら群が必要らしい.
位相は無理だが群くらいなら,ベクトル空間っぽいしギリ行けるか...?
ヨビノリで群論を学ぶ.
使いどころが分からなくて興味を失い,商集合くらいから投げる.
工学畑の私は実用主義の化身だったため,
この段階で,集合論・位相・幾何学などを極端に避ける.
これにより,圏論の修得が極端に遅れることになる.
圏の何を調べても純粋数学に行き着くので.
今になって思えば,準同型くらいまでは行くべきだった...
まあ聞ける人もいないししょうがない.
活躍する圏論を読む.(ここからずっと読み続ける)
感想としては圏論の道案内と同じ.
システムの構成やデータベースにとても興味を持った.
でも結局内容は理解できないので,最初の説明を読むだけで満足してしまう.というか満足したことにしていた.
圏論の基礎(マックレーン先生の黄色い奴)を開く:分からない.
というか読めない.何一つ用語が分からない.
そりゃ集合の定義すら知らないからね.そりゃね.
しかし,プログラミングだけは得意だった.(と言ってもpythonが使えるだけの勘違い)
プログラミングから,haskellに入る.
haskellが全く読めないことに心を折られる.
そもそもコンパイルが通らない.if文とか書かせてくれよ!!!
一次的に諦める.
何の授業聞いてても圏論が頭にチラつく期間に入る.
「それ圏論でやった方が網羅的で簡単じゃね...?」
「これ〇〇と同型だから覚える必要なくね...?」
「もっと効率的に学べる方法あるんじゃね...?」
そう.圏論ならね.
蓋を開けてみればもっとも非効率な期間であった.
いっちょ前に同型とか用語を使いはするが,当の本人は何一つ理解しちゃいない.
もやもやする!
★独学★日曜圏論勉強者の主な勉強方法はネット記事であった.
モナドとか:https://www.youtube.com/watch?v=HPG6v4xGrN8
圏論勉強会とか:https://www.youtube.com/watch?v=PCU8QWXykCc
alg-dさんとか:https://www.youtube.com/watch?v=3GIuBNhXzew&list=PLeBc8K3RvbSyoSx4NURPQPBsoPMJAr7Tm
qiita:https://qiita.com/norkron/items/f90d851daf05a2efa567
wiki:https://ja.wikipedia.org/wiki/圏論
hiyamaさんとか:https://m-hiyama.hatenablog.com/entry/20180302/1519974841
他にもいろいろ.
ただし,英語が読めないのでnlabとかには立ち入れなかった.
どれも大雑把に話しすぎ!厳密な定義を教えてくれ!!
抽象化しすぎて分からない!もっと具体例で喋ってくれ!!
と,純粋数学と応用の行ったり来たりを数か月繰り返す.
今まで読んできた本を読みなおす.
Notionに定義をメモって見たり,
手書きノートで書いてみたり,
無限に広がるIPadノートで書いてみたり(←これが一番良かった気がする)
「ストリクトダイアグラムとか勉強する意味あるのか...?」
「これって数学科の人やってるんだろうか...」
「数学科じゃないと理解できない...?」
不安が募る
長期休みにつき,一時休憩期間に入る.
引っ越しがあり,運良く大学の図書館の近くに来た.
圏論の基礎の原著を見つけ感動する.
Kan拡張だけチラ見してそっと閉じる.
活躍する圏論の日本語訳を読み進めまくる.(ガロア理論など数学的なものは飛ばした.応用部分だけかっさらった)
ひたすら米田の補題を理解することに努める.
講義中も考え続ける.
ベクトル空間?そりゃ圏論で扱えるぞ.
フーリエ変換?それも圏論だろ.
量子力学?圏論で学べる本がたくさんあるぞ!
プログラミング?ほら使え.お前の大好きなモナドだぞ?
ワオ!機械学習も圏なんだぜ!
テンソル?そりゃまさに普遍射だ!
転置行列?おいおい,そりゃ双対じゃないか!
だがそれらの証明はまったくできない.
何故圏なのか,何も説明できない.
圏を自分で構築できない.
自分のノートや講義で扱う証明に疑問を抱き始める.
論理学を学び始める.
結城浩さんのゲーデルの不完全性定理の証明と,数を作ろうに出会う.
全ての機械はNANDらしい.すごい!
形式的体系を自分で作ることに憧れる.
…圏論が全て解決するという記事を見つける.https://takulabo.sakura.ne.jp/notes/math_category_Lawvere_fixed-point_theorem.html#tl_heading_ID1_3
「は?」
圏論から逃れることはできない.
完全性定理と不完全性定理
どっちやねんって投げ出しがち
後半全く分からず.
簡素な結論が聞きたい.
日本の数学界は広い.意味わからん.マジで.
時間返せ!
商きらーい
割り算きらーい
今更だけど,数か月前に書いたメモを残しておく
概要
圏論を始めたばかりの「すべての概念(=Kan拡張)完全に理解した」って言いたいなと思っていた自分に向けて,Kan拡張からすべての概念を示す.
(普通の勉強は逆で,すべての概念を見てからKan拡張にたどり着く.その辺は本記事の後ろのほうに少し書く)
※著者はアマチュアです.なのでこの記事では,数学的に厳密な証明は書かず,
「完全に理解した」(エンジニア用語)を目指します
なぜすべての概念と呼ばれるか?
We end with the observations that all concepts of category theory are Kan extensions.
最後に,圏論における全ての概念はKan拡張であるということを見て終わる.
Saunders Mac Lane "Categories for the Working Mathematician" p.V Preface
- Kan拡張は普遍射の一つである
- Kan拡張は随伴関係となる関手を有し
- Kan拡張は特定の条件で極限となり
- Kan拡張で米田の補題が証明できる.(一応Kan拡張なしでも証明可能)
さらにこれらの要素から,
- 随伴からはモナドが作れる.モナドから例外エラーの無い演算が作れる(厳密にいうとエラーを扱いやすくなる.エラーは出そうと思えば出せる).
- 極限は終対象であり,その例の一つに積がある
- 米田の補題から導ける定理の例として,対象の同型は射の同型を見ればわかる
- 同型であればその対象同士を似たものとして扱える
- 似たもの同士には同じ演算(射)が使えると考えられる
以上のように,Kan拡張が圏論のほとんどの用語を含有している.
よって,「圏論におけるすべての概念はKan拡張である」 と言うことにする.
そして,
すべてのモノに圏さえあれば,上記の圏論の言葉が使えて,
すべての概念はKan拡張だといえる.
と言いたい(お気持ち).
さて,すべてのモノに圏の関係性は見られるだろうか.
以下に,現在見つかっている圏の例を示す.
- 圏の対象を1つにするとモノイドになり,逆射を付けると群になり,乗法加法で環になり,割り算つかって体になる.
- 圏から圏の圏が生まれ,圏の圏の関手から関手圏が生まれる
- 数論・ガロア理論は順序圏
- 順序圏は資源理論(経済学のほうではなく文献でそう表現していただけと思われる)の資源を用いた実現可能性とそのコストを考えることにつながる.
- 位相空間は位相空間と連続写像の圏
- 集合論は集合と写像の圏
- 線形代数はベクトル空間と線形写像の圏
- ベクトル空間のテンソル積と順序圏はモノイダル圏になり,順序圏からもモノイダル圏が作れるので,そこも関係する.
- ベクトルモナドのKan拡張でリストモナドを得られる手法がある
- あらゆるグラフはグラフ圏
- データベースはスキーマとインスタンスで表せるし,データの移行は随伴関手で安全に行える.
- ブロック線図や信号線図は対称モノイダル圏
- 電気回路はハイパーグラフ
- 機械学習はLens.さらにその圏はゲーム理論とつながる.
- プログラミング言語Haskellは型と関数の圏
- プログラミングのリストは随伴で得られるモナドで安全に行える.
- 米田の補題はリバースエンジニアリング
- プログラミングの意味論は...勉強してないが文献はこちら.
- 計算機科学と論理学はデカルト閉圏,つまりあらゆる計算,アルゴリズムはデカルト閉圏から構築可能.
- 量子力学は...勉強してないが文献はこちら.
- 確率論は...勉強してないが文献はこちら.
以上,圏が見つかれば,どこでだって圏論の話が出来る.
そして圏論のすべての概念はKan拡張である.
よってすべての概念はKan拡張である可能性がある.
だから何?
以上の話は,既存の概念を言い換えただけに過ぎないともいえる.
頑張って勉強しても,当たり前では?という結論しか得られなかったりする.
悪く言えば言い換えてるだけ,よく言えば伏線回収の宝庫である.
私のような圏論狂信者のように,圏論が全てを解決してくれると信じて容易に1年溶かしたりすることもある.
もっと具体的な概念につながるか?
ここから思想強め.
モノイダル圏>>>カルデシアン閉圏>>>カリー化>>>Haskellなどプログラミング
をKan拡張を使って確認できる.
カルデシアン閉圏>>>論理学・プログラミング意味論>>>チューリングマシン>>>ラムダ計算
から,あらゆる計算につながる.
Kan拡張>>>極限
極限の考え方からは,数列・関数の極限が想像され,極限からは微分積分が定義され,微分方程式が構築できる.
加群の圏Mod=ベクトル空間の圏Vect>>>
から,線形近似的な演算ができるようになる.
上記を用いればあらゆる自然現象をモデル化する手法を得られる.制御工学では,あらゆる現象を微分方程式と状態方程式(行列演算)で表し,制御できる.
あらゆる概念の根本である普遍性・Kan拡張を始対象,あらゆるモノのモデル化をまとめた制御工学を終対象と捉えると,これまた圏論的で心地よい,とか考えてしまったりする.
ここまでくると,「すべての概念完全に理解した」と思えてこないでしょうか?
思うことにしましょう.
Kan拡張はどこから来たのか?
- 圏論を考える
- いたるところで普遍性が発見される
- 普遍性の別表現って,随伴っぽいな
- 随伴としてKan拡張見つかる
って流れだと思われる.元文献も随伴を探すところからKan拡張の定義を始めている.
勉強してみた感想
圏論があらゆる分野の橋渡しをするらしいと聞いたのがきっかけで,興味本位でKan拡張まで勉強してみた.
周りに聞ける人がいなかったため1年ほど溶かした.間違ってたら指摘していただきたい.あわよくばご教授願います.
実力不足を感じ,何度も辞めようとしたのだが,他の何を勉強していても圏論が気になってしょうがない呪いにかかってしまった.
とても恐ろしい学問だった.
わすれていたが,https://www.amazon.co.jp/圏論入門-Haskellで計算する具体例から-雪田-修一/dp/4535789258
も,だいぶ初期段階で読んでいたのだが,Haskell分からんし,何が楽しいのか分からんし…唯一,米田の補題の応用先?がリバースエンジニアリングと書いてあり,とても興奮していたのを覚えている.
ただ,内容は,なんだか直感的に「そりゃそうじゃね?」ってことを示されただけで,ある意味悟りが開けたというか,あきらめがついたというか,これだけ勉強してたったこれだけかと絶望したのも覚えている.
さすがにそろそろトポロジー・ホモトピー・ホモロジー・コホモロジーを理解するべきか...?
コホモロジーのこころ https://www.amazon.co.jp/コホモロジーのこころ-加藤-五郎/dp/4000053841
をネット記事のコメントからおススメされた(感謝)
ので,読んでみた.
もはや十数週目くらいの圏論最初からスタートであったが,ちょっとわかりやすくなってた.
ただ,表現可能関手のあたりからいまだに分からない.
でも,見れば見るほど関手で埋め尽くされていき,
関手が重要なんだなと頭の片隅にメモした.(ここで「関手がこの世のすべて」のように飛躍した主張にならないよう制御できるようになったのが,ここ1年間圏論を学んできた成果だと思える)
→義務教育にて、左から右へ数式を読むことに慣れる
←初等数学にて、行列のかけ算は左が先ということに違和感。しかし段々なれる
→圏論の左から右へ書く記法に初めて出会い感動。これだよ!認知負荷をかけずに書ける!
←しかし、読む文献のほとんどが行列積の記法を使ってて結局こっち読みに慣れる
→現代日本の個人サイトの方々は左から右なので大変幸福だけど、結局こっちにもまだ慣れてない
これには温厚なドッチヤ=ネンもバチギレ
勉強したての頃はHaskellの結合が g.f という記法で,左からの結合が f.>g と書いてる文献があったから,本来 f;gと書くところを,勾玉マークみたいな手書き記法 f , gみたいに描いてる時期もあった.十分な知識もないのにカス理論構築を試みており,ちょっとした黒歴史である.まあ勉強にはなった.
最近はそれが良くないのではと,この記事https://zenn.dev/yvvakimoto/articles/efc4edb7d60c9b
で気づき,推論を殺して定義を書きだす時間が増えた.名前が一致しているモノだけを思い出して書けるようになってきた.モノ射?!
圏論の文献は大抵,思想がヒソカの念のごとく伝わってくる.
Kan拡張の人とか,型理論の人とか,論理の人とか,集合論の人とか,ストリクト線図の人とか,図式の人とか,最小認知負荷の人とか.
ホモロジーコホモロジートポロジーホモトピーから入った人,型理論から入った人,プログラミング,データベース,量子力学,他にもいろいろあるはず.
その方々の気持ちが今めっちゃわかる.今日も圏論で哲学を語りてぇ欲を抑える.
文献を読む時の楽しみが増える.
実用主義者にとってトポロジーが鬼門すぎる
なあ改めて今まで読んできた本色々見てるんだけど表記違いすぎるだろ
虚数iと電流iが被って騒いでた時代はどこ行ったんだ?おい
射と関手と自然変換を区別してくれ
圏と対称を両方普通のCで書かないでくれ
V圏:ブイなのかニューなのか分からん
Hom(A,-)と
同型だからって最初から
対角射と対角関手って別物ってマジ?
アーベル圏とアーベル群の圏が別物ってマジ?
カッコを書いてくれ.カッコを書かないでくれ
同型と同形が別物ってマジ?
結構前から,文献著者へのリスペクトとして,各場所で学んだ段階の記法をその都度加えていってるので,今のノートはとんでもないことになってる.
カルテシアン閉圏のこと、ずっとカルデシアン閉圏だと思ってた
冗長性をだんちょうせいって読んでた(たぶん冗談のせい)
ディリクレのことディクリレって読んでた
恥ずかしっ
ついにnlabの英語に触れ始めたが、
canonicalとuniversalの違いがわからんかったし、結局文脈とかその場のノリ的な語彙が必要だから滅茶苦茶無駄なのでは?
圏論的量子力学分厚すぎて草
テンソル派閥とストリング図式派閥と圏派閥があるんだね?なるほどなるほど
テンソルネットワークとストリング図式の本読んでた時間返せ!
西郷先生の圏論的集合論を読み始める。
そうそう、昔の圏論の道案内では、何が連続量やねん、何が量やねん。抽象的すぎて、工学において何の役にも立たんわ。と思っていた。
当時は量についてなんて、バッキンガムのπ定理しか知らなかった。
今はデデキント切断まで学んだ(結城先生の数学ガールのやつをノート取っただけ)
さあ、もう一度その抽象概念でぶん殴ってみろ!今度はシールドブレイクしたプリンの如く場外まで吹っ飛ぶことはないだろう
難しかった理由が段々分かってくる
全く新しい概念の導入が、小学校以来なかったから、というのが理由な気がしてきた
「よく考えればわかる」とか、「宿題とする」とか、殺意が湧くのでホントにやめてほしい。
そんなことなら書くなマジで。ページ引き千切るぞ絶対に許さんからな(全ギレ)
テメェに出題されなくったってこちとらどうせ後で自分で応用する時に考えるんだよ!
Haskellで学ぶ圏論入門で理論構築n周目
Ffすら読めずカッコを付けてた時代が懐かしい