Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

モデルではなく、データセットを蒸留する

2,109 views

Published on

Dataset Distillationの解説

Published in: Data & Analytics
  • Be the first to comment

モデルではなく、データセットを蒸留する

  1. 1. Copyright © TIS Inc. All rights reserved. モデルではなく、データセットを蒸留する 戦略技術センター 久保隆宏 Dataset Distillation
  2. 2. Copyright © TIS Inc. All rights reserved. 2 ◼ 論文のサマリ ◼ 「蒸留」の種別 ◼ データセットを蒸留する手順 ◼ 評価 ◼ 所感 ◼ 参考資料 目次
  3. 3. Copyright © TIS Inc. All rights reserved. 3 久保隆宏 TIS株式会社 戦略技術センター ◼ 化学系メーカーの業務コンサルタント出身 ◼ 既存の技術では業務改善を行える範囲に限界があるとの実感から、戦 略技術センターへと異動 ◼ 現在は会計/投資の現場で使える要約の実現を目指し、まとめる観点を 指定した要約の作成に関する研究を行う。 自己紹介 kintoneアプリ内にたまった データを簡単に学習・活用 (@Cybozu Days 2016) チュートリアル講演:深層学習 の判断根拠を理解するための研 究とその意義(@PRMU 2017) 機械学習をシステムに組み込む 際の依存性管理について (@MANABIYA 2018)
  4. 4. Copyright © TIS Inc. All rights reserved. 4 Dataset Distillation ◼ モデル側ではなく、データセット側を蒸留した研究 ◼ MNISTでは10件のデータで94%、CIFAR-10では100件で54%の精度 を達成 ◼ 転移学習、また敵対的サンプルにも使えることを確認 ◼ 転移学習: 蒸留しておいたデータを、数件学習させるだけで転移さ せる ◼ 敵対的サンプル: モデルを誤らせるデータを蒸留することで、数件 でも破壊的忘却を引き起こすデータを作成する(dataset poisoning) ◼ ただモデルの初期値に対する依存が若干あるため、汎用的に使えるか は今後の検証が必要。 論文のサマリ
  5. 5. Copyright © TIS Inc. All rights reserved. 5 「蒸留」の種別 (1/2) 初期の「蒸留」の目的は、モデルのサイズの圧縮だった。「親」となるモ デルを、より小さいサイズの「子」モデルへと変換するプロセスを「蒸 留」と呼んでいた。 その後、サイズの圧縮が目的でなくとも、「親」から「子」を作る手法が 全般的に「蒸留」と呼ばれるようになった。 ◼ 「親」のモデルに手を加えて「子」を作る ◼ 枝刈り(Pruning)など ◼ 「親」を教師に「子」を学習する ◼ 半教師あり学習に近い形(親がつけたラベルで子を学習させる) ◼ 「親」からドメイン特化した「子」を作成する ◼ 転移学習に近い形 ◼ 「親」から特定の性質を持つ「子」を作成する ◼ 敵対的サンプルへの抵抗力を上げるなど
  6. 6. Copyright © TIS Inc. All rights reserved. 6 「蒸留」の種別 (2/2) "Data Distillation: Towards Omni-Supervised Learning"という非常に タイトルが近い論文があるが、こちらは半教師あり学習に近い話。 本研究には、Active Learningのような学習データを選択する手法が近し い。ただ、本研究は学習データを「サンプリング」するのではなく、「生 成」するという点で異なる。 生成された学習データ(Figure1 (a)より)
  7. 7. Copyright © TIS Inc. All rights reserved. 7 データセットを蒸留する手順 (1/4) 論文中では、1stepの学習からMulti stepへ拡張するという手順を取って いる。1stepの手順は以下の通り。 1. 蒸留後データセット෤𝑥を初期化する(randomly) 2. 初期値の分布から、 j個の初期値をサンプリングする𝜃0 𝑗 3. 𝜃0 𝑗 と෤𝑥から勾配を計算し、適用することで学習後の重み𝜃1 𝑗 を作成する 4. 実際の学習データ(ミニバッチ= xt)と𝜃1 𝑗 で、Lossを計算する 5. 4のLossが小さくなるように、 ෤𝑥を学習する(この時の学習率は、Loss の値から自動調整を行う)
  8. 8. Copyright © TIS Inc. All rights reserved. 8 データセットを蒸留する手順 (2/4) ෤𝑥 𝜃0 𝑗 𝜃1 𝑗 xt 学習は以下のように行われる(メタ学習に近い)。 gradient gradient
  9. 9. Copyright © TIS Inc. All rights reserved. 9 データセットを蒸留する手順 (3/4) ෤𝑥 𝜃0 𝑗 𝜃1 𝑗 xt Multi step: 𝜃 𝑗 の更新を複数回行う。 gradient gradient
  10. 10. Copyright © TIS Inc. All rights reserved. 10 データセットを蒸留する手順 (4/4) ෤𝑥 𝜃0 𝑗 𝜃1 𝑗 xt Multi epoch: ෤𝑥に対する更新を複数回行う。 gradient gradient
  11. 11. Copyright © TIS Inc. All rights reserved. 11 評価 (1/3) 基本的にMulti-step、Multi-epochの方が良い。ただ、分散が収束しない 傾向が若干ある。 蒸留後の画像数も多い方が良いが、1stepだけだとほとんど効果が見られ ない。
  12. 12. Copyright © TIS Inc. All rights reserved. 12 評価 (2/3) 同じ枚数で、ベースラインより高い精度が出せている。 ベースラインは、以下4つの手法。 ◼ ランダムに選択した場合 ◼ 学習効果の高かったTop20からランダムに選択 ◼ k-meansでクラスタリングを行い、各クラスタのcentroidを使用 ◼ 各カテゴリの画像の平均を取る 初期値は、ランダムに初期化する場合と、転移学習のようにFixされてい る場合の2つで検証されている。
  13. 13. Copyright © TIS Inc. All rights reserved. 13 評価 (3/3) 転移学習については、各カテゴリ1枚の蒸留後データを使うだけでフル セットを使った場合に近い効果が得られている。 敵対的サンプルでは、少ない画像数でMiss classficationを誘うことがで きている(CIFARで顕著)。
  14. 14. Copyright © TIS Inc. All rights reserved. 14 データセット側を蒸留するのは、学習の効率化という意味でも夢がある。 ◼ 蒸留後データを使えば、CPUでも学習できる? ◼ ダウンサイズしたモデルを蒸留後データで学習させるなど どこまで数を減らせるのかについては興味がある(一応検証はされていた が、実体とあまりあっていなかった=式8)。 論文中でも述べられていたが、ImageNetのようなより大規模のデータ セット、また言語や音声といった他ドメインのデータについても検証結果 が見てみたい。 所感
  15. 15. Copyright © TIS Inc. All rights reserved. 15 ◼ DeepX AI Blog:蒸留 第1回 参考資料
  16. 16. THANK YOU

×