« ロサ会館の大黒屋。(さうして、このごろ2017年4-6月版) | 最新のページに戻る | 「圏論の道案内」のはじめの方を読みながら考えたこと(つづき) »

■ 「圏論の道案内」のはじめの方を読みながら考えたこと

西郷さんの「圏論の道案内」 を読みはじめた。とても面白いが、ハマりすぎないように、家からの行き帰りの時間だけに限って読んでる。

p.28で圏論の初学者が「任意の対象A,Bについて、AからBへの射はないか、あっても一つだけだ」と誤解しがちであることについて書いている。

私は圏論の初学者として、誤解する気持ちはわかる。圏の定義2.1(p.20)に戻ると「どんな射についても域と余域がただ一つ存在する」(要約)とあるが、読者(私)はここをさらっと読んでしまうので「この文章がいったいどういう可能性を排除しているのか」に心が及んでいないのだ。

文章がなにか意味のあることを言うときには、なんらか他の可能性を排除している。たとえば「岡崎は暑い」という文章は「岡崎は暑くない」というあり得たかもしれない他の可能性を排除している。

だから圏の定義2.1の話では、即座にどういう可能性を排除しているのかを例示してやることで、読者は圏の定義2.1を自分の中でパラフレーズして、意味のあるものとすることができるようになる。つか私はそういう操作ができないと「理解」できた気がしない。

さてそれでは圏の定義2.1はどういう可能性を排除しているか、私が好きな「プログラム学習」方式で例示してみたい。「プログラム学習」の例としては「Scheme手習い」がある。Google Booksに本文のいちばんはじめの部分(p.3)があるので、そこを見てもらうと、だいたい言いたいことが分かると思う。

では「Scheme手習い」の方式を踏襲して、定義2.1をコッテリ確認してゆく例を作ってみよう。私としては、こんなふうに手元にノートを取ることができれば、自分で理解できたなという実感が持てる。

ED7y3jUUUAE2MNo2.png

というわけで、これは圏論本についての批評ではなくて、私はどのようにパラフレーズできたら理解できたことになると思っているか、についての話だった。


FEPの説明についてもそういうことを考えた。私のFEP解説での蝶と蛾の例にしても、state * observation * actionを最小限の組み合わせで操作してはじめて(私自身が)わかった気になった。

だから、強化学習の教科書でいきなりベルマン方程式が出てくるのが納得いかない。でも人によっては写経のように頭から読み下してしまえばそれで理解できるらしい。じつのところ私はそういう理解を疑っているのだけど、そうではなくて、そのように理解できる人こそがその分野に進むという生存バイアスの結果なのかもしれない。ともあれ私の理解の仕方が特殊である可能性を排除できないので、ここでは例示して理解する方法の有効性だけを主張するのに留めておきたい。


強化学習について勉強していたときに同様なことを考えてtwitterに書いたことがある(Twilog20190813)。そのとき書いたことについてもここでまとめておく。

TDアルゴリズムからQ-learningまでについての動画をいろいろ見てた。この動画がいちばんわかりやすかった。まず行動選択無し、報酬の不確定性なしで説明してから、徐々に要素を追加してゆく。スゲー親切。パート1から3まであるけど合計42分で終わる。視聴数少ないのが不思議。

Grid world問題がどれもこれも複雑な3 * 4マスの例を使って説明しようとするのが、私にはぜんぜん訳わからない。1 * 3マスでよくね?

あと、とりあえずベルマン方程式書いて始める動画がほとんどで、ぜんぜん訳がわからない。まずクソかんたんな状況(1 * 3とか)を説明して、それから帰納的に式導入すればいいのに。これって情報科学勉強している学生にとっては、まず式から入るほうがわかりやすいとかあるのか?

1x3だと簡単すぎて当たり前になっちゃわないかなぁって。真ん中の状態だけpolicyが効くし。でもline state の例はsuttonの教科書にもあったような。— @KazuSamejima August 12, 2019

@KazuSamejima 「簡単すぎて当たり前」な問題を解くところを見せて、そこから読者に帰納的にベルマン方程式を「発見させる」ように進めたらどうかということなのです。グリッドワールドの説明は、ベルマン方程式を与えておいて、意味のある最小限のリアルな問題を解けることを見せることに注力しているようだけど。

そうですね。ベルマン方程式は方策を決めたときの価値関数が満たすべき式として導出してしまって、ダイナミックプログラミングのアルゴリズムがどう動くかのデモとして格子空間を使う、説明がほとんど。帰納的に発見させることができるのなら、そちらのほうが自然ですね。うまいデモはわからないけど。— @KazuSamejima August 13, 2019


以前も書いたけど、プログラミング言語でのfor文だって、まず

ii=1; disp(ii);
ii=2; disp(ii);
...
ii=100; disp(ii);

(matlabでの例)みたいなことをやらせて、いい加減馬鹿らしくなったところでfor文を導入してほしかった。どうやらそういうことをしなくても分かる人は分かるようだが。

以前書いたけど、私が新しいことを学ぶときに最適だと思うのは「プログラム学習 有機合成化学」のような短い設問形式でステップを細かく刻みながら学ぶやつ。「Scheme手習い」も同系統だけど「風変わり」とか「クセがある」とか書かれている。

この話に私がこだわっているのは、べつにいまある解説とかに文句をつけたいとかではない。数物系特有のアタマの使い方というのがあって、どうやら私はそれから弾かれているようなのだけど、向いていようが向いてまいが自分で知りたいので、なんか流れに逆らうように感じるということだ。


同じ話は哲学の人の話を聞くときにも感じていて、学会とかで原稿をそのまま読み出すというのに遭遇して異分野の人間として面食らうのだけれど、どうやらあの分野の人達は、ゼミの文献購読でひたすらそういうことをし続けてきているので、苦に思わないようだ。

私にとって哲学のような概念を使う話は、複数のargumentがマインドマップのように矢印でつながっているものだと思っていた。だからそれを人間が読める形にするために(人間は一次元的に文字を追って読むことしかできない)文章という形式に変換して、聞く側はそれをデコードしてマインドマップに戻しているのかと思っていたのだがそうではないらしい。

これもいろんなタイプがいます。文字を文字のままで理解するほうが向いている人もいれば、言語で言われたことをイメージ化して理解している人もいます。私は後者。抽象的な概念も、図に描けない変な形をして見えたり、個性的な「味」があったりします。— @ShigeruTaguchi August 13, 2019

しかしいずれにせよ、哲学業界の人は、それぞれの思考の特性をもとにしながら、しゃべりだけで抽象概念やargument をいじくる訓練を受けてきているのは確かですね。— @ShigeruTaguchi August 13, 2019

ちなみに、頭の中の変なイメージは、2次元, 3次元の図形にうまく落とし込めないので、言語的表現の方が相性がよかったりします。言語はわりとアクロバティックなことも可能で、「入ってくる前に出て行く」(レヴィナス)とか、色々変なことが言えます。— @ShigeruTaguchi August 13, 2019

同様に、数物系の人たちは、式が与えられると、たとえばベルマン方程式に具体的な数字を入れて実際に動いている様子まで戻してやらなくても、抽象的な式のままで操作ができるということなのだろうか。ここまで書いて気づいたけど、どうやら自分は抽象的なものをそのまま操作することが不得意なようだ。

(この話の続きの部分を別エントリとして作成しました。こちら:「「圏論の道案内」のはじめの方を読みながら考えたこと(つづき)」)


お勧めエントリ


月別過去ログ