Slide 1

Slide 1 text

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 +

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

2 ここから25ページ 最近の活動紹介 (飛ばす方はP28へ)

Slide 4

Slide 4 text

プログラマを35年間続け、最近「重力プログラマ」到達 重力波解析もするし、重力・天体シミュレータも開発する

Slide 5

Slide 5 text

職業エンジニアとしては、今年で23年目になります 金融・マーケティング・小売・CRM・教育が専門領域で、 アジャイル開発 (eXtreme Programming歴18年)、 性能向上、データサイエンス、未来予測に強みを持ちます 2~3名の小規模PMから、国民の成人1/4が利用する 大手キャリア大規模PJ基盤開発における300名チームの 性能統括まで、SI全般の経験を 積み、プロダクト開発や現場支援 では、自ら高速コーディングします

Slide 6

Slide 6 text

AI・MLに始めて触れたのは、25年前でした 2度目の「AIの冬」の終わり頃、 大学でマイクロカーネルOSの 研究・開発をする傍らで、 ニューラルネットワークに触れました

Slide 7

Slide 7 text

「重力プログラマ」と並行して「福岡Elixirプログラマ」 福岡でElixir採用企業、増殖中 今年度、20社採用、目指します データ処理に特に強い、分散・並列言語である「Elixir」 の企業導入を推進するコミュニティ「fukuoka.ex」主催

Slide 8

Slide 8 text

今年、Elixirの活用実装で、4本の論文を出しています

Slide 9

Slide 9 text

Elixirで、scikit-learn/Keras相当を実装中 「Elixir」の性能・並列性・生産性をAI・ML文脈でも活かすため、 fukuoka.exでGPU実装を行い、機械学習エンジン開発中です 半年後にはscikit-learn相当、1年以内には、GPU対応済の Keras相当をリリース予定です (arXivにも論文発表の予定) 北九大、京大の先生と共に Elixir GPU活用の共同研究

Slide 10

Slide 10 text

9 長年のプログラマ歴とSI経験、 AI・ML歴、宇宙まで届くデータ、 そしてデータ処理言語が私の強み

Slide 11

Slide 11 text

10 こんな強みを活かす 福岡の活動紹介

Slide 12

Slide 12 text

OSSを書いて、仕事作る CTO 常務取締役やってます

Slide 13

Slide 13 text

AI学校「AIジョブカレ」の福岡代表&講師やってます AI権威の松尾研出身で「詳解ディープラーニング」著者、 巣籠さん監修のAI学校、現役のエンジニアが講義中 https://www.aijobcolle.com/

Slide 14

Slide 14 text

13 キカガクさんと めっちゃ競合ですw

Slide 15

Slide 15 text

14 吉崎さんにお誘い いただいたので 来ちゃいました(^^)

Slide 16

Slide 16 text

15 ちなみにTRIALの 方も来てます (笑)

Slide 17

Slide 17 text

16 2018/8/24 福岡Elixirコミュニティ fukuoka.ex MeetUp #13 夏のfukuoka.ex祭=技術のパラダイムシフト

Slide 18

Slide 18 text

MeetUpは、「実際に動くコード」でライブデモします connpassのfukuoka.exグループに登録すると、次回 イベント開催のお知らせメール届きます、どうぞご登録を https://fukuokaex.connpass.com/ 地味に女子率、高し(^o^)

Slide 19

Slide 19 text

18

Slide 20

Slide 20 text

19

Slide 21

Slide 21 text

もくもく会は、Elixirに入門する人でも、経験者でもOK 仕事終わり、くつろぎ、ほろ酔いつつ、Elixir/Phoenix によるプログラミングの世界に触れてみませんか? ※入門スライド/Qiitaも用意していますので、初心者も安心 connpassのfukuoka.exグループ登録で、もくもく会の 開催お知らせもメールで届きます、どうぞ、ご登録ください https://fukuokaex.connpass.com/

Slide 22

Slide 22 text

AI・MLに欠かせない前処理系をOSSで無償提供 AI・MLには、前処理 (データクレンジング、変換・集計・加工) が 欠かせませんが、Elixir+Phoenix+Vue.jsで開発したOSS 「Esuna」を使えば、UI上でデータ処理を設定でき、AI・MLへと スムースにデータを流せます

Slide 23

Slide 23 text

22 2018/7/20 福岡 理学部 八限目 「重力と宇宙を愛する全ての人に」 #2

Slide 24

Slide 24 text

重力・宇宙イベント会 第1回は、こんな感じでした

Slide 25

Slide 25 text

第1回は、静岡県で天体研究しているJKキターッ!

Slide 26

Slide 26 text

第2回は、キエフから、宇宙法専攻JDキターッ!

Slide 27

Slide 27 text

福岡で人工衛星飛ばすQPS大西さんもキターッ!

Slide 28

Slide 28 text

27 本編ここから

Slide 29

Slide 29 text

28 1. 本セッションの背景と趣旨 2. 通常SIと、どこが大きく異なるか? 3. 通常開発とAI・ML開発の相違点・共通点 ① インプットデータの種類・量が多い ② インプットデータの収集経路が未整備 ③ データクレンジング・加工の開発が必要 ④ 主成分抽出や特徴量削減の実施 ⑤ 学習モデル実装は通常開発と全く異なる ⑥ 高い訓練データ (正解データ) 構築負荷 ⑦ 有効な学習モデル評価は時間がかかる ⑧ 運用時未知データ予測の監視・管理設計 ⑨ 継続案件獲得やPDCAには、それなりの説得力 (SI能力・統計知識・Noを言える胆力)が求められる 目次

Slide 30

Slide 30 text

29 1.本セッションの背景と趣旨

Slide 31

Slide 31 text

30 1.本セッションの背景と趣旨 AI・ML (Machine Learning:機械学習) が盛んになる一方、 AI・ML開発についていけているエンジニアと、そうでないエンジニア の格差は、無視できないレベルに広がっています 中でも、通常SIで、腕の立つエンジニアであればあるほど、マズイ 方向にハマってしまうパターンも見受けられます また、企業の方も、通常SIとの違いを掴み切れず、導入に踏み 切れない、もしくは導入したが苦境に立たされています こうした現象の原因である、従来の通常開発と、AI・ML開発の 相違点について紐解き、落とし穴となるポイントを見ていきます また、AI・ML開発は、パッと見の印象と違い、通常開発と共通 の部分も実は多いため、共通点についても整理していきます

Slide 32

Slide 32 text

31 2.通常SIと、どこが大きく異なるか?

Slide 33

Slide 33 text

32 2.通常SIと、どこが大きく異なるか? AI・ML開発の中で、通常開発と大きく異なる点は以下です ① インプットデータの種類・量が多い ② インプットデータの収集経路が未整備 ③ データクレンジング・加工の開発が必要 ④ 主成分抽出や特徴量削減の実施 ⑤ 学習モデル実装は通常開発と全く異なる ⑥ 高い訓練データ (正解データ) 構築負荷 ⑦ 有効な学習モデル評価は時間がかかる ⑧ 運用時未知データ予測の監視・管理設計 ⑨ 継続案件獲得やPDCAには、それなりの説得力 (SI能力・ 統計知識・Noを言える胆力)が求められる

Slide 34

Slide 34 text

33 2.通常SIと、どこが大きく異なるか? 従来のSI開発における開発フェーズは、以下の通りです ※下図はウォーターフォールの例ですが、アジャイルでもタスク内訳は大差ありません 運用

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

35 この全量を お話すると…

Slide 37

Slide 37 text

36 軽く400時間近く ぶっ通しになるので

Slide 38

Slide 38 text

37 ポイントを絞って 概要をお伝えします

Slide 39

Slide 39 text

38 3-①.インプットデータの種類・量が多い

Slide 40

Slide 40 text

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等

Slide 41

Slide 41 text

40 3-①.インプットデータの種類・量が多い 特に厄介なのは、以下2ケースで、通常SIと比べ、要件定義 フェーズで苦戦を強いられることが多いです A) データ未整備 • 構造化されておらず、フォーマットも統一されていないCSV、 TSV、Excel等を大量に提供されるケースや、SNS利用 • データ集約のコストが想定以上に高くつく B) データ量に対する万能感幻想 • 「データ量が多ければ、有効な分析ができる」と思い込み、 次から次へとデータを提示される (もしくは要求している) が、要件にマッチしないノイズデータが多数を占めるケース • 営業がよく分からず、案件を取ってきていまった • 顧客がAI・MLに夢を抱き過ぎている (その夢にどれ位 の膨大なコストがかかるかを良く分かっていないことも)

Slide 42

Slide 42 text

41 3-②.インプットデータの収集経路が未整備

Slide 43

Slide 43 text

42 3-②.インプットデータの収集経路が未整備 クラウド上のビッグデータやDBなら、収集経路に困らないですが、 一方で、企業が扱うデータは、社内に散らばるテキスト、CSV、 TSV、Excel、独自ファイルが圧倒的に多いため、それを定期的 に安定収集し、集約するようなデータ基盤の設計・構築だけでも、 それなりの時間がかかります (顧客側部署間の調整事に引っ張られ、調整役を買ったり…) 更に、その配置場所も、Windowsやsambaの共有フォルダ上 だったり、FTPサーバ上だったりと、レガシー技術を要求されます (もしくは運用変更を迫らなければならない) このように、AI・ML以前の部分で苦戦するケースも多く、場合に よっては、案件自体キャンセルされるケースもあるため、ここまでの 段階がクリアできるまでは、「準委任契約」を結ぶのが得策です

Slide 44

Slide 44 text

43 3-③.データクレンジング・加工の開発が必要

Slide 45

Slide 45 text

44 3-③.データクレンジング・加工の開発が必要 通常SIでも、インプットデータのクレンジングや加工は行いますが、 AI・ML特有の以下特性により、より手間がかかります A) 欠損値の扱いは、補完なのか除外なのか? • 要件により、ケースバイケースなので、効果想定が煩雑 • 補完する場合も、avg/med/max等の考慮が必要 B) 数値以外は利用できない • 文字列やカテゴリ値は、必ずワンホットエンコーディングする か、列毎除外する必要がある • 日付は、何らかの基準日からの経過日数等に変換しな ければならない C) 数値自体の標準化やノーマライゼーション、ホワイトニング D) 不均衡データ時のアンダーサンプリング/オーバーサンプリング

Slide 46

Slide 46 text

45 3-④.主成分抽出や特徴量削減の実施

Slide 47

Slide 47 text

46 3-④.主成分抽出や不要な特徴量削除の実施 「3-①.インプットデータの種類・量が多い」のより実践的内容 となりますが、多過ぎるデータというものは、モデルの予測精度の 安定性を低下させます (モデルの学習負荷の増大も招きます) 特徴量として貢献しないデータを除去するアクションが重要です A) 特徴量の重要度・不純度分析 • 主成分分析 • 非負値行列因子分解 (NMF) • ジニ不純度やエントロピーを使った情報利得の最大化 • Partial Dependent Plotで特徴量変動影響の確認 B) 特徴量の次元削減 • ルールベース、統計値ベース、モデルベース • RFE (Recursive Feature Selection) の利用

Slide 48

Slide 48 text

47 3-⑤.学習モデル実装は通常開発と全く異なる

Slide 49

Slide 49 text

48 3-⑤.学習モデル実装は通常開発と全く異なる 一般的に、AI・ML開発というと、ここを指すことが多いと思います そのため、手に入れられる一般情報も多いので、ググったり、書籍 を買えば手に入る情報は、バッサリ割愛し、私個人が感じている、 「ベテランエンジニアであるほど、AI・ML開発が習得できない罠」 をご紹介します この内容は、2017年に主催していたAI・ML入門コミュニティの 「福岡x人工知能x…」から引用します

Slide 50

Slide 50 text

49 3-⑤.学習モデル実装は通常開発と全く異なる 第3回 より

Slide 51

Slide 51 text

50 3-⑤.学習モデル実装は通常開発と全く異なる 第3回 より

Slide 52

Slide 52 text

51 3-⑤.学習モデル実装は通常開発と全く異なる 第3回 より

Slide 53

Slide 53 text

52 3-⑤.学習モデル実装は通常開発と全く異なる 第3回 より

Slide 54

Slide 54 text

53 3-⑤.学習モデル実装は通常開発と全く異なる 第3回 より

Slide 55

Slide 55 text

54 3-⑤.学習モデル実装は通常開発と全く異なる 第3回 より

Slide 56

Slide 56 text

55 3-⑥.高い訓練データ (正解データ) 構築負荷

Slide 57

Slide 57 text

56 3-⑥.高い訓練データ (正解データ) 構築負荷 AI・ML開発は、モデルの構築以上に、訓練データに正解データ (教師データとも言う) をラベリングしたり、データ自体の選り分け に、多大な手間と時間が取られることが往々にしてあります 特に、画像・動画データの準備 (撮影、収集、フィルタリング等) や、テキストデータの読み込みは、扱うデータ量も多く、人間が データをイチイチ見て判断を繰り返す単純作業でしんどいです 人力でどうにかするなら、「訓練データ構築は、別働隊を組んで、 使う頭を別にする」、つまり、体制構築で解決するのが1案です 次の案は、AlphaGoを訓練したのと同じ手法で、訓練データを 強化学習器に生成させる、という手です もう1案は、カプセルネットワークや転移学習、NASを使う手です

Slide 58

Slide 58 text

57 最新AI・ML技術まとめ 今回、ご紹介した最新AI・ML技術をまとめると以下の通りです ➢ カプセルネットワーク • 少ないデータでも、高精度かつ耐久性の高い予測が可能 であり、NN/DLを超える、高い汎化能力を発揮する • 実証が少ないが、仕組みが合理的で、トライの価値あり ➢ 転移学習 • 少ないデータのドメインも、大量データで学習済みのモデル があれば予測を行え、高い汎化能力があると言える • 「学習の仕方を学習する」ことが可能なため、将来的には、 より少ないデータからの高精度学習に応用が期待できる ➢ QRNN • 時系列データ分析は、ビジネス領域で最も重要なデータ 分析課題で、QRNNは、その効率改善に実用できる PyCon Kyushu 2018スライドより

Slide 59

Slide 59 text

58 「カプセルネットワーク」とは? 2度の「AIの冬」の間もAI研究を続け、2012年にディープラーニ ングをヒットさせた「AIの父」、ジェフ・ヒントン博士 (70歳!) が 編み出した、ニューラルネットワークを超えると言われるAI新技術 半年前の2017年10月に論文を発表し、ニューラルネットワーク の最高精度に匹敵しつつ、誤答率が最低時のNNの半分にまで 減少できる、という研究成果を発表しています 最大の違いは、ニューラルネットワークが特徴を「全特徴の量」で 捉えていたのに対し、カプセルネットワークは特徴を「各特徴毎の ベクトル」で捉え、更に「各特徴の間にある関係性」も捉えます 現在、Google Brain PJの研究者 とトロント大学教授を兼務している PyCon Kyushu 2018スライドより

Slide 60

Slide 60 text

59 「カプセルネットワーク」とは? カプセルネットワークは、各特徴を個別に判定し、更に各特徴間 の関係性も加味できるため、以下のような、全体としては見た目 が異なっている (回転も含む) が、各パーツの相対的な位置は 変わらない対象を「空間一致する」ものとして判別できます また学習時も、CNNでは必須だった、各パーツが微妙に違ったり、 回転させたバリエーションが不要となるため、高効率を実現します PyCon Kyushu 2018スライドより

Slide 61

Slide 61 text

60 「転移学習」とは? あるドメインで学習させたモデルを、別のドメインに適応させること で、少ないデータしか手に入らないドメインであっても精度高い 予測を可能とする学習手法です AI界のパイオニア、Andrew Ngが発表した、ビジネスにおける 機械学習の発展予測において、最初は「教師あり学習」が活躍 したが、次に躍進するのは、 「教師なし学習」や「強化学習」で 無く、 「転移学習」と述べています PyCon Kyushu 2018スライドより

Slide 62

Slide 62 text

61 「転移学習」とは? 転移学習の実現には、以下3つのアプローチがあります ① 学習済みモデルの出力層のみ別ドメインに適応 • ドメイン間のタスクに共通点がある場合、入力層や中間 層・隠れ層の重みは固定し、出力層だけを別ドメインで 学習させることで、共通する特徴の抽出が可能です ② ドメイン非固有の特徴のみに限定 • 「表現学習」と呼ばれる、汎用的な特徴や、分散を学習 することで、ドメインに依存しない部分に限定して学習し、 ドメイン非固有の特徴を抽出します (AEはこの一種) ③ ドメインの違いを予め認識させて選り分ける • ドメイン間の変換を事前に学習させ、ドメイン間の違いを 認識し、ドメイン固有と非固有を判別することで、各々の 特徴を抽出できます (≒学習の仕方を学習する) PyCon Kyushu 2018スライドより

Slide 63

Slide 63 text

62 5.「NAS (Neural Architecture Search)」とは? 人手で行われていた、ニューラルネットワークの構造設計と、ハイ パーパラメータのチューニングを自動で行い、学習を行う最適化 は、「Controller RNN」と「Child Network」という、2つの ニューラルネットワークの組み合わせによって構成されています 「Child Network」は、自動チューニングされる対象のニューラル ネットワーク本体で、「Controller RNN」は、Child Network の構造を最適化探索するためのニューラルネットワークです デブサミ福岡 2018スライドより

Slide 64

Slide 64 text

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スライドより

Slide 65

Slide 65 text

64 6.Efficient NASの性能を確認する 実行結果は、以下の通りで、GPU800個で21~28日かかる NASと比べ、ENASは、マクロ検索/ミクロ検索共に、GPU1個 で半日以内には終わり、エラー率もNASと変わらない精度です ここまでの性能があれば、AutoML同様、実用になるでしょう デブサミ福岡 2018スライドより

Slide 66

Slide 66 text

65 2.AutoML Visionではどうなるか? 「AutoML Vision」では、ユーザ自身が訓練データ画像と分類 のためのラベルを共に追加し、画像とラベルの関係性を学習する モデルを構築できるため、ユーザ独自の識別が可能になります (積雲) (入道雲) (層雲) (積雲と分類できる) (入道雲と分類できる) ①ユーザ自身で 訓練データ画像 とラベルを追加し、 モデルを構築 ②構築した モデルを利用 ③分類 デブサミ福岡 2018スライドより

Slide 67

Slide 67 text

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スライドより

Slide 68

Slide 68 text

67 3.AutoMLがどれほど手軽にモデル構築できるか? 新たに構築したモデルは、[PREDICT]ボタン押下でテストができ、 Cloud Vision APIと同じく、REST API呼出で利用できます (積雲) (入道雲) (層雲) REST API呼出で未知データをアップ 分類 テストデータで [PREDICT] テストデータ をアップ 運用時 テスト時 分類 デブサミ福岡 2018スライドより

Slide 69

Slide 69 text

68 3.参考: AutoML Vision β版のUI Google Cloud Next '18 (2018/7/25開催) で発表された AutoML Vision β版では、UIが大幅に変更されていました 訓練画像群で [TRAIN] デブサミ福岡 2018スライドより

Slide 70

Slide 70 text

69 3.参考: AutoML Vision β版のUI テストデータで [PREDICT] 分類 複数ラベルとのマッチ についてもマトリクス で表示されるように REST APIおよび PythonのIFコードも 自動生成 デブサミ福岡 2018スライドより

Slide 71

Slide 71 text

70 3-⑦.有効な学習モデル評価は時間がかかる

Slide 72

Slide 72 text

71 3-⑦.有効な学習モデル評価は時間がかかる 今回は割愛

Slide 73

Slide 73 text

72 3-⑧.運用時未知データ予測の監視・管理設計

Slide 74

Slide 74 text

73 3-⑧.運用時未知データ予測の監視・管理設計 今回は割愛

Slide 75

Slide 75 text

74 3-⑨.継続案件獲得やPDCAには、説得力 (高いSI能力・統計知識・Noを言える胆力) が求められる

Slide 76

Slide 76 text

75 3-⑨.継続PDCAに説得力 (高SI能力・統計知識・胆力) AI・ML開発の現場では、通常開発の何倍も、顧客やステーク ホルダーの説得が重要になってきます (多額のIT投資や、ベンチャーキャピタルからの資金が注入される シチュエーションとなれば、そのプレッシャーは尚更です) 更に、顧客のリテラシーレベルによっては、高い説得力が要ります たとえば… • 「AIでパパッと何でも出来るんじゃないの?」 • 「そもそも、この案件で、AI・MLを使うべきでしょうか?」 • 「弊社のデータは豊富なので、欲しい結果が手に入るだろう」 こういった物言いに、実はML・DLは答えを出せないことが多く、 SI能力や統計知識を駆使して回答 or スルーすることが最重要

Slide 77

Slide 77 text

76 今回、お話したような 現場の実践知識は

Slide 78

Slide 78 text

77 AIジョブカレで 体系的に習得可能

Slide 79

Slide 79 text

JDLAのE資格が取得でき、AI・MLのお仕事も紹介 https://www.aijobcolle.com/

Slide 80

Slide 80 text

福岡では、この2人がお迎えしています https://www.aijobcolle.com/

Slide 81

Slide 81 text

80 ご清聴ありがとうございます