いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

Recap of TensorFlow Dev Summit 2019 聴講ノート

※これはセミナー聴講時の個人的なノートをそのまま公開したものです。誤字誤植や勘違いがある可能性があるのでご了承ください。

Recap of TensorFlow Dev Summit 2019 - connpass

19:05-19:40 An Introduction to TensorFlow 2.0: Updates from the TF Summit? Laurence さん(Google LLC)

19:45-20:10 TF Probability, TF-Agents and TFX (BrainPad Inc. ohtaman)

TF Probability

  • 確率的プログラミング:世の中を確率的な事象と捉える
    • 点で表現すると不確実さ(ばらつきなど)を表現できない
  • 不確実さとは:
    • データのばらつき具合(Eleatoric uncertainty)
    • パラメータの推定値の分布(Epistemic uncertainty)
  • TensorFlow Probablityを使うと、確率的プログラミングで簡単に書ける
    • Keras Layersと組み合わせて使う
  • TensorFlow Probability  |  TensorFlow

TF-Agents

TFX (TensorFlow Extended)

その他

  • TensorFlow.js v.1.0のリリース: iPhone Xでは9.4倍
  • 教育への取り組み(オンライン学習コースなど)
  • 2018年に比べて、2019年は具体的な実用例が増えた

20:15-20:25 Demonstration: Edge TPU and Sparkfun Edge (BrainPad Inc. ohtaman)

Sparkfun Edge

f:id:misshiki:20190320201415j:plain
Sparkfun Edge

Edge TPU

f:id:misshiki:20190320201534j:plain
Edge TPU
- Edge TPU Devices - Coral | Home - Edge TPU - Run Inference at the Edge  |  Edge TPU  |  Google Cloud

20:30-20:45 LT1:Federated Learningと差分プライバシー TomMoriyama さん

TensorFlow Federated (TFF)

  • TensorFlow Federated: Federated Learningを実装したフレームワーク
  • Federated Learning: 分散した訓練データを協調的に学習する手法
  • AndroidスマートフォンのGoogle Keyboradで入力候補を提示するモデルを学習する事例(※概念検証中)
  • 従来の機械学習では、データをサーバー1箇所に集めて学習していた。しかしセンシティブなプライベートなデータがあったり、レスポンスが遅いなどの問題
  • 端末上の機械学習では、データが少ななったり、クライアント間で成果を共有できなかったりという問題がある
  • そこでFederated Learning。クライアントで学習したデータをサーバーに集約し(=重みの差分を集計してグローバルモデルを作り)、そのグローバルモデルを各クライアントに配布する、というサイクルを繰り返す
  • ライブラリには2つのAPI: Federated Learning API(上位)とFederated Core API(下位)
  • TensorFlow Federated  |  TensorFlow Federated  |  TensorFlow

20:45-21:00 LT2:tf.keras等のhigh-level APIsについて MasaoTaketani さん

  • 従来のtf.kerasは、小さなモデル構築用で、大規模なモデル構築には向かなかった
  • tf.estimatorは、スケーラビリティを意識したAPIで、分散学習も容易に行えた
  • 新しいtf.kerasは、これまでと同じ書き方で分散学習までをカバーできるようになった
  • データセットのパイプラインはnumpy配列のように扱えるようになった
  • RNNレイヤーの変更: 従来はGPUだとCudnnLSTMクラスを使っていたが、2.0はLSTMクラスだけで使いわけなし
  • tf.feature_columnがtf.kerasにも投入できる
  • tf.kerasでTensorBoardを使うのも1行
  • tf.distribute.Strategy APIでKerasの利便性を保ちながら分散学習できる
  • SavedModel形式でモデルのセーブとロードができる(現在のアルファ版では実験段階)
  • マルチノードで同期:tf.distribute.experimental.MultiWorkerMirroredStrategy
  • TPUでの分散学習: tf.distribute.experimental.TPUStrategy
  • 今後実装される: tf.distribute.experimental.ParameterServerStrategy
  • Distributed Training in TensorFlow  |  TensorFlow  |  TensorFlow