密林の図書室

人生は短く、経験からのみ得られることは限られます。読書から多くのことを学び、アウトプット化も本との対話の一部として大切なものだと考えてきたので、このブログを立ち上げて日々読んできた本の備忘録として活用しています。

ビジネスで機械学習(AI)をやるなら知っておいた方がいいプロジェクトやソフトウェア工学面でのノウハウ。『仕事ではじめる機械学習』

著:有賀 康顕、中山 心太、西林 孝

 

 機械学習の本は今やたくさん出ているが、この本はちょっと毛色が違う。機械学習のアルゴリズムや理論の解説もあるが、むしろ、機械学習のプロジェクトを進めるときには、どのようなことに注意すべきかについて中心に書かれた本。

 

 いきなり7ページ目で、「機械学習をしなくて良い方法を考える」と出てくる。機械学習を用いるシステム構築は、以下の点で難しいから、他の方法がとれるのであればその方が良いという考え方もできるようだ。

 

・確率的な処理があるため自動テストがしにくい

・長期運用しているとトレンドの変化などで入力の傾向が変化する

・処理のパイプラインが複雑になる

・データ依存関係が複雑になる

・実験コードやパラメータが残りやすい

・開発と本番の言語/フレームワークがバラバラになりやすい

 

 学習とチューニングが必要で、時間がかかる。継続的な改善が必要になる。使っているうちに、データの傾向が構築時に学習したものとずれてくることがある。機械学習に適したものかどうかの見極めが大事。ログデータを元にすることは多いが、そのログで目的に合った教師データを作れるかどうか見極める。

 

 学習結果の評価についても、目的に応じてトレードオフで考えるべきところがある。西洋率、適合率、F値。例えば、誤りが多少多くても抜け漏れを少なくしたい場合は「再現率」を重視すべきで、見逃しがあってもより正確な予想をしたい場合は「適合率」を重視する。混同行列、マイクロ平均、マクロ平均。

 

 システムに機械学習を組み込んだ場合の構成概要パターン。バッチ学習(バッチ処理とは違う)と逐次学習。効果検証の方法。映画の推薦システムやkickstarterの分析もある。

 

 機械学習を用いたシステム開発は、通常のシステム開発の常識が通用しない部分がいろいろとあり、機械学習の理論的なことは横においたとしても難しい。結果が確率的なものになるので何をもって成功といえるか、どう検証すべきか、どういう条件なら検収していいのか。うまくいかないときもある。時間がかかるし、地道なチューニングの繰り返し。プログラムだけでなく、データのバージョン管理もやった方がよい。機械学習を使わなくて良い方法があるなら、そっちの方がいい、というのはそれはそれで一理あると思えるくらいだ。

 

 昨今のAIブームによって、機械学習の専門家でなくても機械学習は身近になってきた。実務において機械学習を取り入れる、あるいは機械学習を含んだプロジェクトを回す可能性がある人は、あらかじめ目を通す価値のあることが書かれてあるように思われる。

 

単行本、248ページ、オライリージャパン、2018/1/16

仕事ではじめる機械学習

仕事ではじめる機械学習

  • 作者: 有賀康顕,中山心太,西林孝
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2018/01/16
  • メディア: 単行本(ソフトカバー)