rmaruy_blog

読書メモなど

読書メモ:Algorithms to Live By

 

Algorithms to Live By: The Computer Science of Human Decisions

Algorithms to Live By: The Computer Science of Human Decisions

 

 タイトルを素直に訳せば、「生活のなかのアルゴリズム」などとなるだろうか。

ライフハック情報科学する本」と言ってしまっていいかもしれない。

日々の家事や仕事をどんな順番でこなすか、本や書類をどのように収納すべきか、アルバイトや賃貸物件をどう探すか……。こうした日々の意思決定の場面に、「アルゴリズム」の考え方を適用することの有用性を、本書は提起する。

たとえば、書類整理の仕方。

一度使った書類をどのように収納すべきかについては、「グループごとにまとめておく」「使う頻度が高い順に並べる」など、いろいろな「整理術」がある。本書的視点でみれば、これは「キャッシュメモリをどうつくるか」というコンピュータサイエンスの問題と同じである。計算を高速に行うために一時的に記憶をためておく「キャッシュ」には、その運用の仕方にFIFO(first-in-first-out:最初に入った要素を追い出す)やLRU(least recently used:もっとも使われた頻度が少ないものを追い出す)などが知られているが、こうした知見を、書類ファイリングの問題に応用することが考えられる。本書4章によれば、将来どの書類を使うかについて情報がないケースでは、LRUの方式をとることが「最適である」(つまり書類を探す時間を最小化できる)ことが「証明」されているのだそうだ。面白いことに、これは野口悠紀雄氏が『超整理法』で紹介している手法と合致するらしい(英語圏の著者が『超整理法』を知っていたことを含め、野口氏おそるべし…)。

自分のデスク周りの問題であれば少し我慢すれば済むかもしれないが、コンピューティングの世界ではわずかな非効率さが致命的になる。そのため、アルゴリズムに関する理論は、数学的に突き詰められているという特徴がある。そこで、その成果を構造が似た日常生活の問題にも応用することが考えられる。すると、経験則として知られていた「○○メソッド」に対して「××アルゴリズムに対応し、△△という条件のもとでは最適な方法となる」というお墨付きが得られる。

章構成は次のようになっている。

  1. 最適な止め時(optimal stopping):いつ決断を下すか。
  2. 探索と活用のトレードオフ(explore/exploit):どこまで未知の可能性を探るか。
  3. 並び替え(sorting):どうやって、どれくらいの手間をかけて順序をそろえるか。
  4. キャッシング(caching):ものや情報をどのように管理するか。
  5. スケジューリング(scheduling):何から手をつけるべきか。
  6. ベイズ則による未来の予測(Bayes' rule):未来の出来事をどう予測するか。
  7. 可適応(overfitting):現状の環境への過適応をいかに避けるか。
  8. 通信(networking):どのような頻度と量のコミュニケーションをとるか。
  9. ゲーム理論(game theory):他人とともに解決すべき問題をどう解くか。

それぞれの章で、豊富なアナロジーがでてくる。よく聞くアナロジー(「秘書選び」と「optimal stoppingの問題」の関係など)もあるが、「そうくるか!」と思わされる意外なものも多かった(「スポーツ選手のランキング法」と「ソーティング」の関係など)。また「これはあれに使えるな」というふうに、明日から仕事・生活に生かせそうなアイディアがいくつも得られた。本書の全部を咀嚼するのはなかなか難しかったが、分かるところだけ読んでもいろいろと日々の生活のヒントが得られる本になっている。

書き手は、科学系ライターと認知科学者のコンビで、いずれも30歳代の若手だそうだ。どうしてこのような本を書くにいたったのかは分からないが、すばらしい本だと思った。

著者らによれば、生活のなかに「アルゴリズム」を見出すことには、深度の異なる三つの意義があるという。

  • 目前の問題をとく指針とすること
  • 日々の生活で起こっていることを、より抽象化して語るためのボキャブラリーを得ること
  • 人間の思考様式を捉える理論的枠組みとなること

1点目はいわば「ライフハック」としての意義、2点目は「思考法」としての意義だといえるだろう。ここに3点目を加えているのが、認知科学者らしい。そして、本書が単なる「理屈に裏付けられた自己啓発本」を超えている理由もこの点にあると思う。

人間は、目的を持って生きる存在なので、もともとアルゴリズム的な存在なのだろう。でも、「アルゴリズム」という概念を発明したあとでないとそうした説明はできない。実は私たちがやっている「○○」(整理、記憶、人間関係の構築、etc)は、実は「××アルゴリズムなのだ」という説明の仕方が本書の随所で出てきたが、コンピュータの発明・普及によってアルゴリズム的語彙が出揃ったいま、人間知能の捉えなおしをしようという著者らの高い意欲を感じた。

***

情報科学は大事だと痛感した。「マージソートの計算量がO(n log n)であること」や、「ベイズ則による推論は事前分布に大きく依存すること」などは、誰もが知っておいて損はないと思う。この本を読めば分かります。