渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

実務の専門家として機械学習や統計分析を手掛けたい人にオススメの書籍初級5冊&中級8冊+テーマ別11冊(2020年2月版)


(Image by Pixabay)

この記事は以下のオススメ書籍リスト記事のアップデートです。

毎回の断り書きで恐縮ですが、この記事では「データサイエンティストや機械学習エンジニアなどデータ分析の実務の専門家として」*1機械学習や統計分析を手掛けていきたいという、主に初級ないし中級ぐらいのスキルレベルの人たちにお薦めしたい書籍を、初級向け5冊・中級向け8冊及び細かいテーマ別に11冊、それぞれ挙げていきます。スタンスとしては相変わらず「当座の最終到達点を『中級』に置いた時に最初に読んで内容をマスターしておくべき書籍」を初級に置いているので、世の中のこの手のお薦め書籍リストに比べると若干ハードな内容のものが初級向けに多いかもしれません。


後はちょっと気が早いかもしれませんが、機械学習パートに関しては「AutoML時代にあっても実務の専門家であれば知っておくべき知識」を収めた書籍を選んでおきました。そのため、実装を重視した本は逆に割愛されていたりします。


もう何回目か分からないほどこのブログではお馴染みのネタなので改めて説明することはないかと思いますが、言うまでもなく以下のリストは完全なる僕個人の独断と偏見で、最近出版されたり自分で読んだ本から選んだものです。このリストのご利用は皆様の自己責任でお願いいたしますm(_ _)m

初級向け5冊


割と不動のラインナップが多かったこの初級向け書籍リストですが、微妙に入れ替わりがあります。時代が変われば新たな良書も出てくるということで。

総論

前々回・前回リストに引き続き筆頭に来るのがこちら。データサイエンティスト養成読本の登竜門編です。特にこれ以上コメントすることはないと思いますが、一応紹介しておくと統計学機械学習・R / Pythonプログラミング・データ前処理・データベース・可視化などなどデータ分析に関わる諸分野をバランス良くカバーしているというのが、初学者向けには非常に親切で入り口としては良いと思っています。


そしてこちらも同様に前々回・前回リストでも取り上げたビジネス活用編。ビジネス実務向けデータ分析で著名な執筆陣がズラリと揃い、ビジネスの現場においてどのようにしてデータ分析という営みを定着させていくかについて論じていて、特にビジネス側からデータ分析に入っていこうとする人たちには今でもお薦めの入門ムックです。

統計学

統計学の初歩はこちらが鉄板でしょう。Rで手を動かしながら、記述統計から検定、分散分析、回帰分析、因子分析、サンプルサイズ設計と言った統計学の基本事項の大半は実践的に学ぶことが出来ます。特にサンプルサイズ設計に初学者のうちから触れられるのは非常に貴重なので、その点からもお薦めの一冊です。

機械学習

ご存知はむかずさん本です。中身が気になる方は以前の書評記事をお読みください。文字通り、機械学習を生業にしたいと願う人がゼロから学んでいく上で絶対必須不可欠の知識・教養・技術の全てがこの一冊に収められています。特に機械学習アルゴリズムをまだ一度もスクラッチから組んだことがないという人は、騙されたと思って読んでみてください。


そしてそのはむかずさん監修の、現代において頻出の機械学習手法のほぼ全てを図解とPythonコード付きでquick viewできる一冊がこちら。以前からその好評ぶりは聞いていたのですが、いざ実際に読んでみたらあまりの素晴らしさに文句なしに今回の推薦書籍リストに入れようと思ったほどの内容で納得。8年前に金先生の『Rによるデータサイエンス(第2版):データ解析の基礎から最新手法まで』の初版本を読んだ時に感動した「その網羅っぷり」をPythonで完全に再現どころかそれを上回るカバー範囲の広さに脱帽しました。これにさらに交差検証や性能評価の方法といった、僕が最近主張するところの "ML design" 諸論についても丁寧に解説されていて、言うことなしの名著です。機械学習の実践的入門書としてはベストに近いと思います。


中級向け8冊


今回最も変動が大きかったのが中級向け。統計学については大半が最近の新刊書に置き換わっています。機械学習の方は、猫も杓子もDeep Learningという流れが段々落ち着いてきたこともあって、Deepネタ本を減らした以外は大きな変動はないです。

統計学

このチョイスを見てびっくりされた方もいるかもしれませんが、これまで中級向け書籍リストの不動のトップバッターだった東大出版会統計学シリーズ3冊を取り下げ、今回からこちらの2冊を入れることにしました。理由はシンプルで「実務家向けであることを考慮すると数理統計学的な知識を重視した東大出版会3冊よりもこちらの方がRコードによる実践も添えられていて分かりやすい」からです。実際、この2冊は東大出版会シリーズとほぼ同等の理論的な解説を伴った上で、Rでそれを現実のデータに対して実践するとどういう結果が得られるか?を丁寧に例示しており、今後の統計学テキストの新たなスタンダードになっていくのではないかという期待を持っております。なお、著者の神永先生から伺ったところではこの「赤と青」という装丁の色は完全に東大出版会シリーズを意識したものだとのことですので、是非「緑」(社会科学データ統計学)も期待したいと思います*2

(追記 Jul 17, 2020)

Kindle含む電子書籍版も販売開始されたとのことです。神永先生、そして内田老鶴圃さんのご尽力に感謝いたします。


ベイズ統計学及び統計モデリングについては、馬場さんのこちらの書籍を。既に書評記事で大絶賛した通りですが、RとStanを駆使してGLM, GLMM, 階層ベイズそして状態空間モデルと、古典的な統計モデリングからモダンなベイジアンモデリングまでを分かりやすく、豊富な例題と共に実践的に学ぶことが出来ます。これで名実共にWinBUGSで回していた「みどり本」はお払い箱です(笑)。ちなみに余談ですが、現職のうちのチームでも若手向けのベイジアンのテキストとしてこちらを指定させていただいております。


統計学のトリを飾るのは、前回に引き続き『新版 統計学のセンス』です。以前の書評記事でも激賞した通り、信頼区間など頻度論統計学のやや難解なところも言葉を濁さずきちんと解説し、統計的因果推論や実験計画法についてもページを割き、さらには他書ではまず見かけない非劣性検定*3についての解説もあり、粗雑な統計学の解説書が多い中にあっては極めて貴重な一冊です。

機械学習

今回は入れるかどうか迷ったんですが、やはりバランス良く幅広く機械学習の基礎が収録されていて「独習に」最適という点でやはり外せないのがこちらの「はじパタ」。ベイズの識別規則や性能評価といった基礎事項から、線形分類器、カーネル法、行列分解、クラスタリング、アンサンブル学習と主要なトピックを簡潔かつ分かりやすくまとめていて、お薦めです。


お馴染み「カステラ本」です。Deep Learning以降の流れをカバーしていないのでDeep全盛の現在では物足りないと思う人も多いかもしれませんが、それ以外のほぼ全ての機械学習分野の話題がカバーされているので辞書として使う上では今でも最適の鈍器です。意外かもですが、Kaggleでは全員が使うといっても差し支えないGBDT系のモデルのアルゴリズムとその解説をきちんと載せている数少ない書籍の一つです。


Deep Learningそのものについての書籍は後ほどテーマ別リストで挙げることにして、汎用的な中級向け入門書としてお薦めするのは今回も講談社MLPシリーズの最初期の深層学習本です。そろそろ内容の陳腐化が見えてきていますが、Deep Learningの初歩について理論的な背景から学ぶ上では今でもこれだけ読んでおけば十分というくらい、エッセンスを簡潔に押さえた良書です。あえて言えばRNNの章では当時まだ広まっていなかったLSTM以降の流れが抜けているので現在から見るとちょっと内容不足な感もありますが、全体としては今でもバランスが取れていて良いと思います。


そして「実務家として」機械学習を学ぶなら今でも絶対に外せないのがこちら。実際のビジネスの現場でよく用いられるシステム構成と、個々のビジネス要件を踏まえた上でどのような機械学習システムを構築すべきか&いかにして構築するか、また学習データの収集とその方法、さらには実データに対する機械学習(もしくは機械学習を使わないで済ませる)の適用事例や、構築された機械学習システムの評価方法など、まさに「仕事で実際に」機械学習を用いる上では必須の項目が満載で、機械学習エンジニアを目指す方なら必携の一冊です。


テーマ別11冊


前回よりテーマ別についても範囲を絞っており、それに伴って紹介する書籍数も減っております。もっとも個人的にはあれもこれもと入れて多々ますます弁ずとなるのも良くないと常々思っているので、これでちょうど良いのかなという気もします。

機械学習の実践(2020 Feb 04追記)

事前にドラフトを書く前に必ず入れようと思っていたのに、初稿に入れるのをすっかり失念していて大変失礼しました。。。話題のKaggle本です。タイトルだけ見るとKaggleに特化したかのような内容に見えますが、実際にはKaggleのみならずありとあらゆる機械学習の実践の場で問題となる事項が網羅され尽くしています。即ち評価指標の置き方・特徴量の扱い方・モデル評価と交差検証の方法・モデルのチューニング・モデルの組み合わせ方・leakageのような落とし穴、などなど僕が常日頃その重要性を説く"ML design"の考え方が本当に「全て」載っており、機械学習の実務家であれば必携の書と言って良いかと思います。

Deep Learning

sklearn + TensorFlow本。前回の推薦書籍リスト記事に対して「GitHubに上がっているコード例も含めれば良書」というブコメがついていた通りで、この本単体だとかなり舌足らずなんですがサンプルコードも見ながらだとなかなかの良書だと思います。実はこの本をうちのチームの若手向け機械学習レーニングで使っているのですが、正直言ってsklearnの本として見ると色々中途半端なところも。。。TFの本という意味では稀有な解説書なのではないかと思っています。


Goodfellow本。MLP深層学習本同様にそろそろ内容の陳腐化を感じますが、Deep Learning諸系統の基礎をある程度深く学ぶには今でもこれ以上の網羅的な書籍はないと思います。ただし、前回の推薦書籍リスト記事でも書いた通りで理論的な部分の解説ははむかずさん本と大部分がオーバーラップするので、純粋にDeep諸系統に関する辞書的な一冊として揃えておくというのが正しい扱い方でしょう。


図解速習DEEP LEARNING

図解速習DEEP LEARNING

Amazon

一方、Deep Learningの実践について解説した書籍は本当に掃いて捨てるほど出ているんですが、僕自身がパラパラ見て気になって実際に買ったのがこちら*4。Colaboratoryを駆使し、現代のDeep諸系統全盛期における代表的なネットワークの大半の組み方とその実践をこれ一冊でカバーするという、極めて野心的かつ実践的な良書です。特にこの一冊で一般的な表形式・画像・系列(自然言語テキスト含む)データに対するNNのみならず、映像・音声データやGANや強化学習までをもカバーしていて、さらにその全てにColaboratory + TensorFlow + Kerasによる実践例が付されており、まさに「どんな初学者でもDeepの最先端までひとっ飛び」出来ると言っても過言ではないかと思います。

統計的因果推論

統計的因果推論については、RやPythonなどのコーディングによる実践を伴った良書がこれまで殆どなかったためずっと岩波DS3を推してきたのですが、この度素晴らしい決定版的良書が世に出たのでそちらに置き換えます。前々職の後輩、安井君の手によるこちらの一冊です。既に書評記事で称賛した通りで、「セレクションバイアスとRCT」「介入効果を測るための回帰分析」「傾向スコアを用いた分析」「差分の差分法(DID)とCausalImpact」「回帰不連続デザイン(RDD)」という章立てで、段階を踏みながら計量経済学的な理論面での背景も丁寧に解説しつつ、Rコードによる実践例も付して分かりやすく統計的因果推論について説いた良書です。

ベイズ統計

「アヒル本」は今回はテーマ別に移動しました。上記の馬場さんの本だけでもR + Stanによるベイジアンモデリングのかなりの部分を網羅していますが、そこにもっと細かいStan側のテクニック+ベイジアンモデリングとして注意すべき点を網羅的に取り上げているのが本書です。複雑なモデルを扱うようになってMCMCサンプリングの収束が気になり出したら、こちらを参照するのが良いでしょう。


ベイズ統計を学びたい人が泣きながらでも読むべき一冊、それが言わずと知れた渡辺ベイズ本です。僕もよく泣きながら読んでいます(泣)。学習理論をベースに渡辺ベイズの粋が展開されており、特に汎化誤差に関する章は機械学習しかやらないという人でも絶対に一読の価値があります。今回のリストの中では随一のガチ本ですが、その重要性を鑑みて今回も収録してあります。ちなみに共立出版さんから『渡辺ベイズ理論100問』なる地獄驚異の書が出る旨予告されており、そちらも恐怖楽しみです。

時系列分析

言わずと知れた「沖本本」です。ひとまず理論的な部分についてはこれ一冊あれば十分です。このブログの初期に時系列分析カテゴリ記事群で散々取り上げたので、ダイジェスト版としてはそちらを読まれても良いかもしれません。どうしても足りない*5という人はその師匠筋のHamiltonの鈍器を読まれると良いかと思います。


モダンなベイジアンを駆使した時系列分析ということで言えば、こちらの萩原さんの本をお薦めします。単に時系列分析や状態空間モデルというだけでなく、粒子フィルタまで含めたベイジアン時系列モデリング全般の話題をスクラッチからのRコーディングまで添えて解説しているので、網羅的で非常に読み応えがあります。勿論RStanによる標準的なモデリング方法もカバーしていてお薦めです。

グラフ・ネットワーク分析

要所要所でグラフ・ネットワーク分析の重要性について語られるのを目にすることがありますが、意外にも邦書ではこれぞという良書がほとんど見当たりません*6。その意味では、鈴木先生の同名の著書の第二版が鉄板にして唯一の決定版でしょう。グラフ理論の基礎から中心性やコミュニティ検出といった有用な手法の実践例が付されて解説されており、特にソーシャルデータを扱う人は必ず脇に置いておくべき一冊です。

SQL

これはもう畏友・田宮さんも共著に加わったこの一冊以外に今でも推せる本がありません。以前の書評記事で激賞した通りで、文字通り「データ分析のためのSQL黒魔術大全」です。仕事でデータ分析をやらなければいけないけど、DBの扱い方も良く分からないし、況してやSQLなんてどういうスクリプトを書いたら良いか分からない。。。という人は本書を開けば必ずや望む黒魔術にたどり着けると思います。


コメントなど


ということで、今回も上級向け書籍は特に選んでおりません。僕自身が上級者でも何でもありませんので、お望みの方はもっと然るべき評者の方にお尋ね下さい(笑)。


また強化学習も最近注目されているように感じますが、僕自身が詳しくないこともあって今回は割愛しました。興味がある方はにのぴらさんの以下の資料リスト記事がよくまとまっていると思います。


ベイズ機械学習も同様に近頃かなり注目を集めていますが、これまた僕自身が詳しいわけではないのでやはり割愛しています。気になるという方はPRMLでも良いでしょうし、例えば須山さんの2冊が好評で良く読まれていると聞きます(緑の方は僕も読みました)。


その他の分野ですが、例えば画像認識や音声認識自然言語処理といった個別のテーマについては僕自身が明るくないので取り上げていません*7。また推薦システム(レコメンデーション)についてもやはり僕が自分で手掛けることがないので今回はスキップしています。


そういう意味では本当は現在自分にとって最大の課題となっている実験計画法なんかについても取り上げるべきだったと思うのですが、実は良いと思っている書籍をまだ読み終えておらず。。。こちらの書籍です。


閑話休題。以前から散々書いている通りですが、データサイエンス分野できちんとした専門書を選ぼうと思ったらキリがありません。それは統計学なら東大出版会シリーズ3冊や計量経済学系の統計学テキストの名著たちもそうですし、機械学習なら「黄色い本」ことPRML上下巻もそうです。さらに言えば測度論や関数解析に関する本であったり、はたまた厳密な学習理論に関する本なども読まないよりは読んだ方が良いのは事実です*8。データサイエンス分野は本質的に学術研究領域と密接な繋がりがあるため、「大は小を兼ねる」即ち実務向けであっても基礎理論から網羅しておいた方が良いという側面があるのは否めません。


しかしながら、第一次データサイエンティストブームから7年、人工知能ブームから4年が経ち、「半分はアカデミック」というよりも「純粋に実務的」というプレイヤーが社会に増えてきたという印象があります。そんな中にあってもなお「大は小を兼ねる」でゴツい書籍をお薦めし続けるのが妥当かどうかというと、正直難しいものがあります(それでも渡辺ベイズ本は入れましたが)。一方で、個々の書籍のスタイルというか方針によるという部分もあるかなと思いました。概して「これ一冊で何でもカバーできます」系のカバー範囲が広く教科書的スタンスを狙った本はどれほど分厚くても中途半端で扱いづらく*9、代わりに「これ一冊でこの項目だけは全部確実に学べます」系のカバー範囲が狭く専門家向けの本をうまく組み合わせることで、バランス良く学ぶという側面をより重視するようにしました。


特に、冒頭でもコメントしたように今後はAutoMLなどの自動化技術の進歩と普及に伴い、自分の手でゼロから実装していくケースは何事につけてもどんどん減っていくだろうと僕自身は見込んでいます。その点で「細かい実装よりも本質を突いた」本を多めにした方が良いかなと考えたこともあり、コーディングを重視した本は逆に減らしていたりします。例えばTensorFlow Hubなどのpre-trained modelでfine tuningによって天下り的に得られるembeddingを利用した機械学習タスクを手掛ける上では、embedding以前のNNを自分で組む必要はないわけです。この場合必要になるのはコーディングよりも、むしろ「どうチューニングするべきか」という当たりを付けるための本質的な知識だと個人的には思っています。


加えてもう一点。これだけブログやQiitaなど各種web上のメディアに優れた実践家の人たちによる統計分析や機械学習の解説記事が溢れ返る昨今にあって、「書籍」という形の資料を取り上げて賛否を語ることにもはや何か意味などないのでは?という疑問の声を聞くことがあります。しかしながら、知識や情報はバラバラに散在しているだけではコンテクストに乏しいエピソードの羅列になりがちでそれほど意味がなく、体系立てて一箇所(一冊の書籍)にまとめられるからこそ一貫性とコンテクストを保って分かりやすく意味を持つ、と個人的には信じています。推薦書籍リストを編む理由がここにあります。


今回の推薦書籍リスト記事では、その意味では「純粋に実務に勤しむ」人たちのための書籍たちとその組み合わせを厳選したつもりです。もっとも今後も新たな良書は出てくるでしょうし、何よりもこのセレクションそのものへの異論・反論もあるかと思います。まずは皆さんの評価を待ちたいと思う次第です。

*1:つまり研究者や研究よりの開発者ではないということ

*2:お薦めしつつ著者の方々にプレッシャーをかけていくスタイル:東大出版会緑本が抜けると計量経済学の基礎が抜けてしまうのでそこは是非お願いしたいところ

*3:本当に「AとBとが同等」かどうかを検定するもの

*4:Kindle版を買ってしまった後になってから人づてに冊子版をご恵贈いただくという珍事がありました笑

*5:例えばマルコフ転換モデルのEMはどうやっているのかが気になるとか

*6:グラフ理論そのものの書籍は沢山あるが肝心の分析方法について解説した本がほとんどない

*7:仮に必要になったらTensorFlow Hubとかでfine tuningするだけなので

*8:この辺の知識がないと例えばRKHS周りや最先端の最適化計画周りは理解しづらい

*9:カステラ本は例外