[レポート] TensorFlow勉強会 (2)が開催されました!

2016.02.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

先日の 2/10 六本木ヒルズの Google Inc 東京オフィスでTensorFlow勉強会の二回目が開催されました!先日に引き続きブログまとめ枠として参加いたしました。本記事はそのレポート記事となります。

TensorFlowとGoogleのML系サービス(Google Inc クラウドデベロッパーアドボケイト 佐藤一憲氏)

Borg

  • 仮想サーバー使っていない
  • 物理マシン(コンテナ)
  • 100~1000のディスクを並列で動かす

BigQuery

  • 100億行のレコードを読んで10秒くらい

Google Brain

  • Jeff Dean (senior fellow) 作のBigTable、MapReduce
  • DeepLearningは行列計算だけ
  • Inception Architecture(画像認識の行列演算フロー)
  • Googleでは実用段階
    • AndroidのPhotoアプリ → 自動タグ付け
    • OKGoogle

CloudVision API

  • デモ (What is Cloud Vision API)
  • 顔検知:一つ一つの顔について感情をJsonで返却する
  • 学校の中で飲みをやっているとeducationと認知される
  • 渋谷ガリガリ祭りの写真を読ませるとdishとかfestivalとか認識する
  • 日本語縦書き斜めを高い精度でOCR
  • 現在はLimitedPreview(申し込み受付中)

TensorFlow

  • X線の画像診断(がんがあるかどうか)
  • ラインでの製品の識別
  • こういった個々の課題に対して提供している
  • 社内のエンジニアはTensorFlowを用いている
  • 多次元配列のための計算フレームワーク(機械学習に特化してるわけではない)
  • 勾配降下法、自動微分などのパラメータ調整を勝手にやる
  • 教師データを与えてあげればコンピュータが勝手に判断する(DeepLearning)
  • 社内ではGPUクラスタを使っている
  • 一段のニューラルネットの例でも手書き文字が認識できる
  • ビジュアライゼーションツール

TensorFlowでの分散学習

  • single gpuでも使えますが…
  • 複数台だと高いパフォーマンス(他社比)が得られる
  • 近々OpenSource化予定
  • しかし、通常の分散環境ではうまく動かない(ネットワークレイテンシのため)
  • Jupyter networkならうまく動きます!

カーリングの局面評価関数を学習 With TensorFlow (KATSUKI OHTO氏)

[slideshare id=58421311&doc=ohtoprestf-160218132018]

自己紹介

  • 学生です
  • 超初心者です

カーリング

  • 2人ゼロサム完全情報不確定ゲーム

評価関数

  • 局面の良し悪しを点数化
  • カーリングでは各エンドで±8点
  • Input: 石の配置 Output: 得点

やってみた

  • 線形関数+softmax関数による予測→得点予測率41%
  • CNNによる予測→得点予測率51%

感想

  • チュートリアルの内容だけでもすぐ使える
  • モデル保存が簡単にできる
  • いろいろ罠にはまらないよう注意

今後のゲームAI大会

  • 人狼、カーリング、囲碁、ぷよぷよ etc ...

Tensorflow研究会から見るTensorflow (山下大輔氏)

[slideshare id=58222930&doc=tensorflow-160213134541]

自己紹介

  • 本業はモバイルエンジニア
  • オープンソースライブラリ勉強会やってます
  • TensorFlow研究会第一回目すごい集まった

前回の発表の紹介

  • 言語処理系 
  • 画像処理系
  • パフォーマンス系 ← TensorFlowの独自性ってこっち?

Image recognitionについて

  • googleがモデルを提供してくれる
  • 1000クラス入っているもののうち、一番近いものを認識
  • 独自のクラスを追加は難しい(後で追加されますか?)

まとめ

  • TensorFlow独自の使い方はあまりみえない
  • 速度頑張って改善中?
  • 個人的にはiOS環境で使いたい
  • Androidだと5系で動作確認

TensorFlowで会話AI作ってみた (シーエイトラボ株式会社 Takuya Shinmura氏)

[slideshare id=58257637&doc=tensorflow2-160215020647]

自己紹介

  • シーエイトラボ代表取締役
  • レコメンド検索エンジン、画像解析、未来予測など

会話AI

  • 人間に変わってロボットが発言
  • 雑談API
  • うずら、もずく、りんな

会話AIの種類

  • 辞書型
  • ログ型
  • マルコフ型
    • 文脈が通らないことがしばしばある

モチベーション

  • 完全な人工無能ではなく、少しでも人工知能なAPIをつくりたい

今回作ったAIの特徴

  • ニューラル言語モデルを用いた単語の埋め込み
  • Word2Vecでも用いられている
  • 次に来る単語を予測するモデルを作ることによって各単語にベクトルを割り当てる
  • 王様 - 男性 + 女性 = 女王 みたいな演算が可能に

  • 会話構築にはSeq2Seqモデルを採用
    • Seq2SeqモデルはRNNと成果物の中間層をデコードするRNNの2つの組み合わせ
  • 学習データにはTwitterのツイート、リプライのデータを40000セット

  • 句読点、絵文字は消去
  • Mecabで形態素解析
  • ユーザ辞書などのチューニングは行わず

  • 結果語彙数は28000語(比較的少ない)

成長の記録

  • 15分後→狂気
  • 1時間後→はじめて一文字以上の単語を発した
  • 一日後→おはようございます覚えた
  • 生後一日ちょっと→意味が少しずつ通ってきた
  • 一日半後→挨拶だけでなく質問も返すように

考察

  • 一般的な会話の長さに比べてTwitterの会話は長すぎる
  • 短文を扱うバケットの適合率が一番低い
  • データ量も少ない
    • 一般的な語彙は25000(英語)50000(日本語)
  • RNNなのでやはり収束速度が遅い
  • 会話生成方法は結局人工無能のまま

今後の方針

  • 単語辞書を生成して形態素解析の精度を上げる
  • Wikipediaからの辞書生成
  • 同一Botによる応答を除く
  • 短文データの対話corpus生成
    • 演劇、漫才の台本が参考になるのでは
  • 学習方法の改良→Adam法などを採用
  • 文脈、会話生成の部分も人工知能化したい

感想

  • 思っていたよりずっとソースコードは短くてすんだ
  • ライブラリの内部まで公開されてるからよかった

おわりに

最近、Destributed TensorFlow とよばれる分散環境向けTensorFlowが発表されましたが、今回も分散環境向けのトピックが話題に上がっていました。

分散環境向けの話題があがってきたところでどうしてもクラウドインフラの話が出てくることになると思いますが、その方面の話題も今後増えていくだろうなと感じました。