$30 off During Our Annual Pro Sale. View Details »

LT資料_knowledge ~蒸留・モデル圧縮・そしてKT~

Masa
September 20, 2019

LT資料_knowledge ~蒸留・モデル圧縮・そしてKT~

勉強会LT資料の置き場
機械学習におけるknowledgeの有効活用のお話
モデル圧縮とか、転移学習とか

■ モデル圧縮
Yu Cheng, Duo Wang, Pan Zhou, Tao Zhang. 2017
“A Survey of Model Compression and Acceleration for Deep Neural Networks” IEEE
https://arxiv.org/abs/1710.09282
全体像をクイックに俯瞰するサーベイ論文
■ 蒸留
- Deep Learningにおける知識の蒸留 
http://codecrafthouse.jp/p/2018/01/knowledge-distillation/

- Chen et al., 2017 “Learning Efficient Object Detection Models with Knowledge Distillation”.
https://papers.nips.cc/paper/6676-learning-efficient-object-detection-models-with-knowledge-distillation.pdf

- Sergey et al., 2017 “PAYING MORE ATTENTION TO ATTENTION: IMPROVING THE PERFORMANCE OF CONVOLUTIONAL NEURAL NETWORKS VIA ATTENTION TRANSFER ”.
https://arxiv.org/pdf/1612.03928.pdf

■ KT
Li et al., 2019 “DELTA: DEEP LEARNING TRANSFER USING FEATURE MAP WITH ATTENTION FOR CONVOLUTIONAL NETWORKS”.
https://arxiv.org/pdf/1901.09229.pdf

Masa

September 20, 2019
Tweet

More Decks by Masa

Other Decks in Technology

Transcript

  1. Knowledge
    ~蒸留・モデル圧縮・そしてKT~
    2019/9/24 LT資料
    Masa
    Twitter @asas_mimi
    1

    View Slide

  2. モデルのKnowledge有効活用
    2
    本日のテーマ

    View Slide

  3. モデルの圧縮+α
    3
    本日のモチベーション

    View Slide

  4. やりたいこと = モデルの圧縮
    Model Compression
    4

    View Slide

  5. 圧縮の動機
    • 精度の良いDNNはデカい
    • できるだけ精度を保ちながら、計算量を減らしたいんです
    5
    https://www.learnopencv.com/pytorch-for-beginners-image-
    classification-using-pre-trained-models/

    View Slide

  6. どんぐらいデカいの?
    6
    http://image-net.org/challenges/talks_2017/ILSVRC2017_overview.pdf
    例えばこれを見てみよう

    View Slide

  7. AlexNet (2012)
    7
    • 2012年のILSVRCにおいて,従来の画像認識のデファクトスタンダードであったSIFT
    + Fisher Vector + SVMというアプローチに大差をつけて優勝
    • DNNブームの切っ掛け
    • 現在では比較的小規模なモデル

    View Slide

  8. AlexNet の疑似計算量
    8
    層 入力サイズ ch数
    カーネル
    サイズ
    Stride 出力サイズ wの個数 乗算回数
    input 3 227*227
    conv1 227*227 96 11*11 4 55*55 0.03 M 112 M
    pool1 55*55 96 3*3 2 27*27
    conv2 27*27 256 5*5 1 27*27 0.6 M 448 M
    pool2 27*27 256 3*3 2 13*13
    conv3 13*13 384 3*3 1 13*13 0.9 M 150 M
    conv4 13*13 384 3*3 1 13*13 1.3 M 224 M
    conv5 13*13 256 3*3 1 13*13 0.9 M 150 M
    pool5 13*13 256 3*3 2 6*6
    fc6 9216 4096 38 M 38 M
    fc7 4096 4096 17 M 17 M
    fc8 4096 1000 4 M 4 M
    total 62 M 1,142 M
    ■ conv層
    ① wの個数 :
    カーネルサイズ*入力ch数
    *出力ch数
    ② 乗算回数:
    wの個数*入力サイズ/(Stride)2
    ■ pool層
    wなし。乗算回数なし
    ■ fc層
    ① wの個数 :
    入力サイズ*出力サイズ
    ② 乗算回数:
    wの個数
    メモリ問題
    (fc層を減らせば何とかなる。)
    計算量=1G回計算
    • 現在では比較的小規模なモデル. それでも、畳み込み層が増えるほど、計算量ヤバい

    View Slide

  9. 9
    http://josephpcohen.com/w/visualizing-cnn-architectures-side-by-side-with-mxnet/
    AlexNet
    224×224
    (2012)
    他のDNNアーキテクチャは?

    View Slide

  10. 10
    http://josephpcohen.com/w/visualizing-cnn-architectures-side-by-side-with-mxnet/
    AlexNet
    224×224
    (2012)
    VGG
    224×224
    (9/2014)
    GoogLeNet
    224×224
    (9/2014)
    Inception V3
    299×299
    (12/2015)
    Resnet (n=9, 56 Layers)
    28×28(12/2015)
    ・・・

    View Slide

  11. 11
    http://sqlml.azurewebsites.net/2017/09/12/convolutional-neural-network/

    View Slide

  12. やりたいこと = モデルの圧縮
    Model Compression
    12
    再掲
    精度はできるだけ、
    保ちつつ

    View Slide

  13. モデル圧縮の全体像
    13
    Yu Cheng, Duo Wang, Pan Zhou, Tao Zhang. 2017
    “A Survey of Model Compression and Acceleration for Deep Neural Networks” IEEE
    https://arxiv.org/abs/1710.09282
    distillation??

    View Slide

  14. distillation (蒸留)
    14

    View Slide

  15. 蒸留 ?
    15
    Wikipedia (2019/9/12時点) https://ja.wikipedia.org/wiki/%E8%92%B8%E7%95%99

    View Slide

  16. 蒸留 (Knowledge distillation) ?
    16
    Training a compact neural network with distilled knowledge
    of a large model

    View Slide

  17. 蒸留 (Knowledge distillation) ?
    17
    Training a compact neural network with distilled knowledge
    of a large model
    生徒モデル
    教師モデル

    View Slide

  18. 蒸留 (Knowledge distillation)
    18
    SimplifiedKnowledge Distillation
    https://towardsdatascience.com/knowledge-distillation-simplified-dd4973dbc764
    ① 精度が良い大きなモデル(教師モデル)を用意
    (含むアンサンブル)
    ② いい感じでknowledgeを抽出
    ③ いい感じでknowledgeを活かして、
    コンパクトなモデル(生徒モデル)を学習

    View Slide

  19. soft target lossアプローチ
    19
    Deep Learningにおける知識の蒸留
    http://codecrafthouse.jp/p/2018/01/knowledge-distillation/
    教師モデルの
    出力分布がヒントになるのでは?
    これは普通の損失関数
    生徒モデルの出力分布が
    教師モデルと近くなるように
    する損失

    View Slide

  20. soft target lossアプローチ
    20
    Deep Learningにおける知識の蒸留
    http://codecrafthouse.jp/p/2018/01/knowledge-distillation/
    温度パラメータTで割って、
    Softmaxに突っ込む
    KL Divergence
    (クロスエントロピー)損失関数
    教師モデルの出力分布と生徒ラベルの
    出力分布を近づけるための
    損失関数
    =soft target loss
    一例

    View Slide

  21. -6
    -5
    -4
    -3
    -2
    -1
    0
    1
    2
    3
    4
    5
    0
    0.1
    0.2
    0.3
    0.4
    0.5
    0.6
    0.7
    0.8
    0.9
    1
    犬 猫 鳥 豚 牛 人
    logit
    prob
    prob with T = 1 prob with T = 2 prob with T = 3 prob with T = 4 logit
    温度パラメータT (イメージ)
    21
    ご参考
    元のlogit出力 温度パラメータTを上げると、
    正解クラス以外の類似クラスのprobが
    大きくなっていく(蒸留成功?)
    • なんで温度パラメータなんて使ってるの?

    View Slide

  22. 蒸留 ?
    22
    Wikipedia (2019/9/12時点) https://ja.wikipedia.org/wiki/%E8%92%B8%E7%95%99

    View Slide

  23. soft target lossアプローチ まとめ
    23
    一例
    1/T
    1/T
    Soft max


    Soft max


    soft target 損失関数
    hard target 損失関数
    正解データ
    Soft max


    (1-λ)
    λ
    教師モデル
    生徒モデル 損失情報
    backprop
    損失情報
    backprop
    forward
    インプットデータ

    View Slide

  24. 他にもいろいろあるよ
    蒸留はKT(Knowledge Transfer)の一つ
    24

    View Slide

  25. 中間層も有効活用したい?
    25
    Hint Learningですね。
    Chen et al., 2017 “Learning Efficient Object Detection Models with Knowledge Distillation”.
    https://papers.nips.cc/paper/6676-learning-efficient-object-detection-models-with-knowledge-distillation.pdf
    教師モデルの
    Hint 層
    生徒モデルの
    Guided 層
    チャネル数や空間サイズ
    が異なる場合は調整

    View Slide

  26. Attention please!
    26
    教師モデルのAttentionを学ぶ: ATTENTION TRANSFER
    Sergey et al., 2017 “PAYING MORE ATTENTION TO ATTENTION: IMPROVING THE PERFORMANCE OF CONVOLUTIONAL NEURAL NETWORKS VIA ATTENTION
    TRANSFER ”.
    https://arxiv.org/pdf/1612.03928.pdf

    View Slide

  27. Attention?
    27
    Minh-Thang Luong et al., 2015”Effective Approaches to Attention-based Neural Machine Translation”
    https://arxiv.org/abs/1508.04025
    自然言語処理とかで流行ってるアレ?
    余談

    View Slide

  28. CNNでAttention?
    28
    いっぱい論文・事例ありました
    余談

    View Slide

  29. Squeeze-and-Excitation Net
    29
    Jie Hu et al.,2018” Squeeze-and-Excitation Networks” https://arxiv.org/pdf/1709.01507.pdf
    余談
    ILSVRC 2017 画像分類 Top の手法 Squeeze-and-Excitation Networks
    畳み込み層の各チャンネルに対して重みをつけている。
    → これは、チャネルに対するAttentionの事例
    1*1*C

    View Slide

  30. ATTENTION TRANSFER
    30
    今回の論文は、空間に対するAttentionの事例ですね。
    Sergey et al., 2017 “PAYING MORE ATTENTION TO ATTENTION: IMPROVING THE PERFORMANCE OF CONVOLUTIONAL NEURAL NETWORKS VIA ATTENTION
    TRANSFER ”.
    https://arxiv.org/pdf/1612.03928.pdf

    View Slide

  31. ATTENTION TRANSFER
    31
    論文では、損失ベースのほかに、勾配ベースのアプローチも載ってます
    Sergey et al., 2017 “PAYING MORE ATTENTION TO ATTENTION: IMPROVING THE PERFORMANCE OF CONVOLUTIONAL NEURAL NETWORKS VIA ATTENTION
    TRANSFER ”.
    https://arxiv.org/pdf/1612.03928.pdf

    View Slide

  32. モデルの圧縮+α
    32
    モチベーション
    おまけ
    せっかくなので、
    転移学習の面白い論文もご紹介

    View Slide

  33. 転移学習 ?
    33
    Transfer Learning - Machine Learning's Next Frontier より http://ruder.io/transfer-learning/index.html

    View Slide

  34. CS231n: Convolutional Neural Networks for Visual Recognition
    http://cs231n.stanford.edu/slides/winter1516_lecture11.pdf
    Fine-tuningは有名ですね
    34
    Sourse モデル Target モデル
    Knowledge
    (重み、構造)

    View Slide

  35. DELTA:
    35
    DEEP LEARNING TRANSFER USING FEATURE
    MAP WITH ATTENTION FOR CONVOLUTIONAL NETWORKS
    Li et al., 2019 “DELTA: DEEP LEARNING TRANSFER USING FEATURE MAP WITH ATTENTION FOR CONVOLUTIONAL NETWORKS”.
    https://arxiv.org/pdf/1901.09229.pdf
    ■転移学習は、以下のようなものに悩みがち
    ✓ over-fitting with limited number of training
    samples
    ✓ Inefficient and even negative transfer
    ■ 本論文の工夫は、
    ✓ regularizing the Behavior rather than
    model parameters
    ✓ “unactivated channel re-usage” using
    an attention mechanism with feature map
    regularizeon

    View Slide

  36. ATTENTION TRANSFER
    36
    今回の論文は、空間に対するAttentionの事例ですね。
    https://postersession.ai/poster/delta-deep-learning-transfer-using-featu/

    View Slide

  37. ATTENTION TRANSFER
    37
    今回の論文は、空間に対するAttentionの事例ですね。
    https://postersession.ai/poster/delta-deep-learning-transfer-using-featu/
    FM間のL2 loss
    モデルパラメータそのもの、よりその振る舞い(Behavior)が近く
    なるように設計する
    Similar weights are not necessary for producing
    similar outputs

    View Slide

  38. ATTENTION TRANSFER
    38
    今回の論文は、空間に対するAttentionの事例ですね。
    https://postersession.ai/poster/delta-deep-learning-transfer-using-featu/
    j-chを抜いた時のsorceモデルの損失と
    同モデルの損失の差分からj-chの重みを推定
    FM間のL2 loss
    各chの重み
    出力に貢献するchは動かさず、貢献しないchは、再学習させる
    Not all channels are necessary for knowledge transfer
    → unactivated channel re-usage

    View Slide

  39. ATTENTION TRANSFER
    39
    今回の論文は、空間に対するAttentionの事例ですね。
    https://postersession.ai/poster/delta-deep-learning-transfer-using-featu/
    j-chを抜いた時のsorceモデルの損失と
    同モデルの損失の差分からj-chの重みを推定
    FM間のL2 loss
    各chの重み
    +Ω’’(w|w*) :sorceとtargetのwの距離に関する正則化

    View Slide

  40. 簡単なDemo
    40

    View Slide