2023-08-31 ML勉強会
Dataset Quantization
Daquan Zhou*, Kai Wang*, Jianyang Gu*, Xiangyu Peng, Dongze Lian, Yifan Zhang, Yang You+, Jiashi Feng+ (*Equal Contribution, +Corresponding Author)
Accepted by ICCV 2023
Abstract by GPT-4
- 論文の概要 この論文は、大規模なデータセットを効果的に圧縮する新しいフレームワーク、Dataset Quantization (DQ)を提案しています。DQは、大規模なデータセットを小さなサブセットに圧縮することで、任意のニューラルネットワークアーキテクチャのトレーニングに使用できるようにします。実験結果は、DQが未知のネットワークアーキテクチャのトレーニングのための圧縮された小さなデータセットを生成する能力を示しています。
- 先行研究にどのようなものがあったか 先行研究として、データセットの蒸留方法やコアセット選択がありました。データセット蒸留は、大規模なデータセットから情報的に小さなサンプルを合成する方法を提案しています。一方、コアセット選択は、ターゲットデータセットから最も代表的なサンプルのサブセットを選択することを目的としています。
- 先行研究に比べた優位性 DQは、データセット蒸留方法とコアセット方法の両方の利点を組み合わせています。DQは、さまざまなネットワークアーキテクチャのトレーニングに有用なコンパクトなデータセットを生成する一方で、すべてのデータ保持比率で最先端のトレーニングパフォーマンスを維持します。また、DQは、大規模なデータセットの圧縮においても効率的でスケーラブルです。
- 優位性をどのようにして検証したか 著者たちは、DQが異なるネットワークアーキテクチャでのトレーニングに使用できるコンパクトなデータセットを生成する能力を示すための広範な実験を行いました。具体的には、CIFAR-10やImageNet-1Kなどのビジョンタスクや、BBHやDROPベンチマークなどの言語タスクでの実験が行われました。結果として、DQは、フルデータセットでトレーニングされたモデルと同等の性能を持つモデルをトレーニングするために必要なデータの量を大幅に削減することができることが示されました。
詳細
Intoroduction
- DNNのモデルの性能は学習データの量に大きく依存する。
- 例) ImageNet-1KのSoTAモデルは事前学習に3B件のデータを使用している
- 本当に全てのデータが学習にとって有益なのか定かではない
- 先行研究でDataset Distillation (DD)という手法が提案されている
- 既存の学習データから小さい合成データを作成するという手法
- 汎化能力が低い
- 特定のメトリックを計算して合成データセットを作成するが、メトリックを計算するときのモデルのアーキテクチャによってバイアスがかかる
- ResNet18で作成したデータセットでConvNext-TinyやSwin-Tinyを学習させた場合
- より大きなデータセットに対してスケールしない
- 計算コストが合成データセットのサイズに二次関数的に比例する
- 既存のSoTA手法であるDMはImageNet-1Kで60%のデータ保持を行うのに28000GPU時間がかかる

- 上記の問題と比較してコアセット法によって選択されたサンプルであれば、未知のモデルアーキテクチャにも適応できる経験的な観察がある。
- ただ、モデル学習の性能は低くなりがち
- 偏った領域のデータをサンプルしがち

- この論文では、DDとコアセット法の長所を併せ持つ手法を提案した
- データ保持率が低いコアセット法がなぜ性能低下するかの背景を調査
- 選択データの多様性が低い
- Dataset Quantizationという新しいパイプラインを提案
- データセット全体を、多様性利得を最大化することを目的とした劣モジュラ利得に基づいて再帰的に非重複ビンの集合に分割する。そして、データサンプルのごく一部を全てのビンから一様にサンプリングする
- ImageNet-1Kで72GPU時間しかかからない
- 評価
- CIFAR-10とImageNet-1Kでは、フルデータセットで学習した場合と同等のモデル性能を達成するために、60%のデータのみを用いてモデルを学習して比較
- 言語タスクの場合、BBHとDROPベンチマークでは、フルデータセットで学習した場合と同等のモデル性能を達成するために必要な命令データはわずか2%
- 事前に学習したモデルの重みが、物体検出やセグメンテーションなどの下流タスクに一般化できることを検証
先行研究
コアセットの選択
- 幾何学に基づく手法
- 不確実性に基づく手法
- エラーに基づく手法
- 決定境界に基づく手法
- 勾配マッチング
- 二値最適化
- 劣モジュラリティに基づく手法
手法
元のコアセット選択手法の問題点
- 既存の手法はほとんどデータセット全体から単一のサブセットをワンストップ方式で選ぶだけ。
- データセット分布の高密度領域にあるサンプルが他よりも多く選択されるという選択バイアスが生じる。
- SoTA手法であるGraphCut (GC)を利用して分析
- データセット集合
- はn番目のbin、はn番目のbinにおけるk個目のサンプル
- 以下の式を最大化するを選ぶ。: 特徴量抽出器
- :すでに選択しているサンプルとの距離を最大化 → 多様性につながる
- :残りのサンプルとの距離を最小化 → 元の分布をカバーできる
- のsum <<< のsumになってしまう
- なので、特にデータセット保持率が低い場合は、多様性部分がそこまで重要視されていない可能性がある


- 数学的には、特徴量の平均が原点にあるとすると、その最大半径は以下を保証する。(証明は論文参照)

- GraphCutにおける多様性の問題は逐次的にサンプルを選ぶことで解決できる
- M >> kのため上の式の分母が大きくなり、多様性が低くなっていた
- を選択した後にを選択すると分母がになるため、多様性が増える
- これにより、データセットは多様性レベルの違う複数のビンに分割される
Dataset Quantizationの全体像
- まずデータセットから逐次的にbinを作成し、前もって決めたサンプル数 だけサンプルを行う

- 初期ステップのbinは元の分布を維持するためにサンプルされ、後半は多様性を維持するためにサンプルされる
- ストレージの容量を減らすために情報量を少ないパッチを削除して、訓練時にMAEで再構成する (そこまでする?)

- bin作成
- (1)式とほぼ同じ。逐次的にやる部分だけ異なる
- 最も以下の式で大きいサンプルをbinとして定義

- bin sampling
- サンプラーを用いてbinからサンプルを生成する
- デフォルトでは一様サンプリングを用いる
- 全体の流れとしては以下

実験
- データセット
- Vision
- ImageNet-1KとCIFAR-10
- ダウンストリームタスク:ADE20Kでsemantic segmentation、COCOでobject detection
- Text (LLM)
- alpaca dataset (52k)
- 実装詳細
- Vision
- データセット圧縮の際にはResNet18とVit-Baseを特徴量抽出器として基本的に利用して実験
- データセット全体で10 epoch学習したもの (結局学習するんかい)
- 学習時にはViT, Swin Transformer, ConvNeXt, MobilenetV2
- データセットのbinは10に設定
- ドロップ割合は0.25
- Text
- LLaMA-7B
- 特徴量抽出器にはOpenAI’s Embedding API
- 分析
- ハイパーパラメータの実験
- binの数とpatchのドロップ割合を調整 → Fig4 (c)
- N = 1だと大きく精度が落ちる。多様性が低い。
- binの数が多すぎるとランダムな選択に劣化する
- データ保持率が低い場合は、patchのドロップ割合が高いと精度が劣化する → Fig4 (d)
- 一般化可能性
- DMと比べたときに色々なアーキテクチャでも精度が出ている
- ただし、結局ResNet18が一番強い
- 圧縮のスケーラビリティ
- 色々な先行研究の手法で圧縮した後にCIFAR-10で学習した結果 → Fig4 (a) (b)
- DQはデータの保持率が低くても精度が比較的高い
- コアセット選択の手法であるGC (GraphCut)が保持率が低いと精度が低い結果になっってるのが観察できる
- Image patch attentionの影響
- GradCAMベースでdrop
- Randomにdropするよりも性能が高くなった
- 計算コスト
- DMのような合成戦略はGPU時間が大量に必要になる
- DQは一度特徴量抽出させてしまえばそんなに時間がかからない




- 他の手法との比較
- ImageNet-1kではDDの手法は計算コストがかかるため実施していない。
- DQが最も精度劣化を抑えられている

- Textでの結果
- 20%ほどで同程度の性能

- 下流タスクの結果
- ランダムなサンプリングより一貫して高い精度
- 80%くらいのデータで同程度の精度

感想
- Dataset Distilationとコアセット選択の手法のいいとこ取りをした手法を提案したという話だったが、結局コアセット選択手法の改善をしただけっぽかった。合成データセットを作るという話は絡んでこなかった。もしかしたらpatchをdropするみたいな話がそれかも。
- Embeddingを取得する必要があるので、その部分がもっと簡易になれば嬉しい。
- Embedding同士のL2距離をほぼ全てのサンプル間で計算する必要があるが、そこの計算コストは問題にならない?
- 結局、Embeddingを抽出したモデルで訓練した方が精度が高いので、Embedding抽出と訓練するモデルアーキテクチャは揃えた方が良さそうな雰囲気を感じた。
- ただ、一回訓練したモデルを使ってるのでそれがbiasになりそう