eurekaさんのオフィスで開催された勉強会に参加してきたので、忘れないように簡単な感想とメモを残しておく。 あくまで自分の備忘のためかつ、発表を聞きながらとったメモなので、詳しくは近いうちに上げられるであろう発表スライドを参考にするのが良い。
基本的に機械学習未経験者だが、興味はあったし、eurekaさんのオフィスを見てみたいというのもあったので目的は達成できたかなと思う。ピザも美味しかった(夜の炭水化物を控えているのになんてことだ)。
肝心な内容については、機械学習未経験者だったのでついていくのがやっとだった。聞いたことが用語もあったのでその辺はふんふんと聞いていた。
1人目の@pottavaさんの発表は機械学習について導入から浅く広く解説してくれていた印象があり、わかりやすかった。1人目でよかった。 元はAWSで機械学習をするという話をするつもりだったそうだが、この変更はかなり僕にとっててはありがたかった。
2人目の村上さんはNVIDIAの方で、終始NVIDIAの宣伝という感じだったが、GPUがどういう風に機械学習の流行に影響を与えていたか、についてより具体的に知れたのはよかった。 また、ディープラーニングフレームワークについて、簡単にまとめられていたので参考にできると思う。
3人目、4人目は、eurekaの中の人で、実際にpairsでどのように機械学習を利用しているか、導入しようとしているか、という話が聞けたので、今後、もしも機械学習をプロダクトに入れることになった場合には参考になると思った。あんまり詳しいところは、confidencialと言っていたので、メモもいい感じにカットしてあるつもり。
4人とも、機械学習を触ったことがなくても、クラウドAPIでもローカルでも良いからまず触ってみよう、ということを言っていて、こういう勉強会で少しでもモチベーションが上がっているうちに手を動かしておいた方が良いなと思っている。 実際無記名のアンケートでもそんな声がちらほらあったように思う。
TODO: 上げられた資料のリンクを貼る
以下メモ
あまり本には載っていない機械学習の話
@pottava さん SUPINF
機械学習で何が変わるの
どんなふうに応用されているのか
- NVIDIAのGTC2017のOPムービー
- Google翻訳の機械学習で英語字幕を翻訳してみよう
- 字幕もyoutubeが自動的に生成している
- 医療診断サポート
- 農産物
- 小売
- 自動運転
- スポーツやゲーム
- 作曲
- 字幕もyoutubeが自動的に生成している
サービスに導入するには
職種によって考えるべき
先ずはクラウドのAPIを叩いたり本読んだりしよう
おすすめ書籍 「Hands-On Machine Learning with Scikit-Learn & TensorFlow」 使うところから、運用までカバーしている
機械学習のおさらい
機械学習とは
客観的事実をコンピュータに与えなにかの結果を出力させる 実テータを食わせて、コンピュータに計算させる 関数の定数をコンピュータが決めさせる
学習と推論
y = ax + b でaとbを決める段階が学習 yを決める段階が推論
優れた推論のためには優れたモデルが必要
解きたい問題によってaとbの決め方が変わる
例)恋愛 * 機械学習
- その人との相性
- その人の5年後の収入予測
- 純粋に幸せになれるのか など
機械学習と深層学習
ディープラーニング = 深層学習 多層構造のネットワーックを用いた機械学習 解決したい問題によって使うロジックが異なる
- 畳み込みニューラルネットワーク(CNN)
- 再帰型ニューラルネットワーク(RNN)
など
例)AlphaGoなど
実践的なネットワーク
層の深さ 152層が意味のある深さということが言われ始めている できるのか?→フレームワークが助けてくれる 利用者はアルゴリズムの実装をすることなく各種パラメタの指定だけで学習・推論ができる
フレームワークを使って、アルゴリズムの実装を知ることなく実装できる TensorFlow、MXNet、CNTK、Caffe2、Chainer…
機械学習の流れ
- データ収集
- データ前処理
- 学習
- 推論
データ収集
自社製品に沿ったデータ 一般公開されたデータで勉強もできる(MNISTなど)
データ前処理
pythonだけで済むならそれでいいものの専用ソフトウェアやサービスを使わないと辛い
学習
推論
ビジネスと直結するので24/365の運用
ローカルでもできるのでまず叩いてみるというのが重要
GPUでディープラーニング開発を始めてみよう
村上真奈さん NVIDIA
NVIDIAとNVIDIAのGPUについて
1999年にGPUを発明 NVIDIA = AIコンピューティングカンパニー ビジュアルコンピューティング(NVIDIAを救ったのはバーチャファイター) ↓ GPUコンピューティング ↓ AIコンピューティング CUDA汎用計算による計算が根幹
GPUロードマップ
計算を早くするために2年に1度ハードウェアのアーキテクチャを変えている 現在はPascal次はVolta 頭文字がシリーズを表している
GPUディープラーニング
ディープラーニングを加速s流3つの要因
認識精度向上のためモデルはディープに、データはより大きく
ディープラーニングフレームワークはたくさんある
ディープラーニング CUDA数学ライブラリ cuBLAS、cuDNN、cuSPARSE マルチCPU間通信 ビデオ解析 インファレンス
どのようなフレームワークでもCPUモード、GPUモードがありGPUモードにするとNVIDIAのGPUが使われる
複数GPUを使うと、かなり線形的に計算速度が上がる
ディープラーニング
ディープラーニングを始める際に悩みがちなこと
- 計算リソース(GPUサーバを持ってない)
- ディープラーニングのフレームワークが選定できない
- ディープラーニングのHello Worldの敷居が高い
計算リソース
オンプレ 既存のワークステーションNVIDIA GPUを増設 - PXIex16レーンに空きはあるか? - 電源容量は足りているか?(例えばGeforce TITAN Xならピークで250w使う)
クラウド - AWS、Microsoft Azure、Google Cloud Platform、 IBM Bluemix Infrastructureなど Deep Learning AMI
ディープラーニングのフレームワーク
- Caffe/Caffe2 C++/Python/Matlab
- Torch7 Lua/C
- CNTK C++/Python/.Net/BrainScript
- MXNet C++/Scala/R/JS/Python/Go?Matlab
- TensorFlow C/C++/Python
- Chaner Python
はじめはやりたいことによってググるべし コミュニティが活性化しているものを選ぶべし
hello worldの敷居が高い問題
- フレームワークが辛い
- NVIDIAのツール 機械学習へのユーザインターフェース、味見に便利
- dockerなど
- ディープラーニングの分厚い本を読みたくない
ゼロから作るDeepLearning
イラストで学ぶディープラーニング
Pairsの成長を支えている機械学習の使いどころ
Tamaki Tetsumoto eureka
- BIチーム立ち上げ
- KPIの設定
- 効果測定 Pairsは会員数500万人
Pairsのサービスモデル
ユーザーストーリー
Register Search Like Match Message Meet…
ユーザーとサービスの接点
- Mail & Push
- Help Center
組織体制
Acquisition UI/UX CRM CC / PCC
- Brand & PR(オフラインでユーザーにアプローチするチーム)
CTOチーム - BI - Under the hood: 高い技術で解決 - SRE - QA
改善できそうなところ
- より相性のよいお相手を表示してマッチ効率をあげたい
- やり取りのスピードを上げてモチベーションを維持したい
- 適切な対象者に効果的なお知らせを
- 投稿監視や問い合わせのコストを削減したい
どうやって改善するか
- 獲得予測モデル: 予算の再激化
- 検索アルゴリズム: スコアリング調整
- テキスト審査システム: 審査の自動化
- KPI設計: ユーザセグメント最適化
- 画像審査システム: 自動審査
具体例、顧客獲得予測
今後の展望は予測モデルを機械学習で獲得予測を算出する データの前処理で精度を上げていきたい
適切な対象者に適切訴求をする
各ファネルで効果的な訴求が何かを調査 - 登録経路 - いいね回数 - 返信までの時間
ゴール設定: 登録後の定着率アップ データセットの準備: いいね送信数やプロフィール設定 考察&再調整: 寄与率と特徴量の予測相関から着地を決める
Pairsの投稿監視システム
James eureka
投稿監視(Bayesianフィルター)
メールは99.5%なのに はじめは81%しかできなかった
考えられる理由
- 件名がない
- 日本語をトークンに分けるのは難しい、事例も少ない
- Pairsの細かいルールが多い
- メッセージは普通にメールより短い
→ パラメータチューニングで96%まで上げた
画像監視
暴力や裸 半分以上は友達も写っている写真
顔認識の背景
Viola-Jones
初めてのリアルタイムアルゴリズム(SNOWはこれ?)
Viola-Jones顔認識
- 顔の明暗を見る
- Haar Feature
- 編集されたら厳しい
- 質が悪ければ厳しい
- 正面を見ていないと厳しい
OpenCV コードはわかりにくい
- Goラッパーがわかりやすい
- 顔認識の実装が簡単
Google Vision API
→ カメラを見ていて質が高ければViola-Jones
実際は組み合わせて使った