Think more, try less

Owen Zhangの言葉を大切にして,日々Kaggleに取り組んでいます.

データサイエンティスト養成読本 登竜門編(11章 機械学習超入門)を執筆しました。

データサイエンティスト養成読本 登竜門編がついに3/25に発売されます(一部の大型書店にてすでに先行販売されています)。これまでのデータサイエンティスト養成読本シリーズでは内容が難しかったという声が多かったため、ビギナー向けにやさしい本を提供するために、この登竜門編が刊行されることとなりました。本書は共著という形で執筆しており、さまざまな分野の現役の若手のデータサイエンティストが執筆者として参画しています。

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

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

対象読者

本書の対象読者としては、データサイエンスのビギナー向けとなっています。これからデータサイエンスの世界に入っていこうとする学生さんや、これから実務でデータサイエンスを活用していこうと検討している社会人などを想定しています。また、データサイエンスを活用している企業の新人やあまりデータサイエンスに詳しくない担当者向けの教育に利用できる内容となっているため、データサイエンスのプロにも有効活用してもらえる内容になっています。

データサイエンティスト養成読本 登竜門編の読みどころ

これまでのデータサイエンティスト養成読本と比較すると、各章が、前後の繫がりを意識した構成になっており、非常に読みやすい内容となっています。また、各章の著者が得意な分野を執筆したという内容ではなく*1、全体のバランスを意識して章を構成したため、無駄がなくかつ中途半端な内容となっていないことも特徴です。きっと本書を通読すれば、データサイエンスに関する基礎が一通り身につくと思います。

また、個人的にお薦めしたい登竜門編の読みどころは、「10章 さまざまなデータの理解と表現(水上ひろき)」です。おそらく現存する一般化線形モデルの解説のなかで最もやさしく、すっきり書かれている内容だと思います。統計モデリングの初歩の初歩として本章を読んだ後、みどり本などにステップアップしていくと良いと思います。

11章 機械学習超入門の読みどころ

私は「11章 機械学習超入門」を担当しました。これだけ世の中に機械学習の入門書が溢れているなかで、入門的な内容を執筆することは苦労しました。しかし、さまざまな機械学習の解説書籍を参考にしましたが、どれも実務で機械学習を実践する上では、何か部分的に欠けている解説が多いなと感じる部分があったため、私が執筆するこの機械学習の入門記事は、とにかく必要な基礎基本はすべて網羅することを意識しました。本章で、意外にもこんなことが載ってて嬉しいかなと個人的に思っている所を、以下にあげます。

  • 汎用人工知能と特化型人工知能と違いが解説されている
  • 機械学習モデリングにおける基本用語が解説されている
  • ハイパーパラメータの探索方法として、ランダムサーチも載っている
  • 評価尺度の解説で、AUC*2対数損失についても触れられている
  • ジニ不純度の計算方法が解説されている
  • 過学習の直観的イメージを解説している
  • mlrパッケージについて解説している

特に最後の、mlrパッケージについては、これまでのRによる機械学習のプログラミングよりも非常に理解しやすいパッケージなので、ぜひ使用してもらいたいです。他の書籍では、mlrパッケージについてはあまり解説がないため、本章の良い点と思っています。まだ本書を手にしていない方は、mlrパッケージの使い方について、TokyoRの勉強会で発表した資料があるので、そちらを参照してイメージを掴んでみてください。

また、「11-3 Rで機械学習を試してみよう」のソースコードのリンクも掲載しておきます。

データサイエンティスト養成読本 登竜門編 「11-3 Rで機械学習を試してみよう」のソースコード · GitHub

ちなみに機械学習といえば、Pythonのscikit-learnが有名であり、本来的には、scikit-learnで解説するべきと思われるかもしれませんが、scikit-learnの使い方については、改訂2版 データサイエンティスト養成読本の「第3章 Pythonによる機械学習(早川敦士(@gepuro))」に詳しく基礎基本が解説されているため、こちらを参照される方が良いと思います。この改訂2版の機械学習の解説との重複を避けるためにも、Rによる機械学習のコーディング方法を解説した次第です。

改訂2版 データサイエンティスト養成読本 [プロになるためのデータ分析力が身につく! ] (Software Design plus)

改訂2版 データサイエンティスト養成読本 [プロになるためのデータ分析力が身につく! ] (Software Design plus)

11章 機械学習超入門では載せられなかった内容

完全に網羅することを意識しましたが、それでも紙面の都合上、載せられなかった内容がいくつかあります。

確率的勾配降下法(Stochastic Gradient Descent:SGD

これは、水上さんとも話して、10章、11章で載せられなかったことを悔やみました。確率的勾配降下法とは、多くの機械学習アルゴリズムにおける誤差関数の最適化に利用される方法で、10章だとロジスティック回帰において最尤推定するときに用いられます。11章では、これは登竜門編としては、難しい内容となると判断して、載せないことにしました。確率的勾配降下法については、下記の本が参考になると思います。

ITエンジニアのための機械学習理論入門

ITエンジニアのための機械学習理論入門

深層学習(Deep Learning)

現在、これだけ注目されている深層学習(Deep Learning)ですが、こちらもデータサイエンスのビギナーには必要ないと判断して、載せないこととしました。深層学習が必要になるのは、現状では、これを活用してビジネスを検討している研究機関や一部の先進的なWeb系企業の方が多いかなと思います。初心者でもすぐにできるような手書き文字認識のようなタスクを理解したところで何も活用できません。それでも理解したいということであれば、下記の本が参考になると思います。

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

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

サポートページ

一部、最後の入稿間際でバタバタしていたこともあり、初版については、第11章のP.222の右下段(図8 ROC曲線の例)が誤っています。正しくは、サポートページの図をご参照ください。大変申し訳ありませんでした。

サポートページ:データサイエンティスト養成読本 登竜門編:|技術評論社

おわりに

2016年4月にキックオフで企画がスタートして、1年近くずっと執筆してきましたが、技術評論社のデータサイエンティスト養成読本 登竜門編のご担当の高屋様、また共著で執筆されていた皆様には大変ご迷惑をおかけしました。執筆中は、内容構成などでかなり迷走して、本当に入稿間際までどうなることやらという感じでしたが、なんとか形になってほっとしています。辛抱強くご支援頂きましてありがとうございました。そしてこの本書を執筆するにあたり、R勉強会やKaggle Tokyo Meetupに参加されている多くの方々から日頃学んでいることが、このような書籍の執筆に大きく影響していると感じています。日頃お世話になっている皆様にも心より御礼申し上げます。最後に、本書が、これからデータサイエンスを始めようとする多くの入門者に届き、最初の登竜門として意義のある書籍になることを願います。

*1:そのため、執筆者側がかなり苦労しました。

*2:初版では、図の差し替えが間に合わず、P.222 第11章 右下段(図8 ROC曲線の例)に間違った図が挿入されています。大変申し訳ありません。正しい図については、サポートページをご参照ください。