Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TensorFlow on Mobile

Arata Furukawa
September 11, 2016

TensorFlow on Mobile

「9/11 Deep Learning 学生無料勉強会@GMO Yours」
http://jagsc.connpass.com/event/36393/

上記イベントで発表したスライドです。

Arata Furukawa

September 11, 2016
Tweet

More Decks by Arata Furukawa

Other Decks in Technology

Transcript

  1. Tensorflow on Mobile
    東海大学 理学部
    日本Androidの会 学生部
    古川新

    View full-size slide

  2. 古川 新
     Arata Furukawa
    ● 東海大学 理学部 ピカピカの1年生
    ● プログラミング、イラスト、デザインが趣味
    ● なんでもします!

    View full-size slide

  3. Tensorflowとは

    View full-size slide

  4. 人工知能ライブラリでしょ、
    そのくらい知ってるよ

    View full-size slide

  5. 厳密には
    「人工知能(機械学習)のライブラリ」
     は正しくない。

    View full-size slide

  6. 確かにTensorflowは、機械学習の研究を行って
    いたGoogleのエンジニアや研究者によって開発
    されました。
    しかし、Tensorflow自体は機械学習に限定され
    た用途で使用されるものではありません。

    View full-size slide


  7. TensorFlow™ is an open source
    software library for numerical
    computation using data flow
    graphs.

    View full-size slide

  8. データフローグラフ型
    汎用数値演算ライブラリ
    Deep Learningは莫大な計算資源を要求します。
    その要求に応えるためには、抽象的でスケーラビリティかつ
    ポータビリティな、非同期並列で実行可能な数値演算の仕組
    みが必要でした。
    Tensorflowはまさにそれを実現するライブラリです。
    機械学習に限らず、このライブラリ自体はどんな計算であって
    も応用可能です。
    (オープンソース・ソフトウェア)

    View full-size slide

  9. Tensorflow Graph
    Tensorflowはあらゆる数学演算をノードとエッジの有向グラ
    フで表現します。
    また、TensorflowグラフはProtocol Buffers形式で
    シリアライズできます。
    シリアライズされた抽象グラフは他のプラットフォーム・アーキ
    テクチャ・デバイスでも扱えます。

    View full-size slide

  10. Deep Neural Networks
    ディープニューラルネットワーク(DNN)は巨大な行列演算のグ
    ラフで表現できます。
    よって、DNNも同様にTensorflowグラフとして表現すること
    ができます。

    View full-size slide

  11. Distributed TensorFlow
    Tensorflowの真価は分散処理にあります。Tensorflowでは
    データ並列が透過的に行なえます。
    コードにほとんど手を加えることなく、マシンリソースにスケー
    ルした適切なスケジューリングの最適化などを全て自動で行
    い、演算をスケールアウトします。
    高度な分散処理数値演算ライブラリ、それがTensorflowの真
    の姿です。

    View full-size slide

  12. 「Large Scale Distributed Systems for Training Neural Networks (Jeff Dean & Oriol Vinyals Google)」より引用

    View full-size slide

  13. 学習と実行の
    非対称性

    View full-size slide

  14. 一般的な演算コスト
    学習コスト > 実行コスト

    View full-size slide

  15. 学習の演算コスト
    1. 規模にも依るが、膨大な回数の
    反復学習が必要←ほぼこれ
    2. 誤差の逆伝搬など学習用の
    計算量が多い
    一般的に知られているように、訓練には
    莫大な計算資源が必要となる。
    「AlphaGo の試合に用いられた
     Google のディープラーニング専用サーバ」
    Google Cloud Platform Japan Blogより

    View full-size slide

  16. 実行の演算コスト
    1. 反復実行
    →要らない
    2. 誤差逆伝搬したりする分の計算量
    →要らない

    View full-size slide

  17. 学習に莫大なコストがかかるニューラルネットワークも、
    モバイルで動きます

    View full-size slide


  18. TensorFlow Android Camera Demo
    https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android

    View full-size slide

  19. GitHubのTensorflowリポジトリに
    AndroidでTensorflowを
    実行するサンプルが公開されている。

    View full-size slide

  20. http://goo.gl/
    CtLXYm
    ※使用は自己責任でお願いします
    ※他の場所にアップロードしたり
     しないでください

    View full-size slide

  21. サンプルビルドについて
    何か話すことがあれば話す (未定)

    View full-size slide

  22. モバイルアプリに
    組み込んでみた

    View full-size slide

  23. Tensorflowによる
    リバーシAI
    Androidアプリ

    View full-size slide

  24. Android Firebase
    プレイデータを自動送信
    AIが定期的に自動更新される
    Tensorflo
    w

    View full-size slide

  25. Data
    Server
    Run
    Tensorflow
    Firebase
    Realtime Database
    C++ Java
    Protocol
    Buffers
    JNI
    Reversi
    OSUSHIの構成:Androidアプリ側
    HTTPS
    Android App

    View full-size slide

  26. True Portability
    Tensorflowグラフは非常にポータビリティが高い。
    配布されたモデルを利用したり、更にそれを学習させたりする
    ことが容易です。

    View full-size slide

  27. 「モデルさえあれば…」
    Tensorflow学習済みモデルの配布/利用は容易です。
    抽象化されたグラフを表現したProtocol Buffers形式のテキ
    ストorバイナリデータでしかないからです。
    実際に配布されているモデルも出始めており、今後増加する
    と思われます。
    もしかしたら、モデルリポジトリなんてものが今後出てくるか
    も?

    View full-size slide

  28. 新しいアプリ開発の形?
    ニューラルネットワークは処理能力に乏しいモバイルプラット
    フォームでも利用できます。
    人工知能はモデルさえあれば一般的なアプリに組み込むこと
    が可能な段階にあるのです。

    View full-size slide

  29. ご清聴ありがとうございました。

    View full-size slide