機械学習の入門本を書きました(データサイエンティスト養成読本)

初めて執筆に参加した本、データサイエンティスト養成読本シリーズの機械学習入門編が技術評論社さんから出ます。共著です。9月10日発売です。

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

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

このブログを読んでいる人はすでに機械学習に詳しい人が多いと思いますが、周りでこれから機械学習使い始ようとしている方に薦めてもらえれば幸いです。特に、最初の一歩を踏み出せずにいる方に手にとって欲しいと願っています。

また、発売当日にはちょうど私も日本に戻っており、執筆者が何人か集まって出版社主催のトークイベント(?)をする可能性もあるので、興味がある方はご参加ください。

このブログでは、企画当初から関わった身として、ちょっと自分語りと、全体の構成の意図などを説明したいと思います。


私が執筆を担当したのは冒頭の機械学習入門講座ですが、英語で言うと”Demystifying Machine Learning”、つまり「機械学習の化けの皮を剥がす」というテーマを心に抱いて書いていました。

前職時代から機械学習を使ったビジネスにほぼ10年間携わっているわけですが、機械学習には常に2種類の「神話(myth)」が付き纏っています。1つめが「数学も統計もわからないし、難しくて自分にはとても使えない、使いこなせない」という悲観的なもの、もう1つが「よくわからないけど機械学習の専門家に今データで困っていることは全部解決できそうだ」という楽観的なものです。特に後者に関しては、第3次人工知能ブームを巡る報道もあり、明らかに過熱状態にあります。

それらを解消して地に足についた機械学習の活用がもっと広まればいい、そのために自分にできることは何かを考えて内容を決めました。前半は機械学習の概要説明で悲観的な神話を和らげ、後半の機械学習の歴史やFAQでは楽観的な神話を崩すことを目指しています。

初学者に機械学習を説明するとき、分類問題を持ちだして「特徴ベクトルxとラベルyのペアから成る訓練データを用意して予測誤差を最小化する重みベクトルwを…」という説明から入るのが最も一般的だと思うのですが、今回はもう少し抽象的なところから始めました。まず、与えられたデータから法則性を発見するという統計分析における普遍的な目的を機械学習も担っていて、そのための効率的な手法と位置付けています。

その後は外れ値検知と分類を例に使って、特徴ベクトルの意味や、機械学習のタスクごとに異なる「モデル」の意味などを解説しています。具体的なタスクやアルゴリズムの説明は直後の章(京都大学の馬場さん担当)にお任せできたので、私の章は数式を使わずに通しました。後半の歴史や応用の部分は、拘るとどうしても詳細になり過ぎるので、ばっさりと単純化・切り捨てているところがあります。専門家の方から見ると気持ち悪い部分があると思いますが、ご容赦下さい。参考文献にも挙げている松尾豊先生の「人工知能は人間を超えるか (角川EPUB選書)」などがより詳細です。

そして実は一番伝えたかったこと、他の本には載っておらず相対的に価値が高いのではないかと思っているのが、最後のQ&Aの章です。私が経験した、機械学習について頻繁に繰り返される質問を、ここに載せました。自動で何でも学習してくれるのか、訓練データはどれくらいあればいいのか、人工知能との違いは何か、そのうち人間を置き換えるのか、などです。これから機械学習を使おうという読者に変な期待や幻想を抱かせることは何の意味も無いので、徹底して技術者として実直な回答を用意したつもりです。

担当部分を通して、Preferred Networksの人間としてではなく、機械学習のビジネス応用のイチ経験者としてバイアスの無いように書いたつもりです。これを読んでやっと機械学習が肚に落ちて使い始めることができました、という人が一人でも出てきてくれればいいな、と思っています。

自分の章の話が長くなりすぎましたが、本全体についても少し触れさせて下さい。

きっかけは、2013年末に編集の方からデータ分析担当者・そのマネージャ向けの機械学習活用の書籍について相談を受けたことです(色好い返事ができてない段階で、2014年のエンジニアCROSSで機械学習セッションを主催した後に編集者の方にお会いして、気まずい思いをしたのを覚えています)。その後紆余曲折あって、ほぼ1年前にデータサイエンティスト養成読本の機械学習編としての執筆依頼を頂き、深層学習、画像認識、レコメンド、Jubatusなどカバーしたいトピックに沿って、全体の構成や執筆者の人選についても少しだけアドバイスさせて頂きました。

構成で考えたのは、すでに機械学習人工知能に関する本が増えてきた状況において、どう差別化するかでした。本文中にも書いたのですが、一般向けに機械学習を応用面から説明する記事・書籍は増えています。しかし、そこで興味を持って実際に使い始めようとすると、大学講義の教科書として用意された学部生・院生向けの機械学習入門書で理論の基礎を学ぶ以外の選択肢、具体的には手を動かすところから始める日本語の書籍が(特にR言語周辺以外では)少ないように思えました。また、データサイエンティスト養成読本はすでに複数刊行されてこの業界でブランドイメージが定着していますが、一方でこれまでの巻と内容が似すぎていても無駄ですし、奇をてらって使い物にならないのも困ります。

そこで機械学習入門編として基礎から手を動かすところまでは2部に分けつつ、言語や応用はバラエティが多い方が良いと考えました。前半が機械学習の基礎から最新トピックまでカバーした読み物的な記事、後半が実際に手を動かして覚えるハンズオン的な記事となっています。また、前半においてコンセプトとしての入門講座と、数式を用いた初歩の記事を分ける、後半の冒頭に機械学習ライブラリ全体を見渡す記事(福島さん)を加える、などをお願いしました。後半の多彩なハンズオン記事が売りですが、企画時点で注目を集め始めていた深層学習は編集側の判断で、逆に前半部分に最新動向の紹介として載っています(今の深層学習ブームを考えると英断だったと思います)。

業界の有名人であるDATUM STUDIO里さんと戸嶋さんにビジネスに導入する機械学習を、シルバーエッグ加藤さんにPython機械学習入門を、Gunosy関さんにレコメンドの章をお願いしています。最終章のオンライン機械学習は、ずっとJubatusを一緒にやってきたNTTの熊崎さんにお任せしました。同じPreferred Networksからはコンピュータビジョン担当の阿部さんがscikit-imageを使った画像認識入門を後半で書き、前半では得居さんが深層学習の最新動向について解説してくれています。

元々の依頼候補リストに名前があった方、推薦させていただいた方、私が直接依頼した方、いろいろいらっしゃいますが、とても豪華な執筆陣が揃ったなと素直に思います。ご多忙の中、皆さんに承諾して執筆して頂かなかったらこの本は世に出ていないので、この場を借りて御礼申し上げたいと思います(実はこれまで執筆者が集まる機会が無いのです)

第一線の専門家の方々に書いて頂いて鮮度の高い本となったと思うので、ぜひ書店で見かけたら手に取って頂ければと思います。もちろん確認せずAmazonでポチって頂いても結構です :)