スーツ姿のプロダクトマネージャー

ITで新しいプロダクトを生み出したいすべての人を応援するブログです。

はじめに読むべき機械学習の入門書3冊

30過ぎのデータサイエンティスト見習い」では、SEからデータサイエンティストに転身したときに経験したことや苦労話を書きました。

この中で書いたように、まずスキルアップするために本を乱読したのですが、今思えばかなり回り道をしていたような気がします。当時は、不安になって大量に本を買い込み、寝る間を惜しんで本を読んでいました。しかし、適切な本を選び、それらをよく読んで実務で活用しながら学べば、私が買った本の2割程度でも効果があったと思います。

それでは、これからSEやビジネスパーソン機械学習を学ぼうとしたとき、どの本から読めばよいのでしょうか?

 

今手に取るべき機械学習の入門書

SEなどのシステム構築に関わっている人や、ビジネスパーソン機械学習を学ぶのであれば、次の3冊から選ぶのがよいと思います。

実際に、機械学習プロジェクトに初めて参加するメンバーには、これらの本をすすめています。どれも評判がよい本ですが、その人にバックグラウンドによってわかりやすい本が違うようです。

各本の特徴を見ていきましょう。

 

統計的な考え方を数式なしで学べる「戦略的データサイエンス入門」

この本が発売されてとき、「ビジネスに活かすコンセプトとテクニック」という副題を見て、これだ!と思いました。 まさに、データサイエンスの中核となるアイデアの本質を理解したいと考えていたからです。

戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック

戦略的データサイエンス入門 ―ビジネスに活かすコンセプトとテクニック

 

 

統計的な考え方を学べる

私がデータサイエンティスト見習いだったころ、統計解析や自然言語処理の技術を使って仕事をしていました。RとかPythonを使って実験ができるようになった頃、新しい問題がやってきたときに、どの手法を使ってよいかわからないことが悩みの種となりました。

つまり、今タスクとして取り組んでいることはわかるのだけれども、新しい「ビジネス課題」がやってきたとき、それをどうやって機械学習のタスクに落としたらよいかわからなかったのです。

さらに、データ分析をやっている中で、先輩データサイエンティストのような柔軟でクリエイティブな発想ができないことが悩みでした。どうやって解くかわからないタスクであっても、先輩はデータビューイングもそこそこで、次から次へとアイデアを出していました。教師あり学習、教師なし学習の様々な手法を組み合わせて…。

これらの悩みは、統計的な考え方をもってビジネスの問題を機械学習のタスクに落とし込むというスキルの問題です。

本書では、こうしたスキル、ものの見方を身につけることができます。
多くの機械学習本では、技術的な説明が先にあって、実例を示す構成となっています。しかし、本書ではまずビジネスにおける技術の位置づけが先に説明され、次に機械学習でできることをざっくり示し、その後で技術的な話に入っていきます。

これは、機械学習を道具としてビジネスに応用したいという人には、大変わかりやすい構成です。

初学者の方には、まず以下の個所から読むことをおすすめしています。

1章 はじめに:データ分析思考

 1.1 データを使ったビジネスチャンスの広がり

 1.4 データサイエンス、エンジニアリング、そしてデータ主導による意思決定

2章 ビジネス問題とデータサイエンスが提供するソリューション

 2.1 ビジネスの問題をデータマイニングタスクへ

 2.2 教師あり手法と教師なし手法

3章 予測モデリング:相関から教師ありセグメンテーションへ

 3.1 モデル、帰納法、予測

引用元:O'Reilly Japan - 戦略的データサイエンス入門  の目次から抜粋

数式やプログラミングコードがほぼ出てこない

この本では、数式やプログラムコードがほぼでてきません機械学習系の本の大半は、数式がゴリゴリ出てくるアカデミック色が強い本か、PythonやRのコードを使って手を動かしながら学べる本です。本書は、文章での説明を基本にしつつ、かなり深い内容を説明する稀な構成となっています。

ここがポイントの一つで、長らく数学やプログラミングをやっていない人にも取っつきやすくなっています。また、読むことで理解を促す内容なので、通勤中でも読みやすいというのも利点です。

これが、本書を一般的なビジネスパーソンにすすめる理由の一つです。

モデル評価に対する丁寧な説明がある

初学者にとってわかりにくいことの一つに、モデル評価があります。

苦労して作ったモデルが、実際に使えるかどうか評価するには、クロスバリデーションなどの方法を通して統計的な観点で評価する必要があります。しかし、自分自身の経験からいっても、この考え方が実に難しい。なぜなら、モデル評価の方法は、ビジネスや日常生活の中であまり使わない考え方だからです。

評価の考え方は、データサイエンティストにとって大変重要ですが、エンジニアだけでなく、データサイエンティストを含めたプロジェクトを率いるリーダーも知っておく必要があります。それは、モデル評価の考え方が、プロジェクト目標の設定、作業プロセスの特性、コストの膨らみ方、リスクの測り方など、プロジェクト計画と運営のあらゆるところに影響するからです。

モデル評価を理解するには、実際に実験をやってみるのが一番よいのですが、そうもいかないポジションにいる方もいるでしょう。そういった方こそ、本書を読むべきです。

もちろん、エンジニアの方が、自分がやっているタスクをメタ的に理解するためにも役立つ本です。私は実際に手を動かすことと並行して本書を読むことで、より一層理解が深まりました。

 

理論と実践のバランスに優れた「Python機械学習プログラミング」

最近、Pythonを使った機械学習の本が増えてきました。少し前までは、Rの本も多かったのですが、機械学習に限っていうとPython本の方が勢いがある気がします。逆にどれを選んだらよいか迷いますね。

この本が国内で発売されたのは2016年ですが、当時私はまだRも併用していました。しかし、この本を読んでPythonに移行することを決意しました。とにかく、Python機械学習ライブラリsciket-learnの素晴らしさをすっきり学べる本です。 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

もうすぐ新版が出るようですね。すでに予約しました。

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

[第2版]Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

機械学習モデルの作成プロセスを端的に学べる

本書の特徴は、機械学習モデルの作成プロセスを、実践的かつ分かりやすく説明していることです。以下の節で解説されるパイプラインの説明は圧巻です。

第6章 モデル評価とハイパーパラメータのチューニングのベストプラクティス

引用元:Python機械学習プログラミング 達人データサイエンティストによる理論と実践 - インプレスブックス

機械学習モデルの作成プロセスは、大まかにいって(1)問題設定、(2)データビューイング、(3)前処理・特徴量作成、(4)モデル作成・評価、(5)チューニング、(6)最終モデル作成となります。この流れは試行錯誤的であり、場合によっては手戻りもあります。

チューニングが進んでいくと、前処理やチューニングすべきパラメータのバリエーションが増加し、ともすれば自分が何をどこまでやったのかわからなくなってしまうこともあります。こうした場合、実験手順やプログラミングのミスが起きがちになるので、それなりに工夫が必要になります。

データサイエンティストは、何度も失敗しながらこうしたことを身につけていくか、チーム内に蓄積された教訓をOJT的に伝授されることになります。

しかし、本書はこうした暗黙知を明確にし、個々のトピックスだけでなくその流れをコードとして表現しています。このため、実用上大変役に立ちます。

理論と実践のバランスが絶妙

本書の特徴の一つに、手法の説明が比較的しっかりされていることがあげられます。
応用範囲が広く初学者にもわかりやすい「分類問題」からスタートし、基本的な分類アルゴリズムであるパーセプトロンから説明していきます。つまり、理論的な背景がわかるようになっています。

そして、徐々に高度な手法を説明ながら多様な学習手法を俯瞰し、その後に前処理の話に移っていきます。最終的には、評価方法を絡めて全体像を示しています。

この流れは、まさにデータサイエンティスト初学者に機械学習のやり方を教えるプロセスそのものです。大抵の場合、初学者はモデルを作ってみるところからスタートし、原理が理解できたところで、その前処理や評価方法を習得していきます。まさにこの過程を流れるように説明しています。

そして、圧巻なのは、徐々に内容が実践的になるにつれて、説明に使われているコードも実用的になっていくというところです。無駄が少なくて大変便利です。

一貫して機械学習モデルを中心に置くわかりやすさ

統計解析や機械学習の本の中には、教師あり学習、教師なし学習の手法がフラットに説明されている本も存在します。このような本は、ある程度知見のある人がリファレンス的に使う分には便利です。しかし、初学者がそおような本を読むと、それぞれの手法がつぶつぶな話に見えてしまい、どういった場面で使ったらよいかわからなくなってしまいます。

本書では、クラスタリングや主成分分析といった次元圧縮の手法も、機械学習モデルの前処理の一部として説明しています。これは実に実践的な内容です。

特に、AI関連のプロジェクトで、機械学習のモデルをシステムに組み込むことを考えている人には、とてもわかりやすい解説となるでしょう。

したがって、実践的にAIをやってみたいという方や、エンジニア系の方には本書をおすすめしています。

システムとしての機械学習を学べる「仕事ではじめる機械学習

上にあげた2つの本がデータサイエンスを学ぶための本だとしたら、本書はそれを活用したプロジェクトやシステムの全体像を知るための本です。今までにこういった本はなかったので、貴重な本だと思います。

仕事ではじめる機械学習

仕事ではじめる機械学習

 

機械学習のモデルをシステムにどう組み込むか?

データサイエンティストは機械学習のモデルを作成しますが、それを活用するためには、システムに組み込む必要があります。本書では、作成したモデルをWebアプリケーションとしてどう読み出すか、そして学習処理のデータ処理や蓄積をどうするかといった、システム設計の指針となる情報が盛り込まれています

現在の「AI活用システム」の大半は、機械学習のようなモデルを組み込んだシステムです。一方、そのシステムの全体像から眺めると、機械学習モデルは確率的な動作をする部品にすぎません。このため、こうしたプロジェクトでは、システムの全体像を意識することが決定的に重要になってきます。

プロジェクトマネージャー、システムエンジニア、データサイエンティストがそれぞれ同じ意識で仕事をする必要がありますが、本書はその橋渡しになると思います。

機械学習プロジェクトのはじめ方と流れを知る

本書のもう一つの特徴は、機械学習を活用したプロジェクトの進め方を端的に説明していることです。以下、本書より「機械学習プロジェクトの流れ」を引用します。

  1. 問題を定式化する。
  2. 機械学習をしないで良い方法を考える
  3. システム設計を考える
  4. アルゴリズムを選定する
  5. 特徴量、教師データとログの設計をする
  6. 前処理をする
  7. 学習・パラメータチューニング
  8. システムに組み込む

引用元:仕事ではじめる機械学習

多くの機械学習の本では、モデルチューニングの流れが説明されていますが、本書ではシステム組み込みまで説明されています。

また、2つ目のステップとして「機械学習をしないで良い方法を考える」ということが掲げられています。機械学習は確率的な動作をするものなので、もし別の方法でその処理を担保できるのであれば、あえて使わない方がよいということです。この点については、本当にそのとおりで、私も先輩から「ルールベースで実現できることにわざわざ機械学習を使わないように」と何度も言われました。

このように、本書は実務的で誠実なアドバイスに溢れておりシステム開発にかかわる方にはかなり参考になると思います。

最近では、システムエンジニアやプロジェクトマネージャーの方におすすめする機械学習本として、第一選択にしています。

 

人によって好きな学び方は違う

これまで、機械学習についてわかりやすい本を紹介してほしいと相談されてきました。その中で分かったことがあります。それは、人によって好きな学び方が違うということです。

プログラムを組んで手を動かしながら学ぶ人、数式から原理を理解して学ぶ人、文章を読んで学ぶ人、図から学ぶのが好きな人…。みなさんはどれがよいでしょうか。

このように聞かれてもわからないという方も多いと思いますので、手に取ってパラパラめくってみてください。少しでも目に優しいなと思う本が、肌に会う本です。

 

このエントリーでは、機械学習の入門書を3冊に絞ってご紹介しました。