ビルゲイツの新しい最も好きな本: 「Enlightenment Now」

ビルゲイツが自身のブログで新しい最も好きな本としてSteven Pinkerの「Enlightenment Now」であると発表しました。

My new favorite book of all time

今までビルゲイツはSteven Pinkerの「The Better Angels of Our Nature」(邦題「暴力の人類史」上下,青土社)を最高の本だと言っていた。


Steven Pinkerの新たな本「Enlightenment Now」が新たな最も好きな本であると、ビルゲイツは述べている。まだ出版されていないが、ビルゲイツのブログから登録することで無料の章を読むことが出来る。

「Enlightenment Now」では、どのようにして人類・世界が良い方向へと進んでいっているのかを述べている本であるそうだ。ビルゲイツ自身が気に入った5つの世界が進歩している理由を以下のように述べている。

1. You’re 37 times less likely to be killed by a bolt of lightning than you were at the turn of the century.

2. Time spent doing laundry fell from 11.5 hours a week in 1920 to an hour and a half in 2014.

3. You’re way less likely to die on the job.

4. The global average IQ score is rising by about 3 IQ points every decade.

5. War is illegal.

要するに、今は昔に比べてはるかに安全であり、家事に使う時間ははるかに減っており、世界の平均IQも上がってきている。歴史の本をよく読んでいるビルゲイツのオススメ本なので読んでみたいと思う。

Kaggleで人気 XGBoostの論文 「XGBoost: A Scalable Tree Boosting System」を読んだ

タイトルの通りなんですが、Kaggleでとても人気のある手法のXGBoostがどういった仕組みで動いているのかを知るために次の論文を読みました。

XGBoost: A Scalable Tree Boosting System

詳しいことは、日本語で読める分かりやすい解説記事(こことか)があるのでそちらを参照していただきたいです。この記事は個人的な備忘録です。

要するにXGBoostとは決定木をすでに作った木の情報をもとにしながら何個も作ってそれらの結果を足し合わせることで、性能を向上させるBoostingの手法を効率的に実装したものと言えます。

基本的なポイントは単純ですが、決定木を作っていくうえですべての木の中から最も良いものを調べて選択するのは計算量的に難しいため、ある種の近似を用いて精度的に問題の少ない気を作っていき高速に実行可能なアルゴリズムとなっています。また、オーバーフィッティングを防ぐために、サブサンプリングや縮退化などの仕組みも導入されており、汎化性能が良くなるようになっていることもKaggleのコンテストで人気の理由の一つだと思います。

また、論文では並列化や分散処理をした場合の速度性能の評価が行われており、高い並列性能が出ています。提供されているライブラリではキャッシュが当たりやすくなるようになどの最適化が施されているので、自分で実装せずにライブラリを使いましょう。pipで簡単に入れられるようです。

不良品予測チャレンジの解説 「Using Big Data to Enhance the Bosch Production Line Performance: A Kaggle Challenge」を読んだ

Kaggleのコンテスト(Bosch Production Line Performance Challenge)としてBoschがデータを提供しているコンテストの解説論文を読んだ。

Using Big Data to Enhance the Bosch Production Line Performance: A Kaggle Challenge

このコンテストは工場の様々なセンサーデータを用いて生産されたパーツの良・不良を判定するもの。時系列のデータとなっているが、この論文の手法だと時系列の影響は特に使っていないようだ。

とにかく特徴量が多いので、カテゴリ変数を一つの数値変数に変換する手法を使ったのち、カラム数を減らしてXGBoostを用いてモデルを構築している。

また、データ量も多くメモリに乗りきらないのでオンライン学習の手法を用いている。

モデルの良さの評価にはMatthew’s Correlation Coefficientという、頻度の低いイベントの評価指標に使えるものを用いている。

所感としては、Kaggleで人気のXGBoostはsparseで大量のデータに対して強いんだなあと感じさせられる。