現役データサイエンティストが機械学習初学者におすすめする本5選
こんにちは。株式会社D4cプレミアムでデータサイエンティストをしている、新卒4年目社員の元村です。
以前私が執筆した「現役データサイエンティストが統計学初学者におすすめする本5選」に引き続き、書籍を紹介する記事となります。今回のテーマは機械学習です。
データサイエンスの知識を勉強していく中で、機械学習に関する勉強は避けては通れません。機械学習の実務では、「機械学習ロジックのメリット・デメリットを踏まえた上で、実務の現状に適した分析手法を検討し、手を動かして構築する」こと、そして「施策に繋げていくために、得られた結果を正しく解釈する」ことが求められるため、機械学習を勉強する際は “理論” と “実装” の両輪をバランスよく学習していくことが重要になります。しかしながら理論に関する書籍は、初学者にとって難しいものが多いです。また、実装に関する書籍は「機械学習ライブラリの使い方」を趣旨としたものが多く、「機械学習の本質を理解して実装する」という意味では適していないように感じます(もちろん実務においては、機械学習ライブラリの使い方も大事です)。
そこで今回は、機械学習初学者でも、理論の基礎固めから実務への適用まで勉強していける書籍について、5冊ピックアップしました。1冊目に紹介する書籍をまずは勉強していただき、内容に応じて2~5冊目の書籍に進んでいただければと思います。
この記事のターゲット
機械学習に興味があり、勉強を始めたい方
機械学習の手法について、ロジックから理解したい方
機械学習の手法を、現場で活用したい方
執筆者について
某国立大学にて情報科学の修士号を取得したのち、D4cプレミアムへ入社いたしました。情報科卒ではあるものの、数学系の研究室に所属し、偏微分方程式論を専攻しておりました。そのため、数学関連の講義は学生時代に一通り履修しております。また、グループ会社であるD4cアカデミーの講師として、初学者向けに統計学や機械学習の内容について教えております。
1.「機械学習のエッセンス」:機械学習の基礎固めに!
冒頭でも述べた通り機械学習を勉強していく上では、理論と実装の両方が大事です。そのため、以下の2条件を満たすこちらの書籍を、最初の一冊として紹介します。
理論と実装の両方がバランス良く勉強できる
理論と実装に関する予備知識が少なくても読み進められる
こちらの書籍は、学部の一般教養程度の予備知識があれば、十分読み進められるレベルです。
まず、前半の2章でif文・for文など基本的な Python の処理を学習したのちに、3章で数学的な基礎知識を学習することができます。内容としては数学Ⅲ・Cレベルの復習から入り、微分積分と線形代数の知識を最低限理解する形です。機械学習に関する書籍の多くは、この辺りの知識が前提で書かれている印象があります。そういった知識を省略する事なく解説している点が、この書籍の1つ目のオススメポイントです。
後半の4・5章では、前半の内容を基に、機械学習のアルゴリズムを実装していきます。4章は数値計算に関する章で、Python で数学的な計算を実装する方法(NumPy や SciPy の使い方)から始まり、線形計画法や勾配降下法などの、機械学習を考える上で必要となる数理最適化ロジックについて、スクラッチで実装(ライブラリを利用せずにゼロから実装)していきます。5章がいよいよ機械学習に関する章で、回帰分析やサポートベクターマシンなどの基本的な機械学習ロジックについて、スクラッチで実装していきます。序文でも述べた通り、機械学習の実装に関する書籍の多くは「機械学習ライブラリの使い方」がメインとなる印象があります。しかしこちらの書籍はそうではなく、ロジックを理解するためにスクラッチで実装している点が、2つ目のオススメポイントです。
タイトル通り、機械学習の「エッセンス」がゼロから学べますので、最初の一冊にぜひ読んでみてください。
2.「統計的機械学習の数理100問 with Python」:ロジックを構築しながら理解する!
1冊目に紹介した書籍の最後は、機械学習のロジックをスクラッチで実装する内容ですが、このテーマを深掘りしたのがこちらの書籍です。こちらは大阪大学鈴木譲教授の講義内容が書籍になった「機械学習の数理100問シリーズ」の一冊です。今回紹介するのは Python 版の書籍ですが、R 版の書籍も発売されております。タイトルに「100問」と付いている通り、機械学習のロジックに関する演習問題が100問掲載されており、演習問題の解答を数式とプログラムで解説する、といった構成です。プログラムは、1冊目に紹介した書籍同様にスクラッチでの実装です。
大学の講義内容と書きましたが、こちら学部3年生向けの講義でして、それに向けた数学やプログラミングの知識は前提として書かれています。実際、1冊目に紹介した書籍以上に理論寄りの内容となっている上に、NumPy や SciPy の使い方は既知という前提でプログラムが記載されていたりと、先ほどよりも難易度はやや高めです。その分、この内容をこなす事が出来れば、機械学習の理論についてはかなり身につきます。
実務においては、scikit-learn などといった機械学習ライブラリを用いて実装する事がほとんどです。しかし私は、データ分析を仕事にする上では「技術を理解して使える事」が大事であると考えています。技術を理解するための効率的な勉強方法は色々ありますが、こちらの書籍に書かれているような「数式を自分で導出してみる」「導出した数式に基づいて自分で実装してみる」というステップを一度踏むのが大事だと考えます。また、この辺りのトピックは、統計検定の1級や準1級でも問われる内容ですので、それに向けた勉強という意味でも非常に役立ちます。
機械学習のロジックについて深めたい人向けに、オススメの一冊です。
3.「本質を捉えたデータ分析のための分析モデル入門」:様々な手法について掴む!
機械学習・深層学習・強化学習、などの様々な手法について、網羅的に勉強したい場合はこの書籍がおすすめです。こちらはソシムから出版されている「データ分析」関連の一冊です(「統計学初学者におすすめする本5選」でも、このシリーズの書籍を紹介しました)。目次を見ていただければ分かるかと思いますが、かなり広い範囲の内容を取り扱っており、出版当時(2022年7月時点)の知識であれば、これ一冊で十分カバーできます。このシリーズの特長である、図やイラスト等で視覚に訴えかけるスタイルは健在な上に、分析手法の解釈や理論的な補足説明についても丁寧に記載されており、本質的な理解の役に立つ事間違いなしです。
1部は「定型データ」に関する内容で1・2冊目に紹介したような書籍で取り扱っているテーマ、2部は「非定型データ」に関する内容で画像や自然言語に関するテーマ(主に深層学習の手法)がまとめられています。特に2部の深層学習に関するボリュームが多く、この書籍の中でも特にオススメのパートです。3部は「強化学習」に関する内容で、強化学習の全体像についての説明が初めにあり、ベルマン方程式や AlphaGo といったトピックがまとめられています。そして4部は「教師なし学習」に関する内容で、クラスタリングや因子分析などの手法、5部は最初に紹介した「線形回帰」に戻り、多重共線性を切り口として、様々な回帰分析の手法が書かれています。ここまで記載した盛りだくさんの内容が、イラストや解釈と共に分かりやすくまとめられている書籍はそう無いので、オススメです。
余談ですが、この書籍の著者は、データサイエンスVTuberの「アイシア=ソリッド」を運営しており、書籍内にも紹介がありますが、いくつかのトピックについては YouTube でも解説動画が上がっています。内容について気になった方は、そちらも見てみると勉強になるかと思います。
4.「Kaggleで勝つデータ分析の技術」:モデルの精度を高める!
機械学習モデルを実際に適用するにあたって、モデルの精度は意識しなければならない部分です。この書籍には「Kaggle」のようなデータ分析コンペで勝つ、すなわち精度の高いモデルを作るために有効なテクニックが以下の観点から1章ずつ紹介されています。
タスクと評価指標
特徴量の作成
モデルの作成
モデルの評価
モデルのチューニング
アンサンブル
機械学習の基礎に関する書籍には、精度向上のためのテクニックについてはあまり載っていないので、こういったコンペ寄りの書籍で勉強するのが良い印象があります。
本書の構成ですが、精度向上のための様々なテクニックについて、機械学習ライブラリによる実装例や数式と共に説明されています。また、一部の手法については、理論に関する解説も手厚いのがオススメです。例えば、4章「モデルの作成」の途中には「XGBoost」のアルゴリズムが、6章「モデルのチューニング」の章末には「ベイズ最適化」の理論が書かれております。ただ、基本的にテーブルデータを扱う上でのテクニックが本書のスコープであり、動画像や自然言語といったデータについては記載が少なめです。
少し話は逸れますが、「Kaggle は実務で役に立つのか」という議論を時々目にします。確かに、実務では精度より解釈性が求められたり、計算資源の制約があったりはするものの、精度が高いに越したことはありません。実際私も、予測モデルの精度を向上させ、お客様に大変喜ばれた経験があります。「精度を上げるための工夫」については、実務でも十分活用できるのです。また、コンペに参加している他のプレイヤーとのディスカッションから、理論や実装について学べる事もあるので、そういった意味においては実務に役立つと考えております。
モデルの精度向上に関するテクニックを身に着けたい方に、オススメです。
5.「現場で活用するための機械学習エンジニアリング」:実務への適用を学べる!
ここまで紹介した書籍は、機械学習のロジック周りにフォーカスを当てたものがメインでした。最後に紹介する書籍は、機械学習の手法を実務でどのように応用するかについて、フォーカスを当てた書籍です。第1部(1~4章)で機械学習の手法について軽く復習したのち、第2部(5~9章)で実務への応用について説明していく構成です。機械学習への習熟度(初学者・履修者)に応じて読むべき場所が分かるようになっているのがポイントです。
この書籍のメインである第2部から、個人的に刺さった内容を2点紹介いたします。まずは6章です。す。機械学習を実務で応用する上で意識すべき事がまとめられている章なのですが、最新技術のキャッチアップの仕方、特に論文の読み方に関するノウハウが書かれているのが特徴です。「論文を読む行為=初学者にとってハードルが高い行為」という印象があると思いますが、こちらのノウハウを基に論文を読んでいく事で、ある程度読み方が身に付きます。また、7章の事例紹介パートも興味深い内容です。機械学習は便利な技術ですが、「万能な技術」ではありません。そのため、実際のプロジェクトへの応用を考える際は、「機械学習で解ける問題設定に落とし込むこと」が大事です。7章ではこの事が複数の事例を基に具体例としてまとめられており、実務への応用イメージが湧きます。
プロジェクトで手を動かし作業するメンバーから、全体を統括するリーダーまで、機械学習プロジェクトに携わる予定の方にオススメしたい一冊です。
最後に
冒頭でも説明した通り、今回ピックアップした本はあくまで「初学者におすすめする」本です。また、機械学習を勉強するには、理論だけでなく実際に手を動かして実装する事も大事です。こちらの記事およびご紹介した書籍を参考に、自分でロジックを構築してみたり、Kaggle 等のコンペに挑戦してみてはいかがでしょうか。
(書き手:元村)
少しでもお役に立てましたら、記事の下の♡をタップ&フォローいただけますと、励みになります!
▼こちらの記事もおすすめ
▼キャリア採用はこちら
▼コーポレートサイトはこちら