六本木で働くデータサイエンティストのブログ

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

機械学習システム開発や統計分析を仕事にしたい人にオススメの書籍初級5冊&中級10冊+テーマ別9冊(2019年1月版)

f:id:TJO:20180930165417p:plain
(Image by Pixabay)

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

機械学習エンジニアやデータサイエンティストとして(もしくはそうではない職名であったとしても)機械学習システム開発や統計分析を仕事にしたい人なら、最低限これだけは読んでおいて損はないだろうという書籍を初級向け5冊、中級向け10冊選定しています。ただし、以前とは若干異なり「仕事にする」イコール「プロフェッショナルを目指す」ということで、特に初級向けリストを若干レベルアップさせています。中には初学者でも結構読みこなすのが難しい本だけになっているかもしれませんが、中級向けリストに進む上でどうしてもこれだけは読破して欲しいという願望も込めました、ということで。


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

初級5冊


基本的には「入門」の立ち位置に来る書籍だけ5冊集めてあります。これらはあくまでも入口であって、仕事で統計学機械学習を使えるようになるためには中級向けリストの書籍も読む必要があるという点にご留意を。

総論

データサイエンティスト養成読本 登竜門編 (Software Design plus)

データサイエンティスト養成読本 登竜門編 (Software Design plus)

前回リストに引き続き、筆頭に来るのがこちら。お馴染みデータサイエンティスト養成読本の「登竜門編」です。統計学機械学習・R / Pythonプログラミング・データ前処理・データベース・可視化などなどデータ分析に関わる諸分野をバランス良くカバーしていて、初学者には至適です。この本でまずはデータ分析という営みの全体像を概観すると良いでしょう。


データサイエンティスト養成読本 ビジネス活用編 (Software Design plusシリーズ)

データサイエンティスト養成読本 ビジネス活用編 (Software Design plusシリーズ)

一方で、それらのデータ分析手法や技法を「何に」「どのように」用いるべきか?について指南していて初学者には良いのではないかと思うのが、養成読本の「ビジネス活用編」です。以前の記事でもチラリと触れたことがありますが、全体としては「ビジネスの中におけるデータ分析の立ち位置」を分かりやすく論じていて、これからデータ分析に取り組みたいというビジネスパーソンには良い導入になると思います。

統計学

Rによるやさしい統計学

Rによるやさしい統計学

統計分析についてより深く学ぶとなると色々難しい本に当たる必要もありますが、その前にRで手を動かしながら気軽に学べるのがこちらの本。記述統計から検定、分散分析、回帰分析、因子分析、サンプルサイズ設計と統計学に基づくデータ分析の鉄板パターンを一通りカバーしており、実際に仕事で統計学を使うようになった後でも読み返す価値のある一冊です。

機械学習

機械学習の理論面での入門書と言うと以前は色々迷ったものですが、今やこのはむかずさん本以外に推すべきものが見当たりません。書評記事でも激賞しましたが、まさに「ゼロからガチで機械学習を生業にしたい人が『いの一番に』読むべき一冊」だと思います。機械学習を学ぶ上で必要なPythonとその関連パッケージ・フレームワーク類の導入から、最低限の数学の知識、そして基礎的な理論とアルゴリズムを平易ながらスクラッチに近い実装で学ぶことが出来ます。


データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

そして、上記の『機械学習のエッセンス』で盤石の基礎を学んだ上で読むとおそらく非常に参考になるのが、養成読本の「機械学習入門編」。日進月歩を通り越して秒進分歩の勢いで進化する機械学習の世界ゆえ、出版してからたったの3年半程度で既に内容の陳腐化が見えてきてしまっていますが、その内容自体は機械学習の基礎を学ぶ上では今でも十分に有用です。特にはむかずさん本では取り上げられなかったscikit-learnなどのパッケージ類の利用方法などが詳説されていて、実用面を重視した構成になっています。


中級10冊


ここからは「初級向け5冊の内容はほぼ完全に頭に入っている」人向けのリストです。そうでない人がいきなり読むと結構しんどいであろうということを予めお断りしておきます。

統計学

統計学入門 (基礎統計学?)

統計学入門 (基礎統計学?)

自然科学の統計学 (基礎統計学)

自然科学の統計学 (基礎統計学)

人文・社会科学の統計学 (基礎統計学)

人文・社会科学の統計学 (基礎統計学)

まずは、鉄板中の鉄板である東京大学出版会の赤本・青本緑本の3巻シリーズ。1巻目は記述統計・確率分布・中心極限定理などの初歩的な確率論の基礎、検定論や重回帰分析といった統計分析の初歩を扱った赤本。2巻目は実験計画法・線形モデル・最尤法・適合度検定諸論・GLM・検定力の基礎・乱数の基礎など自然科学分野でよく必要となるところを揃えた青本。そして3巻目は系列相関・不均一分散・回帰モデル・操作変数法・内生性・時系列・疫学統計など経済学や社会科学分野でよく必要となるところを揃えた緑本、というラインナップです。


岩波DSシリーズでもご一緒させていただいた松浦さんの手による一冊。いよいよ統計モデリングの主流になりつつベイジアンモデリングを取り扱っていて、Stanコーディングについて解説するのみならず、ベイジアンモデリングをやる上で必要な確率分布の知識、実際にモデリングで問題になるポイントに対するソリューションなど、ベイジアンモデリングを実践する際に直面し得る問題のほぼ全てをカバーしています。


そして、統計学のトリとなる5冊目はやはり先日の書評記事で激賞したこちら。統計分析を行うに当たって必要とされる「センス」「考え方」「捉え方」を実データ例を挙げながら非常に分かりやすく解説しています。特に信頼区間の解説は実は上記の赤本にもきちんと載っていなかったりしますし、近年話題に上ることが増えた統計的因果推論にも触れている上、大半の書籍では無視されている非劣性検定についても取り上げているので、ある程度以上統計学について学んだ人が統計分析を実践する上では必読の一冊と言い切って良いでしょう。

機械学習

はじめてのパターン認識

はじめてのパターン認識

まずはお馴染みの「はじパタ」ことこちらの一冊。今を時めくNNについての話題はあまり多くありませんが、機械学習全般の解説という点ではこれ以上コンパクトかつ端的にまとめられた書籍は今でも殆どないので貴重です。識別則・学習方法&評価方法と言った、機械学習以前のメタな基礎についても触れられています。


統計的学習の基礎 ―データマイニング・推論・予測―

統計的学習の基礎 ―データマイニング・推論・予測―

  • 作者: Trevor Hastie,Robert Tibshirani,Jerome Friedman,杉山将,井手剛,神嶌敏弘,栗田多喜夫,前田英作,井尻善久,岩田具治,金森敬文,兼村厚範,烏山昌幸,河原吉伸,木村昭悟,小西嘉典,酒井智弥,鈴木大慈,竹内一郎,玉木徹,出口大輔,冨岡亮太,波部斉,前田新一,持橋大地,山田誠
  • 出版社/メーカー: 共立出版
  • 発売日: 2014/06/25
  • メディア: 単行本
  • この商品を含むブログ (6件) を見る
これまたお馴染みの「カステラ本」ことこちらの鈍器です。内容については今更詳説することもないでしょう。機械学習に関わる大半の事項(ただしDeep Learningが隆盛を誇る前に出版されたため載っていない)を網羅していて、擬似コードとRによる実行結果を交えた解説が分かりやすい一冊です。面白いところだと、邦書もしくは邦訳書で研究者以外でも読める本ではあまり取り上げられることの多くない、VC次元の解説*1や行列分解手法の紹介、そして勾配ブースティング木などの説明がきちんとされているので、それだけでも持っておく価値はあるかと思います。ただし基本的には辞書代わりに、脇に置いておくのが正しい使い方でしょう。なお有名な話ですが英語版はPDFが版ごとに無料公開されていますので、英語でも構わないという人はそちらを読んだ方がお得です。


深層学習 (機械学習プロフェッショナルシリーズ)

深層学習 (機械学習プロフェッショナルシリーズ)

今を時めくDeep Learningの概要だけをコンパクトに学べるという点で、以前から推しているのがこちらの一冊。既に4年前の本なので「俺の考えた最強のネットワーク選手権」状態と化した現在の〇〇Net研究の最先端に追いつこうとするとこの本だけでは不十分かもしれませんが、実用レベルの基礎的なNNについて学ぶだけなら今でもこの本が端的かつコンパクトで最適だと思います。


scikit-learnとTensorFlowによる実践機械学習

scikit-learnとTensorFlowによる実践機械学習

あまり巷で話題に上っていない気がするんですが、個人的に素晴らしい名著だと思っているのがこちらのscikit-learnとTensorFlowによる機械学習の実践例を満載した一冊。もうタイトルからしてそのまんまですが、scikit-learnでカバーできるような一般的な機械学習の適用事例から、TensorFlowで取り組むべきDeep Learningの適用事例まで、それらの理論的・アルゴリズム的解説も織り交ぜながら実際のコードと実行例を付して解説していて、非常に分かりやすい本です。意外なところでは、TensorFlowによる強化学習の実装例や、通常のDNNでは顧みられることの少なくなった代わりに事前学習や異常検出などに使われるようになったautoencoderの最近の実装例などが載っていて、有用だと思います。また本書の全ての実行例がGitHub上で公開されていて、原著者もissuesで気軽にQ&Aに応じてくれている模様ですので、興味のある方は是非どうぞ。

追記

機械学習システム開発や統計分析を仕事にしたい人にオススメの書籍初級5冊&中級10冊+テーマ別9冊(2019年1月版) - 六本木で働くデータサイエンティストのブログ

「scikit-learnとTensorFlowによる実践機械学習」は公開されてるGitHub確認しつつ自分で写経しながらだとハイパー名著だと思う。本だけだとちょっと残念なところある

2019/01/11 00:05

というブコメをいただきました。


仕事ではじめる機械学習

仕事ではじめる機械学習

実務の現場で機械学習を手がけることの多い方なら、絶対に読むべきなのが以前書評記事で激賞したこちらの一冊。実際のビジネスの現場にありがちなシステム構成とそのビジネスニーズを踏まえた上でどのような機械学習システムを構築すべきか&いかにして構築するか、また学習データの収集とその方法、さらには実データに対する機械学習(もしくは機械学習を使わない)の適用事例や、そうして構築された機械学習システムの評価方法など、まさに「仕事で」機械学習を用いる上では必須の項目が満載で、機械学習エンジニアを目指す方なら必携です。


テーマ別9冊


ここでは初級向け5冊&中級向け10冊には入れなかったものの、個々のテーマごとに有用と思われる書籍をピンポイントで挙げていきます。勿論これまた僕個人の完全なる独断と偏見で選んだものですので、取り扱いにはご注意を。

上級向け

上級向けはありません。というか、僕自身が上級者でも何でもないのに上級向けの本を選ぶなんて恐れ多いことは出来ませんので、悪しからずご了承あれ。


ちなみに黄色い本ことPRMLを入れるかどうかは相変わらずかなり迷ったのですが、リストからは結局外しました。とは言え、最近だと生成ネットワークが注目を集めるにつれてグラフィカルモデルについて触れているPRML下巻が再び脚光を浴びたり、〇〇Netでもベイジアンが出てくるとPRMLベイズベイズした書き方に慣れていると読みやすいということもあったりするので、その重要性は変わらないと思います。その意味ではPRMLは「一度読んだ後に他の書籍で勉強してからもう一度戻ってくると気付かされることの多い本」なのかなと。

Deep Learning

深層学習

深層学習

  • 作者: Ian Goodfellow,Yoshua Bengio,Aaron Courville,岩澤有祐,鈴木雅大,中山浩太郎,松尾豊,味曽野雅史,黒滝紘生,保住純,野中尚輝,河野慎,冨山翔司,角田貴大
  • 出版社/メーカー: KADOKAWA
  • 発売日: 2018/03/07
  • メディア: 単行本
  • この商品を含むブログ (1件) を見る
Deep Learningについてある程度突っ込んだところまで、出来れば最近arXivで公開されるような論文も相応に読めるだけの前提知識を得られる本を何か一冊入れるべきかなということで、色々迷ったんですが最終的に取り上げることにしたのがこちら。実は第I部「応用数学機械学習の基礎」は結構な割合がはむかずさん本とオーバーラップするので、はむかずさん本を読んでいる人は読み飛ばしてもあまり問題はないです。2015年と4年前の本なので既にかなりの部分が陳腐化しつつあるものの、現代における〇〇Net系の論文の基礎となっている考え方や技法の多くがカバーされているので、非常に有益だと思います。ただし、他所の書評でも指摘されていましたがどちらかというと参考文献を辿って読みに行った方が良いパートも多いので、基本的には本書のみで完結した内容にはなっていないと思った方が良いです*2。ちなみにカステラ本同様英語版はPDFが全文GitHubで公開されているので、英語で問題ないという方はそちらを読んでも良いでしょう。

統計的因果推論

岩波データサイエンス Vol.3

岩波データサイエンス Vol.3

年々その重要性が広く知られつつある統計的因果推論について扱った、岩波DSシリーズの第3巻。バックドア基準と傾向スコアという因果推論の二大流派の解説に加えて、差分の差分法・操作変数法・回帰分断デザインと言ったそれら以外で主流となっている手法についての解説もある上に、傾向スコア補正については実際のRコードを付した実践例も載っていますので、非常に有用だと思います。

推薦システム(レコメンデーション)

推薦システム: 統計的機械学習の理論と実践

推薦システム: 統計的機械学習の理論と実践

機械学習でビジネス向けのシステムを作るというと大半の人が分類器や回帰器を想像するせいか、特に最近はDeep Learning一辺倒という側面が強いように思います。しかしながら、例えばレコメンデーション(推薦)では行列分解のような分類や回帰とはまた異なる手法が用いられることが多いのですが、それらについて特に実践面から詳説した書籍というのは意外と少ない印象でした。そんなところにやってきたのがこちらの一冊。初歩的な協調フィルタリングや行列分解系の諸手法に加え、多腕バンディットとその応用や、回帰ベース潜在因子モデルやLDAを拡張したfLDAと言った、分類や回帰ばかりやっているとあまり馴染みがなかったりするモデルとそれらの実データへの適用事例がこれでもかと盛り込まれていて、非常に読み応えがあります。実は訳者のお一人の大浦さんからご恵贈いただいたのですが、全く書評など書いてこないまま今に至ってしまい、大変失礼いたしましたm(_ _)m ただ、ご恵贈いただいたということを差し引いても素晴らしい本だと思います。

ベイズ統計

予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで (KS理工学専門書)

予測にいかす統計モデリングの基本―ベイズ統計入門から応用まで (KS理工学専門書)

色々迷ったんですが、実践的という意味で尚且つある程度一般的なベイジアンモデリングの理論面の話をしている書籍となると、こちらの樋口先生の本かなと。事後分布やグラフィカルモデルの考え方から入り、さらに状態空間モデル・粒子フィルタと進んでいくので、特にベイジアンモデリングがその威力を発揮する時系列モデリングと絡めて学びたいという方にお薦めです。


ベイズ統計の理論と方法

ベイズ統計の理論と方法

そしてベイズ統計と言ったらこの本を挙げないわけには参りません。数学が大の苦手な人間殺しのこちらの一冊ですorz 非常に数式の多い本で読破するにはかなりの「数学的」体力が必要ですが、統計学機械学習問わずモデリングにおいて問題になる汎化誤差についての理論的な解説や、その他機械学習の理論研究でも話題になるような項目の解説が多く、実はベイズ統計というよりは機械学習を学びたい人が読んでも大いに参考になるのではないかと思っています。

時系列

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

経済・ファイナンスデータの計量時系列分析 (統計ライブラリー)

このブログではお馴染みの沖本本です。僕がブログで取り上げた頃から6年が経ち、内生変数だけから成る自己回帰モデル一辺倒という時系列分析が行われることもだいぶ少なくなってきたように思いますが、Hamiltonの大著の邦訳書が入手困難な現在では本書は依然として計量時系列分析の重要な入門書と言って良いでしょう。


そして時系列でもう一点挙げたいのが、こちら。RとStanでカルマンフィルタ・MCMC・粒子フィルタを実装しながら、様々なタイプの時系列データの分析を解説してくれる超実践的かつ現場の実装屋にも有難い一冊です。またベイジアンモデリングに関するパートを多く含む都合上、ベイズ統計そのものについての解説も多く載っていますので、純粋に時系列データ分析にだけ興味があるがベイズについても学びたいという方はこちらを優先的に読んでも良いかと思います。

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

ネットワーク分析 第2版 (Rで学ぶデータサイエンス)

ネットワーク分析 第2版 (Rで学ぶデータサイエンス)

グラフ・ネットワーク分析の理論書は結構世の中にはあるんですが、実際にコードを書いて実践している書籍となると意外と少ないもので、こちらはそんな貴重な一冊です。以前の書評記事でも賞賛しましたが、第2版になってからは最新のRパッケージの構成も踏まえた、より踏み込んだグラフ・ネットワーク分析の実践例も多数取り上げられており、ユーザーベースデータのような「繋がり」を含んだデータの分析が重要度を増している現在では極めて有益な解説書です。

データベース・SQL

ビッグデータ分析・活用のためのSQLレシピ

ビッグデータ分析・活用のためのSQLレシピ

以前ブログ記事で激賞した黒魔術大全以外にお薦めするべきものが見当たりません(笑)。異なる方言を持つ各種DBごとに、データ分析するような場面で頻出のクエリの実践例から「SQLでアソシエーション分析・協調フィルタリング」みたいなクレイジーな試みまで、何でも載っています。


最後に


「テーマ別」が9冊にもなってしまって初級5冊&中級10冊と分けた意味があったのか感がありますが、それくらい現代におけるデータ分析というものにあまりにも広汎に渡る領域をカバーする必要が出てきてしまっているのだとご理解いただければ有難いです。。。

*1:ChristininiのSVM赤本でしか他では見たことがない

*2:特に後半は文献を参照しているだけの箇所も多い