※これはセミナー聴講時の個人的なノートをそのまま公開したものです。誤字誤植や勘違いがある可能性があるのでご了承ください。
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)
TensorFlow 2.0のターゲットユーザー:
- for Developers: Indian students develop app to measure air quality
- for Companies: Ranking Tweets with TensorFlow – TensorFlow – Medium
- for Researchers: 世界最速のスパコンが深層学習の最速記録、気象予測を新たな次元へ|WIRED.jp
機械学習のコードの8~9割はデータに関するものだったが、
tfds
などでより簡略化できるように- TensorFlow Hubで転移学習できる
- この記事で全部カバーされている: TensorFlow 2.0 α版で何が変わる? 新機能の概要 ― TensorFlow Dev Summit 2019 - Deep Insider
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
- 深層強化学習のための汎用ライブラリ
- 抽象化の度合いがちょうどよい
- Dopamineというのもあるが、それは研究用ライブラリという違いがある
- 実務寄りで、柔軟な設計になっている
- いろいろなEnvironment、いろいろなAgentを試せる
- TensorFlow 2.0で簡単に利用できる
- GitHub - tensorflow/agents: TF-Agents is a library for Reinforcement Learning in TensorFlow
TFX (TensorFlow Extended)
- 機械学習応用システム: 機械学習はモデルを作って終わりではない
- End to Endな機械学習プラットフォーム
- 2018年の発表に比べると、今回はその対象範囲を広げ、コンポーネントとが一通り揃った
- ただしPython 2.7のまま。KerasではなくEstimatorが想定されている様子
- GitHub - tensorflow/tfx: TFX is an end-to-end platform for deploying production ML pipelines
- TFX | TensorFlow
その他
- 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
- マイコンボード: SparkFun Edge Development Board - Apollo3 Blue - DEV-15170 - SparkFun Electronics
- GitHub - sparkfun/SparkFun_Edge: SparkFun's Edge Development Board is based around the newest edge technology and is perfect for getting your feet wet with voice and even gesture recognition without relying on 3rd party cloud services.
- TensorFlow Liteを入れたデモ
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