Model Compression
https://www.cs.cornell.edu/~caruana/compression.kdd06.pdf
2006/8
正直よくわからなかった(汗) 参考にならないかも...
一言でいうと
モデル圧縮を行って、複雑なアンサンブルモデルを少ない性能劣化で小さく、高速なモデルにする。
この論文のすごいところ
偽のサンプルを生成するMUNGEなる手法を使うと、ensemble selectionよりも数千倍小さくかつ高速になる。 MUNGEは、訓練データのラベルなし疑似データを生成する手法で、あとで教師モデルでラベル付して生徒モデルの学習に利用する。
感想
古い論文だからか、結果を見ると「ほう、疑似データを作って小さいモデルでも過学習とか起こりにくくしつつ、精度高くするのか」と思っただけで、割と普通じゃね?って思ってしまった...
英語の勉強になった。
ざっく理論
モデル圧縮の大本の考え方は、遅くて巨大なものによって学習された関数を高速でコンパクトなモデルで近似すること。ただし、性能は良くなることを目指している。
高速かつコンパクトなモデルは十分な疑似データで学習され、過学習をおこさず、高い性能のまま近似することができる。
- どうやって疑似データを得る?
--> 3つの手法(RANDOM, NBE, MUNGE)で作成する。
疑似データを本物のデータの分布とマッチさせることが重要。最小のサンプル数が適切なターゲット関数をサンプリングするようにする必要がある。
疑似データを作る方法
RANDOM
最も単純な方法。
周辺分布からそれぞれの属性を独立にサンプリングする。
いわゆる特徴が学習データから推測されるパラメータを持つ多項分布から生成される。これは、訓練セットに含まれるすべての属性分布から値を取り出すため、重要ではない領域の属性を取り出してきてしまう可能性がある。
NBE(naive Bayes Estimation)
訓練セットの属性の同時分布を推測し、そこから擬似データを生成する。 うまく同時分布が推測されてれば、条件付き構造は保たれ、重要な属性をカバーすることができる。
同時分布を推測する方法の一つは、混合モデル(混合ガウス分布)を使うこと。 連続値と離散値を両方扱う混合モデルがナイーブベイズ。 ナイーブベイズを使おうと思ったのは、
- 連続値と離散値両方使えるってこと
- 使いやすい
- 同じデータで学習したベイジアンネットワークと同等の性能を持つ
- 読みやすい
からだそう。
MUNGE
今回考えた手法。 ノンパラメトリックな同時分布の推測値から直接サンプリング。
オリジナルの訓練セットから始まって、一旦全部のサンプルを見て、それぞれの近傍データを決定。連続値に対してはユークリッド距離、離散値に対してはハミング距離で近傍かを判断。離散的なと最近傍のサンプルがあったとき、pの確率で、交換される(つまり1-pの確率で変わらない)。
連続値だったら、は平均、標準偏差の正規分布からランダムに抽出。は、平均、分散の正規分布から抽出。
それぞれの手法で、疑似データを作った結果が下図。
結果
2値分類で有効性をみる
MUNGEを使ってデータを増やすと
覚えた単語
synthetic・・・総合的な、偽の
unlike・・・と異なり
attribute・・・属性、特性
adequately・・・的確に
marginal distribution・・・周辺分布
predominately・・・主に
nominal・・・という名目の、名ばかりの(ここでは、"離散的な"的な!意味っぽい)
multinominal distribution・・・多項分布
joint distribution・・・同時分布
conditional・・・条件的な、条件付き
preserve・・・保つ
inherent・・・固有の
nomianlがわからなかった...下図のような感じらしい。