Open keimoriyama opened 2 years ago
author
link
Zhou, Guorui, Ying Fan, Runpeng Cui, Weijie Bian, Xiaoqiang Zhu, and Kun Gai. 2017. “Rocket Launching: A Universal and Efficient Framework for Training Well-Performing Light Net.” arXiv [stat.ML]. arXiv. http://arxiv.org/abs/1708.04106.
実地で活用されるアプリケーションは予測をする上で実行時間と計算資源に制約がある.
現在のSOTAのモデルは,制度の向上はしているが予測にかかる時間が大量に必要になっている.
生徒モデルと教師モデルの重みを共有したモデルの蒸留手法を提案した.
ここでは,生徒と教師は同時に学習が進むようになっている.
モデルの概要は図1のようなかんじになっている.
Light Netが生徒モデルでBooster Netが教師モデルの役割をしている
損失関数は以下のとおり(Light Netの更新式)
Booster Netの損失はこの更新式の第2項の計算式を使うようになっている
第1項がLight Netの予測と正解ラベルの損失で第2項がBooster Netのものになっている.
第3項でLight NetとBooster Netの出力を近づけるように学習をおこなっている.
知識蒸留を行う上で,教師モデルのパフォーマンスは生徒モデルのパフォーマンスに影響を与えるので重要になってくる.
この手法では同時に教師と生徒の学習を進めるため,式1の更新式を使うと教師モデルのパフォーマンスに影響が出てきてしまうという課題がある
そこで,Booster Netのパラメータを更新するときにBooster NetとLight Netのパラメータの更新を別々に行うようにした
CIFAR-10による実験の結果
提案手法のパフォーマンスはbooster onlyの列で,boosterはBooster net単体でのパフォーマンスになっている.
ここでは,式2のLight netの蒸留部分の損失関数を温度つきsoftmax関数にした場合のパフォーマンスを比較しているが,提案した手法の方がパフォーマンスが良くなっていると言える.
重み共有をなくしてみたり,Gradient Blockをなくした時のパフォーマンスを比較した.
提案された手法のスコアが一番いいことがわかる
式2のLight Netの損失関数を色々変えてみてパフォーマンスを比較したところ,logitを近づける方がパフォーマンスがよかった.
Rocket Launching: A Universal and Efficient Framework for Training Well-Performing Light Net.
author
link
Zhou, Guorui, Ying Fan, Runpeng Cui, Weijie Bian, Xiaoqiang Zhu, and Kun Gai. 2017. “Rocket Launching: A Universal and Efficient Framework for Training Well-Performing Light Net.” arXiv [stat.ML]. arXiv. http://arxiv.org/abs/1708.04106.
背景:なぜその問題を解決したいのか
実地で活用されるアプリケーションは予測をする上で実行時間と計算資源に制約がある.
現在のSOTAのモデルは,制度の向上はしているが予測にかかる時間が大量に必要になっている.
目的:どういう問題を解決したのか
生徒モデルと教師モデルの重みを共有したモデルの蒸留手法を提案した.
ここでは,生徒と教師は同時に学習が進むようになっている.
提案:解決に向けたキーアイデアは何か
モデルの概要は図1のようなかんじになっている.
Light Netが生徒モデルでBooster Netが教師モデルの役割をしている
損失関数は以下のとおり(Light Netの更新式)
Booster Netの損失はこの更新式の第2項の計算式を使うようになっている
第1項がLight Netの予測と正解ラベルの損失で第2項がBooster Netのものになっている.
第3項でLight NetとBooster Netの出力を近づけるように学習をおこなっている.
Gradient Block
知識蒸留を行う上で,教師モデルのパフォーマンスは生徒モデルのパフォーマンスに影響を与えるので重要になってくる.
この手法では同時に教師と生徒の学習を進めるため,式1の更新式を使うと教師モデルのパフォーマンスに影響が出てきてしまうという課題がある
そこで,Booster Netのパラメータを更新するときにBooster NetとLight Netのパラメータの更新を別々に行うようにした
結果:結局問題は解決されたのか.新しくわかったことは?
CIFAR-10による実験の結果
提案手法のパフォーマンスはbooster onlyの列で,boosterはBooster net単体でのパフォーマンスになっている.
ここでは,式2のLight netの蒸留部分の損失関数を温度つきsoftmax関数にした場合のパフォーマンスを比較しているが,提案した手法の方がパフォーマンスが良くなっていると言える.
重み共有をなくしてみたり,Gradient Blockをなくした時のパフォーマンスを比較した.
提案された手法のスコアが一番いいことがわかる
式2のLight Netの損失関数を色々変えてみてパフォーマンスを比較したところ,logitを近づける方がパフォーマンスがよかった.