【後編】機械学習工学研究会キックオフシンポジウムの前に読みたい記事や論文や本

昨日は分析官やっている人間が機会学習システムの課題感について全体感を把握するためにいくつか見直したけど、今日は開発プロセスや実行する組織、支える基盤についてフォーカスあてていこうと思う。もろもろ課題あるけど、実際どうやって機械学習システムって作るんだっけ?って視点。きっとソフトウェア工学のアカデミアの人とか、エンジニアから機械学習始めた方々は違った視点があるんだろうけど。

分析官として機会学習システムの開発やってて*1、従来のシステム開発とは違うんだろうなと思うのは、

  1. 機械学習モデリングの部分でPoC挟むからプロジェクト開始時に要件定義固めちゃうの難しい
  2. AIブームで機械学習が何をどこまでできるかわからん人多くて、これもやっぱりプロジェクト開始時に要件定義固めちゃうの怖い
  3. 運用に入ってからも「モデル再学習」というプログラムの変更なしにシステムの挙動が変わるイベント発生しがち

あたりですね。


1については例えば異物を排除するようなシステムを考える場合、異常検知の精度がめちゃくちゃ良ければ、業務適用時に完全自動化を目指すような形になるかもですし、精度そこそこなら、人間が実施している工程をサポートするようなシステムが求められるかもですし。この辺りはPoCの結果を見ながら「どのように業務適用させるか考えよう」になりがちです。最初に要件決めきらずに少しずつ完成形を目指していくのはきっとアジャイルな開発が向いているのだろうなと。

2については、今だけの一過性の話であって欲しいですが、机上で要件定義をしようとすると、企画者、ユーザー、ステークホルダーなどがそれぞれみんな異なるAIなるものを頭に思い描いているので、議論が噛み合わず要件が決まりきらなくなってしまいます。なのでたたき台となる具体的なプロトタイプを早く作って意見をすり合わせるのが重要かなと。

昨今のAIブームだと開発することにみんな熱中してて、3のような機械学習システムの真の魔物が運用時にいることにあまり注目されてないんですよね。日々のデータに合わせて機械学習モデルを再学習&更新するタイプのシステムだと運用って下記みたいなフローになるのではないかと思います。


f:id:tkzs:20180516173218p:plain


この時、従来のシステムと異なるのはデプロイ判定する場面が二つあり、それに合わせてループが二つあることかなと。特に再学習側のループはプログラムの変更無しにシステムの挙動が変わるので、「なんでこんな挙動になるんだ?」はデータを見てみないことにはわからないことも。さらに本番デプロイしてOKかどうかも全自動で判別できないこともあり、その場合にはデータのことよくわかってるビジネス担当とデータエンジニアや分析官で相談しながら対応しなければいけなかったり。適用する業務先によってこの辺はマチマチなので汎用的な解はないでしょうが、だからこそ難しい。

以上、3つの課題感に対して、この辺を上手いことやる方法がいわゆるアジャイル開発やDevOpsってものにあるんじゃないかなと感じていますが、どう機械学習システムに応用していいのかは模索中。

読んだ本達

エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング

エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング

「エンジニアリングとは不確実性を減らすこと」でありその概念や具体的な方法論について紹介されていて、不確実性が高くなりがちな機械学習システムの開発に役立つ考え方が多く参考になりました。

Effective DevOps ―4本柱による持続可能な組織文化の育て方

Effective DevOps ―4本柱による持続可能な組織文化の育て方

DevOpsのための4つの柱の1つ目がコラボレーションであり二つ目がアフィニティなのは、機械学習システムではより求められそうだなと。上記の図で再学習でのシステムの挙動の変化を掴むためにはステークホルダーで相談だ!みたいなシチュエーションがると言いましたが、この辺りをどのように組織として効果的に実施するのかはものすごく重要に思えます。これまでのDevOpsと比較して参加する人種が増えてくるところが大きな違いとチームの偉い人が言ってて、すごく納得感有る。

DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)

DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)

  • 作者: 河村聖悟,北野太郎,中山貴尋,日下部貴章,株式会社リクルートテクノロジーズ
  • 出版社/メーカー: 翔泳社
  • 発売日: 2016/10/14
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

組織論やプロセス論だけではなくて具体的なツールについても記載があり参考になりました。大事なのはモデル構築→デプロイ→再学習→デプロイといった流れを上手く支える基盤とコミュニケーションツールですが、機械学習システム向けってのはまだないですね。既存のものの応用でできるかどうかは、適用する業務によって変わるんじゃないかなって印象です。

まとめ

機会学習の急速な普及で、研究者でもエンジニアでもない立場の人間でも、どうやって実業務に運用しようか?を考える必要が出てきてます。立場が異なる方々とお話できる良い機会なので意味有る会話をさせて頂けるよう頭の中整理してみました。楽しみ。

*1:エンジニア出身じゃないから正直自信ないとこあるけど