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

2016.06.23

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

はじめに

昨日 6/22 六本木ヒルズ Google Inc 東京オフィスで TensorFlow勉強会の四回目 が開催されました。本記事はそのレポートとなります。

Googleの機械学習プロダクトのアップデート

Google Inc 佐藤一憲氏

スライド準備中

構文解析ツール

  • SyntaxNet
  • あまり既存の研究成果とくらべて差異はないらしい
  • CloudTranslateAPI

Tensor Processing Unit

  • CPUでもGPUでもない、新しいプロセッサ
  • 新しくチップをゼロから設計してもらった
  • 8bitのCPUと誤解されてるが、それはMisLeading
  • 中身の詳細はこれからPaparが出る
  • 具体的にはビット量子化をハードウェアで直接サポート
  • SharedMemoryが大きくなる
  • 最大の売りは電力効率

下記サービスで用いられている

  • RankBrain
  • AlphaGo
  • GooglePhotos
  • Speech

GPUクラスタ組むよりはるかに安く提供できる

Wide & Deep

共起と分析を同時に行うアップデート。詳細は一二週間後に発表

TensorFlowで趣味の画像収集サーバーを作る 6月号

有限会社シーリス 有山圭二氏

好みの眼鏡っ娘画像を自動で収集したい

眼鏡っ娘の表記ゆれにご注意ください!

TensorFlowでGPUが使えない

  • ドライバインストールしないとGPU使えませんのでご注意を!

  • GPU対応Dockerでのコンテナ作成方法が各種ブログにまとめてあります

同人誌を書こう

  • 技術書典→今週末やります(TensorFlowはじめました)
  • CIFER-10に立ち返って執筆をしました

CIFAR-10

  • CIFAR-10のチュートリアルはハローワールド終わった人にGoogleMap作ろうかっていうくらいには難しい

  • その敷居を補完しようというモチベーションのもと同人誌書いています

  • pooling層を重ねすぎて全く精度が出なかった

レビュアーさんの意見をもとになおす

  • TensorFlowの特徴に並列分散処理
  • 読者に想定する前提知識

  • 本を書き終える度にAPIのアップデートがあるので困る

試したこと

  • 最適化アルゴリズムを変更
  • バッチサイズを変更(増やした)
  • バッチを変えるにはグラフネットワークを大幅に帰る必要があった
  • 変更したら大幅に計算時間が短縮
  • バッチサイズ小さい時、GPUは仕事してなかった

TensorFlow唐揚げサーバーロボット 

株式会社アールティ 中川友紀子氏

[slideshare id=63334429&doc=tensorflowrev1-160622122950]

会社紹介

  • アールティはロボット屋さんです
  • ハード屋さんをやって早十年
  • 多関節ロボットを得意としています
  • ネコ店長、秋葉原高架下ロボットアイルで展示しています

ロボットで食品を扱う

  • 扱う対象が自然物
  • 柔らかいものを扱うのは難しい
  • 唐揚げは油で滑るから難しい
  • ロボットアームの名前はNEKONOTE
  • 弁当にパッケージングする人も高齢化にともなって働き手がいない
  • よって食品をロボットで扱う需要はある

画像処理

  • げんこつの人間の手と唐揚げの識別が難しい
  • ROSというミドルウェア
  • サンプル画像作成は実際の唐揚げを用いた

実演

皿の置かれたタイミングでSelective search実行

TensorFlowで逆強化学習

株式会社ブレインパッド 太田満久氏

逆教科学習とは?

「良い」ということの定義

  • 囲碁で買った
  • ゲームを攻略した
  • お客様に喜んでもらえた

「良い」ということの定量的な定義

エキスパートの行動を下にどの状態がどれくらいいいのか推定すること

  • 自動運転の場合 → どのレーンを走るべきか、そのレーンを選択した理由を逆教科学習で求める
  • カウンセリング → ゴールが明確でない対話の適切な「良さ」を定義できる

ラジコン(ヘリ)の自律運転

  • 熟練者の操作ログからアクロバット飛行を学習
  • 熟練者以上に一貫した飛行が可能

行動予測

人の行動軌跡から「人が好む経路」を学習

安全運転

生活道路の危険予知運転をモデル化

  • ドライバーの運転行動に基づいたモデル化
  • 安全に関する明確な基準がなくても学習できる

報酬推定アルゴリズム

  • 熟練者は統計力学のカノニカル分布のような確率で経路を選択していると仮定

メリット

  • State of artな手法と同等またはそれ以上の精度が高速に得られる
  • 特徴量の抽出もすることができる

迷路の経路探索

  • 強化学習で作成した熟練者
  • その熟練者のデータをもとに逆教科学習で学習

TensorFlowで学ぶDQN(Deep Q-Network)

ITエンジニアのための機械学習理論入門 著者 中井悦司氏

[slideshare id=63236246&doc=dqnv10-160620062335]

まずDQNのしくみから

  • ビデオゲームの画面イメージを入力データとして取得点数が高くなる操作方法を学習
  • 目先の点数のみにとらわれない報酬を表すQ関数を仮定
  • どうやって計算するかは全く謎だが、ベストなQを与えるa(行動)をはじき出す
  • Qを満たす関数を漸次的な方程式から探す
  • 一旦方程式が求まってしまえばQ自体は確率勾配降下法のようにパラメータを求められる

難しいところ

  • データをかき集めるところ
  • 理論上は到達できるけど、現実的な時間では到達できないデータを用意できない
  • ランダムなアクションと現時点のQ関数を用いたアクションを適当な割合で混ぜてプレイして、更にデータを集めます。

AlphaGo

  • Policy network
  • Value network
  • 自分自身で戦わせまくってPolicyNetworkを作成する

お知らせ

  • July tech festaでお話します

TensorFlow と Gymを使ってDoubleDQN 

シーエイトラボ株式会社 新村拓也氏

[slideshare id=63360139&doc=tf4-160623031615]

DQN

  • Q学習
  • ある状態における行動のもたらす価値を最大化するポリシーを方程式で算出
  • ニューラルネットワーク自体が2つ存在している
    • 行動を行って評価価値は何点だ!と予測するネットワーク
    • 行動の結果の状況Sで取るべきAをとった時の価値を予測するネットワーク

DoubleDQN

  • 選択と評価の責務をQ_π、Q_θに分離
  • DQNさえ作ってしまえばDoubleDQNへの変更はTensorFlowで10行程度

Gym

  • ゲームのシュミレーション環境を簡単に呼び出し簡単に状態、アクション、評価を取得

実演

ブロック崩し

おわりに

今回は特にDeep Q-Networkと呼ばれる手法にフォーカスがあたっていました。なかでも中井さんの説明は高校数学で直感的に理解できるもので、深層学習が手近に感じられるものでした。プロの囲碁棋士との勝負で大きく話題になったAlphaGoでも用いられているようで、碁打ちとしてGoogle発表のPaperを漁ってみようと思いました。