Deck of Developer Summit 2017 http://event.shoeisha.jp/devsumi/20170216
AI礼賛時代にエンジニアはいかにしてサバイブすべきかby Norhiro Shimoda1ハッシュタグ:#devsumiBセッションID:【16-‐‑‒B-‐‑‒5】
View Slide
⾃自⼰己紹介• 下⽥田倫倫⼤大(@rindai87)• データ分析専業企業の⾼高性能雑⽤用係(⾃自称)• 気持ちは⽣生涯エンジニア• TensorFlow User Group(TFUG)主催者2
最近、機械学習とか⼈人⼯工知能がものすごいブームですね出典:https://www.coursera.org/learn/machine-‐‑‒learning3
⼈人⼯工知能すごい!というイメージ出典:https://www.google.com/selfdrivingcar/where/出典:https://gogameguru.com/i/2016/03/AlphaGo-‐‑‒Lee-‐‑‒Sedol-‐‑‒game-‐‑‒3-‐‑‒game-‐‑‒over.jpg⾃自動運転AlphaGO⼈人が運転するより事故率率率が低いらしい囲碁のプロ棋⼠士に勝利利した4
⼈人⼯工知能使えそう!というイメージ出典:https://cloud.google.com/products/超すごい⼈人⼯工知能の要素技術をクラウドで簡単に使えそうな雰囲気!!!5
もちろんGoogleだけじゃないチャットボットを⼀一躍有名にしたAI⼥女女⼦子⾼高⽣生「りんな」出典:https://twitter.com/ms_̲rinna最近のAIブームの先駆けと⾔言えるIBM Watson出典:https://github.com/IBM-‐‑‒Watsonもはやレア感がなくなるくらい浸透したPepper出典:http://www.softbank.jp/robot/consumer/products/
_⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人⼈人_> 突然の⼈人⼯工知能ブーム < ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
結果、こういう流流れができつつあります8
⼈人⼯工知能をやりたまえ⼈人⼯工知能的な要素は是⾮非提案に含めてください⼈人⼯工知能は重要そうだよね⼈人⼯工知能かっこいいっすやりたいっすワタシ 同僚僚上司お客さん後輩/部下
クラウドで⼈人⼯工知能関連のAPIあるじゃない↓APIを使ってみる↓ビジネスニーズに微妙にフィットしない↓スクラッチでやるしか↓機械学習むずい\(^o^)/10
エンジニアを取り巻く環境機械学習が使えそうな案件⼈人⼯工知能がキーワードになっている新規案件⼈人⼯工知能やりたまえという謎のプレッシャー⼈人⼯工知能や機械学習への興味数年年前まではなかった機械学習や⼈人⼯工知能というキーワードが⾒見見え隠れする今⽇日このごろ11
エンジニアも⼈人⼯工知能とか機械学習っぽい話が分かった⽅方が良良さそう??12
本⽇日お話すること⼈人⼯工知能とか機械学習とか押さえておかないと!!という焦燥感との向き合い⽅方13
注意コードも出てきませんしこれだ!って結論論もないですふんわりした全体感の話です14
⼈人⼯工知能と呼ばれるもの機械学習によって実現されている⼈人⼯工知能深層学習ルールベースetc..定義はいろいろですが、機械学習やルールベースなどを駆使して、⼈人間っぽい振る舞いをする何か、とします本資料料での⽤用語の関係
弊社でもよくある話機械学習とか分析を勉強したいんですよね社内にいるデータサイエンティストに聞いたり⾃自分で勉強すればいいんじゃないですか?それがどうしたら良良いかよくわからないんですよーエンジニア 私16
⼈人⼯工知能や機械学習について知りたい17エンジニア⼈人⼯工知能や機械学習の⼿手法について知りたい⼈人⼯工知能や機械学習の領領域におけるキャリアや活躍の仕⽅方を知りたい
⼈人⼯工知能や機械学習について知りたい18エンジニア⼈人⼯工知能や機械学習の⼿手法について知りたい⼈人⼯工知能や機械学習の領領域におけるキャリアや活躍の仕⽅方を知りたい
世の中に良良質なリソースがたくさんあるので、細かい話はググるなりしてくださいよくエンジニアの⼈人と話すこととそのリアクションでサクサクお届けします19
ブラックボックスとしての機械学習アルゴリズムが取り扱えるデータフォーマット機械学習のアルゴリズム何らかの結果⼊入⼒力力⼊入出⼒力力の変換だけしてライブラリ呼び出し20
⾔言ってることはわかるけど⾯面⽩白くない著作者:dice-‐‑‒kt 出典:http://free-‐‑‒photos.gatag.net/2014/05/15/180000.html21
⽤用途別のアルゴリズムの選択出典:http://scikit-‐‑‒learn.org/stable/tutorial/machine_̲learning_̲map/22
やっぱり⾔言ってることはわかるけどやりたかった機械学習ではない著作者:Gwen241 出典:http://free-‐‑‒photos.gatag.net/2014/07/20/060000.html23
結果理理解とチューニングアルゴリズムが取り扱えるデータフォーマットへの変換機械学習のアルゴリズム何らかの結果⼊入⼒力力結果の解釈パラメータチューニングアルゴリズムの再選択24
出典:http://playground.tensorflow.org/25
結果理理解とチューニングアルゴリズムが取り扱えるデータフォーマットへの変換機械学習のアルゴリズム何らかの結果⼊入⼒力力結果の解釈パラメータチューニングアルゴリズムの再選択26
出典:http://playground.tensorflow.org/アルゴリズムや使っているツールに合わせ、いい感じの結果が出るように⼊入⼒力力を加⼯工する27
結果理理解とチューニングアルゴリズムが取り扱えるデータフォーマットへの変換機械学習のアルゴリズム何らかの結果⼊入⼒力力結果の解釈パラメータチューニングアルゴリズムの再選択28
出典:http://playground.tensorflow.org/結果を⾒見見て今のパラメータで良良いかかどうかを判断29
結果理理解とチューニングアルゴリズムが取り扱えるデータフォーマットへの変換機械学習のアルゴリズム何らかの結果⼊入⼒力力結果の解釈パラメータチューニングアルゴリズムの再選択30
出典:http://playground.tensorflow.org/⾚赤いところを問題に合わせていい感じに調整する31
結果理理解とチューニングアルゴリズムが取り扱えるデータフォーマットへの変換機械学習のアルゴリズム何らかの結果⼊入⼒力力結果の解釈パラメータチューニングアルゴリズムの再選択32
出典:http://playground.tensorflow.org/あー、これじゃだめだ、とそもそも違うアルゴリズムを選ぶこともある33
機械学習っぽいけど急に難易易度度が上がりすぎじゃね?出典:http://labaq.com/archives/51849423.html34
⼿手法について知りたい系の結論論• ある程度度ちゃんとやりたいなら、やっぱり数学を理理解した上で機械学習に取り組むことが重要– こればっかりはプロトコルみたいなものなので、最低限理理解しましょう、みたいな感じ• こつこつやるしかない!• オープンソースで⾊色々公開されているので、エンジニアな皆さんは、動かして/背景の理理論論を知って、みたいな感じで進むといいと思います35
おすすめの書籍など36etc…馴染みのない⼈人たちにとっては、それなりに硬派な書籍達です。こつこつと何回も読むのが良良いかもしれません。
深層学習ならこれがすごい良良い!37この本話題になっていますが、ほんとにすごく良良いです!
⼈人⼯工知能や機械学習について知りたい38エンジニア⼈人⼯工知能や機械学習の⼿手法について知りたい⼈人⼯工知能や機械学習の領領域におけるキャリアや活躍の仕⽅方を知りたい
39まずは業務での関わり⽅方を整理理しましょう
ここからの話の前提• ⼈人⼯工知能的なものをプロジェクトとして考えることを想定– 研究開発的な取り組みの延⻑⾧長ではなくプロジェクトを想定• いわゆる何でもできるスーパーマンがいない状態を想定– スーパーマンがいると知らない間にいい感じにプロジェクトが終わって再現性がない• 事業会社の中で完結していないようなケースを想定– 世の中に出てきている事例例の多くは事業会社が⾃自社データx⾃自社エンジニアx⾃自社データサインティストな掛け合わせで実現40
⼈人⼯工知能に取り組む⽬目的• コスト削減– ⼈人の作業のリプレース• 品質の均⼀一化– AIは疲れないしコピー可能• 既存サービスの強化– ⼈人⼯工知能の⼒力力を借りてサービスを強化• 新規事業機会の創出– クリエイティブな何かこの4つが必ずしも全てではないが、だいたいこんな感じで考えるはず
⼈人⼯工知能的なものの実現⽅方法出典:https://twitter.com/tikal/status/787902585294327809実現できればなんでもよい
プロジェクトの各種フェーズ• プロジェクトの企画/⽴立立ち上げ• プロジェクト推進チーム• プロジェクトの進⾏行行• プロジェクトの後こうやって⾒見見るといわゆる開発プロジェクトと似ているように⾒見見えますが。。。
44• プロジェクトの企画/⽴立立ち上げ• プロジェクト推進チーム• プロジェクトの進⾏行行• プロジェクトの後
プロジェクトの企画/⽴立立ち上げ• ⼊入り⼝口(どんなデータを使うか)と出⼝口(分析結果をどう使うか)というビジネス上の設計が重要– ビジネスオペレーション(に|を)寄せる?• ⼈人⼯工知能には過度度な期待が寄せられがち– 経験がない場合は⼩小さく計画を⽴立立てる– 魔法の箱ではないのですが…
既存のビジネスフロー⼊入⼝口/出⼝口のイメージ
⼊入⼝口(データ)既存のビジネスフロー⼊入⼝口/出⼝口のイメージ既存のビジネスで得られているデータを⼊入⼝口とする
⼊入⼝口(データ)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージ機械学習、ルールベース、etc…
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージビジネスフローにつながる形のアプリケーションWebサービスだと⽐比較的簡単だが、それ以外だと結構⼤大変なイメージ
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの⼊入⼝口/出⼝口のイメージ新規のビジネスフロー既存のビジネスにこだわる必要はなく、全く新しい⼊入⼝口/出⼝口を考えても良良い既存のビジネスにこだわる必要はなく、全く新しい⼊入⼝口/出⼝口を考えても良良い
⼈人⼯工知能的なアプローチは、やってみなければ成果が出せそうかどうか分からない、という側⾯面があります。そのため実証実験から始めることが多いです。
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージ(再掲)ここにフォーカスを当てます⼈人⼯工知能的なもので何ができますっけ?という確認(PoCと⾔言ったりもしますね)
プロジェクト企画/⽴立立ち上げのまとめ• そもそも⼿手持ちのデータややりたいことから⼈人⼯工知能的なこととして何ができるかの実証実験から始めることが多い• このフェーズではコンサル+データサイエンティストが活躍する– のだけど、ここの話がいずれエンジニアにブーメランで来るので知っておく必要はある– それは実験的にはできるけど、、、みたいな53
54• プロジェクトの企画/⽴立立ち上げ• プロジェクト推進チーム• プロジェクトの進⾏行行• プロジェクトの後
プロジェクト推進チーム1. ビジネスを考える⼈人– 経営企画など2. AIとビジネスを繋ぐ⼈人– いわゆるディレクターとかプロデューサー3. AIそのものを扱う⼈人– データサイエンティストとか⾔言われる⼈人4. AIを使った仕組み化する⼈人– The エンジニア!最低限こんな感じのはず
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージ(再掲)
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロープロジェクト推進チームビジネス考える⼈人⼈人⼯工知能とビジネスを繋ぐ⼈人AIそのものを扱う⼈人仕組み化を実現する⼈人
58• プロジェクトの企画/⽴立立ち上げ• プロジェクト推進チーム• プロジェクトの進⾏行行• プロジェクトの後
プロジェクトの進⾏行行• 機能要件、⾮非機能要件が決めにくく、プロジェクト全体のゴールが曖昧になりがち– 期待値の調整が超重要• プロジェクト進⾏行行に関しての明確な⽅方法論論が世の中に存在していない– 世の中にあるプロジェクトマネジメントや開発⼿手法は転⽤用できるんですっけ…?• もちろん部分的にはYes
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージ(再掲)ビジネス考える⼈人⼈人⼯工知能とビジネスを繋ぐ⼈人AIそのものを扱う⼈人仕組み化を実現する⼈人この⼈人が超⼤大事ここの連携も超⼤大事
プロジェクト進⾏行行あるある その161エンジニアともデータサイエンティストとお話ができるデータサイエンティスト エンジニア取りまとめ役エンジニアともデータサイエンティストとも話ができてプロジェクトを推進できる⼈人はなかなかいない取りまとめ役不不在
62
プロジェクト進⾏行行あるある その263データサイエンティスト エンジニアエンジニアともデータサイエンティストがうまく協働されず、作るものがブレまくるシステム⽬目線でのみ考えているアルゴリズム⽬目線でのみ考えているエンジニアとデータサインティストで作るものがブレる
64
プロジェクト進⾏行行あるある その365データサイエンティスト エンジニア取りまとめ役お客様から⾒見見て今の状況を適切切に判断できないチームとしてもコミュニケーションしにくい今何が出来てて、どのタイミングで何をすれば良良いの・・・超いい感じの分析モデルできてます!順調です!お客様に何を報告しよう・・・分析モデルは⽬目に⾒見見えない
66
67• プロジェクトの企画/⽴立立ち上げ• プロジェクト推進チーム• プロジェクトの進⾏行行• プロジェクトの後
プロジェクトの後• ⼈人⼯工知能的なもの、のメンテナンスが定期的に必要だと考えた⽅方が良良いです– 世の中は変化するはずなので、データの質が変わる可能性があります– データの質が変わるとモデルが当初のような精度度がでなくなることも…• 逆に⾔言うと、今の⼈人⼯工知能は最初の設計を逸脱したものに追随できるほど汎⽤用的なものではない、というのが真実– 保守でもお⾦金金を取るチャンスがありそうですね^^
プロジェクト全体についてのまとめ• 全体的には開発プロジェクトに似ている– と思ったら案外そうじゃない• 分析モデルは⽬目に⾒見見えない上、お客様に状況を適切切に理理解/判断いただくことはなかなか難しい– 信頼関係超重要• 世の中に⽅方法論論も経験のある⼈人材も少ないため、⽕火種がそこら中にある– 期待値調整超重要69
ここまでで業務でAIと関わるイメージが少しはつけられたでしょうか?もう少しエンジニア視点でDeep Diveしてみましょう70
71エンジニアはどう活躍するのか?
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージ(再掲)ビジネス考える⼈人⼈人⼯工知能とビジネスを繋ぐ⼈人AIそのものを扱う⼈人仕組み化を実現する⼈人全てエンジニアのキャリアとして有りえますし、エンジニアのバックグラウンドがある⼈人がなるべき全てエンジニアのキャリアとして有りえますし、エンジニアのバックグラウンドがある⼈人がなるべき全てエンジニアのキャリアとして有りえますし、エンジニアのバックグラウンドがある⼈人がなるべき全てエンジニアのキャリアとして有りえますし、エンジニアのバックグラウンドがある⼈人がなるべき
⼊入⼝口(データ)出⼝口(アプリケーション)⼈人⼯工知能的なもの既存のビジネスフロー⼊入⼝口/出⼝口のイメージ(再掲)ビジネス考える⼈人⼈人⼯工知能とビジネスを繋ぐ⼈人AIそのものを扱う⼈人仕組み化を実現する⼈人
AIを仕組み化する⼈人74アルゴリズムデータのパイプライン可⽤用性パフォーマンステストetc…ジョブスケジューリングアルゴリズムはある、それをどう仕組み化するか⼀一番⾃自然にポジションを築きやすいはず
AIそのものを扱う⼈人最近機械学習エンジニアとか⾔言われ始めている76技術全般にある程度度明るいライブラリのインストールや環境構築も⾃自分でバシバシできるもちろん、機械学習のアルゴリズムに詳しいどちらかというと・理理論論に精通しているのでモデルを考えるのは得意・コンサルっぽくクライアントワークが得意ツールを駆使して仕事をしているイメージ(⽇日本で数が多い)データサイエンティスト機械学習エンジニア
ツール使いじゃだめな理理由• 新しい論論⽂文や理理論論がバシバシ出てきているので、ツールやライブラリで提供されるまで試せない、ではスピード感が合わないL• GPUやクラスタなども利利⽤用する必要があったりするため、環境の構築からできないとスピード感が合わないL• けっこう低レイヤーのエンジニアリングの⼒力力が必要な印象77とはいえ、ここを狙うのはけっこう⼤大変かも。。。
⼈人⼯工知能とビジネスを繋ぐ⼈人79ビジネスとしてやりたい事AIにできる事ビジネス x 機械学習 x エンジニアリング仕組み(サービス/プロダクト)としての提供個⼈人的にはここがもっと増えて来ても良良いと思っています既存のPM以上に技術のバックグラウンドが必要なはず新しいPMの形があると思っています
キャリアについて知りたい系の結論論• エンジニアはきっとチャンスが多い時代に⼊入ってきている– 技術なしには話にならない時代への突⼊入(このあと更更に詳しく話ます)– ただし、数学っぽい話(主に線形代数と微積)から逃げるのは厳しそう– ⼤大丈夫、僕らにはnumpyがある!コードで学ぼう!• これから狙うなら以下が狙い⽬目かも??– 機械学習エンジニアやデータサイエンティストと協働できるエンジニア– 機械学習の要素が含まれるプロジェクトを取りまとめるリーダー/マネージャー80
81おまけ:技術的なトレンドの⼩小話
機械学習のトレンド• R使ってコツコツ• ⼤大きなデータだとRは⾟辛いなぁ• Pythonがあるぞ• Scikit-‐‑‒learnがデファクトっぽくなる• 機械学習ではPythonがよく選ばれる⼤大規模データ分析のトレンド• RとかPythonで⼀一台のマシンだと⾟辛い。⾼高価なDWHとかに投資するのも限界• Hadoop登場!• Hadoop上でそのまま機械学習したい要望にMahout• Hadoopだとデータ分析のタスクは⾟辛いのでSpark登場• SparkはMLlibもあって、⼤大規模な機械学習の決定打はこれだ82機械学習 x ⼤大規模データ分析のこれまでのトレンド
83GPU
GPUの重要性• CPUベースの分散処理理の決定打としてSparkの存在があった• が、特に深層学習の場合、GPUでドーンと処理理すれば圧倒的に早い– 体験しないと分からないGPUのありがたみ– ほんとにすごい差ですよ、マジで• 複数GPUでの分散処理理がトレンドに– SparkももちろんGPU対応を進めている84
ハードウェアと機械学習• 「GPU!以上!」ではなくてFPGAなどもけっこう盛り上がってきはじめている• Mobile APP含め、組み込み系で推論論を⾏行行うことは必須– 実世界で使われるには組み込みとの関わりも必須– 学習はもちろん厳しいので、別の場所で実⾏行行する前提– モデルの軽量量化なども必要85
TFUG ハード部86
クラウドと機械学習• GPUインスタンスの重要性の増加– 各クラウドベンダーが対応してきている– AWS/Azure/GCPではGPUが使えて、有名所のライブラリ/フレームワークも動く• マネージドなMLサービスもガンガン出てきている– GCPのCloudMLとか、AzureのAzureMLとか– 分散機械学習にニーズが出てくればきっとすごく流流⾏行行ると思っている(今はまだ少し早いかも)87
AIは総⼒力力戦の様相を呈している88AI(深層学習)ハード/組み込みクラウドソフトウェア開発データ分析
本⽇日の話のまとめ• AIと向き合うために数学から⽬目は離離せません– ⽬目を話したら⾯面⽩白い仕事ができません• AIブームのおかげでより技術的なバックグラウンドが重要になってきました– ノリでふわふわしたお話が望まれないフェーズに• AI(正確には深層学習)周辺には技術的な課題がたくさん– クラウドからハードウェアまで89
Thank You !?90
Thank You !91
What is TFUG ?• 分散機械学習フレームワークであるTensorFlowのコミュニティです• 2016年年10⽉月に⽴立立ち上がりました
Meetup• ⽉月に⼀一度度程度度のペースでミートアップイベントを開催しています第1回⽬目のミートアップの様⼦子です。NHKの取材が⼊入りました。
全国展開も始まっています• 昨年年末にTFUG AIZUが⽴立立ち上がりました• ⼤大阪、京都、名古屋、福岡などの主要な都市で⽴立立ち上がらないかなぁと妄想しています
How to join us?イベント情報を管理理していますhttps://tfug-‐‑‒tokyo.connpass.com/各種情報交換の場として利利⽤用されていますhttps://www.facebook.com/groups/178559235921208/
96
TensorFlow dev summit recap• TFUG関係者が参加しているのでrecapやります• 3⽉月中旬で検討中• 続報は少々お待ちを!97
98Thank You again!