メモ書きですが共有します。
前回:Inevitable ja Night インターネットの次に来るもの
Inevitable ja night 2
- 第2回 AI とビジネスに起こる不可避な流れ
- 2017年11月14日(火)19:00 〜 22:00
- ハッシュタグ: #inevitable2017
対談:ゲームチェンジャーか、バズワードか、AI、機械学習のビジネスインパクトを探る
音声認識
現状でも、ちゃんと喋れば精度100%
曖昧な言葉の認識が課題だが、
今はわかってないコツがわかれば、一気に精度は高まる
Googleテクノロジーアップデート
機械学習
- データセット
- 機械学習モデル
- 期待する出力
→ 最初は間違う
→ 間違いをフィードバックすると、間違わずに答えられるようになる。
非構造化データ(音声、絵、テキスト)を扱える
クラウドコンピューティング
- Google Photo : ラベル付
- Inbox : 自動返答メッセージ生成
- Google Home:発話、音声認識
Googleにおける機械学習の活用事例: Googleのエンジニアは皆何らかの形で機械学習を利用している。
ビジネス活用
- Googleの機械学習モデルをそのまま活用: 機械学習の知識無しで活用できる
- API
- Vision API
- Speech API
- Natural Language API
- Translation API
- Video Inteligence API
- 独自の機械学習モデルを開発: 機械学習の知識が必要
- TensorFlow
- Machine Learning Engine
TensorFlow
機械学習モデルの設定、最適化。
- Googleのプロダクト開発で幅広く使われている
- 活発なオープンソースコミュニティ
- 主要なプラットフォームで動作する
活発なオープンソースコミュニティ
- ユーザー数の多さ(スター数74000)
- 開発速度の速さ(1000人以上、週200コミット)
- TensorFlow User Groupに入ると日本語で質問回答が得られる
- TensorFlow Dev Summit 2017
課題
どこから機械学習をするためのコンピュートリソースを得るのか
- データ
- Google Cloud Storageなど
- コンピュートリソース
- Cloud ML Engine
- TensorFlowで書いたコードを送信すると、自動で立ち上がる。
- 適切なモデル
- TensorFlow
Cloud ML Engine
- フルマネージドサービス
- 大規模分散トレーニング with GPUs
- ハイパーパラメータチューニングの自動化
- 機械学習モデルのデプロイ / 自動スケール
事例
AUCNET
- 車画像を基にした車種分類タスクを自動化。80%削減。
- 1枚15分 → 3分 (年間3万件)
- TensorFlowユーザーグループに入り、共同研究。
- 社内の機械学習エンジニアの育成
Rettyにおける機械学習の活用事例
Retty: 実名型グルメサービス
友達などの信頼できる人からお店を探せる
取り組み年表
最初はスタートアップだったのでエンジニア3人ぐらいだった。
- 2015: ビッグデータ解析開始
- 2015半ば - 2016: 機械学習実験(写真データでの実験)
- 2016 - 2017: 機械学習基盤の自社開発(口コミデータの活用を始める)
- 2017: 機械学習本格活用
2016事例1
CNNの使いみちが多い。
- CNNによる写真分類
- 料理写真の自動発見
2016事例2
- 画像解像度を上げる
2017前半事例3
- 口コミ分析
- Doc2Vecによるユーザのベクトル化
詳細はこちら
「Retty 機械学習 日経」
本格活用(2017)
すべてを統合・本格活用し、コンテンツの質向上に注力
- 写真の解像度を上げられたので、大きく表示できるように。
- 特定ニーズへの、適切でわかりやすいコンテンツの提供。
- ロングテール部分へのアプローチ。
- 渋谷カフェ 電源
- タイトル表記
- 属性表示
Retty機械学習基盤
- 秋葉原で購入
- エンタープライズ・スパコンとの連携
Rettyは積極採用中です
RoomClip
- 部屋の写真を投稿してシェア
- この1年で他人の部屋を何回見た?
- 他の人はどうやっているのか?
- 誰かの事例って役に立ちますよね…
- その穴、RoomClipが埋めます
現状
- 機械学習・深層学習のツールは出揃ってきた。
- 登ってどうする?
- プロダクトに活かせるのか?
- ユーザー、クライアントの課題を解決できるのか?
どの程度のコストがかかるのか?
機械学習の難しさ
プロダクトに活かすときの困難さ
- どういう意味の出力なのかいまいちわかってない
→ 知識問題 - なんとなく意味はわかるが、どういうタイミングで使ってみればいいかわからない
→ 最低限の知識と知恵と工夫問題
ガチの知識問題
割と根深い
最低限の知識と知恵と工夫問題
表面的な部分を使って便利にしていく
部屋全体の画像かどうかを判定する
- サービスをする上で重要
- 目視 → 自動化したい
- overview: 1かどうかをAPIで出力
- 機械学習で0か1かを判定するだけ
画像 → AmazonS3 →Amazon Lambda → AmazonRDS
深層学習もそうなのか?
- ガチの知識と工夫で大変
- インテリアスタイルの判定機を作ろうとした
- ナチュラル系
- ホワイト
- 見る人が見たら〜系と分類できる
定義しづらいが、なんとなく概念として存在している
例:ブルックリンスタイル
→ ルールベースのモデル化がなかなか困難
さらに新しい概念をどんどん産まれる
- ブルックリンスタイル → 男前インテリア
20スタイル1000枚の画像を学習
→ 適合率35% 失敗。
色々大学の研究室と連携しているうちに、
一部恣意的な改善をしていることがわかってきた
=完璧なロジックはない!
- ガチを攻めるよりも、乗りこなす。
- 大学が選んだモデルを使う。Keras。TensorFlow
Kerasを選択する理由
画像読み込み → 学習 → モデル生成というステップだけに集中するため
→ 学習までの手続きをできるだけ減らす
→ 学習中のlogや学習後のmodelをシンプルに取得するため
転移学習を選択する理由
- データ構築と応用のみに集中するため
→ 層の追加・改善をできるだけ考えない
→ 最終層の評価関数と最適化手法くらいに留める
→ 学習しなければ諦めが付くという状態にしておく
再びスタイル判定チャレンジ
少し工夫して、「リビング」の画像でスタイル判定
ところで、リビングをどうやって選ぼうか。
じゃあ、まずそのモデルを作ろう
リビング判定
- 根性で9つの場所画像を集める
- 転移学習してみる
- 学習済みモデルXception
- 最適化関数adam
- 損失関数
- 活性化関数 softmax
9クラス場所分類
― 18時間ぐらいで正答率9割
わりといい
リビングでスタイル判定
- ユーザーがナチュラルスタイルだと言い張っているリビングを収集
- 転移学習
4クラススタイル分類
- ブルックリンスタイル
- 男前インテリア ← 人間でも定義が曖昧
- ナチュラルインテリア
- カリフォルニアスタイル
18時間で正答率9割
ブルックリンスタイルと男前インテリアをちょっと迷ったりする
人間と同じ。
サービスに活かすにはもう1ステップ必要
その他
- 同じテイストの写真を勧める
- 同じようなテイストでユーザーをグルーピングし、リコメンドしたり出来る
- 事前にタグ付けの提案ができる
など
浅はかながら、転移学習を用いてそれっぽいことはできた
書けられるコストとしてもこの辺がちょうどいい感じ
データをもう少し整備すれば、プロダクトで使える可能性は高い
問題点
- データの恣意性について
- リビングの定義って何?問題
- 誰かの判断をもしているだけ
- AlphaGo Zeroの衝撃(without human data)
まとめ
- 機械学習はツールを使って、知恵と工夫でなんとかできる
- 深層学習であってももはやできる
- 一部に関しては深い知識を追いかけていいが、深層学習に関しては慎重に
- データが重要になるケースが多いため、早めにデータ整理はしておくべき人間がやっていることを代替するケースが入り口としてやりやすい。
- Keras with Cloud ML Engine最強っぽいよ
- エンジニア欲しいよ
全体まとめ
国光さんのツイート引用。
AIは手段であって目的ではない。AIを使って何かをするのではなく、解決すべき課題を明確にしてその解決策として適切なAIを活用する。AIを使うことが目的化してはいけない