「機械学習プロジェクトキャンバス」がデータサイエンティストの仕事を変えそう！

こんにちは！　この記事は[機械学習ツールを掘り下げる by 日経 xTECH ビジネスAI③ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/machine-learning-02)の16日目の記事です。私が2019年で最も感動した機械学習ツールを紹介します。

はじめに
---
私は勤め先でイントラプレナー（社内起業家）としてAIビジネス開発を推進しています。そんな私が、このアドベントカレンダーのお題である「機械学習ツールはデータサイエンティストの仕事をどう変えるか」に魅かれたのは、まさにデータサイエンティストの仕事を変えそうだと思っているツールがあって、それを多くの方に伝えたいと思っていたからです。その存在を私が初めて知ったのは、次の記事でした。

参考：[日経xTech「AI活用を成功させる12項目、三菱ケミカルが「虎の子」方法論を無償公開」](https://tech.nikkeibp.co.jp/atcl/nxt/column/18/00001/02752/)

機械学習プロジェクトキャンバスというこのツールは、株式会社三菱ケミカルホールディングス（以降、三菱ケミカル）が「当社が直近の約2年間で手掛けた数十件の機械学習プロジェクト経験を基に、失敗しないために何をどう定義すべきかをまとめた」という虎の子のノウハウなのだそうです。PoCだけで終わってしまう機械学習プロジェクトは世の中にたくさんあると思うのですが、そういった事態に陥らないためのリアルな方法論だと思います。その内容が学術的ではなくて、とても実用的であることに、私は感動しました。私が今までつまづいてきたこと、そして今でもつまづいていることが、ここにたくさん書かれているのですから。

そしてこれを読んで感じたことは、データサイエンティストの仕事を変えそう！ということでした。性能を上げることや精度を競うい合うことだけじゃないのですよね。機械学習プロジェクトをPoCだけで終わらせるのでなく、きちんとプロジェクトの目的を達成するところまで進めきることが、データサイエンティストの仕事なのだと思うようになりました。

さて、この記事では三菱ケミカルが無償公開している機械学習プロジェクトキャンバスを、私なりに解説します。実用的なツールなので多くの人に知ってほしいと考えているからです。一応、私は三菱ケミカルとは全く関係の無いエンジニアであり、本記事は第三者としての解説であることを補足しておきます。私の理解に正しくない部分があるかもしれないことを予めご了承ください。

機械学習プロジェクトキャンバスとは？
--
参照：[三菱ケミカル「機械学習プロジェクトキャンバス」](https://www.mitsubishichem-hd.co.jp/news_release/pdf/190718.pdf)
2019年7月に三菱ケミカルが公開したツールです。上記のリンク先から参照することができます。「石油化学プラント 予兆検知」や「⼯場の設備劣化検出」といったリアルな記載例もあって、とても理解／実感しやすいドキュメントとなっています。キャンバスには12個の枠があって、この12項目についてプロジェクトのステークホルダー全員が合意するように協議して決めていく、という使い方をするようです。各項目でどのようなことを協議してくのか、一つひとつを見ていきたいと思います。
![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271244/1ba6fced-9d11-81d8-afcd-19481871a5c0.jpeg)

#### 1. 目的・目標 (Purpose/Goal)
当然のことですが、機械学習を始めるときに最初に設定すべきことだと思います。ですが、（**自戒の念を込めて書きますが**）意外とこの目的が上手く設定できていないプロジェクトは世の中に多く見受けられます。例えば、会社の上層部から「AIを使った何かを考えろ」といわれて発足したプロジェクトの場合は、目的・目標が迷走しがちです。最初にどれだけ多くの時間を要したとしても「何をどれだけ改善したいのか」は、しっかり議論すべきだと思います。

#### 2. 利用者 (User Segments)
目的・目標が設定されたら、次は、誰がその機械学習を使うのか？を明確にします。説明には「予測能がいくら高くても使われないシステムは無価値」と書かれていて、これはその通りだなと思いました。利用者がどのような役割や職種の人かだけでなく、「ITやAIには詳しくない」といった人物像までブレイクダウンしていくのが良さそうです。

#### 3. 予測の利用方法 (Actions Based on the Prediction)
予測結果をどのように利用するかを早い段階で協議しておく理由は、ここから逆算して必要な精度や所要時間をイメージするためです。機械学習の精度が100%にならないことはよく知られているのですが、では精度が何%だったら許容できるのか？を検討するための材料って、なかなかありません。三菱ケミカルの機械学習プロジェクトキャンバスでは、予め「予測の利用方法」を設定した上で「成功の指標（次項目）」を協議する順序となっているために、精度が何%だったら許容できるのか？について建設的な議論ができる仕組みになっているところが秀逸だと思います。

#### 4. 成功の指標 (Metrics of Success)
「予測の利用方法」をもとに、精度が何%だったら許容できるのか？を検討します。

それだけでなく、成功の指標を「正解率」・「精度」・「再現率」のどれで定義するかも重要な検討要素だと思います。例えば、機械学習で配管の劣化を画像認識で判定をするのであれば、”劣化”と”劣化じゃない”の2クラスの確率は極端に偏っていると思いますので、「正解率」を指標とするのは適切ではなさそうです。劣化を見落として工場設備が停止した際の損害額は大きそうですから、実は劣化していないのに劣化と判定するの誤分類は許容されると思います。むしろ見落としが怖いから「再現率」が成功の指標になりそうです。ただ、ケースによっては劣化と判定された際の点検コストが高額なので、確実に劣化しているものだけ劣化と判定してほしいこともあって、そのときは「精度」が成功の指標になると思います。

#### 5. データ (Data)
機械学習プロジェクトの成否を決めるデータですが、これを集めること自体が現実的でなかったり、高コストになってしまうことは多いと思います。単純に画像認識であっても、画像を集めるだけでは終わりません。そこから領域を選択して、ラベルを付けてといった作業を1枚1枚に対してやっていくことになり、かなり大変です。もちろんデータサイエンティストは実感していることだと思うのですが、プロジェクト内の他のメンバーにも理解してもらう必要があると思います。

#### 6. 過去の知見・アドバイザー (Past Knowledge/Professional Advisors)
データさえそろえば良いかというとそうでもなく、やはりその領域／ドメインの知見を持たずにプロジェクトを進めるのは無謀だと思います。自社内もしくは他社かもしれませんが、その領域／ドメインの知見を持っている人と協力して進めていくべきです。ですが、（**自戒の念を込めて書きますが**）忘れがちな項目だと思います。機械学習プロジェクトキャンバスでは「過去の知見・アドバイザー」だけで1つの項目を埋めるようになっているあたりが実用的だと思います。

#### 7. 最終システム形 (UI/System for End Users)
最終的にどのようなシステムを作るかですが、これはエンジニアにとっては考えやすい項目だと思いました。ただ、エンジニアだけでなく全てのステークホルダーが共感できるプロジェクトにするためには、力を入れて魅力的にしたいところですね。

#### 8. 検討時の計算手法・インフラ (Algorisms/Infrastructure for Trial)
世の中にあるフレームワークをそのまま使えるか、機密情報でなければクラウドも使えるかなど時間と資金に大きく影響するため、イメージを付けておくべき項目です。

#### 9. オープン戦略 (Open Strategy)
オープンデータを使うこともそうですが、最近の画像認識は公開モデルの転移を試すのが現実的ですので、オープン戦略も考えていきたいです。ここ次第で、コストを大きく下げられる可能性があります。（余談ながら、今、転移学習に注目しています。今月、Rekognition Custom Labelsという画像認識の転移学習ができるAWSのモジュールがリリースされていたので、[こちらに解説記事](https://qiita.com/ea-yasuda/items/88e1b6bb9bc1cf80772d)を書きました。）

#### 10. 展開性・副次的な効果 (Expansion/Secondary Goal)
「目的・目標」の項目には直接的に達成したいことを書きますが、ここには副次的に達成できそうなことを書きます。こういった広がりを示せるプロジェクトって、苦戦して成果が出るまで時間がかかったとしても、社内で応援してもらいやすいと思います。

#### 11. データ補強 (Data Enhancement)
元のデータを補強するためにできることを補強する項目です。例えば、画像データ内の物体認識に手動で正解データを作るといった活動が考えられます。

#### 12. モデル更新・メンテナンス (Model Update/Maintenance)
予測モデルは最初に作ったものをそのままとはせず、何度もメンテナンスしていきます。例えば、データを1日1回付け足して予測モデルを更新するといった活動が考えられます。


おわりに
--
本記事では、三菱ケミカルの機械学習プロジェクトキャンバスを紹介しました。解説記事を書いていただけのつもりなのですが、気が付いたらこの1年間の私のプロジェクトを心の中で振り返っていました。2019年の私は、AIを使った新製品を作ろうと考え、勤め先のイントラプレナー（社内起業家）のプロジェクトリーダーとして活動していました。ですが、PoCをやって、何かイマイチだねとなって、また新しいものに手を出して・・・というのを繰り返すようになってしまって、大苦戦。AI技術を熟知していることはもちろん重要なのですが、それだけではダメだなと思っていたところでした。

このツールを知ってから、「目的・目標」からブレていたよなーとか、「過去の知見・アドバイザー」みたいなものは軽視していたよなーとか、反省するところがたくさんありました。まぁ、2019年は年の瀬ですから、それは2020年で盛り返していこうと考えています。そのために、早速、自分のプロジェクトのキャンバスを作りました。

それくらい、機械学習プロジェクトでつまづいてしまうポイントが良くまとめられている秀逸なノウハウ集だと思います。データサイエンティストの仕事はアルゴリズムをいじることや精度を上げることだけではなくて、機械学習プロジェクトを成功に導くことなのだと再認識できるドキュメントですので、オススメです。是非、お読みになってみてください。

参照：[三菱ケミカル「機械学習プロジェクトキャンバス」](https://www.mitsubishichem-hd.co.jp/news_release/pdf/190718.pdf)

参考
--
[QIITA：「機械学習・AIプロジェクトの要素を整理する手法をまとめてみました」](https://qiita.com/shore/items/15e7c1aebf3b25fbfcf7)
⇒　こういった整理手法は国内外に色々あるようです。

[三菱ケミカル「ニュースリリース2019年7月18日」](https://www.mitsubishichem-hd.co.jp/news_release/00837.html)