Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ベテランエンジニアほど罠にハマる、通常SIと、AI・ML開発の相違点・共通点

piacerex
October 20, 2018

 ベテランエンジニアほど罠にハマる、通常SIと、AI・ML開発の相違点・共通点

piacerex

October 20, 2018
Tweet

More Decks by piacerex

Other Decks in Technology

Transcript

  1. 2018/10/20 (Sat) 福岡ML/DL Meetup#2 ベテランエンジニアほど罠にハマる 通常SIとAI・ML開発の相違点・共通点 2018/10/19 ver 0.5作成 2018/10/20

    ver 0.9作成 IAI Fukuoka (Institute for Advanced Intelligence) iaifukuoka.connpass.com ​AIジョブカレ aijobcolle.com +
  2. 1 カラビナテクノロジー株式会社 CTO 常務 / 他2社経営 プログラマ歴36年 / XPer歴18年 /

    福岡 技術顧問 (3社) AIジョブカレ 福岡代表 / enPiT (文科省 社会人IT育成) 講師 。 森 正和 |> 。 Elixirコミュニティ「fukuoka.ex」 福岡 理学部 / IAI Fukuoka / 「通常の3倍」福岡 主催 「量子コンピュータ by Blueqat」 / 「OpenQL」 福岡代表 福岡Elixirプログラマ / 重力プログラマ my favotite technology & implements. Twitter/Qiita/Github @piacere_ex
  3. 18

  4. 19

  5. 28 1. 本セッションの背景と趣旨 2. 通常SIと、どこが大きく異なるか? 3. 通常開発とAI・ML開発の相違点・共通点 ① インプットデータの種類・量が多い ②

    インプットデータの収集経路が未整備 ③ データクレンジング・加工の開発が必要 ④ 主成分抽出や特徴量削減の実施 ⑤ 学習モデル実装は通常開発と全く異なる ⑥ 高い訓練データ (正解データ) 構築負荷 ⑦ 有効な学習モデル評価は時間がかかる ⑧ 運用時未知データ予測の監視・管理設計 ⑨ 継続案件獲得やPDCAには、それなりの説得力 (SI能力・統計知識・Noを言える胆力)が求められる 目次
  6. 30 1.本セッションの背景と趣旨 AI・ML (Machine Learning:機械学習) が盛んになる一方、 AI・ML開発についていけているエンジニアと、そうでないエンジニア の格差は、無視できないレベルに広がっています 中でも、通常SIで、腕の立つエンジニアであればあるほど、マズイ 方向にハマってしまうパターンも見受けられます

    また、企業の方も、通常SIとの違いを掴み切れず、導入に踏み 切れない、もしくは導入したが苦境に立たされています こうした現象の原因である、従来の通常開発と、AI・ML開発の 相違点について紐解き、落とし穴となるポイントを見ていきます また、AI・ML開発は、パッと見の印象と違い、通常開発と共通 の部分も実は多いため、共通点についても整理していきます
  7. 32 2.通常SIと、どこが大きく異なるか? AI・ML開発の中で、通常開発と大きく異なる点は以下です ① インプットデータの種類・量が多い ② インプットデータの収集経路が未整備 ③ データクレンジング・加工の開発が必要 ④

    主成分抽出や特徴量削減の実施 ⑤ 学習モデル実装は通常開発と全く異なる ⑥ 高い訓練データ (正解データ) 構築負荷 ⑦ 有効な学習モデル評価は時間がかかる ⑧ 運用時未知データ予測の監視・管理設計 ⑨ 継続案件獲得やPDCAには、それなりの説得力 (SI能力・ 統計知識・Noを言える胆力)が求められる
  8. 34 2.通常SIと、どこが大きく異なるか? 前述した①~⑩は、以下のように配置されます ⑦有効な学習モデル評価は時間がかかる ⊕ 運用 ⑨継続案件獲得やPDCAには、それなりの説得力 (SI能力・統計知識・Noを言える胆力)が求められる ①インプットデータの種類・量が多い ②インプットデータの収集経路が未整備

    ③データクレンジング・加工の開発が必要 ⊕ ④主成分抽出や特徴量削減の実施 ⑤学習モデル実装は通常開発と全く異なる ⑥高い訓練データ (正解データ) 作成負荷 ⑧運用時未知データ予測の監視・管理設計 ⊕ ⊕
  9. 39 3-①.インプットデータの種類・量が多い AI・ML開発の案件は、通常開発と比べ、扱うインプットデータの 種類・量が、共に多いパターンが多いです 元データは、以下のように幅広く、最新技術も求められます • Hadoop/Spark • クラウド上のペタバイト級ビッグデータや特殊DB •

    AWS Redshift • GCP BigTable/BigQuery、Spanner • Azure Cosmos DB • API (外部、内部)やSNS、外部連携システム • EC2/GCE/AVM上やS3上、社内にあるリソース • ファイル (テキスト、CSV、TSV、Excel、独自ファイル) • Oracle、PostgreSQL、MySQL等
  10. 40 3-①.インプットデータの種類・量が多い 特に厄介なのは、以下2ケースで、通常SIと比べ、要件定義 フェーズで苦戦を強いられることが多いです A) データ未整備 • 構造化されておらず、フォーマットも統一されていないCSV、 TSV、Excel等を大量に提供されるケースや、SNS利用 •

    データ集約のコストが想定以上に高くつく B) データ量に対する万能感幻想 • 「データ量が多ければ、有効な分析ができる」と思い込み、 次から次へとデータを提示される (もしくは要求している) が、要件にマッチしないノイズデータが多数を占めるケース • 営業がよく分からず、案件を取ってきていまった • 顧客がAI・MLに夢を抱き過ぎている (その夢にどれ位 の膨大なコストがかかるかを良く分かっていないことも)
  11. 44 3-③.データクレンジング・加工の開発が必要 通常SIでも、インプットデータのクレンジングや加工は行いますが、 AI・ML特有の以下特性により、より手間がかかります A) 欠損値の扱いは、補完なのか除外なのか? • 要件により、ケースバイケースなので、効果想定が煩雑 • 補完する場合も、avg/med/max等の考慮が必要

    B) 数値以外は利用できない • 文字列やカテゴリ値は、必ずワンホットエンコーディングする か、列毎除外する必要がある • 日付は、何らかの基準日からの経過日数等に変換しな ければならない C) 数値自体の標準化やノーマライゼーション、ホワイトニング D) 不均衡データ時のアンダーサンプリング/オーバーサンプリング
  12. 46 3-④.主成分抽出や不要な特徴量削除の実施 「3-①.インプットデータの種類・量が多い」のより実践的内容 となりますが、多過ぎるデータというものは、モデルの予測精度の 安定性を低下させます (モデルの学習負荷の増大も招きます) 特徴量として貢献しないデータを除去するアクションが重要です A) 特徴量の重要度・不純度分析 •

    主成分分析 • 非負値行列因子分解 (NMF) • ジニ不純度やエントロピーを使った情報利得の最大化 • Partial Dependent Plotで特徴量変動影響の確認 B) 特徴量の次元削減 • ルールベース、統計値ベース、モデルベース • RFE (Recursive Feature Selection) の利用
  13. 56 3-⑥.高い訓練データ (正解データ) 構築負荷 AI・ML開発は、モデルの構築以上に、訓練データに正解データ (教師データとも言う) をラベリングしたり、データ自体の選り分け に、多大な手間と時間が取られることが往々にしてあります 特に、画像・動画データの準備 (撮影、収集、フィルタリング等)

    や、テキストデータの読み込みは、扱うデータ量も多く、人間が データをイチイチ見て判断を繰り返す単純作業でしんどいです 人力でどうにかするなら、「訓練データ構築は、別働隊を組んで、 使う頭を別にする」、つまり、体制構築で解決するのが1案です 次の案は、AlphaGoを訓練したのと同じ手法で、訓練データを 強化学習器に生成させる、という手です もう1案は、カプセルネットワークや転移学習、NASを使う手です
  14. 57 最新AI・ML技術まとめ 今回、ご紹介した最新AI・ML技術をまとめると以下の通りです ➢ カプセルネットワーク • 少ないデータでも、高精度かつ耐久性の高い予測が可能 であり、NN/DLを超える、高い汎化能力を発揮する • 実証が少ないが、仕組みが合理的で、トライの価値あり

    ➢ 転移学習 • 少ないデータのドメインも、大量データで学習済みのモデル があれば予測を行え、高い汎化能力があると言える • 「学習の仕方を学習する」ことが可能なため、将来的には、 より少ないデータからの高精度学習に応用が期待できる ➢ QRNN • 時系列データ分析は、ビジネス領域で最も重要なデータ 分析課題で、QRNNは、その効率改善に実用できる PyCon Kyushu 2018スライドより
  15. 58 「カプセルネットワーク」とは? 2度の「AIの冬」の間もAI研究を続け、2012年にディープラーニ ングをヒットさせた「AIの父」、ジェフ・ヒントン博士 (70歳!) が 編み出した、ニューラルネットワークを超えると言われるAI新技術 半年前の2017年10月に論文を発表し、ニューラルネットワーク の最高精度に匹敵しつつ、誤答率が最低時のNNの半分にまで 減少できる、という研究成果を発表しています

    最大の違いは、ニューラルネットワークが特徴を「全特徴の量」で 捉えていたのに対し、カプセルネットワークは特徴を「各特徴毎の ベクトル」で捉え、更に「各特徴の間にある関係性」も捉えます 現在、Google Brain PJの研究者 とトロント大学教授を兼務している PyCon Kyushu 2018スライドより
  16. 61 「転移学習」とは? 転移学習の実現には、以下3つのアプローチがあります ① 学習済みモデルの出力層のみ別ドメインに適応 • ドメイン間のタスクに共通点がある場合、入力層や中間 層・隠れ層の重みは固定し、出力層だけを別ドメインで 学習させることで、共通する特徴の抽出が可能です ②

    ドメイン非固有の特徴のみに限定 • 「表現学習」と呼ばれる、汎用的な特徴や、分散を学習 することで、ドメインに依存しない部分に限定して学習し、 ドメイン非固有の特徴を抽出します (AEはこの一種) ③ ドメインの違いを予め認識させて選り分ける • ドメイン間の変換を事前に学習させ、ドメイン間の違いを 認識し、ドメイン固有と非固有を判別することで、各々の 特徴を抽出できます (≒学習の仕方を学習する) PyCon Kyushu 2018スライドより
  17. 62 5.「NAS (Neural Architecture Search)」とは? 人手で行われていた、ニューラルネットワークの構造設計と、ハイ パーパラメータのチューニングを自動で行い、学習を行う最適化 は、「Controller RNN」と「Child Network」という、2つの

    ニューラルネットワークの組み合わせによって構成されています 「Child Network」は、自動チューニングされる対象のニューラル ネットワーク本体で、「Controller RNN」は、Child Network の構造を最適化探索するためのニューラルネットワークです デブサミ福岡 2018スライドより
  18. 63 5.CNNにおける「NAS」 CNNの「Controller RNN」は、 層毎におけるハイパーパラメータ (フィルタ、ストライド※1 ) をグリッド サーチ…つまり全探索※2 します

    ※1: ストライド=フィルタのシフト幅 ※2: 実際はSkip Connectionで層飛びさせます CNNをChild Network とするNASは、右記の通り Controller RNNから Child Networkの設定 を行い、 Child Network が学習され、テスト正解率 を報酬として、Controller RNNの更新を繰り返します Controller RNN Child Network 強化学習 デブサミ福岡 2018スライドより
  19. 65 2.AutoML Visionではどうなるか? 「AutoML Vision」では、ユーザ自身が訓練データ画像と分類 のためのラベルを共に追加し、画像とラベルの関係性を学習する モデルを構築できるため、ユーザ独自の識別が可能になります (積雲) (入道雲) (層雲)

    (積雲と分類できる) (入道雲と分類できる) ①ユーザ自身で 訓練データ画像 とラベルを追加し、 モデルを構築 ②構築した モデルを利用 ③分類 デブサミ福岡 2018スライドより
  20. 66 3.AutoMLがどれほど手軽にモデル構築できるか? 訓練画像をアップし、ラベルと関連付け、[TRAIN]ボタン押下で、 モデルが構築され、評価も行われます (コーディング一切不要) https://www.youtube.com/watch?v=GbLQE2C181U 訓練画像群で [TRAIN] 適合率 (Precision)

    と再現率 (Recall) 、 AUCを出力 真陽性率 (True Positive) と 偽陽性率 (False Positive) から ROC曲線とAUCを出力 http://www.randpy.tokyo/entry/roc_auc 学習時 デブサミ福岡 2018スライドより
  21. 67 3.AutoMLがどれほど手軽にモデル構築できるか? 新たに構築したモデルは、[PREDICT]ボタン押下でテストができ、 Cloud Vision APIと同じく、REST API呼出で利用できます (積雲) (入道雲) (層雲)

    REST API呼出で未知データをアップ 分類 テストデータで [PREDICT] テストデータ をアップ 運用時 テスト時 分類 デブサミ福岡 2018スライドより
  22. 68 3.参考: AutoML Vision β版のUI Google Cloud Next '18 (2018/7/25開催)

    で発表された AutoML Vision β版では、UIが大幅に変更されていました 訓練画像群で [TRAIN] デブサミ福岡 2018スライドより
  23. 69 3.参考: AutoML Vision β版のUI テストデータで [PREDICT] 分類 複数ラベルとのマッチ についてもマトリクス

    で表示されるように REST APIおよび PythonのIFコードも 自動生成 デブサミ福岡 2018スライドより
  24. 75 3-⑨.継続PDCAに説得力 (高SI能力・統計知識・胆力) AI・ML開発の現場では、通常開発の何倍も、顧客やステーク ホルダーの説得が重要になってきます (多額のIT投資や、ベンチャーキャピタルからの資金が注入される シチュエーションとなれば、そのプレッシャーは尚更です) 更に、顧客のリテラシーレベルによっては、高い説得力が要ります たとえば… •

    「AIでパパッと何でも出来るんじゃないの?」 • 「そもそも、この案件で、AI・MLを使うべきでしょうか?」 • 「弊社のデータは豊富なので、欲しい結果が手に入るだろう」 こういった物言いに、実はML・DLは答えを出せないことが多く、 SI能力や統計知識を駆使して回答 or スルーすることが最重要