Upgrade to Pro — share decks privately, control downloads, hide ads and more …

密度比推定による異常検知

oshokawa
November 04, 2015
9.9k

 密度比推定による異常検知

機械学習プロフェッショナルシリーズ輪読会

oshokawa

November 04, 2015
Tweet

Transcript

  1. 異常検知と変化検知
    Chapter 11 密度比推定による異常検知
    2015.11.04 @ MLP勉強会
    Twitter @oshokawa
    Facebook 滝 勇太

    View Slide

  2. あうとらいん
    •  自己紹介
    •  猫紹介
    •  前振り 〜とりあえずどんな感じか〜
    •  密度比推定による異常検知
    –  11.1 密度比による外れ値検出問題の定式化
    –  11.2 カルバック・ライブラー密度比推定法
    –  11.3 最小2乗密度比推定法
    •  前振り再び
    •  参考文献
    2

    View Slide

  3. 自己紹介
    名前:滝(石川) 勇太
    専門:機械学習
    職種:でーたさいえんてぃすと(笑)
    趣味:ぬこ
    3

    View Slide

  4. 猫を二匹飼ってます
    4

    View Slide

  5. かわいい
    5

    View Slide

  6. トロ様(左)とウニ様(右)
    6

    View Slide

  7. かわいい
    7

    View Slide

  8. ダブルあくび
    8

    View Slide

  9. かわいい
    9

    View Slide

  10. 多分仲はいい
    10

    View Slide

  11. そろそろ本題に
    入ったほうがいいですか?
    11

    View Slide

  12. 前振り
    とりあえずどんな感じか
    12

    View Slide

  13. Chap. 1では・・・
    正常時の分布
    テスト対象の分布
    p
    0(
    x
    ) x
    p
    (
    x
    )
    が所定の閾値を下回ったら異常と判定
    ※ 今回の話題のために多少意訳
    p
    (
    x
    )
    p
    0(
    x
    )
    Text p. 5
    13

    View Slide

  14. 確率密度を
    割り算してみよう!
    14

    View Slide

  15. こんなデータを想定してみる
    確率密度
    低 高
    p
    (
    x
    )
    p
    0(
    x
    )
    15
    1
    2
    N
    ✓
    20
    20
    ,

    10 0
    0 10

    1
    2
    N
    ✓
    10
    10
    ,

    10 0
    0 10

    1
    5
    N
    ✓
    12.5
    12.5
    ,

    5 0
    0 5

    1
    5
    N
    ✓
    17.5
    17.5
    ,

    5 0
    0 5

    1
    5
    N
    ✓
    15
    15
    ,

    0.1 0
    0 0.1

    1
    5
    N
    ✓
    12.5
    17.5
    ,

    5 0
    0 5

    1
    5
    N
    ✓
    17.5
    12.5
    ,

    5 0
    0 5

    View Slide

  16. こんなデータを想定してみる
    確率密度
    低 高
    ●:データ点
    p
    (
    x
    )
    p
    0(
    x
    )
    サンプリング サンプリング
    16

    View Slide

  17. こんな振動データ的なイメージ
    17
    ー:X-方向加速度
    ---:Y-方向加速度

    View Slide

  18. こんな振動データ的なイメージ
    ー:X-方向加速度
    ---:Y-方向加速度
    通常モード
    18

    View Slide

  19. こんな振動データ的なイメージ
    19
    高速モード
    ー:X-方向加速度
    ---:Y-方向加速度

    View Slide

  20. こんな振動データ的なイメージ
    20
    通常?
    ー:X-方向加速度
    ---:Y-方向加速度

    View Slide

  21. こんな振動データ的なイメージ
    21
    高速?
    ー:X-方向加速度
    ---:Y-方向加速度

    View Slide

  22. こんな振動データ的なイメージ
    22
    !?
    ー:X-方向加速度
    ---:Y-方向加速度

    View Slide

  23. こんな振動データ的なイメージ
    23
    アカーン
    ー:X-方向加速度
    ---:Y-方向加速度

    View Slide

  24. それぞれ推定してみよう
    確率密度
    低 高
    カーネル密度推定を使用
    24

    View Slide

  25. いい感じに推定できたぞ
    じゃあ、(数値的に)割り算するよ
    25

    View Slide

  26. !!!!?????
    密度比
    低(異常) 高(正常)
    26

    View Slide

  27. ヤバス
    全部異常でおk?
    27

    View Slide

  28. そんなはずはないので
    密度比推定してみるよ
    28

    View Slide

  29. これはいいものだ
    密度比
    低(異常) 高(正常)
    29

    View Slide

  30. これはいいものだ
    密度比
    低(異常) 高(正常)
    アカーンな辺り
    !?な辺り
    30

    View Slide

  31. なかなかイケてらっしゃる
    今日は前ページの手法の
    勉強をするよ
    31

    View Slide

  32. 密度比推定による異常検知
    11.1 密度比による外れ値検出問題の定式化[1]
    Text p. 145
    32

    View Slide

  33. 密度比の振る舞い
    a
    (
    x
    ) = ln
    r
    (
    x
    ) ただし r(
    x
    ) ⌘
    p(
    x
    )
    p0(
    x
    )
    異常度 (11.1)
    Text p. 146
    33

    View Slide

  34. 密度比の振る舞い
    a
    (
    x
    ) = ln
    r
    (
    x
    ) ただし r(
    x
    ) ⌘
    p(
    x
    )
    p0(
    x
    )
    異常度 (11.1)
    p0(
    x
    ) = (1 ↵)p(
    x
    ) + ↵˜
    p(
    x
    )
    異常標本の割
    合を として

    Text p. 146
    34

    View Slide

  35. 密度比の振る舞い
    a
    (
    x
    ) = ln
    r
    (
    x
    ) ただし r(
    x
    ) ⌘
    p(
    x
    )
    p0(
    x
    )
    異常度 (11.1)
    p0(
    x
    ) = (1 ↵)p(
    x
    ) + ↵˜
    p(
    x
    )
    ln(1 ↵)  a(
    x
    0)  1
    異常標本の割
    合を として

    なんやかんやして
    Text p. 146
    35

    View Slide

  36. 密度比の振る舞い
    a
    (
    x
    ) = ln
    r
    (
    x
    ) ただし r(
    x
    ) ⌘
    p(
    x
    )
    p0(
    x
    )
    異常度 (11.1)
    p0(
    x
    ) = (1 ↵)p(
    x
    ) + ↵˜
    p(
    x
    )
    ln(1 ↵)  a(
    x
    0)  1
    異常標本の割
    合を として

    なんやかんやして
        :  で近似してその値との乖離を見る
    それ以外:何かしら他の基準を決める
    ↵ ⇡ 0 ↵
    Text p. 146
    36

    View Slide

  37. なるほど
    密度比がわかれば異常度を
    評価できるのね
    37

    View Slide

  38. でも、
    確率密度を推定して
    割り算するのって
    現実的なの?
    cf. さっきの例
    38

    View Slide

  39. 難しい問題解かなくてもいいじゃない
    バプニックの原理
    ある問題を解くときにそれよりも一般的な問題を
    途中段階で解くべきではない
    Text p. 148
    39

    View Slide

  40. 個別の密度がわかると・・・
    バプニックの原理
    ある問題を解くときにそれよりも一般的な問題を
    途中段階で解くべきではない
    個別の密度がわかる
    p
    (
    x
    )
    p
    0(
    x
    )
    Text p. 148
    40

    View Slide

  41. 密度比がわかる
    バプニックの原理
    ある問題を解くときにそれよりも一般的な問題を
    途中段階で解くべきではない
    個別の密度がわかる 密度比がわかる
    p
    (
    x
    )
    p
    0(
    x
    ) r
    (
    x
    ) = p
    (
    x
    )
    p
    0(
    x
    )
    Text p. 148
    41

    View Slide

  42. でも、密度比がわかっても・・・
    バプニックの原理
    ある問題を解くときにそれよりも一般的な問題を
    途中段階で解くべきではない
    密度比がわかる
    r
    (
    x
    ) = p
    (
    x
    )
    p
    0(
    x
    )
    Text p. 148
    42

    View Slide

  43. 個別の密度はわからない
    バプニックの原理
    ある問題を解くときにそれよりも一般的な問題を
    途中段階で解くべきではない
    個別の密度がわかる 密度比がわかる
    p
    (
    x
    )
    p
    0(
    x
    ) r
    (
    x
    ) = p
    (
    x
    )
    p
    0(
    x
    )
    Text p. 148
    43

    View Slide

  44. でも
    とりあえず今回は
    44

    View Slide

  45. 密度比だけわかればいいじゃない!
    バプニックの原理
    ある問題を解くときにそれよりも一般的な問題を
    途中段階で解くべきではない
    個別の密度がわかる 密度比がわかる
    p
    (
    x
    )
    p
    0(
    x
    ) r
    (
    x
    ) = p
    (
    x
    )
    p
    0(
    x
    )
    こっちがわかれば
    おk!
    ※ 個別に密度推定して割り算すると
    前振りみたいに大変なことになる
    ・誤差の増幅
    ・数値的に不安定
    ・密度推定自体が大変 etc.
    Text p. 148
    45

    View Slide

  46. そんなわけで
    個別に密度を推定せず
    密度比を直接推定する
    方法を考えます
    46

    View Slide

  47. 密度比推定による異常検知
    11.2 カルバック・ライブラー密度比推定法
    [1, 2, 3]
    Text p. 148
    47

    View Slide

  48. 表記の準備
    訓練データ
    ほぼ全てが正常とみなせる
    テストデータ
    異常が入ってるかもしれない
    Text p. 145
    48
    D =
    x1, . . . ,
    xN

    ⇠ p(
    x
    )

    D0 =
    x
    0
    1, . . . ,
    x
    0
    N0

    ⇠ p0(
    x
    )

    View Slide

  49. まずは密度比のモデルを決めましょう
    とりあえず基底関数
    を導入して、パラメータ
    の線形モデル
    r

    (
    x
    ) =
    b
    X
    j=1
    ✓j j(
    x
    ) =

    > (
    x
    )
    を考えます
    Text p. 148
    49
    (11.2)
    (
    x
    ) = [ 1(
    x
    ), . . . , b(
    x
    )]>
    ✓ = [✓1, . . . , ✓b]>

    View Slide

  50. なんかいきなり
    よくわかんないモデル
    が登場したぞ!
    50

    View Slide

  51. モデルの気持ちを考えよう
    51
    p
    (
    x
    )
    こんな確率密度関数から
    正常データが出てくるとしましょう
    Text p. 148

    View Slide

  52. 基底ベクトルの様子
    52
    x1 x2 x3
    2(
    x
    )
    3(
    x
    )
    D = {
    x1, x2, x3
    } = { 2
    .
    5
    ,
    0
    ,
    2
    .
    5} が得られたとすると
    基底ベクトル (
    x
    ) = [ 1(
    x
    )
    , 2(
    x
    )
    , 3(
    x
    )]> はこんな感じ
    ※ 基底関数はRBFカーネルを想定(cf. p.71)
    1(
    x
    )
    Text p. 148

    View Slide

  53. モデルの気持ちを考えよう
    53
    p
    0(
    x
    )
    んでもって、こんな確率密度関数から
    テストデータが出てくるとしましょう
    p
    (
    x
    )

    View Slide

  54. “比”の役割を が担います
    54

    簡単のため、テストデータが  だけに影響するとすると
    ✓2
    x2(= 0) の近傍で、密度(のようなもの)は大体1/3くらい
    になるので、        とすると、モデルは↓
    ✓ = [1, 1/3, 1]>
    r✓(
    x
    ) = ✓> (
    x
    ) =

    1
    ,
    1
    3,
    1
    2
    4
    1(
    x
    )
    2(
    x
    )
    3(
    x
    )
    3
    5
    Text p. 148

    View Slide

  55. テストデータが密な場所は比が小さくなる
    55
    簡単のため、テストデータが  だけに影響するとすると
    ✓2
    x2(= 0) の近傍で、密度(のようなもの)は大体1/3くらい
    になるので、        とすると、モデルは↓
    ✓ = [1, 1/3, 1]>
    r✓(
    x
    ) = ✓> (
    x
    ) =

    1
    ,
    1
    3,
    1
    2
    4
    1(
    x
    )
    2(
    x
    )
    3(
    x
    )
    3
    5
    テストデータで密度
    が高い領域の密度比
    が低くなる!
    Text p. 148

    View Slide

  56. 56
    では を学習する方法を
    見ていきましょー

    View Slide

  57. 学習時に考慮すべきことは何か
    r

    (
    x
    ) =
    p(
    x
    )
    p0(
    x
    )
    r

    (
    x
    )p0(
    x
    ) = p(
    x
    )
         が
    •    にできるだけ近い
    •  確率分布の条件を満たす
    p(
    x
    )
    r

    (
    x
    )p0(
    x
    )
    ように、パラメータ を決めなきゃいけない

    Text p. 149
    57

    View Slide

  58. KL div.を基準に学習しましょう
    Kullback-Leibler先生に登場していただきます
    Text p. 149
    58
    gKL(
    p||r

    p0
    ) =
    Z
    dx
    p
    (x) ln
    p
    (x)
    r
    ✓(x)
    p0
    (x)
    ⇢Z
    dx
    p
    (x)
    Z
    dx
    r
    ✓(x)
    p0
    (x)
    =
    Z
    dx
    p
    (x) ln
    r
    ✓(x) +
    Z
    dx
    r
    ✓(x)
    p0
    (x) + const
    と      を近づけたいので、
    r

    (
    x
    )p0(
    x
    )
    p(
    x
    )

    View Slide

  59. KL div.を基準に学習しましょう
    Kullback-Leibler先生に登場していただきます
    Text p. 149
    59
    gKL(
    p||r

    p0
    ) =
    Z
    dx
    p
    (x) ln
    p
    (x)
    r
    ✓(x)
    p0
    (x)
    ⇢Z
    dx
    p
    (x)
    Z
    dx
    r
    ✓(x)
    p0
    (x)
    =
    Z
    dx
    p
    (x) ln
    r
    ✓(x) +
    Z
    dx
    r
    ✓(x)
    p0
    (x) + const
    と      を近づけたいので、
    r

    (
    x
    )p0(
    x
    )
    p(
    x
    )

    View Slide

  60. KL div.を基準に学習しましょう
    Kullback-Leibler先生に登場していただきます
    むし
    1
    N
    N
    X
    n=1
    ln r

    (
    xn)
    1
    N0
    N0
    X
    n=1
    r

    (
    x
    0
    n0
    )
    Text p. 149
    60
    gKL(
    p||r

    p0
    ) =
    Z
    dx
    p
    (x) ln
    p
    (x)
    r
    ✓(x)
    p0
    (x)
    ⇢Z
    dx
    p
    (x)
    Z
    dx
    r
    ✓(x)
    p0
    (x)
    =
    Z
    dx
    p
    (x) ln
    r
    ✓(x) +
    Z
    dx
    r
    ✓(x)
    p0
    (x) + const
    と      を近づけたいので、
    r

    (
    x
    )p0(
    x
    )
    p(
    x
    )

    View Slide

  61. KL div.を基準に学習しましょう
    と      を近づけたいので、
    r

    (
    x
    )p0(
    x
    )
    p(
    x
    )
    Kullback-Leibler先生に登場していただきます
    むし
    =
    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )
    1
    N
    N
    X
    n=1
    ln r

    (
    xn)
    1
    N0
    N0
    X
    n=1
    r

    (
    x
    0
    n0
    )
    Text p. 149
    61
    gKL(
    p||r

    p0
    ) =
    Z
    dx
    p
    (x) ln
    p
    (x)
    r
    ✓(x)
    p0
    (x)
    ⇢Z
    dx
    p
    (x)
    Z
    dx
    r
    ✓(x)
    p0
    (x)
    =
    Z
    dx
    p
    (x) ln
    r
    ✓(x) +
    Z
    dx
    r
    ✓(x)
    p0
    (x) + const

    View Slide

  62. 問題(11.5)
    問題設定はこんな感じになります Text p. 150
    62
    min

    J(

    ), J(

    ) =
    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )

    View Slide

  63. 問題(11.5)
    この問題ってどう解釈できるの?
    期待値の表記を用いると・・・
    Text p. 150
    63
    J(✓) = h ln r✓iD + hr✓iD0
    min

    J(

    ), J(

    ) =
    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )
    (11.6)

    View Slide

  64. 問題(11.5)
    正常データ異常度最小化と解釈できます
    期待値の表記を用いると・・・
    第1項は
    訓練データ( ≒ 正常データ)に対する異常度の最小化
    としての働き
    Text p. 150
    64
    J(✓) = h ln r✓iD + hr✓iD0
    min

    J(

    ), J(

    ) =
    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )
    (11.6)

    View Slide

  65. 問題(11.5)
    正常データ異常度最小化と解釈できます
    期待値の表記を用いると・・・
    第1項は
    訓練データ( ≒ 正常データ)に対する異常度の最小化
    としての働き
    第2項は
       という規格化制約
    としての働き
    hr✓iD0
    = 1
    Text p. 150
    65
    J(✓) = h ln r✓iD + hr✓iD0
    min

    J(

    ), J(

    ) =
    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )
    (11.6)

    View Slide

  66. 問題(11.5)
    正常データ異常度最小化と解釈できます
    min

    J(

    ), J(

    ) =
    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )
    期待値の表記を用いると・・・
    第1項は
    訓練データ( ≒ 正常データ)に対する異常度の最小化
    としての働き
    第2項は
       という規格化制約
    としての働き
    hr✓iD0
    = 1
    これが本当か
    どうか謎です
    「小さくする」働きはある
    かなと思いますが・・・
    Text p. 150
    66
    J(✓) = h ln r✓iD + hr✓iD0
    (11.6)

    View Slide

  67. 勾配法で解きましょう
    rJ(

    ) = r

    1
    N
    N
    X
    n=1
    ln r

    (
    xn) +
    1
    N0
    N0
    X
    n0=1
    r

    (
    x
    0
    n0
    )
    = r

    1
    N
    N
    X
    n=1
    ln

    > (
    xn) +
    1
    N0
    N0
    X
    n0=1

    > (
    x
    0
    n0
    )
    =
    1
    N
    N
    X
    n=1
    (
    xn)

    > (
    xn)
    +
    1
    N0
    N0
    X
    n0=1
    (
    x
    0
    n0
    )
    問題(11.5)は凸最適化問題なので、
    勾配法とかで最適解が求まります
    適当な初期値から収束するまで以下よろしくー
    ✓new ✓old ⌘rJ(✓old)
    Text p. 150
    67

    View Slide

  68. ひとこと
    本には書いてありませんが、
    パラメータに関する非負制約
    は必要っぽい
    規格化に関する制約についてはよくわからんです
    教えてエロい人
    ✓new ✓old ⌘rJ
    (
    ✓old
    )
    ✓new
    max(
    ✓new, 0b)
    Text p. 151
    68
    ✓i 0, i = 1, . . . , b

    View Slide

  69. よし
    これで準備は整って
    69

    View Slide

  70. よし
    これで準備は整って
    なーーーーい
    70

    View Slide

  71.    ってなんなんだー?
    71
    (
    x
    )
    よく用いられるのは
    RBFカーネル
    とのこと(SVMとかと同じですね)
    (
    x
    ) = [ 1(
    x
    ), . . . , N (
    x
    )]>
    ただし
    n(x) = exp

    ||
    x xn
    ||2
    2
    h2

    Text p. 151

    View Slide

  72. RBFカーネル基底関数のイメージ (cf. p.52, 54)
    72
    Text p. 148
    D = {
    x1, x2, x3
    } = { 2
    .
    5
    ,
    0
    ,
    2
    .
    5} のとき
    (
    x
    ) は↑の3点をカーネルの中心とした
    3次元のベクトルになります
    x1 x2 x3
    2(
    x
    ) 3(
    x
    )
    1(
    x
    )
    (x) =
    2
    4
    1(x)
    2(x)
    3(x)
    3
    5
    =
    2
    6
    6
    6
    6
    6
    6
    4
    exp

    (x x1)
    2
    2h
    2

    exp

    (x x2)
    2
    2h
    2

    exp

    (x x3)
    2
    2h
    2

    3
    7
    7
    7
    7
    7
    7
    5

    View Slide

  73.    がわかれば具体的な計算ができます
    73
    (
    x
    )
    K =

    (
    x1), . . . , (
    xN )
    ⇤>
    , K0 =

    (
    x
    0
    1), . . . , (
    x
    0
    N0
    )
    ⇤>
    勾配
    密度比 r

    (
    x
    ) =

    > (
    x
    )
    ただし
    1N , 1N0
    : それぞれ , 次元の1を並べたベクトル
    N N0
    “./”演算子: 要素ごとの割り算(like matlab)
    Text p. 151
    rJ(✓) =
    1
    N
    K(1N ./(K✓)) +
    1
    N0
    K01N0

    View Slide

  74. よし
    今度こそ準備が整って
    74

    View Slide

  75. よし
    今度こそ準備が整って
    なーーーーい
    75

    View Slide

  76. はどうやって決めるのさ?
    76
    h
    カルバック・ライブラー密度比推定では
    交差検証法
    が使えます!
    近傍法やサポートベクトルデータ記述法では・・・
    (教師ありデータがないと)CVにおける評価基準がない!
    カルバック・ライブラー密度比推定では・・・
    カルバック・ライブラーダイバージェンスを
    CVの評価基準にできる!
    詳しくは「アルゴリズム11.1」を見てね!
    Text p. 152

    View Slide

  77. 試してみよー
    77

    View Slide

  78. こんな分布から200サンプルずつ生成
    p
    (
    x
    ) = N(1
    ,
    12)
    ー:
    ー:
    p
    0(
    x
    ) = N(0
    ,
    22)
    78

    View Slide

  79. ワーオ
    r
    ⇤(
    x
    )
    ˆ
    r
    (
    x
    )
    ー:
    ---:
    p
    (
    x
    ) = N(1
    ,
    12)
    ー:
    ー:
    p
    0(
    x
    ) = N(0
    ,
    22)
    79

    View Slide

  80. 11.2 まとめ
    KLダイバージェンスの最小化で
    密度比が直接推定できるよ!
    80

    View Slide

  81. 11.2 補足: Bregmanダイバージェンス[5, 6]
    '(
    x
    )
    81
    D'(
    x
    ||
    y
    ) ⌘ '(
    x
    ) '(
    y
    ) h
    x y
    , r'(
    y
    )i
    '(y)
    x
    y
    r'(
    y
    )>(
    x y
    )
    D'(
    x
    ||
    y
    )
    '(z)

    View Slide

  82. 11.2 補足: 一般化KLダイバージェンス
    82
    とおくと
    '(
    p
    ) =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Bregmanダイバージェンスで

    View Slide

  83. 11.2 補足: 一般化KLダイバージェンス
    D'(
    p
    ||
    q
    ) =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Z
    d
    x
    q(
    x
    ) ln q(
    x
    ) h
    p q
    , r'(
    q
    )i
    =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Z
    d
    x
    q(
    x
    ) ln q(
    x
    )
    Z
    d
    x
    p(
    x
    ) q(
    x
    ) ln q(
    x
    ) + 1
    =
    Z
    d
    x
    p(
    x
    ) ln
    p(
    x
    )
    q(
    x
    )
    Z
    d
    x
    p(
    x
    ) +
    Z
    d
    x
    q(
    x
    )
    gKL(
    p
    ||
    q
    ) ⌘ D'(
    p
    ||
    q
    ) =
    Z
    d
    x
    p(
    x
    ) ln
    p(
    x
    )
    q(
    x
    )
    Z
    d
    x
    p(
    x
    ) +
    Z
    d
    x
    q(
    x
    )
    一般化KLダイバージェンス
    83
    とおくと
    '(
    p
    ) =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Bregmanダイバージェンスで

    View Slide

  84. 11.2 補足: 一般化KLダイバージェンス
    D'(
    p
    ||
    q
    ) =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Z
    d
    x
    q(
    x
    ) ln q(
    x
    ) h
    p q
    , r'(
    q
    )i
    =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Z
    d
    x
    q(
    x
    ) ln q(
    x
    )
    Z
    d
    x
    p(
    x
    ) q(
    x
    ) ln q(
    x
    ) + 1
    =
    Z
    d
    x
    p(
    x
    ) ln
    p(
    x
    )
    q(
    x
    )
    Z
    d
    x
    p(
    x
    ) +
    Z
    d
    x
    q(
    x
    )
    gKL(
    p
    ||
    q
    ) ⌘ D'(
    p
    ||
    q
    ) =
    Z
    d
    x
    p(
    x
    ) ln
    p(
    x
    )
    q(
    x
    )
    Z
    d
    x
    p(
    x
    ) +
    Z
    d
    x
    q(
    x
    )
    一般化KLダイバージェンス
    Z
    d
    x
    p(
    x
    ) = 1,
    Z
    d
    x
    q(
    x
    ) = 1 を満たすなら
    KLダイバージェンス
    KL(
    p
    ||
    q
    ) ⌘ Dnorm
    '
    (
    p
    ||
    q
    ) =
    Z
    d
    x
    p(
    x
    ) ln
    p(
    x
    )
    q(
    x
    )
    84
    とおくと
    '(
    p
    ) =
    Z
    d
    x
    p(
    x
    ) ln p(
    x
    )
    Bregmanダイバージェンスで

    View Slide

  85. 11.2 補足: オリジナルのKLIEP(※)
    文献[2]では一般化KLダイバージェンスの最小化で
    はなく、通常のKLダイバージェンスの制約付き最適
    化問題をProjected Gradient Descent[7]で解い
    てるようです
    ※ 問題11.5の第二項を落とし、和が1になる制約条件を課す
    min

    N
    X
    n=1
    ln r

    (
    xn)
    s.t.
    1
    N0
    N0
    X
    n0=1

    > (
    x
    0
    n0
    ) = 1

    0b
    85
    ※ Kullback-Leibler Importance Estimation Procedure:KL密度比推定のこと

    View Slide

  86. 11.2 補足: オリジナルのKLIEP
    多分どっちでもいいんだと思います
    (最適解は変わる気がしますが)
    ちなみに本資料11.2の例題は本に書いてある方法に
    非負制約をつけたもので実装しました
    86

    View Slide

  87. 密度比推定による異常検知
    11.3 最小2乗密度比推定法[1, 2, 4]
    Text p. 153
    87

    View Slide

  88. モデルは一緒です
    r(
    x
    ) =
    p(
    x
    )
    p0(
    x
    )
    密度比

    ってなモデルで表現するとこは一緒
    88
    Text p. 148
    r

    (
    x
    ) =

    > (
    x
    )

    View Slide

  89. KL div.の代わりに2乗誤差を最小化します
    min

    Z
    d
    x
    p(
    x
    ) ln
    p(
    x
    )
    r

    (
    x
    )p0(
    x
    )
    1 +
    Z
    d
    x
    r

    (
    x
    )p0(
    x
    )
    min

    1
    2
    Z
    d
    x
    nr

    (
    x
    ) r(
    x
    )o2
    p0(
    x
    )
    カルバック・ライブラー密度比推定法
    一般化カルバック・ライブラーダイバージェンス
    最小2乗密度比推定法
    2乗誤差
    Text p. 154
    89

    View Slide

  90. そんなわけで
    2乗誤差を
    なんやかんやしていきます
    90

    View Slide

  91. 2乗誤差の式をなんやかんやして・・・
    J
    (✓) =
    1
    2
    Z
    dx
    nr
    ✓(x)
    r
    (x)
    o2
    p0
    (x)
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    r
    (x)
    p0
    (x) +
    r
    (x)
    2p0
    (x)
    o
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    p
    (x) + const
    o
    =
    1
    2
    Z
    dx✓
    >
    (x) (x)
    >

    p0
    (x)
    Z
    dx✓
    >
    (x)
    p
    (x) + const
    =
    1
    2

    >
    Z
    dx (x) (x)
    >p0
    (x) ✓ ✓
    >
    Z
    dx (x)
    p
    (x) + const
    Text p. 154
    91

    View Slide

  92. 2乗誤差の式をなんやかんやして・・・
    J
    (✓) =
    1
    2
    Z
    dx
    nr
    ✓(x)
    r
    (x)
    o2
    p0
    (x)
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    r
    (x)
    p0
    (x) +
    r
    (x)
    2p0
    (x)
    o
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    p
    (x) + const
    o
    =
    1
    2
    Z
    dx✓
    >
    (x) (x)
    >

    p0
    (x)
    Z
    dx✓
    >
    (x)
    p
    (x) + const
    =
    1
    2

    >
    Z
    dx (x) (x)
    >p0
    (x) ✓ ✓
    >
    Z
    dx (x)
    p
    (x) + const
    Text p. 154
    92

    View Slide

  93. 2乗誤差の式をなんやかんやして・・・
    J
    (✓) =
    1
    2
    Z
    dx
    nr
    ✓(x)
    r
    (x)
    o2
    p0
    (x)
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    r
    (x)
    p0
    (x) +
    r
    (x)
    2p0
    (x)
    o
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    p
    (x) + const
    o
    =
    1
    2
    Z
    dx✓
    >
    (x) (x)
    >

    p0
    (x)
    Z
    dx✓
    >
    (x)
    p
    (x) + const
    =
    1
    2

    >
    Z
    dx (x) (x)
    >p0
    (x) ✓ ✓
    >
    Z
    dx (x)
    p
    (x) + const
    Text p. 154
    93

    View Slide

  94. 2乗誤差の式をなんやかんやして・・・
    J
    (✓) =
    1
    2
    Z
    dx
    nr
    ✓(x)
    r
    (x)
    o2
    p0
    (x)
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    r
    (x)
    p0
    (x) +
    r
    (x)
    2p0
    (x)
    o
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    p
    (x) + const
    o
    =
    1
    2
    Z
    dx✓
    >
    (x) (x)
    >

    p0
    (x)
    Z
    dx✓
    >
    (x)
    p
    (x) + const
    =
    1
    2

    >
    Z
    dx (x) (x)
    >p0
    (x) ✓ ✓
    >
    Z
    dx (x)
    p
    (x) + const
    Text p. 154
    94

    View Slide

  95. 2乗誤差の式をなんやかんやして・・・
    J
    (✓) =
    1
    2
    Z
    dx
    nr
    ✓(x)
    r
    (x)
    o2
    p0
    (x)
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    r
    (x)
    p0
    (x) +
    r
    (x)
    2p0
    (x)
    o
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    p
    (x) + const
    o
    =
    1
    2
    Z
    dx✓
    >
    (x) (x)
    >

    p0
    (x)
    Z
    dx✓
    >
    (x)
    p
    (x) + const
    =
    1
    2

    >
    Z
    dx (x) (x)
    >p0
    (x) ✓ ✓
    >
    Z
    dx (x)
    p
    (x) + const
    Text p. 154
    95

    View Slide

  96. 2乗誤差の式をなんやかんやして・・・

    1
    N0
    N0
    X
    n0=1
    (
    x
    0
    n0
    ) (
    x
    0
    n0
    )> = ˆ
    G ⇡
    1
    N
    N
    X
    n=1
    (
    xn) = ˆ
    h
    標本平均で近似 同じく
    J
    (✓) =
    1
    2
    Z
    dx
    nr
    ✓(x)
    r
    (x)
    o2
    p0
    (x)
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    r
    (x)
    p0
    (x) +
    r
    (x)
    2p0
    (x)
    o
    =
    1
    2
    Z
    dx
    nr
    ✓(x)
    2p0
    (x) 2
    r
    ✓(x)
    p
    (x) + const
    o
    =
    1
    2
    Z
    dx✓
    >
    (x) (x)
    >

    p0
    (x)
    Z
    dx✓
    >
    (x)
    p
    (x) + const
    =
    1
    2

    >
    Z
    dx (x) (x)
    >p0
    (x) ✓ ✓
    >
    Z
    dx (x)
    p
    (x) + const
    Text p. 154
    96

    View Slide

  97. 問題(11.11)
    問題設定はこんな感じになります
    min


    1
    2
    ✓> ˆ
    G✓ ✓> ˆ
    h +
    2
    ||✓||2
    Text p. 154
    97
    正則化項をつけます

    View Slide

  98. 問題(11.11)
    微分して0とおくと・・・
    min


    1
    2
    ✓> ˆ
    G✓ ✓> ˆ
    h +
    2
    ||✓||2
    @J0(✓)
    @✓
    = ✓> ˆ
    G ˆ
    h
    >
    + ✓> = 0
    ˆ
    G✓ + ✓ = ˆ
    h

    G + IN )✓ = ˆ
    h
    微分して0と置いて
    パラメータについて解くと・・・
    Text p. 154
    98

    View Slide

  99. 問題(11.11)
    微分して0とおくと解析解が得られます!
    min


    1
    2
    ✓> ˆ
    G✓ ✓> ˆ
    h +
    2
    ||✓||2
    @J0(✓)
    @✓
    = ✓> ˆ
    G ˆ
    h
    >
    + ✓> = 0
    ˆ
    G✓ + ✓ = ˆ
    h

    G + IN )✓ = ˆ
    h
    ˆ
    ✓ = (ˆ
    G + IN ) 1 ˆ
    h
    解析解
    微分して0と置いて
    パラメータについて解くと・・・
    Text p. 154
    99
    (11.12)

    View Slide

  100. 試してみよー
    100

    View Slide

  101. さっきと同じデータで
    p
    (
    x
    ) = N(1
    ,
    12)
    ー:
    ー:
    p
    0(
    x
    ) = N(0
    ,
    22)
    101

    View Slide

  102. ワーオ
    p
    (
    x
    ) = N(1
    ,
    12)
    ー:
    ー:
    r
    ⇤(
    x
    )
    ˆ
    r
    (
    x
    )
    ー:
    ---:
    p
    0(
    x
    ) = N(0
    ,
    22)
    102

    View Slide

  103. 11.3 まとめ
    2乗誤差の最小化でも
    密度比が直接推定できるよ!
    103

    View Slide

  104. Chap. 11 まとめ
    -- Point1 --
    「密度比」を直接推定
    することで異常検知のための
    モデルが作れます
    -- Point2 --
    密度比推定には
    幾つかのアプローチ
    があります
    104

    View Slide

  105. 前振り再び
    密度比の様子と正常/異常判定について考える
    105

    View Slide

  106. 2次元人工データ再訪
    106
    確率密度
    低 高
    ●:データ点
    p
    (
    x
    )
    p
    0(
    x
    )
    サンプリング サンプリング

    View Slide

  107. 密度比の様子
    p
    (
    x
    )
    p
    0(
    x
    )
    107

    View Slide

  108. p
    (
    x
    )
    p
    0(
    x
    )
    閾値を適当に決めてみたよ
    訓練データ(正常データ)の密度比の下側10%を
    閾値にしてみた
    イメージ的には「危険率10%」
    108

    View Slide

  109. どう見ても正常・異常なものは拾えてそう
    p
    (
    x
    )
    p
    0(
    x
    )
    ザ・正常
    ザ・異常
    109

    View Slide

  110. でも若干怪しいものちらほら
    p
    (
    x
    )
    p
    0(
    x
    )
    誤警報
    or
    外れ値
    見逃し
    ビミョー
    110

    View Slide

  111. 実際に現場で使う場合は
    いろいろ調整が必要です
    111

    View Slide

  112. 参考文献
    1.  井手 剛, 杉山 将. 異常検知と変化検知. 講談社. 2015
    2.  M. Sugiyama, T. Suzuki, and T. Kanamori. Density Ratio
    Estimation In Machine Learning. CAMBRIDGE UNIVERSITY
    PRESS. 2012.
    3.  M. Sugiyama, et al. Direct Importance Estimation with Model
    Selection and Its Application to Covariate Shift Adaptation.
    NIPS. 2008.
    4.  T. Kanamori, et al. A Least-squares Approach to Direct
    Importance Estimation. JMLR, 10, 1391-1445. 2009.
    5.  A. Banerjee, et al. Clustering with Bregman Divergences. JMLR
    6, 1705-1749. 2005.
    6.  J. Ghosh. Bregman Divergence for Data Mining Meta-Algorithms.
    slide.
    7.  S. Boyd, and L. Vandenberghe. Convex Optimization. CAMBRIDGE
    UNIVERSITY PRESS. 2004.
    112

    View Slide

  113. ご清聴あじゅじゅしたー
    113

    View Slide