About connecting the dots.

data science related trivial things

書評: 人工知能システムのプロジェクトがわかる本

もうすっかり四半期に一回しかブログを書かないような感じになってますが,変わらずデータ分析業界の片隅で細々と生きております.さて,今回は著者の方より献本をいただいたので,書評を書きたいと思います*1

この手の機械学習*2そのものではなく,そのプロセスやシステムに焦点を当てた本はこれまでもありました.従来書だと,機械学習システムを内製するエンジニア向け,機械学習システムを発注する側向けがありますね.そしてついに,機械学習システムを受託で開発する側の本が出てきたので,これで足りないピースがそろった感があります (w いずれの本も機械学習という事象を正しく捉えていると思うんですが,視点を変えるとこうも内容が変わるもんだなぁと興味深く思います.

仕事ではじめる機械学習

仕事ではじめる機械学習

人工知能システムを外注する前に読む本~ディープラーニングビジネスのすべて~

人工知能システムを外注する前に読む本~ディープラーニングビジネスのすべて~

この本を読んで得られるもの

いわゆる SIer の人が,RFC・要件定義・PoC・開発・および保守運用といった通常のシステム開発フレームワークにのっとった形で,機械学習システムの作り方(や既存のシステムとの違い)を理解することができる

この本のスタンスは非常に明確で,SIer に勤務しており,これから機械学習システムの提案・受託を行おうとしている(もしくはすでに行なっている)人です.本編の流れはほぼひとつのケーススタディに沿っており,その中で実際に考慮すべき点,通常のシステムとの違いについてわかりやすく説明がなされています.機械学習システムは他のシステムと比べて,要件定義の難しさや手戻りの可能性,また保守運用の中での継続的なモデル改善の必要性といった点で,多くの不確実性を孕んでいます.そのため,こうした点に特別の注意を払って RFP は作られる必要があり,またそれに応じた提案を行う必要があります.私の個人的な経験でも,このあたりの難しさをわかりやすく説明しているものはなく,その点非常に多くの人に有益なように思います.

個人的にためになった点

私自身はいわゆる SIer に勤めた経験はなく,このようにカッチリしたシステム受託のプロセス周りの知見がそれほどありません.なので,SIer 的なプロセスを,機械学習システムという自分に馴染みのあるものを通して体感的に理解できたことはなかなか良いものでした.

また,個人的にクリーンヒットだったのは,「人工知能に期待しすぎる人に対する返し方」というコラムです.ちょっと長いですが引用すると,

人口知能に過度な期待を抱いている人と一緒にシステムの目的を協議する際には,彼らの意識を変えなければなりません...(中略)...利用者 「これくらいの精度はうちの○○さんでもできそうだ」→「入社直後の人が○○さんくらいの業務ができるようになるのはすばらしいことですよね...(中略)...利用者「検知したい不正の70%しか検知できてないじゃないか」→「人が検知したときには,これ以上の漏れがあると聞いていますので,人によるチェックも併せてやると,人の手間も減らしながら精度が上がりそうですよね」

私もいままで機械学習に詳しくない人とお話をする中で,どのように相手側の期待値を正しいところに落ち着かせ,目線を揃えていくかというところに結構神経を使うことがあります*3.こうした点も含めて,実体験からきている(であろう)こうした記述が,非常に参考になります.ネット上に溢れている言説の大半は,機械学習のエキスパート(大体の場合研究者か内製企業のエンジニアやデータサーエンティスト)か,機械学習ブームを煽るメディアサイ*4の言説で,このように地に足のついた言説をみる機会はほぼないように思います.

あと,業務システムに組み込むときの運用含めた注意点として,機械学習に詳しくない担当者が予測値をどう業務に生かすかを考えてシステムの設計がなされている点がとても興味深いです.新商品に対する想定や,異常値が出ることも想定して,予測値を人間がチェックしてから発注するといったプロセスのように,実際的な Tips が良いです.

その他

巻末に PFR および提案書,PoC のドキュメントや結果報告書等含まれており,こうしたものは実業務に携わる人向けでよいなーと,他人事ながら思います.あとは機械学習の詳細を捨てて,システム屋が機械学習システムについて知る,というスタンスに特化したのは良い判断だよなーという感じです.そういう本は山ほどありますし,今更そういうのはいらないと思うので.

ただ細かいところでいくつか気になるところもあって,例えば参考書籍が初級本と中・上級本に極端に別れているところは,なんでこんな風になったんだろうという感がします(プロジェクトマネジメントに関する本で,PMBOK ガイドと「マンガでわかるプロジェクトマネジメント」しかないとか).あとHadoop に関する脚注が「Apach Spark のこと(原文ママ)」になっているのは,普通におかしいので修正いただけることを望みます*5.また細かい点だと,機械学習に関する用語はできるだけ平易な言葉遣いをされているんですが,後半にいきなり汎化性能という言葉が説明なく出てきたり,ローパス・ハイパスフィルタが説明なく使われていたり*6,細かいところでは気になる点があるのですが,こちらも修正されると良いなと思っています.

*1:この場を借りて厚く御礼申し上げます.

*2:個人的なスタンスとして,人工知能という言葉をできるだけ使いたくないので,本のタイトル等を除いては,このエントリでも機械学習で統一しています.

*3:こうした方の中には,精度100%でないならお前らのものは使わん! といったことをおっしゃる方もいらっしゃいました.まぁ機械学習をご存知の方ならお分かりの通り,精度 100% が達成できるなら,それははじめからルールベースで記述でき,機械学習をそもそも使う必要がないわけです...

*4:ここには,実のところ SIer のセールストークも多分に含まれます.もちろん商売なのでそういう行為は仕方がないわけですが,過度に期待を煽っても,実際に案件を受けるときに苦労するのは現場の人たちなのになぁ,と思うことはよくあります.

*5:Apach ではなく Apache だし,Hadoop は Spark とは全く別の技術です.

*6:どちらも一般的なシステムエンジニアが知っているわけではないように思います.