「マスターアルゴリズム」を読む前に聞いて欲しい4つの話

ペドロ・ドミンゴス「マスターアルゴリズム(講談社)」はプログラミングを知らない素人に、アルゴリズムの深い世界を紹介してくれる名著だ。ぜひ多くの人に読んで欲しい。但し、そのまま読むよりも、いくつかの事前知識があった方が良いと思う。私は経済学が専門で統計学の知識も多少あるが、やっぱり先に知っておけばよかったと思っている。それは、以下の4点だ。これを見てやっぱりやめたとはしないで欲しい。あくまで良書をより深く味わってもらうことがこの話の目的なのだから。

●そもそもアルゴリズムって何なのかの概念を知っておく
●「アルゴリズム」の世界を一緒に探検するつもりで読む
●教養溢れる人以外は引用句や例え話に驚かない
●内容が理解できない(重要な)箇所は原典をチェックする


●そもそもアルゴリズムって何なのかの概念を知っておく
最初にアルゴリズムという言葉を聞いた時に、「数式」を予想していた。読み進めると「プログラミング言語」を指すようにも思えてきた。統計学の「推定」との違いも判らなくなってきた。今は、「ある目的に対する計算の手順のまとまりを指す概念」であることがわかった(と思っている)。

無くしたものを探す方法に例えると分かりやすいかも知れない。出かける前に家の鍵が見つからない時に、みなさんはどのような方法で探索するだろうか。いろいろな探し方があるが、その手順がアルゴリズムだ。時間を節約するには、鍵を置きそうな箇所を先に何か所か探してみることもできる。しかし、焦っていると同じ個所を何度も探してしまい結局見つからないかも知れない。必ず見つけるには、玄関から始めて1センチごとに探していく方法もある。この方法は確実に見つかるが時間がかかってしまう。この探索の手順がアルゴリズムだ。だから、どのアルゴリズムが良いかはその目的による(と思う)。

「アルゴリズム」の世界を一緒に探検するつもりで読む
この本の興味深いところは、全体がクエスト(探検)の形になっている点だ。本を読むとき多くの人は、著者の(時にはとてもシンプルな)主張があり、その主張をいったんは受け入れ、その内容を同意する点とそうでない点に分けて理解していく。しかし、この本は題名にあるように「絶対的なアルゴリズムがある」ということを主張していることよりも、様々なアルゴリズムの特徴やその利用方法を5つの流派に分けて順番に調べていくところが醍醐味だ(と思う)。

このような方式は、「結論を先に知りたい」という読者には苦痛かも知れない。また、最近の時短を前提とした書籍(例えば、「○○時間で学べる」などの書名)に慣れている人には時間の無駄に思えるかもしれない。しかし、そもそもクエスト(探検)は最短距離を駆け抜けるのではなく、あちこちを探りながら先に進むものだ。ちょっとずつ、ゆっくり時間をかけて味わうつもりで読んで欲しい。

●教養溢れる人以外は引用句や例え話に驚かない
素人向けの啓蒙書としては、けっこうな部分が理解できないかも知れない。その原因の1つは西欧社会の教養があることが前提になっていることだ。本書のなかで様々な引用句や例え話が出てくるのだが、教養のまったくない私にとっては、かえって混乱を招くものだった。

例えばあるアルゴリズムの説明に、"divide and conquer"(日本語訳は「分割統治」)が出てくるが、えっ植民地の話がなんで出てくるのと思って思考がストップしてしまった。後で思いついたのは、データ(例えば写真)を最初のアルゴリズムで2つに分類(例えば猫とそれ以外)し、その結果間違った判断をしたデータ(猫なのにそれ以外に分類したデータ)だけをとり分けて、こんどは別のアルゴリズムを使ってもう一度分類する手順を指しているということだ。教養溢れる読者以外は、このような表現にいちいち驚いたり戸惑ったりせず、重要な箇所でなければ読み飛ばして良い。

●内容が理解できない(重要な)箇所は原典をチェックする
上記と矛盾するようだが、アルゴリズムを説明しているような重要な箇所の場合は読み飛ばさない方が良い。本書だけの問題ではないが、一般読者向けに書かれた啓蒙書の翻訳書は訳が(紙面の制約もあり)簡素にならざるを得ない。例えば「サーチ探索法」の説明で日本語訳と英語原典を比較してみよう。

日本語訳「単一規則の発見アルゴリズムを1つだけでなく、それに似たn個の仮説を保持し、そして各段階でこれら全ての規則のそれぞれをあらゆる可能な方法で規則集合を拡張し、そのうちの最良のn個を保持するように改良することもできる」(「マスターアルゴリズム」講談社 P139より)

英語原典  "We can also improve the algorithm for finding a single rule by keeping some number n of hypotheses around, not just one, and at each step extending all of them in all possible ways and keeping the n best results."
"The Mater Algorithm" PENGIN p69

素人なりにだらだらと訳してみると、「(前段で説明したアルゴリズム)を改善する方法がある。それは、(前節で説明した分類するためのルールを全て使うのではなく)、(単一のルールから全てのルールの間の)ある数の(分類のために使用する)ルール(ルールが分類に役立つという意味では仮説ともいえるが)を使うことである。(そのn個のルールを特定するには、)データに対してルールを1つ1つ適用してルールがn個になるまで分類を実施していって、(全てのルールからできるn個のルールの組合せの中から)最も良い分類結果を得られるn個のルールを選別する方法である。

ご覧のようにかなり長くなってしまったし、()書きが多くて却ってわかりにくくなったかも知れない。しかし、このビーム探索法のアルゴリズムの手順を理解するには、このように(脳内で)手順をブレイクダウンしていく必要があるかも知れない(数学が得意な読者は一発で理解できるかもしれない)。そのためには重要な個所については英語の原典を時々参照した方が良い。もちろん、日本語訳はなんといっても読みやすいし、慣れない英単語なども丁寧に訳してくれているので、まずは日本語訳でおおまかな理解をしておくことをお勧めする。

以上の内容は素人ゆえに多くの誤解や間違いを含んでいる可能性があるので、読んで違和感や異なる意見の方はぜひコメントで指摘して欲しい。

                               以 上




この記事が気に入ったらサポートをしてみませんか?