よく周囲から、どの書籍を読んで勉強したのかを聞かれることが多いので、少しまとめてみました。
個々人のバックグラウンドの違いにより、書籍への入りやすさは多少異なると思いますが、読みやすかった本や勉強になった本を紹介します。
自分としても勉強中の身ですので、良いなと思った書籍があれば、適当に随時追加していこうかと思います。
統計学
数理統計学(講座 数学の考え方)
私が大学・大学院で勉強していた本です。
統計学の書籍の中では、個人的には難しい部類に入ると思います。
測度論の勉強が済んでいる前提で始まりますので、そのあたりの知識が不足している場合は、ルベーグ積分の書籍を読む必要があると思います。
私は数学科で、勉強していた環境としては、どちらかといえば、現場的なデータ分析というよりは、確率論や数理統計学の純粋な理論を専攻する傾向が強かったので、測度論なども授業で学んだ後に、上記書籍に取り組みました。
確率論(講座 数学の考え方)
私が大学・大学院で勉強していた本、その2です。
先ほどにも記したように、理論専攻の環境であったため、確率論や確率過程の知識も身につけておく必要がある場合が多々ありました。
その際に参考にしていて、とても分かりやすかった書籍です。
数理統計学も確率空間の上に成り立ちますので、確率論のところで分からないところがあれば、こちらも参照していました。
数理統計学(数学シリーズ)
私が大学・大学院で勉強していた本、その3です。
こちらの方が、先に紹介した「数理統計学(数学の考え方)」よりも若干レベルが抑えられている印象で、「数理統計学(数学の考え方)」で分からければ、こちらを参照するといった使い方をしていました。
Rによるデータサイエンス データ解析の基礎から最新手法まで
私が大学・大学院で勉強していた本、その4です。
大学・大学院シリーズは一旦これで終わります笑
本当は他にも教科書的に使っていた本がもっとあるのですが、そもそも洋書であったり、今の仕事で必要なものかと言われると、そうでもない部分もありますので、最低限の書籍に絞りました。
純粋な理論を専攻する環境ではありましたが、現場でよく使われるデータ分析手法の勉強も行っており、その時の教科書的な書籍です。
主成分分析、クラスター分析、回帰分析、判別分析、ランダムフォレスト、時系列分析といったような、主要な統計的手法について、理論の解説とRの実装コード例が記されています。
これは今でも会社に置いてあり、辞書的に使っています。
改訂版 日本統計学会公式認定 統計検定2級対応 統計学基礎
統計検定2級対応の公式教科書です。
確率などの話から、区間推定や仮設検定、回帰分析や分散分析までの話を、割と導出もコンパクトにまとめられていて分かりやすいと思います。
上記の「数理統計学(数学の考え方)」「数理統計学(数学シリーズ)」で難しいようであれば、まずはこちらを読んでみるのが良いでしょう。
日本統計学会公式認定 統計検定1級対応 統計学
統計検定1級対応の公式教科書です。
2級よりもカバー範囲が広いため、区間推定や仮説検定などの導出はほとんど省略されています。その代わりに2級では登場しない、さらに進んだ話の範囲の解説が、やはりコンパクトにまとめられています。
統計モデリング
データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC(確率と情報の科学)
通称「みどりぼん」です。
ベイズ統計モデルへの入門としては定番の書籍です。
線形モデルから階層ベイズモデルまでの発展について解説されています。
問題を設定した上で、どのように解析していくかといった流れで解説が進み、またRの実装コード例も記されていますので、ユーザー目線で分かりやすいと思います。
個人的な見解としては、ベイズ統計モデルは、数式を中心に話を発展させていくため、抽象的な状態のまま話が進むことが多いように思います。
その結果、なんだかよくわからないみたいな状態に陥りやすい部分があるかと思いますので、実際にどのような値が出力されるのかを動かして確認しながら勉強を進める方が理解がしやすいと思います。
岩波データサイエンス Vol.1
統計モデリングにおいて有名なシリーズです。
シリーズの特徴として特集記事のような構成をしています。
研究動向であったり、事例や方法論の紹介に近い書き方で、丁寧に解説する書籍ではないので、気になる内容があれば、自分で調べていくといった読み方をする方が良いと思います。
Vol.1では、階層ベイズモデルに関するソフトウェアのまとめであったり、統計モデリングにおける最先端の研究などが紹介されています。
ベイズ推論による機械学習入門
ベイズ的な手法をまとめられた、教科書的な書籍です。
確率分布の話から、統計モデルの組み方、MCMCおよび変分ベイズによる推定まで、解説されています。
ただし、実装などについては言及されていないので、その辺りは別の書籍で補う必要があると思います。
StanとRでベイズ統計モデリング
統計モデリングの書籍です。
こちらは、具体的な問題とStanによるその統計モデルの実装例をコード付きで多く紹介されています。
理論中心の書籍ではどうしても抽象的なまま話が進みますが、こちらの書籍では、具体的な問題も提示しながら、実際のコードも動かして学習するので理解しやすく、おすすめの書籍です。
自然言語処理
言語処理における機械学習入門
自然言語処理として有名なシリーズです。
その中でもこの書籍では、自然言語処理に扱われる機械学習の手法について、入門的に広く紹介されています。
機械学習も自然言語処理も初めてという人には、とても向いている内容だと思います。
自然言語ではあるのですが、アルゴリズムに関しては数学の書籍のように解説されていますので、数学が苦手な方には少し読みづらいかもしれません。
ウェブデータの機械学習(機械学習プロフェッショナルシリーズ)
機械学習プロフェッショナルシリーズから。
なぜ自然言語処理の勉強の上で、この書籍を取り上げたのかというと、「第4章 意味表現」において、Word2Vecの解説がこちらが参考になったためです。
他にも、評判分類やランク学習など、自然言語処理と精通するタスクが多いです。
書籍のタイトル以上に思ったよりも自然言語処理向けの内容でしたので、個人的におすすめとして紹介させていただきました。
深層学習による自然言語処理(機械学習プロフェッショナルシリーズ)
機械学習プロフェッショナルシリーズからもう1冊。
こちらは自然言語処理をテーマとして、自然言語処理に対する深層学習の活用について、基本的なニューラルネットワークを使った事例から最先端の研究まで、網羅的に記されています。
特に系列変換モデル(Sequence to Sequence Model、End-to-end)や注意機構(Attention)については、自然言語処理では機械翻訳のタスクで効果を発揮したモデルであり、モデル構造について詳しく解説されています。
基本的なニューラルネットワークから数式を駆使して解説されていますので、数式が苦手な人には少しつらいかもしれませんが、数式で理解していきたい人には、大変読みやすいと思います。
コード例などはありませんが、アルゴリズム図などは細かく挿入されてあって、そこからでもコードに起こすことができます。
以上、自然言語処理で勉強した書籍となりましたが、今回はトピックモデルに関する書籍は紹介できていません。
恐らく、自然言語処理シリーズのトピックモデルの書籍や、岩波データサイエンスシリーズのVol.2、機械学習プロフェッショナルシリーズのトピックモデルが該当すると思いますが、私はまだトピックモデルについては、詳しく勉強できていませんので、触れることができませんでした。
いずれまたやらなければならなそうな感じはしますので、その際に勉強して、ここに追記することにします。
時系列分析
時系列解析入門
当時、統計数理研究所の所長であった北川先生の書籍です。
さらに前に、「時系列解析プログラミング」というFORTRANコード付きの北川先生の書籍があり、それにモンテカルロ・フィルタの章が加わり、代わりにFORTRANのコードが除かれた書籍となるようです。
時系列解析の書籍ですが、最小二乗法やAICなどの統計学の基本的な内容から始まり、後半にARやARIMAなどの古典的モデル、状態空間モデルと内容が進んでいきます。
カルマンフィルタや粒子フィルタなどの解説が参考になりますが、読み進めるためにはちゃんとした数学的な知識が必要だと思います。
経済・ファイナンスデータの計量時系列分析(統計ライブラリー)
通称「沖本本」です。
時系列解析の書籍といえば、よく挙げられる書籍です。
といっても、個人的にはやはりタイトル通り、計量経済学の分野に特化している印象があります。
VARモデル、グレンジャー因果、インパルス応答、単位根過程、隠れマルコフモデルといった内容が解説されています。
前提とする数学や統計学の知識はそれなりに必要ですが、比較的わかりやすいと思います。
むしろ計量経済学の知識の方があると読みやすいのかもしれない?
また、時系列データを扱う時に注意する点などにも詳しく書かれている印象です。
岩波データサイエンス Vol.6
状態空間モデルを中心とした時系列解析の手法と、応用分野について紹介されています。
どちらかと言えば実用例の紹介が中心なので、時系列分析を仕事で扱うことがある人は、読み物として読んでも参考になると思います。
基礎からわかる時系列分析―Rで実践するカルマンフィルタ・MCMC・粒子フィルタ―
状態空間モデルから話が始まります。
パラメータの推定として、 MCMCなどのサンプリング系、カルマンフィルタなどのフィルタ系がそれぞれ解説されています。
サブタイトルの通り、Rによるコード例も記載されていて、コメントも多く記載されているので、分かりやすいと思います。
時系列分析と状態空間モデルの基礎: RとStanで学ぶ理論と実装
時系列分析について詳しい解説が色々と紹介されているサイト Logics of Blue の管理人が著者の書籍です。
この書籍のサポートページもあり、こちらを見ると書籍の内容について把握できると思います。
時系列分析の古典的なモデルの導出から始まって、状態空間モデルと内容が進みます。
状態空間モデルの各モデルが、古典的なモデルのどれに対応するかなども解説されています。
深層学習
ゼロから作るDeep Learning ーPythonで学ぶディープラーニングの理論と実装
深層学習の書籍といえばの定番な書籍です。
基本的なニューラルネットワークさえ理解できれば、あとは他の再帰的ニューラルネットワークや畳み込みニューラルネットワークなどはネットワーク構造の応用ですので、そこさえ抑えておけば、あとはネット上の情報や論文からでも十分吸収できるようになります。
その仕組みを理解する上では、この書籍がとても参考になります。
どのようにネットワークの計算がされていき、重みが更新されるのかを、実際に手を動かしながら計算していきますので、理解に繋がりやすいです。
深層学習(機械学習プロフェッショナルシリーズ)
「ゼロから作るDeep Learning」と内容はだいぶ被りますが、こちらもまとまっていて参考になります。
また、「ゼロから作るDeep Learning」では、再帰的ニューラルネットワークの詳しい説明はありませんが、こちらの書籍では1章まるごと使って再帰的ニューラルネットワークの説明がありますので、こちらで知識を補うのもありだと思います。
深層学習に限った話ではありませんが、実際に手を動かして作ったり動かしてみることが重要だと思いますので、この書籍で各ネットワークの理論を学びつつ、ネットの情報などを参考にしながら実際に作ってみて理解を進めていくと良いと思います。
また、深層学習の勉強に関して個人的に思うのですが、深層学習は書籍よりも実装例を見る方が勉強になります。
結局は基本的なニューラルネットワークが学習していく仕組みを理解してしまえば、あとは問題に対するネットワークの組み方次第なところが大きいです。
上記の書籍らである程度仕組みを理解したあとは、実際に論文や実装例などをどんどん見て、問題に対してどのようなネットワークを組んで解いているのかといったところを吸収していく方が、自分がネットワークを組む時の組み方に幅が広がります。
なので、深層学習に関しては、「ゼロから作るDeep Learning」か「深層学習 (機械学習プロフェッショナルシリーズ)」のどちらかを読んだあとは、実際にどんどんモデルを作っていくことをおすすめします。
強化学習
強くなるロボティックゲームプレーヤーの作り方
基本的な強化学習の知識に関しては、上記の書籍が参考になりました。
擬似コードやプログラムコードが記載されているので、すぐに実装を試すことができます。
コードはOctaveという数値計算用言語が使われていますが、それ以外のプログラミング言語を用いる人でもアルゴリズムの参考にすると良いと思います。
これからの強化学習
強化学習の書籍はあまり数は多くありませんが、こちらの書籍は割と最近に出てきたものになります。
強化学習の概要に加えて、応用例などが記載されています。
最新のアルゴリズムに関しても、DQNやDoubleDQNなどの概要が記されています。
擬似コードはありませんので、実装を試すというよりは、強化学習の全体的な外観を掴むのに向いている本だと思います。
速習 強化学習: 基礎理論とアルゴリズム
「強くなるロボティックゲームプレーヤーの作り方」、「これからの強化学習」については、私が実際に読みながら勉強した書籍でしたので、紹介させていただきましたが、これから強化学習を勉強するという方であれば、この1冊で十分かもしれません。
歴史的に強化学習の発展を追いながら、同時にアルゴリズムも記載されていますので、実装を試しながら進めることができると思います。
最後の方では、最新のアルゴリズムとして、DQNやDoubleDQN、DuelingDQNなどのDQNの改良、A3Cまで、簡単ではありますが、概要が記載されています。
強化学習系の最新のアルゴリズムの擬似コードは、この書籍や「これからの強化学習」にも記載はありませんが、こういったものは論文に記載されていますので、直接論文を参照しましょう。
コメント