だいくしー(@daiksy)のはてなブログ

daiksyの徒然的なもの 以前のブログはこっち -> http://daiksy.blogspot.jp/

機械学習プロジェクトのマネジメントの入り口 -『仕事ではじめる機械学習』を読んだ -

仕事ではじめる機械学習

仕事ではじめる機械学習

ちょうど仕事で機械学習を用いた機能開発のプロジェクトの進行管理をしていて、目次をみたところ良さそうに思ったので読んでみました。 オライリーEbookでPDF版を買ったのですが、まもなく紙版も出るようです。

まえがきには、CourseraのMachine Learningコースを受講するか、『ゼロからつくるディープラーニング』を読んでおくと良い、とありました。ぼくは直前に『ゼロからつくるディープラーニング』を読んだあとでしたが、いきなり1冊目に読んでも問題ないのではと思います。難しい数式などはあまり出てきません。とはいえ、ある程度の機械学習についての知識を持っているのが前提になっているので、少なくとも機械学習を取り扱う際によく出てくる用語の意味などはある程度知っていたほうが読みやすいと思います。

ちなみに、『ゼロからつくるディープラーニング』は初学者にとってはとても良い本で、これを丁寧に一冊読むとなんとなくディープラーニングが分かったつもりになれます。ぼくは高校から文系コースに進み、大学では国文科を卒業したゴリゴリの文系です。数式を見てもあまりピンと来ないという体たらくですが、幸いプログラマとして長年生活をしてきたおかげで、ソースコードは読めます。この本を読んで、ピンと来ない数式もPythonソースコードで書かれたらなんとすんなり読める、ということに気づいた瞬間から、数式に対する苦手意識が消失しました。

『やさしく学ぶ 機械学習を理解するための数学のきほん』あたりと組み合わせて読むと、「機械学習完全にマスターした」という気持ちになって学習のテンションも跳ね上がります。

仕事として機械学習に取り組むのは難しい

ぼくは現在、ディレクターという立場です。自分でプロダクトのコードを書くことはありません。なので、自分が開発するというよりも、開発チームのマネージャとして機械学習のプロジェクトを成功に導く、という視点で本書『仕事ではじめる機械学習』を読みました。

実際にビジネスに寄与するための機能として機械学習を取り扱うのは難しいです。具体的には

  • 高速に技術的負債が蓄積する
  • 試行錯誤が必要で見積もりがしづらい
  • 完了の定義が難しい

といったことがあげられると思います。これらを理解せずに、従来の「機械学習を用いないシステム開発のセオリー」しか知らない状態でプロジェクトに取り組むと、確実に失敗すると思います。

とはいえ機械学習を仕事で扱った経験のある人は少ないのも事実。どのように取り組んでいけばいいでしょうか?

機械学習プロジェクトを仕事として成功させるためには、少なくとも自分たちがどういう性質のものを扱おうとしているのか、ということを知る必要があると思います。上記の3点に対して、それぞれ

  • どのようにして技術的負債が蓄積されるのか
  • プロジェクトを進行するにはどのような手順があって、どのフェーズで試行錯誤が必要なのか
  • 何をもって完了とするのか。または、リリース後にどのように継続的な取り組みが必要なのか

といった事柄を知り、理解しておく必要があります。

本書を読むと、これらについての概観を得ることができます。また、本書を読む以前から機械学習プロジェクトのマネージメントに取り組んでいますが、そこで経験した所感とも一致します。もう少しはやくこの本を読んでいたら、プロジェクトの最初のアプローチも変わっていたかもしれない、とも思いました。

コードを書かなくなったマネージャによってもたらされる最大の地獄は、「自分がコードを書いていた時代に経験したセオリーをいつまでも当てはめ続けることで失敗する」というものです。機械学習プロジェクトは、この世にそれを経験した人が圧倒的に少ないゆえに、このようなマネジメントの過ちが、これから最も起きやすい分野であるともいえます。

正しい知識を得て、適切にプロジェクトに取り組めるようにしておきたいですね。そういう意味では、これから仕事で機械学習に取り組んだり、取り組もうとしていたりする全人類が読んでおいても損はないかもしれません。