tfug-alcohol-7.pdf

D6bf88af4f3c68f688d433ad0c3c1345?s=47 Shuhei Fujiwara
November 05, 2018

 tfug-alcohol-7.pdf

メチャクチャどうでも良いけど、このスライドは LaTeX の Beamer で作られています
https://www.overleaf.com/read/xdzngfrmmgkj

D6bf88af4f3c68f688d433ad0c3c1345?s=128

Shuhei Fujiwara

November 05, 2018
Tweet

Transcript

  1. Deep One-Class Classification NN 論文を肴に酒を飲む会 #7 @shuhei_fujiwara 2018-11-05 1

  2. 自己紹介 藤原秀平 (FUJIWARA Shuhei) Twitter: @shuhei_fujiwara ▶ 株式会社メルペイ Machine Learning

    Team ▶ TensorFlow User Group Tokyo Organizer ▶ Google Developer Expert (Machine Learning) 2
  3. 紹介する論文 Deep One-Class Classification [Lukas et al., ICML 2018][1] ▶

    One-Class SVM/Support Vector Data Description とニューラルネットを 合体させた ▶ 精度が向上したので嬉しい ▶ 推論のメモリ効率や速度の改善 ▶ 3.1 の最後の方にしれっと書かれているけど大事 ▶ カーネル SVM は学習済みのモデルが全サポートベクターを保持する必要がある ▶ 言及されていないけど欠点はもちろん凸性を失ったこと 3
  4. Support Vector Data Description (SVDD) [D. M.J. Tax et al.,

    1999, 2004][2, 3] ▶ できる限りサンプルを多く含むように できる限り半径の小さい超球を構成 ▶ 超球の外にあるものは外れ値と判定 定式化: min R,c R2 + C ∑ i max { 0, ∥xi − c∥2 − R2 } R Penalty c 4
  5. One-Class SVM [B. Schölkopf et al., 2001][4] ▶ 原点とその他のサンプルの 2

    値分類として定式化 ▶ Margin を大きく、penalty を小さくしたい ▶ ハイパーパラメータ ν が外れ値の おおよその割合になる 定式化: min w,ρ 1 2 ∥w∥2 − ρ + 1 νn ∑ i max { 0, ρ − w⊤xi } Penalty Margin 5
  6. これ上手くいくと思います...? SVDD ▶ いつも超球で上手くいくと思うなよ One-Class SVM ▶ だいたいいつも死んでるので論外 上手くいかない例が無限に出てきてウケる〜 6

  7. まあ大抵はカーネル関数使いますよね SVDD min R,c R2 + C ∑ i max

    { 0, ∥ϕ(xi) − c∥2 − R2 } One-Class SVM min w,ρ 1 2 ∥w∥2 − ρ + 1 νn ∑ i max { 0, ρ − w⊤ϕ(xi) } ▶ サンプル xi を適当なカーネル関数 ϕ で変換 Example: Gaussian Kernel ϕ(xi)⊤ϕ(xj) := exp ( − ∥xi − xj∥2 2σ2 ) 7
  8. One-Class SVM のカーネル選択 One-Class SVM の場合は必ず RBF カーネルを使おう ▶ ϕ(xi)⊤ϕ(xj)

    の値が ∥xi − xj∥ のみに依存して決まるカーネル関数 ϕ ▶ Gaussian Kernel も RBF Kernel ▶ ϕ(xi)⊤ϕ(xi) が定数になる → 写像先のサンプルは超球の球面上に分布 RBF カーネルならば原点とその他の 2 値分類と超球を求めるのが等価 になる 8
  9. カーネル法の長所と短所 長所 ▶ 凸性など理論的な良い性質を保ったまま非線形に拡張できて最高 短所 ▶ 最適解が w∗ = ∑

    i α∗ i ϕ(xi) という形で得られるので学習データを 一部保持しておく必要がある ▶ モデルのサイズや予測のとき計算量が大きくなりやすい ▶ 逐次的にデータを読む SGD と相性が良くない (スケールさせにくい) ▶ ϕ(xi) が陽に書き表せないと色々めんどい 9
  10. Deep SVDD のアイデア (やっと提案モデルの話) ▶ ニューラルネットで変換してから超球を構成すれば良いじゃない 10

  11. Soft-Boundary Deep SVDD min R,W R2 + 1 νn n

    ∑ i=1 max { 0, ∥ϕ(xi; W) − c∥2 − R2 } + λ 2 L ∑ ℓ=1 ∥Wℓ∥2 F ▶ サンプルを含む超球の半径 R をできる限り小さく ▶ 超球に収まらなかったサンプルに、はみ出した距離に比例したペナルティを ▶ ニューラルネットの重みに対して正則化 11
  12. One-Class Deep SVDD min W + 1 n n ∑

    i=1 ∥ϕ(xi; W) − c∥2 + λ 2 L ∑ ℓ=1 ∥Wℓ∥2 F ▶ Soft-Boundary Deep SVDD を簡略化してだいぶスッキリ ▶ よく考えたら半径とか気にせず c からの距離だけ考えれば良くない? ▶ サンプルが c 付近に集まるようニューラルネットが学習してくれる (はず) 12
  13. 超球の中心 c について 実は超球の中心 c は変数ではない (従来の SVDD では変数だったのに) Proposition

    1 (のお気持ち) ▶ c をある値 c0 に設定すると W∗ = 0, R∗ = 0 という自明な最適解が 得られてしまう ▶ なので c は変数じゃなくて適当な値で固定しような ▶ 最初にちょっとサンプリングしてネットワークを通して 出力の平均とかにするのがおすすめ まあカーネル法と違って写像 ϕ も最適化の対象としていじれるし こうなるわなぁという感じ? 13
  14. Bias 項はいらないの? Proposition 2 (のお気持ち) ▶ Bias 項があると最適解が R∗ =

    0 になってしまう ▶ なのでむしろ入れちゃ駄目だよ 14
  15. 活性化関数は ReLU 一択 Proposition 3 (のお気持ち) ▶ (上界下界問わず) 0 以外で

    bound される活性化関数を使うと解が死ぬ ▶ 要するに ReLU 使えや Bias 項もだけど、ニューラルネットの表現力が強すぎると、すべての点が同じと ころに写像されて解が縮退する (R∗ = 0 になる) 15
  16. ν-Property Proposition 4 (のお気持ち) ▶ Soft-Boundary Deep SVDD のハイパーパラメータ ν

    は超球からはみ出る サンプルのおおよその割合になっている ▶ ν = 0.1 と設定すると 1 割が超球からはみ出るような解が得られる ▶ One-Class SVM では同様の性質が証明されている ▶ 外れ値の割合はまあ高々こんなもんでしょという感覚で設定する 今回は SVDD のように超球の半径 R を使って定式化しつつ ハイパーパラメータとして C ではなく ν をねじ込んだので自明ではない (One-Class SVM と SVDD をごちゃ混ぜにした感じの定式化) 16
  17. 最適化のコツ 実は W と R をまとめて SGD で最適化しようとするとスケールが違いすぎて 上手くいかないらしい ▶

    R を固定して W について SGD を数 epoch 回す ▶ W を固定して R を直線探索で最適化 なんというか研究の苦労が垣間見えた瞬間 17
  18. 数値実験 問題設定 ▶ MNIST と CIFAR-10 で 1 クラス以外を異常値として AUC

    で評価 ▶ Adversarial Attack を検出できるか 比較手法 ▶ PCA + Kernel One-Class SVM/SVDD with Gaussian Kernel ▶ PCA + Kernel Density Estimation ▶ PCA + Isolation Forest ▶ Deep Convolutional AutoEncoder (DCAE) ▶ AnoGAN 18
  19. MNIST と CIFAR-10 の結果 (論文の Table 1 参照) 表がでかいので論文を直接見てね ▶

    One-Class Deep SVDD が最高精度を達成することが多い ▶ Soft-Boundary Deep SVDD は 2 位が多い ▶ 精度は良いが One-Class Deep SVDD と得意なデータが被るせいか尽く 潰されてトップがとれない 19
  20. Adversarial Attack の結果 ▶ やっぱり One-Class Deep SVDD が最も良い ▶

    Adversarial Attack のサンプル以外には確度や crop がおかしいものが 異常値として検出された 20
  21. まとめ (という名の個人の感想) ▶ 実装は結構シンプルなのでとりあえず使ってみれば良さそう ▶ カーネル法と比べてできあがったモデルの取り回しが楽なのは すごく良さそう ▶ SGD ベースの最適化でスケールさせやすいのはすごく嬉しい

    ▶ 精度は高いらしいが実際に使ってみると最適化周りとかで 地味に苦労する予感がする 21
  22. 参考文献 Lukas Ruff et al., Deep One-Class Classification, ICML 2018.

    David M.J. Tax et al., Support Vector Domain Description, Pattern Recofnition Letters, 1999. David M.J. Tax et al, Machine Learning, 2004. Bernhard Schölkopf et al., Estimating the support of a high-dimensional distribution, Neural Computation, 2001 22