Inevitable ja night 2 AI とビジネスに起こる不可避な流れ

メモ書きですが共有します。
前回：[Inevitable ja Night インターネットの次に来るもの](https://qiita.com/yama-t/items/f7b0e6ceef562d783cab)

# Inevitable ja night 2
- 第2回 AI とビジネスに起こる不可避な流れ
- 2017年11月14日（火）19:00 〜 22:00
- ハッシュタグ： [#inevitable2017](https://twitter.com/hashtag/inevitable2017?src=hash)

# 対談：ゲームチェンジャーか、バズワードか、AI、機械学習のビジネスインパクトを探る
- [スライド](https://www.slideshare.net/hide69oz/20171114-inevitable-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

![DOlsOYPXUAAVTpJ.jpg](https://qiita-image-store.s3.amazonaws.com/0/46299/4fc5bc58-bea7-5b51-bae6-96d2732b944c.jpeg)


## 課題
どこから機械学習をするためのコンピュートリソースを得るのか

- データ
 - Google Cloud Storageなど
- コンピュートリソース
 - Cloud ML Engine
 - TensorFlowで書いたコードを送信すると、自動で立ち上がる。
- 適切なモデル
 - TensorFlow

![DOlsoJVWsAA-PZM.jpg](https://qiita-image-store.s3.amazonaws.com/0/46299/a2316525-0da9-432c-f53d-bd4ba5573bef.jpeg)


## Cloud ML Engine
- フルマネージドサービス
- 大規模分散トレーニング with GPUs
- ハイパーパラメータチューニングの自動化
- 機械学習モデルのデプロイ / 自動スケール

## 事例
### AUCNET
- 車画像を基にした車種分類タスクを自動化。80%削減。
- 1枚15分 → 3分 （年間3万件）
- TensorFlowユーザーグループに入り、共同研究。
- 社内の機械学習エンジニアの育成

# Rettyにおける機械学習の活用事例
Retty: 実名型グルメサービス
友達などの信頼できる人からお店を探せる

## 取り組み年表
最初はスタートアップだったのでエンジニア3人ぐらいだった。

- 2015: ビッグデータ解析開始
- 2015半ば - 2016: 機械学習実験（写真データでの実験）
- 2016 - 2017: 機械学習基盤の自社開発（口コミデータの活用を始める）
- 2017: 機械学習本格活用

![DOlv4mTW4AEj9vH.jpg](https://qiita-image-store.s3.amazonaws.com/0/46299/6a5cf709-5c8e-8e40-a4fc-6b741cf93007.jpeg)

### 2016事例1
CNNの使いみちが多い。

- CNNによる写真分類
- 料理写真の自動発見

### 2016事例2
- 画像解像度を上げる

### 2017前半事例3
- 口コミ分析
- Doc2Vecによるユーザのベクトル化

### 詳細はこちら
「Retty 機械学習 日経」

- [グルメサイトRettyのAI舞台裏](http://itpro.nikkeibp.co.jp/atcl/column/17/032300097/)
- [グルメ情報Retty　成長の源泉ＡＩ、導入の内幕](https://www.nikkei.com/article/DGXMZO19271700W7A720C1000000/)
- [Retty流『2200万ユーザを支える機械学習基盤』の作り方](https://qiita.com/taru0216/items/dda1f9f11397f811e98a)

## 本格活用（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最強っぽいよ
- エンジニア欲しいよ

# 全体まとめ
[国光さんのツイート](https://twitter.com/hkunimitsu/status/930437855205355521)引用。

> AIは手段であって目的ではない。AIを使って何かをするのではなく、解決すべき課題を明確にしてその解決策として適切なAIを活用する。AIを使うことが目的化してはいけない