bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

モナドの応用

最後に

ノーベル経済学賞を受賞したダニエル・カーネマン教授が一般読者向けに著述した『ファスト&スロー』を読んだ。本のタイトルからは内容はつかみにくい。副題は「あなたの意志はどのように決まるか?」となっているので、脳科学の本かなと思い違いしてしまいそうだ。英語でのタイトルは、”Thinking, Fast and Slow”となっているので、彼の研究内容をある程度知っている人でない限り、タイトルから内容を読み取ることはやはり難しい。
f:id:bitterharvest:20171012200712j:plain
先週はノーベル賞が発表される時期であったため、カーネマン教授の名前を思い出した人も多いことと思う。特に、今年(2017年)のノーベル経済学者はリチャード・セイラー教授だったので、その関連でカーネマン教授を思い出した人は多いだろう。二人とも行動経済学に大きな貢献をしたことでノーベル賞を受賞している。伝統的な経済学は、経済活動をする人たちが経済合理性を備えているということを前提に、理論を構築していた。これに対し、カーネマン、セイラー両教授とも、人間は合理的にふるまうことはまれで、様々なバイアスがかかって行動することを前提に、新しい経済学の理論を構築した。

経済学賞のため、カーネマン教授は生粋の経済学者だと思いがちだがそうではない。カリフォルニア大学バークレー校で1961年に心理学の博士号を取得し、その後、同大学やプリンストン大学で心理学の教授となっている。心理学と経済学を融合し、独自のプロスペクト理論を確立して、人間の経済的行動を説明し、ノーベル賞を受賞するに至っている。

『ファスト&スロー』では、二つの架空のキャラクター、二つの人種、二つの自己を用いて、一人の人間がどのように意思を決定するかを説明している。一つのものが二つの性格を持つということは、圏論の「モナドだ」に相当するものだと思って、この本を読んでいくととても面白い。

『ファスト&スロー』の結論の部分に、それぞれの性格が記述されているので引用してみよう。「二つのキャラクターとは、早い思考をする直感的なシステム1と遅い思考をする熟考型のシステム2であるシステム2はシステム1の監視を引き受け、限られたリソースの中でできる限りの制御を行う。二つの人種とは、理論の世界に住む架空の人種エコンと、現実の世界で行動するヒューマンである。二つの自己とは、現実を生きる「経験する自己」と、記憶を取り選択する「記憶する自己」である」と言っている。

システム1と2は、「XXが自動的に起きた」ということを「システム1がXXした」と、「興奮度が高まり、同行が開き、注意力が集中してXXが行われた」ということを「システム2が呼び出してXXが行われた」と言うように、分かりやすく説明するために使われた架空のものである。将棋の藤井4段が、複数人のアマを相手に将棋を指しているときは、システム1を用いてヒューリスティックに駒を置いている。それに対して、トップ棋士と対戦しているときは、システム2を用いて、アルゴリズムをフルに機能させて、勝利へ導く手順を探している。

二つの人種では、エコンは経済合理性に従って行動する自分である。それに対して、現在置かれている環境に影響されて、経済合理性には適わない行動をとるのがヒューマンである。例えば、大きな負債を抱えているときに、それを取り返すために起死回生を狙って大博打をし、結局、損をするのがヒューマンである。

ロマンスの破局は、振る側と振られる側に分かれる。どちらもわかれという面では変わらないのに、精神的なダメージは振られる側が大きい。「逃がした魚は大きい」という喩えもあるがこれも同じようなものだ。もし、ロマンスの期間を細分して、それぞれの時点での幸福度を記憶していたとすれば、振った側も振られた側もそれほど変わらないだろう。しかし、このようなことは忘れてしまい、破局の瞬間だけが記憶に残るようだとすると、振った側と振られた側の衝撃には大きな差がある。「終わりよければ全てよし」という諺があるが、これも同じようなことを伝えている。

モナドとこれらの関係を図で示すと図のようになる。
f:id:bitterharvest:20171012194340p:plain

モナドの世界では、\(A\)の世界を純粋な世界と解釈し、\(M(A\)の世界を現実の世界と見なした。これをカーネマン教授のモデルと対応させると、純粋な世界\(A\)はシステム2、エコン、記憶する自己に相当し、現実の世界\(M(A)\)はシステム1、ヒューマン、経験する自己に相当する。とても理にかなった対応で面白いと思う。このように、全く関係なかったと思われる世界がつながるとき、とても嬉しくなる。

圏論Haskellも奥の深い学問分野である。圏論だけで理解することも難しいし、Haskellだけで理解することも難しい。しかし、両方を一緒に勉強することで、理論と実践の両面を同時に見ることができるようになる。これによって、両方の分野をより正確に知ることができる。このブログでは、図やプログラムをたくさん掲載し、可視的に、具体的に理解できるように試みた。

今回の記事で、「プログラマのための圏論」はひとまず終了である。お付き合いいただきありがとうございました。