機械学習プロジェクトとアノテーション（機械学習名古屋第22回勉強会）

# はじめに
この資料は機械学習名古屋勉強会のAnnoFabハンズオンの補足説明です。
本編は[こちら](https://qiita.com/yuji38kwmt/items/9b050b5cde5edb5a0324)です。

## 自己紹介
* n-kats(中西克典)
* 来栖川電算で機械学習エンジニア

---
# 話の内容
アノテーションと機械学習プロジェクト全体の関係の話を通して、研究者（機械学習エンジニア）視点で思っていることを話します。

---
# 結論を先に言うと、
## サービス内容・アルゴリズム・アノテーション方法・データは密につながっている
バッサリ分けて考えている人が多い気がする、炎上の元なのでやめてほしい

## 機械学習プロジェクトには研究者以外の努力も大切
丸投げダメ絶対、肝心な仕事を忘れないで
機械学習にばかり目が行き過ぎてもダメ（機械学習楽しいけど）

## アノテーションをするだけで分かることはたくさんある
素早くたくさん失敗する・上手く行かないところに気付くには、すぐには機械学習をしない選択も


---
# お断り
難しい話かも。
結論は言ったので、これよりもハンズオンの続きをしたい人はそっちをしていてください。

話の想定する人は、「とりあえずAIで何かしろ」って感じで上司から言われた人。

---
# 【基本】スタンダードな機械学習プロジェクト

---
# 機械学習プロジェクトの始まり方
* 解決すべき課題を見つける  
何よりも大切
* 解決方法を探る  
→ 機械学習を選択  
機械学習の特性にマッチしていないといけない

---
# 研究のターン
* データ収集  
専用のセンサを用意  
個人情報等の法律のクリア
* アノテーション  
個人・チームでする。委託することも  
→ AnnoFab
* 訓練  
目標の性能を目指して試行錯誤

---
# 月日が流れ・・・
やっと

* サービス化  
ついに研究の成果が実るとき  
ユーザーに使ってもらう  
生産性が上がって省コスト化  
・・・

---
# アノテーション関連では・・・
例えば「解決方法を探る」の段階でどうアノテーションするかも考える。
アノテーション方法の検討の考え方を紹介する。

---
# アノテーションルールを決定するもの
アノテーションルールは、実際のデータをもとに、サービスの内容・アルゴリズム・アノテーション工程等を総合的に考え行う。

* プロジェクトの目的・目標精度・仕様
* 認識アルゴリズム（DNN・前後処理）
* アノテーションの効率（ツール・スケジュール・予算）
* データの実態

実際に教師データを使う研究者がこれらに関わるべき。

---
# 例
お題: 麻雀の役の認識

|方法|アノテーション|コメント|
|---|---|---|
|画像全体を分類|全体アノテーションで役の種類|組み合わせが多くて認識が難しい。役を覚えるのが辛い。|
|牌を検出、役はルールベース|関係ない牌も含めすべての牌を矩形で囲う|誤認識をユーザーが修正できると便利そう。ただし背景のバリエーションが難点。|
|牌が枠に収まるように撮影させ、そこだけで検出（2つ目と同じ）|関係する牌だけ囲う||

---
# 画像例
![sample_majan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51820/5ff5e32e-ccc9-24f0-e91a-6ad60c08dc56.png)

---
# （余談）ソフトウェア2.0
例で言いたいこと・・・研究者の方針でアノテーション方法が変わる
アノテーションルール作成は、データをどう扱うかを考えプログラミングすること。
まさに、ソフトウェア2.0の行い。

---
# スタンダードな機械学習プロジェクトまとめ
![standard_ml_flow.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51820/44173c4a-ba58-6807-ad78-fbd3faa34fed.png)

---
ね、簡単でしょ？
まずはこれを覚えてください
（実際はこれが有機的に関係して更新しながら進む。訓練をしてから弱いデータを追加したりとか。）

---
# 【課題】スタンダードな機械学習プロジェクトは簡単じゃない

---
# 簡単じゃないところ
* 最初から良い課題設定・解決方法ができるわけではない
* データ作成、訓練、研究のコスト  
成果が出る前に資金が尽きる、数年経ってしまう
* 手戻りの影響が大きい  
実際に訓練までやって課題設定がダメと分かると・・・

---
# アノテーションの部分だけでも
* データへの理解不足  
想定外の状況に遭遇して、アノテーションルールがマッチしない
* アノテーションルールを伝える難しさ  
思っていた教師データと違う
* 大規模アノテーション   
データ供給量やルールの完成度が間に合わず作業が止まると大きなダメージ

---
# これらを超えられない機械学習プロジェクト達
**機械学習が分からなくても出来ること**をサボるとプロジェクトが上手く進まない

* 検証すべき仮説を検証していない
  * サービスに価値があるか（コスト削減できるか、面白いか、便利か）
  * サービスや認識ができる状況か
* 仮説検証に時間をかけすぎている

（データを見たら分かるようなことが後回しになっていると・・・）

---
# 簡単じゃない件のまとめ
機械学習と関係のないところで困ったことになりやすい。
機械学習にびびらずに機械学習の専門家でなくても分かること・出来ることをちゃんとするのが大切。
データ見たりとか。

---
# 【発展】アノテーション駆動研究開発

---
# 機械学習プロジェクトをリーン化・アジャイル化したい
## アノテーション駆動研究開発（ADD）とは
機械学習モデル（AI）を作る前に、機械学習モデル（AI）の気持ちになってアノテーションをして、サービスの有効性・実現可能性の仮説検証やサービスの運用を行うこと

---
![ADD.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51820/156ed34b-aee0-cc2e-830b-645d9f50c864.png)

---
# アノテーション駆動研究開発の目指すもの
* 速く失敗に気づき、どんどん次の検討へ進み、プロジェクトを前進させる
* ADDで運用をして人間が対応している間に、機械学習のための資金・データを準備する

AnnoFabは柔軟な作図設定ができ、ADDに最適！
動画アノテーションも便利！

---
# ビジネストーク
機械学習プロジェクトは一筋縄ではいかないことが多く、経験のある専門家が全体像を見てサポートするのが重要そう。
個別具体のプロジェクトでどう進めるといいかお客さんと一緒に考えて、成功するプロジェクトを増やすような仕事をしていきたい。

---
# 【まとめ】とりあえずAIと言われたら

---
![toriaezu_ai.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51820/88aa2de3-4a32-2397-9ca4-5e796e6ff0ab.png)