本ページはアフィリエイトプログラムによる収益を得ています。

これまで読んだ機械学習関連の本をまとめていきます。理論系・実装系・ファイナンス系・読み物系と分類してまとめることにします。

理論系


瀧、『これならわかる深層学習入門』、講談社

元素粒子論を研究していた瀧さんが分野転向して書いた深層学習の教科書。素粒子論の人は割とこの本を読んだのではなかろうか。2018年くらいに読んだので、詳しいことは覚えてないが、読みやすかった印象はある。

斎藤、『ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装』、オライリージャパン

機械学習や深層学習の実装系の本を読む前は「一回Deep Learningをいじったことがある人が、理論的な面を知るのにいい本なのかな?あまりコードがなかったので、瀧さんの本の方が詳しかったような気がした。」という感想だった。しかし、実装系の本や簡単な入門書を何冊か読んだ結果、素晴らしい本だと認識できた。

我妻、『Pythonで動かして学ぶ! あたらしい数学の教科書 機械学習・深層学習に必要な基礎知識』、翔泳社

微妙な本だった。機械学習をしたいならこの本で扱ってる数学は理解している必要があるので、それをpythonで確認したからといって理解が深まるとは思えなかった。

富谷、『これならわかる機械学習入門』、講談社

読んだ結果、個人的にはほぼ得るものがない本だった。前半部分は大学初学年レベルの微積と線型代数、中盤部分は機械学習の説明、後半部分がPythonを用いて論文の結果の再現という内容です。そのため、読者層としては、大学の3回生くらいの物理までを少しかじったことがあり、Pythonも嗜んでいるが、なぜか大学初年度レベルの微積と線型代数はさぼっていたため、機械学習で用いられるレベルの算数を扱えない人、と感じたので、自分には不要だった。
物理要素がなくてもいいなら、『Pythonで動かして学ぶ!あたらしい機械学習の教科書』という本の方がページ数が2倍もある分、理解しやすいのではないかと思った。

斎藤、『ゼロから作るDeep Learning ❷ ―自然言語処理編』、オライリージャパン

ゼロから作るDeep Learningシリーズの自然言語処理に関する本。実装系の本と違い、自分でコードを書いて、自然言語処理の原理を説明していて分かりやすかった。自然言語処理はCPUでやるとめちゃくちゃ時間がかかるんだけど、出力されたデータがgithubにあったのもよかった。

Goodfellow・Bengio・Courville、『Deep Learning』、The MIT Press

深層学習の有名な本。日本語訳もある。700ページと分厚い本なんだけど、全然数式が出なくて、ただただ長い文章が続く。そのため、事前に実装した経験や別の本で深層学習について読んだことがないとこの本の内容の半分も理解できないんじゃないかと思った。なぜこの本は高評価なんだろうかと不思議に思った。

杉山、『本質を捉えたデータ分析のための分析モデル入門 統計モデル、深層学習、強化学習等 用途・特徴から原理まで一気通貫!』、ソシム

Amazonレビューでは評価高いけど、表紙のレイアウト的に超初心者向きっぽい印象だったので、あまり期待せずに読んだ。読んだ結果、初心者向けの本としては、内容豊富で説明も可能な限り丁寧に書かれており、期待を大きく裏切るいい本だった。データ分析で用いられる、機械学習手法や従来からある手法(回帰分析など)を網羅されていたのが個人的には一番よかった。一つ残念だと感じた点は、初心者向きの本であるため各トピックについて詳しい説明や発展的な話題が書かれていないのだが、それを補うための参考書リストがなかったこと。できれば、次に読むのにおすすめの本があれば巻末にまとめておいてほしかった。

斎藤、『ゼロから作るDeep Learning ❹ ―強化学習編』、オライリージャパン

ゼロから作るDeep Learning ❸ ―フレームワーク編はPytorchのようなフレームワークを作ろうということなので、一旦飛ばして、先に強化学習をやることにした。他の強化学習の本を読んだりしてて、だいぶ放置してしまっていた。
まだ強化学習を自分の中で消化しきれてないので、現時点での評価は割と当てにならないかもしれないが、あまり分かりやすい本とは感じなかった。理由を挙げると
  • ニューラルネットが登場する前半部分は他の強化学習の本に比べて分かりやすく書かれている。しかし、後半部分がかなり駆け足。
  • 「ゼロから作る」とタイトルにあるけど、他のシリーズ本に比べると「作る」というほどコードの説明をしてない。
  • 第3巻で作成したDeZeroというパッケージが用いられている。PytorchやTensorflowの自作版だけど、普通に組むならPytorchなどの広く普及している方を使うはずなので、本ではPytorchなどを優先して欲しかった。一応、Pytorchで書かれたコードはGithubで公開されている。
  • gymというパッケージを用いているけど、それを動かすためにはPython3.5くらいの環境にしないといけない。
という感じでした。

内山、『機械学習のための確率過程入門 確率微分方程式からベイズモデル,拡散モデルまで』、オーム社

挫折。生成AIで登場する拡散モデルも扱っているとのことなので気になって読み始めてみた。第1刷なので誤植がある程度あることは予想してたけど、この本だけで正しい表式を導くのがほぼ無理になってきたので、68ページまで読み進めて挫折。類書などから引用したであろう数式が多数あるが、前提条件が書かれていなかったり、表式自体が間違っていることがあるため、正しい表式を他書や論文から探し出すのがとても大変だった。
Amazonレビューで低評価レビューが2件あるが、個人的にはこれらの低評価レビューに同意である。入門書と銘打ってはいるが、数式が羅列されてるだけで説明が乏しいので、この書籍の内容である確率過程や確率微分方程式などの前提知識がないと読み解くのは難しいのではないかと思う。

石井・上田・前田・村瀬、『わかりやすいパターン認識 第2版』、オーム社

機械学習か数学かどっちに分類すべきか微妙だけど、機械学習本に分類。
パターン認識で有名な本である「パターン認識と機械学習」が難しいということなので、類書で評判のいい本として読み始めた。数式の変形は一行一行丁寧に行われているので、数式で躓くことはないものの、説明が分かりにくかったり、話題が唐突に変わったり、章や節の繋がりが見えなかったりとタイトルにあるほど分かりやすいと思えなかった。他の類書を読んだことないので、そういう本と比較するば、わかりやすい部類の本なのかもしれない。

石井・上田、『続・わかりやすいパターン認識 教師なし学習入門』、オーム社

わかりやすいパターン認識の続編。類書を読んだことないので、あてにならない感想かもしれないけど、正直分かりにくかった。数式変形はとても丁寧で、計算を追うために時間がかかるということはないんだけど、唐突に話題が変わったり、説明がまどろっこしくて、消化しきれなかった。11章の後半からの難易度変化もやばかった。

実装系


Muller・Guido、『Pythonではじめる機械学習 scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』、オライリージャパン

機械学習の仕組みはあまり説明してないけど、どういうコマンド打っていけばいいかとか、どういうモデルを使えばいいかってのがいろいろ説明されてる。
章ごとにコードが分かれており、章の最初の方で導入した定義諸々を引き継いでいくので、章の途中から本を再開した場合、過去のコードを探さないといけなくて割と面倒だった。どこかに書いてくれてればいいのに。
他の類書をまだ読んだことないので、この本がどれほど分かりやすいのかよく分からないけど、データをダウンロードすることが少なかったので、その辺は初学者向きの本としてよかった。こういう実装系の本を一通り読むと、確かにゼロから作るDeep Learningシリーズがいい本だというのが分かった。

新納、『PyTorch自然言語処理プログラミング word2vec/LSTM/seq2seq/BERTで日本語テキスト解析!』、インプレス

3章の途中で読むの止めてしまった。まえがきに書いてあるように、この著者の研究室に入ってくる4年生が事前に知っておいて欲しいと思うことを本としてまとめているんだけど、内容というか書き方的にこの本だけで完結するようになってないように感じた。word2vec, LSTM, seq2seq, BERTを取り扱ってるけど、それらの仕組みの説明は不十分だし、実装の方もパッケージを読み込むだけという感じなので、やはり独学向けの本ではないと思った。Amazonレビューを眺める感じ、この著者の本はだいたいこんな感じらしいので、今後は読むのを避けようと思う。
字が大きくて見やすいのはいいんだけど、コードの中の「.(ピリオド)」と「,(コンマ)」が区別付きにくくのが残念。

杜、『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』、翔泳社

2022/10/27読み始め、3/10読了。ずっと放置してて、やっと読み終わった。PyTorchの入門書。もともとamazonのkindleでしか売られていなかったものを書籍化したものらしい。
PyTorchをまったく知らない人がとりあえず動く深層学習の模型のコードを知るという感じの本。模型の説明や原理は数ページであっさり、コードの書き方に関しても最初の数章の説明以外は説明ほぼなしでコードが書かれているだけって感じだった。最初の数章はまとまっているので、インターネットの入門記事より役に経ったけど、後半の具体例になるほどネットの記事で十分だと思えた。確かにレビューにあるように、公式チュートリアル読む人にはいらない本というのは的を得ていた。

Tunstall・von Werra・Wolf著者、『機械学習エンジニアのためのTransformers 最先端の自然言語処理ライブラリによるモデル開発』、オライリージャパン

今流行りのChatGPTにも使われているTransformersという技術とHuggingface Transformersという「自然言語理解」と「自然言語生成」の最先端の汎用アーキテクチャに関する本。
Huggingfaceからモデルをダウンロードするだけで、特に学習させることもなく翻訳や文章作成などができて凄い(もちろん学習させないと特定のタスクに特化させたりはできないけど)。この本を読むと、翻訳・レビュー評価・応答チャットなどの個別のタスクができるのはまだ分かるけど、ChatGPTのような汎用なAIがそんなにも早くできるとは信じられない。ChatGPT凄すぎない?

杜、『現場で使える!PyTorch開発入門 深層学習モデルの作成とアプリケーションへの実装』、翔泳社

ずっと放置してて、やっと読み終わった。PyTorchの入門書。もともとamazonのkindleでしか売られていなかったものを書籍化したものらしい。
PyTorchをまったく知らない人がとりあえず動く深層学習の模型のコードを知るという感じの本。模型の説明や原理は数ページであっさり、コードの書き方に関しても最初の数章の説明以外は説明ほぼなしでコードが書かれているだけって感じだった。最初の数章はまとまっているので、インターネットの入門記事より役に経ったけど、後半の具体例になるほどネットの記事で十分だと思えた。確かにレビューにあるように、公式チュートリアル読む人にはいらない本というのは的を得ていた。

伊藤、『「強化学習」を学びたい人が最初に読む本』、日経BP

400ページあるけど、Pythonや機械学習の基礎的な部分を除くと250ページくらいだったので、駆け足で読むことができた。
タイトルにある「最初に読む本」というのは間違ってなかった。機械学習の基礎から始まり、それから強化学習の説明に入り、コードを動かして、具体的に動作を確認するという構成。数式などの難しい説明は省略して、イメージを掴めるように配慮されていた。コード部分に関しては、一から実装するという感じではなく、既に著者が組んでいるコードの動作を確認していくという感じだった。
イメージを掴むのにいい本だったが、やはり自分で組もうとすると、この本だけでは厳しい感じがしたので、もう少し上級な本への架け橋的な本だと感じた。

Stevens・Antiga・Viehmann、『PyTorch実践入門 ディープラーニングの基礎から実装へ』、マイナビ出版

3部構成で第一部がPytorchの基本とCNNの基本、第二部が実践的な問題を解く、第三部がデプロイの方法という内容だった。以前読んだPyTorchの入門書にはテンソルのメモリの使い方に関して記述はなかったが、この本の第一部にはそこそこのページを使って書かれていた。CNNに関しても丁寧に書かれていたので、他の薄めの和書に比べて丁寧に書かれていると思った。しかし、第二部はコードを自分で実行するのにGPUと220GBの空き容量が必要ということで、かなりハードルが高かった。自分はコードを実行することは断念し、文章を読むだけにした。評価指標に関する記述は第二部にしかないので、第一部だけ読めば十分ではないのは残念な点だった。タイポやコードの字下げが間違っている箇所が多数あったのもマイナスだった。

石田、『Pythonで学ぶ テキストマイニング入門』、シーアンドアール研究所

テキストマイニングの基本的なことが知りたかったので読んだ。もともとRで書かれてた本がベースにあり、それをPythonに書き直し、Huggingface TransformersなどのPython特有のことも付け加わっていた。類書があまりないので、基礎的なことから分かりやすく書かれているこの本はとてもよかった。

Foster、『Generative Deep Learning Teaching Machines to Paint, Write, Compose, and Play』、Oreilly & Associates Inc

旧版は日本語訳あるけど、旧版には拡散モデルについて記載がないので、第二版である英語版を読んだ。生成モデルの概念を説明し、その後Kerasで書かれたコードをもとに実装の仕方を説明している感じで、生成モデルの理論の本というよりコードを書きながら学ぶタイプの本。GANやVAEから始まり、LSTMや拡散モデル、TransformerなどやGPTやWorldモデルなどの最先端の話題まで解説しているので、2024年2月時点で読める本の中では一番扱ってる話題が多い。
自分で実装しようと思うと、この本やこの本で引用されているコードを使うよりもネットでPytorchのコードを探したほうがよさそうだと思った。

下山・松田・三木、『Python 実践データ分析 100本ノック 第2版』、秀和システム

新しいパッケージをインストールしないといけないところとか計算が重そうなところは流し読みした。
タイトルに100本ノックとあったので、演習問題的な本かと思ってたら違った。データ加工、機械学習、最適化問題、画像処理/言語処理の各テーマを100本のノックになるように割り振っていた。前提知識として、データ加工に関してはPythonの基本的な知識、それ以降に関してはそれに加えて各テーマの基礎的な知識が必要だと感じた。データ加工に関しては、実務で扱う汚いデータの加工方法を説明しており、役に立つと思った。しかし、Amazonで高評価ではあるものの、以下の点でいい本ではないと個人的には思った。
  • 本に書かれているコードにインデントが一切ないため、本を参照しながらコードを写すのが困難。サンプルコードと粗い画質のコードがあるので、正しいコードは分かる。
  • コードの説明が少ないため、どうしてそのようなコードを書いたかが分からない。裏を返すと、コードを見ただけで何をやっているか把握できない人には向いていない。
  • データ加工以外の部分に関しては、そのテーマに関する前提知識がないと難しい。前提知識があることを想定するならば、この本の内容をすでに知っている可能性が高く、この本を改めて読むまでもない。

ファイナンス系


ロペス・デ・プラド、『アセットマネージャーのためのファイナンス機械学習』、きんざい

読んだというより、一通り眺めたという感じなので内容はあんまり理解してない。
経済学者は三度儲けるという話があったけど、まさに三度目(自分の研究を本にする)という内容。教科書というよりかは、自分の論文のレビューというかコピペみたいな感じで、本の至る所で著者の論文が引用されてる。Pythonコードも載ってるけど、断片的過ぎるし、そもそもそのコード自体も著者の論文に書かれてるわけで。。。
なんで出版したの?とわざわざこれ読む必要ある?っていう疑問しかわかない。あと、Wordで製本されてるっぽくて、数式がところどころ斜体であるべきところが斜体になっていなくて気になった。

richmanbtc、『日給300万円のSS級トレーダーが明かすbotterのリアル』、幻冬舎

1ページあたりの文字数少な目・コードが書かれてるページがある、ということで250ページあったけど、すぐに読み終えることできた。
縦書きの本なんだけど、コードが含まれる章になると、横書きに変わり、読み方が右ページ→左ページの順ではなくなり、左ページ→右ページの順になるので読みづらかった。さらに見開きに収まりきらないコードの場合、ページと逆向きに見ないといけなかったのも気になった。
機械学習を使って、ビットコインを取引するbotを作って、めっちゃ金を稼いでいる人の自伝のような本。この本を読めば、同じことができるようになるとは限らないが最低限の足掛かりは提示されてた。
これってゼロサムゲームやってると思うんだけど、どうなんだろ?

和泉・坂地・松島、『Pythonによる金融テキストマイニング』、朝倉書店

朝倉書店から刊行されているFinTechライブラリーというシリーズの一冊。このシリーズの本はタイトルに金融とあって、内容も面白そうなものが多いんだけど、Amazonのレビューを見るとかなり評判が悪い。読んでみて理由が分かった。
まず、本の体裁。ページ数としては200ページないくらいの短い本なんだけど、コードのところだけ、文字が少し小さくなっており視認性が悪い。さらに数ページにまたぐ長いコードがあるにも関わらず、公開されていない。プログラミングすることを想定してる本でこれは厳しい。この本以外の朝倉書店の本全般について言えることだと思う。
肝心なのはこの本の内容。著者たちは、もともと工学系研究室の出身者でその後金融の方にも手を出し、研究領域を広げてきたみたいで、巻末の文献リストを見ると、英語論文はないけど、日本語の論文かプロシーディングはあった。和泉研究室のホームページにも、金融ツールを公開するくらいに金融の知識はあると思われるものの、この本だけは、テキストマイニングの専門家が入門書の入門部分に金融で使われているデータをとりあえず入れてみただけっていう感じで、「金融」とタイトルに付けるほど金融特有のことが扱われていなかった。全ページ166ページで、Pythonなどのインストールや深層学習のまとめを除くと、113ページ。この本で扱いたいのはテキストマイニングであるにも関わらず、それと関係ない深層学習の説明が入ってるのは謎。CNNやRNN、LSTMなどの説明やコードが書かれてるんだけど、あまりにも駆け足過ぎて、知ってる人は既に知ってるので読まなくてもいいし、知らない人なら全く分からないという内容だと思った。データとして金融データを使うせいで、損失関数は下がってるけど、正答率は全然上がらないということになってるのも初学者向きではないと思った。
その113ページからさらに導入部分の1章と展望の最終章を除くと78ページ。数ページ埋めてるコードやコードの説明(import numpy as npなどに関してもnumpyを使うためにインストールした、的なコメントが入る)などもあって、テキストマイニングの説明に割いているページ数があまりにも少ない。あと、Javaを使うなら先に書いておいて欲しいとも思った。
テキストマイニングをやりたいなら、たぶん別の本を読む方が絶対にいいと思った。どの本がいいかは知らないけど。

読み物系


日経ビッグデータ、『グーグルに学ぶディープラーニング』、日経BP社

5年くらい前に読んだので、あまり内容を覚えていない。AlphaGoとか素粒子の人が機械学習に分野転向し始めてたので、ディープラーニングが気になったので眺めてみた本。