講演資料


講義資料スライドの表紙

講義資料スライドの表紙です。スライド画像、または下の要約文中の青いページ番号リンクをクリックすると、別のタブで無駄なノイズのない、純粋なPDFビューア画面が起動し、指定されたページへ直接ジャンプして快適に閲覧できます。

全体概要

本セミナーは、急速に多様化・分散化する深層学習フレームワーク群の「断片化問題」を中心的な問いとして据え、その解決策として台頭してきた標準化・統合化の潮流——ONNX、NNEF、Gluon API、TVM/NNVM——と、クラウド上での機械学習ライフサイクル全体を管理するAmazon SageMakerの実践的活用、さらにはブラウザ上での推論を実現するTensorFlow.jsまでを一気通貫に俯瞰するものです。[p.1]

2017年後半から2018年初頭にかけて、深層学習の世界では「フレームワーク戦国時代」とも呼ぶべき状況が生まれていました。Google(TensorFlow/Keras)、Facebook(PyTorch/Caffe2)、Amazon(MXNet/Gluon)、Microsoft(CNTK)、さらにChainerやCore MLといった多数のフレームワークが並立し、それぞれが独自のグラフ表現・モデル形式・最適化ターゲットを持つため、研究成果をプロダクションへ移行する際のコストや、異なるハードウェア(CPU/GPU/FPGA)への対応に多大な摩擦が生じていました。[p.21], [p.22], [p.31]

この断片化に対する応答として、本セミナーは三つの軸で議論を展開します。第一に、フレームワーク間の相互運用性を実現する「共通中間表現(IR)」としてのONNX(Open Neural Network Exchange)[p.55], [p.59]とNNEF[p.65], [p.67]の登場と意義。第二に、学習済みモデルをどう共有・再利用するかというModel Zoo、TensorFlow Hub、Gluon Model Zooのエコシステム[p.44], [p.53]。第三に、データ準備から学習・デプロイ・推論までをマネージドサービスとして提供するAmazon SageMakerのアーキテクチャと、fit/deploy/predictという三段階のAPIによる実践[p.81], [p.98]

そしてセミナーの締めくくりとして、TensorFlow.jsを用いたWebブラウザ上でのDoodleリアルタイム認識やWebCamを使ったImageNet分類というデモが示され、「エッジ・ブラウザへの推論の民主化」という方向性が示されます。[p.73], [p.75]本セミナーは、単なるツール紹介に留まらず、「研究と本番の間の溝をどう埋めるか」という技術史的問いに対する、2018年時点での集合知的な解答を丁寧に整理した内容となっています。


講義のロードマップ

■ Part 1: 深層学習フレームワーク群の全体像と断片化の構造

  • この部の核心:

多数のフレームワークが乱立する現状を整理し、「どのフレームワークを選ぶべきか」という問いの背景にある断片化の構造的問題を提示します。Google・Facebook・Amazon・Microsoft各社の主要フレームワークをマッピングし、それぞれの位置づけと関係性を明確化します。[p.21], [p.22], [p.31]

  • 論理展開:
  • TensorFlow・Keras・TensorFlow.js(Google)、PyTorch・Caffe2(Facebook)、MXNet・Gluon(Amazon)、CNTK(Microsoft)、Chainerなどが並立している状況を図示。[p.21]
  • CIFAR10という共通ベンチマークを用いて、複数フレームワーク(TensorFlow/Keras/MXNet/PyTorch/Gluon/CNTK2)の実装を横断比較。[p.17], [p.23]
  • フレームワークごとに独自のSaved Model形式があり、相互変換の必要性が生じることを構造的に説明。[p.40], [p.41]


■ Part 2: データセットとModel Zooのエコシステム

  • この部の核心:

深層学習の学習基盤となる代表的データセット群(MNIST、Fashion MNIST、Quick Draw!、CIFAR10、ImageNet)を概観した上で、各フレームワークが提供する学習済みモデルのリポジトリ(Model Zoo)の意義と活用方法を整理します。[p.12], [p.16], [p.44]

  • 論理展開:
  • MNIST[p.12]、Fashion MNIST[p.13]、Quick Draw![p.14]、CIFAR10[p.15]、ImageNet[p.16]という難易度・複雑度の異なるデータセットの位置づけを提示。
  • MXNet Model Zoo(CNN/RNN両対応)[p.45]、Caffe Model Zoo[p.46]、Caffe2 Model Zoo[p.47]、Gluon Model Zoo[p.48]を比較整理。
  • TensorFlow Hubによる画像分類・特徴抽出・テキストモジュールの再利用(Inception/MobileNet/ResNet/ELMo/Word2Vec等)とコード例を提示。[p.49], [p.54]


■ Part 3: 共通IR(中間表現)による断片化の解決——ONNX・NNEF・TVM

  • この部の核心:

フレームワーク断片化の本質的解決策として、モデルの共通中間表現(IR)というアプローチを深掘りします。ONNX(Microsoft/Facebook主導)とNNEF(Khronos Group主導)という二つの標準化の試みを対比し、さらにコンパイラスタックTVM/NNVMによるハードウェア向け最適化の方向性も示します。[p.43], [p.55], [p.65], [p.76]

  • 論理展開:
  • ONNXの発足経緯(2017年9月):Caffe2・PyTorch・CNTK・MXNetが対応し、フレームワーク間でのモデル移植を可能にする共通フォーマットとして登場。[p.55], [p.57]
  • ONNXのグラフ仕様:DAG(有向非巡回グラフ)・SSA形式・トポロジカルソートという技術的要件と、Model Metadataの構造。[p.63], [p.64]
  • NNEFはKhronos Groupが2017年12月に発表したニューラルネット交換フォーマット。エッジデバイスへの推論デプロイの断片化解消を目標とし、ONNXと相補的な役割を担う。[p.65], [p.67], [p.68]
  • TVM/NNVMはフレームワークとハードウェアバックエンドの間を埋める統合コンパイラスタックとして、モバイル・IoT・FPGAへの対応を実現。[p.76], [p.77], [p.79]


■ Part 4: Gluon API——MXNetにおける動的グラフの統合

  • この部の核心:

MicrosoftとAWSが共同で2017年10月に発表したGluon APIは、「シンプルなコード・柔軟な命令的構造・動的グラフ・高パフォーマンス」という四つの利点を掲げ、PyTorchに代表される動的グラフの利便性とMXNetの実行速度を両立しようとする試みです。[p.30], [p.32], [p.34]

  • 論理展開:
  • Gluon APIは特定実装ではなく「仕様(Specification)」として策定され、Apache License 2.0でGitHub公開。[p.33], [p.32]
  • 四大特長:plug-and-playなニューラルネットブロック、命令的構造、動的グラフ(Python制御フロー直結)、高速学習。[p.34]
  • Gluon Model ZooはAlexNet・DenseNet・Inception V3・ResNet V1/V2・MobileNetなど主要アーキテクチャを網羅。[p.48]


■ Part 5: Amazon SageMaker——MLライフサイクルのマネージドプラットフォーム

  • この部の核心:

Amazon SageMakerは、データ準備・モデル学習・デプロイ・推論という機械学習ワークフロー全体を、Jupyter Notebook環境と組み合わせてフルマネージドで提供するAWSのプラットフォームです。fit/deploy/predictという三段階APIで一貫した体験を実現します。[p.81], [p.85], [p.86]

  • 論理展開:
  • SageMakerのアーキテクチャ:学習ジョブ・エンドポイント・S3連携・コンテナベースの実行環境。[p.83], [p.85]
  • fit→deploy→predictの三段階API:学習(fit)でモデルを構築し、deploy でエンドポイントを生成、predictで推論を実行。[p.86], [p.87]
  • 実践Notebook例:MXNet+MNIST+Gluon[p.89]、MXNet+CIFAR10+ResNet[p.90]、TensorFlow+MNIST Estimator[p.91]、TensorFlow+CIFAR10+ResNet[p.92]の四種。
  • Built-in Algorithm群(Linear Learner・Factorization Machines・XGBoost・Image Classification・K-Means・LDA・NTM・DeepAR・BlazingText等)によるコード不要の学習も可能。[p.94]


■ Part 6: TensorFlow.jsとブラウザ上での推論の実現

  • この部の核心:

TensorFlow.jsはブラウザ(WebGL)上でニューラルネットの学習・推論を実行可能にするJavaScriptライブラリであり、サーバー不要でプライバシーを保ちながらリアルタイムMLアプリを実現します。Doodle認識PWAやWebCamを用いたImageNet分類の実装例を通じて、エッジへの推論民主化の到達点を示します。[p.69], [p.73], [p.75]

  • 論理展開:
  • SageMakerで学習したモデルをTensorFlow.js向けに変換し、Web上にデプロイするパイプラインを提示。[p.72]
  • Doodle認識PWA(https://tfjs-doodle-recognition-pwa.netlify.com/)ではQuick Draw!データで学習したモデルをブラウザで動作させる。[p.73]
  • WebCam MobileNetデモ(https://tfjs-mobilenet-webcam.netlify.com/)ではImageNetクラス分類をリアルタイムでWebカメラ映像に適用。[p.75]
  • Doodle認識の実装はVue.jsコンポーネントとして構成されており、実際のソースコードパスも提示。[p.74]