データサイエンスの本を買ったが一部アツすぎる内容で萎えた話

ビジネス活用事例で学ぶ データサイエンス入門
酒巻 隆治 里 洋平
SBクリエイティブ
売り上げランキング: 7,559

↑この本を買ったのだが、95ページ周辺にむちゃくちゃな事が書いてあって萎えた。

統計学では「仮説検定」という手法があります。

しかし、仮説検定は(中略)、人数が(サンプルサイズ)が多い場合には、ほとんどの結果が「統計的に有意な差がある」という結果になります。

差がわずかしかない二つの集団を比べる場合は、そんなことはない。

そもそも「サンプルサイズが多い場合」の定義が書かれていない。「多い」ってどのくらい?

「ほとんど」ってどのくらい?

結局、著者の個人的な経験にのみ基づく内容であって、データ「サイエンス」とタイトルに付く本に書くような話じゃない。

このページの暴走はすごくて、続いて次のような記述もある。

ビッグデータと騒がれているような現在においては(中略)、「仮説検定をしないと統計的に差があるかわからない」くらいの差は意味があるとは言いがたいのです。

お前は何を言(ry

続いて、次も95ページから。

この本の著者に限らず、仮説検定の使い方を理解していない人が仮説検定について誤解しやすいポイントが次の部分。

「統計的に有意な差」があっても、ビジネスとして意味のある差とは限りません。

この事自体は正しいのだが、そもそも考える順番が違うのである。仮説検定とは「もし統計的に有意な差があったら、ビジネス的に意味がある」ことに対して使うための道具なのだ。

この「アツい」95ページはA/Bテストの章の一部である。このA/Bテストの章で取り上げている例が不適切である点もかなり気になった。この部分については本書内の前提の説明が(このブログでやるには)結構大変になるので、興味のある人は実際にこの本を当たってほしい。

AとB、2つのバナーを設置したところ、AとBのクリック率(それぞれ0.080%、0.115%)に統計的に有意な差があって…というのはお約束の流れでよいのだが、結局のところ、この差はどうでもよくて、「目標はクリック率12%です。Bは約12%だからOKです!」と締めくくられる。

約12%? 

しかしデータによると、このBのクリック数は43790回のうち5056回である。

> binom.test(5056,43790)

Exact binomial test

data: 5056 and 43790

number of successes = 5056, number of trials = 43790, p-value < 2.2e-16

alternative hypothesis: true probability of success is not equal to 0.5

95 percent confidence interval:

0.1124811 0.1184903

sample estimates:

probability of success

0.1154602

このように、「12%」のラインは95%信頼区間に含まれない。

> binom.test(5056,43790,conf.level=0.9965)

Exact binomial test

data: 5056 and 43790

number of successes = 5056, number of trials = 43790, p-value < 2.2e-16

alternative hypothesis: true probability of success is not equal to 0.5

99.65 percent confidence interval:

0.1110425 0.1199839

sample estimates:

probability of success

0.1154602

数値をさらに厳しくしてみて99.65%の信頼区間まで広げても、12%のラインは入らないのだ。

つまり、「約12%」とは言っているが、実際にクリック率が12%を達成する可能性は非常に低いのである。

まさか0.1154は四捨五入すると0.12だから約12%でOK…ということなのだろうか…それってデータサイエンスなのか…

さてずいぶん文句ばかり書いてしまったが、この本のスタイルは文句なしに素晴らしい。Rのコードとデータがあり、解析に入る前の実際のビジネスの状況や悩み、思考の過程などが各章において同じ形式で用意されていて、追試しやすい。皆様ぜひご一読を。

2014/08/17追記

「サンプル数が大きくなると統計的に有意であると判断する確率が高まる傾向がありそうだ」といっていいように思えるんだが。

というツッコミをいただきました。この点については異論はないです。その通りの傾向があると思います。しかし、それと

ほとんどの結果が「統計的に有意な差がある」という結果になります。

という書き方だと、だいぶニュアンスが違うように感じますね。上記繰り返しになっちゃいますが「ほとんど」ってどのくらい?ということになります。まぁ「ほとんど」ってサイエンスじゃないですよね。

Advertisements

ベイジアンネットワークのエッジの向きが逆だと(;´Д`)?な理由

Risk Assessment and Decision Analysis with Bayesian Networks(以下、リスクベイズ本)の172ページに書かれているように、ベイジアンネットワークの構造を考えている場合、ついつい「原因->結果」ではなく、「結果(観察された事象)->原因」という方向にエッジを引きたくなる。

 
リスクベイズ本には「原因から結果に引くのが原則だが、数学的にはどちらの方向に引いても等価であり、別にBNとしてInvalidということはない」と書いてある。

仮に、開き直って「結果から原因」に向かって引いたら何が起こるのか?と考え、Wekaで実行してみた。

超シンプルなナイーブベイズでのスパムメール検出を例に考えてみる。

ここでは『AAAA』『BBBB』『CCCC』という3つの単語だけが登場するものとする。
 
AAAAは「とてもお行儀の良い」単語であるとする。AAAAがスパムメールに含まれる確率は1%であると仮定する。正常なメール(ハムメール)に含まれる確率は、5倍の5%であるものとする。AAAAのCPTは以下のようになる。(ここではtrueは「AAAAがメールに含まれる」という意味)

BBBBは「とにかくよく見かける」単語であるとする。BBBBがスパムメールに含まれる確率は2%であると仮定する。ハムメールに含まれる確率も、同じく2%であると仮定する。BBBBのCPTは以下のようになる。

CCCCは「行儀が悪い」単語であるとする。「バイアグラ」のようなイメージである。CCCCがスパムメールに含まれる確率は5%であると仮定する。また、ハムメールに含まれる確率は0.5%であるとする。CCCCのCPTは以下のようになる。


 
メール全体に対するスパムメールとハムメールの割合は、それぞれ同じであると仮定する。
すると、Wekaのベイズネットワークエディタで作成したモデルは以下のようになる。

この段階では、これから分類しようとするメールにそれぞれの単語が見つかったかどうか(エビデンス)をまだ反映していないので、緑で記述されている数値には殆ど意味がない。
 
上図において、エッジの方向は、Class(スパムかどうかの分類)のノードから「それぞれの単語が含まれるかどうか」のノードへ向かっている。ここで、原因はClassノードが意味する「スパムメールであること(あるいはその逆)」であり、結果として「CCCCが含まれる」というような事象が発生する、と考えるのが王道である。つまり、このエッジの向きは正しい。

しかし、「スパムメールの検出を行いたい!」と強く思っていると、「CCCC」のノードから「Class」のノードに向かってエッジを引きたくなってしまう、というのが、このエントリの発端となっている現象だ。
つまり、「スパムメールの5%にCCCCという単語が含まれている」という思考ではなく、「CCCCという単語が含まれていれば○X%の割合でスパムメールだ」という思考をしたくなってしまうのである。

さて、メールが到着したとする。このメールには単語「CCCC」が含まれていることがわかったとする(他の2つについてもわかるはずだが、何かしらの理由でまだわかっていないものとする)。上記ベイジアンネットワークにこのエビデンスを反映する。つまり、「CCCC」の値を「true」にセットする。すると次のようになる。

Classノードの値に注目する。するとスパムメールである確率が9090(おそらく90.9%という意味。この表記わかりにくいよWeka…)と、跳ね上がることがわかる。

このように、モデルは正しく機能する。モデルを作成する際にはそれぞれの単語について「スパムメールに含まれる確率」「正常なメールに含まれる確率」をCPTとして記述していけばよく、作業は単純で難しい部分はない。もちろん、数が多い場合には面倒ではあるが、それによって特に難易度が変わることはない。

では、エッジの向きが逆だったらどうなるだろうか。この場合、モデルは次のようになる(ここでは緑で記述された値には特に意味はない)

ClassノードのCPTを編集しようとすると、以下のようになる。

(;´Д`)!!!!!

意味がわかっただろうか?
つまり、このCPTを埋めるためには『各単語がメールに登場した場合にそれがスパムかどうかについて、すべての組み合わせについての確率を明確にしなくてはいけない』のだが、それこそがこのベイジアンネットワークを使って求めたい情報なのである。そのため、この向きでベイジアンネットワークを作る意味は無いのであった…

おしまい(´Д`)
 
 
 


ベイジアンネットワークについて色々調べた現時点でのまとめ

データサイエンス分野に数多くある技術の中でウェブの侵入検知に使えそうなものがいくつかあるが、その中で現在、個人的に最も注目しているのがベイジアンネットワークである。
原因と結果、それぞれの起こりそうな確率を記述したネットワークに、観察された事象を書き込み、計算を行うことで、観察された事象(結果側)から、原因の確率を求めることができるのが魅力。

単純な例であれば、「鼻水がたれている」という事象が観察されたときに、原因として考えられる「風邪をひいている」「花粉症である」などの確率を計算する。
それだけではまったく意味がないのだが、これに新たに「熱がある」という事象が追加で観察されたとする。「風邪をひいている」場合に「熱がある」確率と「花粉症である」場合に「熱がある」確率は違う(前者の確率が高い)という仮定を行った場合、追加で観察された「熱がある」という事象によって、原因の確率が変化し、「おそらく花粉症ではなく、風邪だろう」と判定できることになる。

ちなみにスパムフィルタの技術として有名なナイーブベイズは単純な形をしたベイジアンネットワークである。

ベイジアンネットワークについて色々調べてみた結果、下記がわかった。

  • ベイジアンネットワークは、ネットワーク構造をうまく使うことにより、すべての事象についての確率を横断する計算を避けことができる(計算量を減らすことができる)テクニックとしての側面もある
  • しかしそれでも計算量が多いため、数十、数百、数千というノードを持つ場合にはさらに計算量を減らすための数学的なテクニックが必要とされている
  • ジャンクションツリー(ジョインツリー)は1990年頃から知られているその代表格のアルゴリズムである
  • しかし、ジャンクションツリーでも現実的にベイジアンネットワークを活用するためにはまだまだ計算量は多いとされており、いかに高速に処理を行えるようにするか、は2013年において現在進行形の非常にアツイ研究分野である

 

書籍関連
 
 

ベイジアンネットワーク
植野 真臣
コロナ社
売り上げランキング: 109,714

が洋書を含めた中でも非常に高い完成度を誇っている書籍となっている。初心者向けではないが、少し理解した段階からは読むことが可能。非常に密度が濃い説明がなされており、薄い本なのに充実した内容となっている。2013年7月に出版されたばかり。

はより現場向けの良書で、この本を購入するとAgenaRiskというソフトウェアのLite版が使えるようになる。GUIでベイジアンネットワークを作成し計算することができる。Java製のソフトウェアなのでWindows・Mac・Linuxで利用可能。有名なスプリンクラーの例についてのネットワークを作成してみたのが以下の画像。

 

とりあえずこんな感じ。当初ベイジアンネットワークは四則演算ができれば計算はできるので、自分でゼロから実装しようかと思っていたのだが、上記のとおり色々問題がありそうなことはわかった。そのためオープンソースのJava実装を探してみることにする。


2013年に読んだデータサイエンス関連書籍 ベスト15冊

注:このブログを書いている人はデータサイエンス超初心者です。

はじめに

個人的に、2013年はデータサイエンスに興味を持ち、本格的に勉強を始めた年となった。何しろ初心者なので、基礎知識がゼロの状態からスタートしている。そのため、データサイエンスの全体像を把握するという目的で、そこそこの数の書籍を幅広く浅く読んでみるところから開始した。このエントリでは自分用メモの意味も含め、2013年に読んだ中でも特に良かったと思うデータサイエンス系の書籍をピックアップしておく。専門書と読み物が混在している。

「データサイエンス」という言葉について

当初自分がやろうとしているのは「機械学習」なのかと思っていたのだが、データマイニングや統計学、機械学習なども含め、いわゆる「豊富なコンピュータリソースを使ってデータを処理する」ことの全てを一言で言い表すとすると「データサイエンス」が適切だろうと考える。よく「金床さん最近機械学習やってますよね」と言われるが、機械学習はデータサイエンスの中の一部分でしかないと考えているので、なんと答えて良いか微妙な感じである。

オススメ度合いの高いものから順に掲載している。また、アフィリエイトはやっていないので、「dummy」という文字列でamazletを使わせて頂いている。
 
 

1位:アルゴリズムが世界を支配する (角川EPUB選書) [Kindle版]

アルゴリズムが世界を支配する (角川EPUB選書)
KADOKAWA / 角川書店 (2013-10-10)
売り上げランキング: 570

本書より引用:

他分野に興味を抱いた腕の良いプログラマーがその分野の専門知識を得て、みずからのコンピュータ技術やプログラミング技能を使って人間のやり方を模倣する。そのアルゴリズムが産業や企業を転覆させ、昔ながらのスタンダードを崩壊させる。人間を模倣し、徐々に人間に取って代わっていくようなアルゴリズムを作り出せる能力が、これからの百年を支配するためのスキルだ。

文句なしの一位。一番面白かったのはこの本。本当に良く調べて書いてあるところが最大の魅力。冒頭のウォール街とコンピュータの関わりのエピソードの他にも、クラシック音楽やビートルズなどをコンピュータを使って解析するエピソードなど、多岐にわたる魅力的な事例が数多く載っている。アルゴリズム(本書では広い意味で使われている。データサイエンスに近い意味)が想像以上のことを実行可能であることがよくわかる内容となっている。
 
 

2位: 統計学が最強の学問である

統計学が最強の学問である
西内 啓
ダイヤモンド社
売り上げランキング: 401

日本語の書籍の中ではもっとも抽象度の高い位置からデータサイエンスを認識させてくれた本。個人的にいまいちわかっていなかった「データマイニングと統計の関係」などを記述している珍しい書籍である。データサイエンスに関する専門書の多くは、著者自身の専門の分野のこと「だけ」しか書いておらず、周りについてはわざと見えないフリをしているのでは?と言いたくなるほど周辺技術・周辺分野との関連が伝わってこないものが多いのだが、この本はそれらを繋ぐ役割を果たしてくれる。この本は良く売れているようで、いろんな書店で平積みになっているため、わざわざここで紹介するまでもないだろう。個人的に、この日本という国で「統計学」という文字を含む書籍が良く売れるというのは素晴らしいと思う(個々の国民のリテラシー向上意欲が高いことがあらわれているという意味で)。
 
 

3位: データマイニング手法

データマイニング手法―営業、マーケティング、CRMのための顧客分析
マイケル・J.A. ベリー ゴードン・S. リノフ
海文堂出版
売り上げランキング: 383,487

「データマイニング」の勉強ならこの一冊から入るのがおすすめ。非常にわかりやすく、説得力に満ちた説明。図も印象的で素晴らしい。遺伝的アルゴリズムについてはこの本の説明を読んだだけで理解できた。意外と初心者向けだと思う。僕はこの本の前にいくつかデータマイニング系の本を読んだのだが、どれも難解でまったく頭に入らず、半ば諦めかけていた。そこに現れた救世主である。
 
 

4位: 異端の統計学 ベイズ

異端の統計学 ベイズ
異端の統計学 ベイズ

posted with amazlet at 13.12.25
シャロン・バーチュ マグレイン
草思社
売り上げランキング: 3,042

この本はぶっちゃけ結構退屈で、それほど面白くない。著者は筋金入りのベイジアンであり、ベイズ理論びいきが激しい。過去の事例について、そこにほんの少しでもベイズっぽい手法が絡んでいれば「〜はベイズ理論を使って解明された!!」と言い出す。ベイズ理論が大活躍したのかと思うと、意外に沈没寸前のUボートから物理的にコードをかっぱらってきたり、漁師が爆弾が落ちるところを見ていたのが決定打だったり、なんだかスッキリしない。そこはマイナスだとしても、やはり過去(特に戦争関連)にさまざまな人々が目の前の問題を解決するためにベイズ理論をはじめとする数学を武器とした事例が豊富で非常に参考になる。個人的にはウェブの侵入検知にベイジアンネットワークを使ってみようと決意させてくれたのがこの本であり、そういう意味で僕にとっては忘れられない本。
 
 

5位: 集合知プログラミング

集合知プログラミング

集合知プログラミング

posted with amazlet at 13.12.24
Toby Segaran
オライリージャパン
売り上げランキング: 166,162

Pythonを使い、クラスタリングや遺伝的アルゴリズムなどを比較的気軽にコーディングしてしまう本。「あれ、外部ライブラリを使わなくても意外と簡単そうだな?」と思わせてくれたという意味で、個人的には非常に大きな役割を果たしてくれた本。いきなりライブラリを使うのではなく、できるところは自分でコードを書いてみようかな、という姿勢をとれるようになった。筆者はJavaプログラマだが、Pythonは読みやすい言語なので、特に問題は感じなかった。
 
 

6位: Hadoop: The Definitive Guide

Hadoop: The Definitive Guide

Hadoop: The Definitive Guide

posted with amazlet at 13.12.24
Yahoo Press (2012-05-10)

HadoopでのMap/Reduceのコードの書き方を覚えるためにHadoop関連の本も数冊読んだ。Dunkheadを作るのに一番役に立ったのはこの本。WordCountの次のレベルを覚えたいプログラマに必要な知識が載っていて良い感じ。
 
 

7位: Rによるやさしい統計学

Rによるやさしい統計学

Rによるやさしい統計学

posted with amazlet at 13.12.24
山田 剛史 杉澤 武俊 村井 潤一郎
オーム社
売り上げランキング: 11,281

統計学もRも同時に勉強してしまえ!と欲張りになって買ってみた本。正直タイトルとは真逆な難しい印象。70ページ辺りまでで一度積ん読状態にしてある。しかし少なくともこの本のおかげで手元のR環境を触るクセが付いたし、平均や分散、標準偏差などの概念に馴染むことができた。統計学は多くの書籍が出ているので、ある概念がわかりにくいなと思ったら別の書籍で同じ概念を説明している部分を片っ端から当たり、自分にとってわかりやすい説明を探すのが吉。正直、R+統計なら他にもよい本がたくさんありそうだが、個人的に入り口となった本であり印象深いものなので載せておく。
 
 

8位: ビッグデータの正体 情報の産業革命が世界のすべてを変える

ビッグデータの正体 情報の産業革命が世界のすべてを変える
講談社 (2013-07-05)
売り上げランキング: 2,537

読書メモ「ビッグデータの正体を参照のこと
 
 

9位: 道具としてのベイズ統計

道具としてのベイズ統計

道具としてのベイズ統計

posted with amazlet at 13.12.24
涌井 良幸
日本実業出版社
売り上げランキング: 172,561

国内で出版されている数少ないベイズ統計関連書籍のうちのひとつ。説明や例題が絶妙な難易度と順番で登場してくれる素晴らしい書籍。個人的には3章までの内容がとりあえずわかれば、という感じなので、まだ4章以降は簡単にしか読んでいない(難しいので後回し…)。
 
 

10位: 数学で犯罪を解決する

数学で犯罪を解決する

数学で犯罪を解決する

posted with amazlet at 13.12.24
キース・デブリン ゲーリー・ローデン
ダイヤモンド社
売り上げランキング: 110,951

人気テレビドラマ「NUMB3RS」に関連する書籍だが、ドラマを見ていなくてもまったく問題なく楽しむことができる。数学を使って犯罪を調査することができるのかどうか、具体的に何を使うのかなどが平易に書かれている。122ページの「チャーリーは殺人犯をどう追跡したか?」で登場するベイズ理論の使われ方が個人的に非常に興奮した。
 
 

11位: その数学が戦略を決める

その数学が戦略を決める (文春文庫)
イアン エアーズ
文藝春秋
売り上げランキング: 5,090

読書メモ「その数学が戦略を決める」参照のこと。
 
 

12位: 集合知イン・アクション

集合知イン・アクション

集合知イン・アクション

posted with amazlet at 13.12.24
Satnam Alag
ソフトバンククリエイティブ
売り上げランキング: 339,076

Javaで機械学習や集合知プログラミングやるならこれでしょ!という感じの位置づけの本。著名な機械学習ライブラリであるWekaの使い方が紹介されている。ライブラリを使うことを前提にした本なので、理論そのものについては別の書籍で勉強するのが良さそうな位置づけの本である。
 
 

13位: 基本統計学

基本統計学

基本統計学

posted with amazlet at 13.12.24
宮川 公男
有斐閣
売り上げランキング: 148,425

いわゆる「統計学」を真正面から勉強するための本。見た目はもろに教科書なので取っつきにくそうだが、平易な説明なので読み進められる。20年ぶりに「数学やってるなぁ」と感じさせてくれた本。
 
 

14位: 44の例題で学ぶ統計的検定と推定の解き方

44の例題で学ぶ統計的検定と推定の解き方
上田 拓治
オーム社
売り上げランキング: 47,554

統計学における検定では「どのケースでどれを使えばいいんだ!?」となりがちな問題があるが、それに正面から答えてくれる問題集。実践的で非常によい。上記「基本統計学」のような教科書的な本とセットでどうぞ。
 
 

15位: ウォール街の物理学者

ウォール街の物理学者

ウォール街の物理学者

posted with amazlet at 13.12.24
ジェイムズ・オーウェン・ウェザーオール
早川書房
売り上げランキング: 3,661

金融危機はウォール街に数学を持ち込んだ「クオンツ」のせいでは!?という疑念を払いのけたい、物理畑出身の著者によって書かれた本。申し訳ないが、あとがきを読むと「頭がいいけどバカ(ナイーブ)だなぁ…」思ってしまう。あとがきを最後に読んでよかった。よく調査されて書かれているので内容は文句なしに素晴らしい。ただ、著者は物理や数学への愛で盲目になってしまっているな、という印象。金融(オプション取引)において「必ず勝てる方法」を数学的に編み出し、それに合わせて商品を作っちゃったという、ウォール街のほぼ詐欺みたいな超最悪な流れを確認できてゲンナリした(ちなみに金融危機が起こったことで証明されたことだが、別に必勝法ではなかった)。我々の生活において価値を保存する方法として広く使われている「お金」が、こういう連中によってむちゃくちゃにされているという現状を、日本人も広く認識するべきだと思う。


読書メモ「生物化するコンピュータ」

原題は「Natural Computing」。この本については邦題がすごく良いと思う。本書はいわゆる「IT」「デジタル」な感じとは一線を画す形でコンピュータと関わっている人々に焦点を当てている。

偶然にも、今僕は「遺伝的アルゴリズム」を使ってネットワークからの攻撃を検知するコードを最適化している。この本を読むタイミングとしてはちょうどいい。

生物そのものを研究し、そこから得たヒントやアイデアをコンピューティングに活かすパターン(「遺伝的アルゴリズム」や「ニューラルネットワーク」など)と、生物を使ってコンピュータで行うような処理をしようとするパターン(「DNAコンピューティング」など)が存在している。僕は後者については知識ゼロの状態だったので、この本でとりあえずの入り口を知ることができたという感じ。

20代の頃の一時期、東京大学でバイオインフォマティクスのお手伝いをしていたことがあるので、AGCTなどが出てきたのは懐かしかった。当時は今と比べたら本当に何もできないプログラマだったのでまったくお役に立てなかったことが悔やまれる。研究室の先輩と、秋葉原で30万円くらいでできるだけ高速な自作マシンを組み立て、Perlを使ってゲノムの検索処理などをしていた。今はクラウドが使えるようになったし、きっとバイオインフォマティクスの技術は格段に進化しているんだろうなと思う。当たり前かもしれないがHadoopなども使われているらしい。

p57より引用

コンピュータの授業でといた簡単なパズルの解法は、今の彼の設計技法を予見させるものだった。
(中略)
プロログというプログラミング言語を使って、この課題を書いた。

ちょうど本書のこの部分を読む前の日に、僕はまったく同じパズルを、子供と遊んでいた。「きっとこういうパズルはPrologとかで解けるんだろうな」なんて考えていたら、次の日にまるっきり同じパズルが本に出て来たのでニヤリとした。何かの縁だろうか、などと思ってしまう。宣言型プログラミング言語はとても興味深い存在だと思う。

p70より引用

データベース・プログラムは、K言語として知られるプログラミング・システムに基づいている。ラヴレスはC言語とよく似たプログラミングの授業は落第したが、すぐにこのK言語のパワーに夢中になった。

K言語などというものがあるのか…
Wikipediaの例を見た感じでは、「K言語については見なかったことにしよう」という印象だが、いつかもう少し調べてみる予定。

p77より引用

見つけたかったのは、過去数分間の市場の動きを参考に、次の五分間までの市場の動きを予測できる法則だ。しかし、どのような種類の法則を探せばいいのかがわからない。法則は、例えば一分間隔、五分間隔の市場価格の変動を示す線の勾配といった「属性」で形成される。

普段あまり目にしない、いわゆる「ウォール街のボットたち」を作り上げている人々に関する貴重な情報。僕は金融の世界でコンピュータを使って利益を稼ぐという発想は悪だと思っているが、中でどのような技術が使われているのかについては興味がある。

p96より引用

事故は「非同時的な改良」のために起こることが多い。
(中略)
例えば、1994年、米国の二機の戦闘機が、米国のヘリコプターを撃墜した。その戦闘機は通信システムがアップデートされていたが、ヘリコプターは古いシステムのままだったため、ヘリコプターのパイロットたちには戦闘機からの警告が聞こえなかったのだ。

「非同時的な改良」「局所的な最適化」がもたらす負の側面について。ソフトウェア開発者として心当たりがありすぎる要素である。気をつけるよう自らの肝に銘じておきたい。

p122より引用

彼が提案したのは、DNA鎖を切り貼りする方法でコンピュータをつくり、もっとも古典的な計算モデルである万能チューリング・マシンの動きをシミュレートすることだった。

僕はチューリング・マシンについてろくに理解できておらず、する必要も特にないかと考えていた。しかしこの例のように、非常に基礎的な部分を知っていればこそ応用を思いつく場合がある。やはり基礎は大事だな…と思わされた部分。

本書は部分部分で専門的な単語や解説が登場するため、まったく知識がない場合にはかなり眠くなるというか読むのが厳しいというのが正直な感想。だいぶ飛ばしたページもあるので、そのうち、もう少し知識を付けてから読み直したい。こんなマニアックな書籍を翻訳・出版してくれた講談社の人ありがとうございます。


読書メモ「その数学が戦略を決める」文庫版


原題は「Super Crunchers」。本書では「絶対計算者たち」と訳されている。こちらにあるように「Number crunching」はコンピュータなどで高度な計算を行うという意味のスラングらしい。邦題の「その数学が」の「数学」は、ここでは統計学のことである。

2008年に出版された本書(邦訳版は2010年?)は「ビッグデータ」ブームの到来前に書かれたものである。内容は古くなく、かえってビッグデータ本にありがちな事例が載っていないために新鮮であったりする。著者はこの分野の専門家で、ジャーナリストが書いたビッグデータ本とはまた異なる良さがある。全体を通じて飽きることなく、一気に読み終えた。

p.61より

絶対計算の一部は企業内で行われているが、本当に巨大なデータ集合は外のデータウェアハウスにおくられて、テラデータのような専門企業が分析している。この会社はまさに何テラバイトものデータを扱っている。世界的な小売業者上位の65%(ウォルマートやJCペニーなど)はテラデータを使っている。また航空会社の七割、銀行の四割も同社の顧客だ。

日本国内でテラデータに位置する企業はどのへんなのか興味がある。

p.98より

偶然にまかせたテストは、銀行や貸金業にかぎられてはいない。Offermatica.comはインターネット上の無作為化をまさに芸術技まで高めた。
(中略)
オファマティカのソフトは、人々がクリックするごとに、その2つのウェブページのどちらかを、無作為に送る。そしてどっちのページが「クリックスルー」が多いか、つまりは購買につながるかを、リアルタイムで教えてくれる。

ウェブページでの無作為化テストは低コストで行うことができるが、ノウハウが必要になる。オファマティカはそのノウハウを誰でも使える形にしたサービスである。その後オムニチュアに買収されたらしい。

p.103より

ユーザビリティ専門家は、実験室で確立されたいくつかの原則に大いに自身を持っている–たとえば、「人々はまず左上の隅を見る」とか「人は青より赤に注目する」とか。ロシュは反論する。「現実の世界では、広告はものすごい数のその他の入力と競合しています。対照実験なんてものは存在しません。ユーザビリティ専門家は、他の情報の津波が押し寄せているのに砂で出来た真実の城にしがみついているんです。」

まさに本書らしい記述の一つ。専門家 vs データ。この例のインターネット上の広告のようにデータが取りやすい場面では、専門家の化けの皮はすぐにはがれてしまう。

p.114より

自分たちの大切な方針をきちんとした試験にかけたくはないのだ。下手をすると、自分がまちがっていることが示されてしまうかもしれない。

企業文化に無作為抽出テストが浸透しない理由について。いかにもありそうな理由だが、長い目でみればそういった立場を取る専門家は駆逐されていくしかないだろう。

p.164より

個々の医師がまともに吸収しきれるのを遙かに上回る、根拠に基づく情報がありすぎるのだ。
(中略)
明らかに、医師たちにそこまでの時間をかけて統計調査の山を漁れというのは、まったく現実的ではない。

「きちんとデータに基づいて仕事をしよう」と考える専門家に立ちはだかる問題。これは、僕のやっているウェブやネットワーク侵入検知の分野でも同じことが言える。興味を引くタイトルの論文や記事はいくらでもあるんだけど、ひとつひとつ吟味している時間を取ることは難しい。本書ではこの後、それぞれの情報の品質に基づいた検索を可能とするデータベースが必要だ、としている。セキュリティとは外れるけれど、僕がよく使う中では、StackOverflowがそのような役目を果たしてくれているかもしれない。

p.169より

ついに教授は、その研修医に診断を尋ねた。そして彼女は、診断を下しましたと述べ、症状に見事にあてはまる珍しいIPEXという症候群を報告した。どうやってその診断に達したのか訪ねられると、彼女はこう答えた。
「主要な特徴をグーグルに入れたら、すぐに出てきましたよ」

本書に登場する数多くの例の中でも、最も印象深いエピソードのひとつ。自分の専門分野でこれ(Googleに自分の知識が負ける)が起こったときにどうするか。あるいは、起こることが当然と考えるか。自分はグーグルに勝てるのか。あるいは勝ち負けではない別の方向を模索するのか。

p.199より

「人間の判断は、最高の回帰分析に劣るというだけではない。ほとんどどんな回帰分析にも劣るのだ」

ちなみに本書の著者は回帰分析とランダム化を(統計が専門家に勝つ理由である)大きな武器として紹介していて、機械学習系にはあまり積極的ではない。基本的には統計学に惚れ込んでおり、回帰分析の肩を持つきらいがある。上記は、単にある心理学者が言った言葉というだけであり、さすがに真実ではないと思いたい。

p.216より

だがどこかの時点で、絶対計算の優位性というのは他人事ではない、ということを受け入れるべきだ。野球のスカウトだのワイン批評家だの放射線医学だの等々、一覧は果てしなく続き、やがては自分のところにもくる。

これは、まさに今の僕を突き動かしていることである。ウェブやネットワーク侵入検知の現場には膨大なデータが存在していて、それらを活かせば、より高品質な侵入検知サービスを構築することができるだろう。データサイエンスの知識を持たないままでいれば、いつかは砂の城にしがみつく権威的な存在になってしまうことは確実だ。

p.331より

最高のデータマイニング屋は、統計分析がもっともらしいかどうかについて直感や経験的な技法を使う。直感から大きくはずれた統計結果は、慎重に調べ直す必要がある。
(中略)
それぞれの意志決定は、お互いの最大の弱点を実用的に補い合ってくれるわけだ。

理想的な形は「絶対計算 vs 専門家」という構図ではなく、絶対計算を使う専門家という形だろう、という話。当然だろう。

本書は基本的に「絶対計算が最強である」という意見を強く持つ著者によって書かれていて、他の中立的なジャーナリストが書いていることが多いビッグデータ本よりも、やや偏った内容となっている。しかしそこが魅力でもあり、ITエンジニアであれば、自分も絶対計算ができるようになりたい、と思うに違いない。

さて、本書を読んで、あらためて自分の立ち位置について振り返ってみた。

最初は、自分は完全に、本書で書かれている「野球のスカウト」だと考えた。つまり絶対計算を使わず、経験、直感、勘といった要素で仕事をする専門家だ。そのためこのままではビッグデータ、データサイエンス、絶対計算の波に完全に飲み込まれるだろうと恐怖を感じていた。

しかし、実際にデータサイエンスの勉強を始め、あらためて自分が行ってきた仕事を振り返ってみると、そこまでひどいことにはなっていないことに気付いた。僕は自分の直感を(ネットワーク侵入検知の)コードに落とし込むわけだが、そこで終わらず、きちんと実際に集められたデータを使ってそのコードの質を検証する、というサイクルを繰り返していたのだ。その過程に機械学習や回帰分析などのデータサイエンスの技術は(知らなかったので当然だが)まったく存在していないが、それなりに自分の直感に依存しない、客観的なテストデータを取り込んでいたので、これは方向としては非常に正しいものであると思う。

野球のスカウトも、自分がスカウトしてきた選手がその後本当に期待通りの成果を上げたかきちんと評価し、間違っていれば自分の勘を修正する、というサイクルを回せば、それほどひどいことにはならなかったろう。しかし、そこまで自分を追い込まなくても、仕事が舞い込んでくるという環境だったのかもしれない。

僕は最近本格的に統計解析やデータマイニング、機械学習の勉強を始めたが、こんなに面白いものがあったのか、という新鮮な驚きで満ちている。これらの技術を自分の専門分野にフィードバックする段階に到達するのが楽しみだ。


読書メモ「ビッグデータの正体」

p.28より

今、挙げた二つの変化は、さらに重要な第三の大きな変化をもたらす。因果関係、すなわち「原因と結果」を求める古い体質からの脱却だ。
(中略)
相関関係は、正確な「理由」を教えてくれないが、ある現象が見られるという「事実」に気付かせてくれる。基本的にはそれで十分なのだ。

安く手に入るようになったコンピュータリソースによってゴリゴリ計算を行い、相関関係をガシガシ見つけていくことがまず役に立つ、ということか。とりあえずは実際に手を動かして、データから相関関係を見つけるスキルを身につけねば。

p.29より

映画『マネーボール』では野球のスカウトマンが統計データの活用で注目を浴びたが、あれはまさに高度なデータ分析に、職人的な直感が敗北を喫した例だ。

自分は現在、まさに「職人的な直感」で喰っているので、まったくもって寒気がするとしか言いようがない状況。この後マネーボール観ました(;´Д`)

p.40より

意外かもしれないが、ある母集団が、「はい・いいえ」のような二者択一問題にどのように回答するかを調べたい場合、無作為抽出した1100人の標本があれば、なんと97%以上の精度で全体の動向を言い当てることができる。

最近ちょうど統計学の勉強を始めた。目的としては上記のようなことを理解すること。とりあえず1100という数字と97という数字を結びつけるために頑張ってみたが、よくわからなかったw まだまだ修行が足りないらしい。「全体の動向を言い当てることができる」っていうのが何を指しているのかよくわからない。「はい・いいえ」をそれぞれ1と0とした場合の平均値(例えば、偏りがなく0.5なのか、「はい」が非常に多く0.9なのか)に左右される気もする。

統計に詳しい人、是非上記を解説していただきたく…m(_ _)m

p.130より

原作者不明とされた書物も、文章の書き方を比較することで原作者を突き止めるヒントが得られるかもしれない。

文章の「指紋」のようなものについての話。すごい発想だと感じた。データあるところにパターンあり、か?

p.166より

結果としては、携帯電話利用に伴う癌リスクの増加は見られなかった。

デンマークでの携帯電話と癌の関係に関する大規模な調査の話。携帯電話は関係なさそう、という結果だったからか、あまり話題にならなかったらしい。個人的に電磁波の健康への影響の有無に非常に興味がある。

p.180より

その結果、連邦政府の公開情報を集めた「data.gov」と呼ばれるウェブサイトが開設された。
(中略)
欧州連合(EU)もデータ公開構想を発表した。

恥ずかしながら上記のような動きがあったとは、ちっとも知らなかった。ちょっと系統は異なるけど、個人的に政府(?)に期待したいのは、例えばIPAなどが税金で作らせているアプリケーション(iLogScannerのようなもの)をオープンソース化すること。そうすれば報酬を求めない開発者も参加して、よりよい形に改善できると思う。

p.186より

現在、データの値付け実験の場として、数々の取引市場が立ち上がっている。
(中略)
外部企業はこうした場に参加して、自社のデータを他社に有償あるいは無償で提供する。オークションサイトで不要品を売るのと同様に、社内のデータベースにしまい込んであるデータを販売できるのだ。

純粋にデータをインターネット上で売買するという動きができているとのこと。これも知らなかったので、驚いた。Scutumのようなサービスも、しばらくやっていると「素性の悪いIPアドレス」のデータなどが溜まるが、そういうものを売るというアプローチも考えられるのだろう。

p.205より

現在、データベース管理、データサイエンス、分析、機械学習アルゴリズムなどの専門知識やノウハウは引っ張りだこだ。しかし、今後、ビッグデータが日常生活に深く入り込み、ツールは使いやすく性能も向上し、さらに多くの人々がノウハウを持つようになると、スキルの価値は相対的に低下する。コンピュータプログラミング能力もそうだった。1960年代から1980年代にかけて普及し、今では海外のアウトソーシング先の存在もあって、プログラミングの価値はさらに下がった。かつては技術力の代表格のように言われたものが、今では貧困国の発展の原動力になっている。とはいえ、ビッグデータのスキルが重要でないといっているわけではない。こうしたノウハウや専門知識は、価値を生み出す厳選としてみると、最重要ではないのだ。その気になれば外部から調達できるからである。

ビッグデータのスキルが将来的にはありふれたものになるだろうという予想。現時点でそこまで考えられる視点は見習いたい。スタートアップ的な動きをするエンジニアにとってはプログラミングもビッグデータのスキルも外注してどうにかなるものではないので、しっかりと身につけるという選択肢以外はあり得ないと思う。「プログラミングできること」自体も大事だが、それより「プログラミングできること」によって得ることができる「より高い視点の位置」「発想の柔軟さ」が大事だ。エンジニア出身の社長が優秀なのは、まさにこの点であると思う。

p.215より

これからは数学や統計学、それにプログラミングとネットワークのちょっとした知識が、”現代の読み書きそろばん”になる。

さっき「外注できる」って言ってたくせに…というのはいいとして、まさにその通りだと思う。

p.232より

やはり個人特定可能なデータは丁寧に削除されていたのだが、それでもユーザが特定されてしまったのだ

ネットフリックスの話。インターネット上の他のデータと組み合わせることで、ちょっとした手がかりから個人が特定されてしまうケースは多数ある。日本でもかつてのWinnyでの個人情報漏洩や、2ちゃんねるによる「特定」など、個人情報がさまざまな情報の断片から特定される例はよく見られる。

p.275より

まず手をつけたのが、市内に90万軒ある住宅リストの作成だ。次に、19の機関から入手したデータを住宅リストに加えていく。具体的には、建物オーナーの固定資産税滞納、抵当権執行手続きの有無、電力使用量の異常や料金滞納による電力供給停止といったデータだ。また、建物のタイプ、竣工時期、救急車出動回数、犯罪率、ネズミの苦情などのデータも入力された。

不正改造住宅を見つけるためのアプローチの第一歩として、上記のようなデータが使用されたとのこと。相関関係を調べる具体的な例として興味深い。

p.289

ところが発明のひらめきは、データには語れない。まだ存在していないのだから、いくらデータ量を増やしたからといって、裏付けや確証が得られるものではないのだ。

ジョブズが市場調査をしなかった(「消費者は欲しいものを知らない」)のに似ている。当たり前だが、ビッグデータがすべてを解決するわけではない。ただ、遺伝的アルゴリズムのように「突然変異」という現象をコンピュータでの計算に取り入れることだって可能なのだから、一概に「コンピュータはひらめかない」と決めつけることもできないだろう。

この本を読めば「ビッグデータ」が単なるバズワードではないことはすぐにわかる。文句なく、「買い」の本。ビッグデータの具体例はもちろん、上記で紹介したようなやや抽象化した見方もできるのが、この著者の凄いところだ。

インターネットの台頭に続き、このような大きな動きが現れる時代を生きることができる幸運に感謝したい。