Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ITエンジニアのための機械学習理論入門 第5章

747 views

Published on

2016.11.04
AISECjp
presented by Isao Takaesu

Published in: Technology
  • Be the first to comment

ITエンジニアのための機械学習理論入門 第5章

  1. 1. 第5章 ロジスティック回帰とROC曲線: 学習モデルの評価方法 AISECjp 2016.11.04 Presented by Isao Takaesu
  2. 2. ロジスティック回帰?  (パーセプトロンと同じ)分類アルゴリズム  最尤推定法でパラメータを決定 LR & ROC ×:「このデータは t = 1 である」 〇:「t = 1 である確率は70%である」 AISECjp
  3. 3. 5.1 分類問題への最尤推定法の適用 LR & ROC AISECjp
  4. 4. 5.1.1 データの発生確率の設定 2種類のデータを分類する直線:f(x,y) LR & ROC AISECjp -30 -20 -10 0 10 20 30 40 -30 -20 -10 0 10 20 30 40 ● ● ● ● ● ● ● ● ● xx x x x x x x x x f(x,y) = 0 f(x,y) > 0 f(x,y) < 0 ●:t = 1 x:t = 0 この方向にf(x,y)が 大きくなる f 𝒙, 𝒚 = 𝒘 𝟎 + 𝒘 𝟏 𝒙 + 𝒘 𝟐 𝒚
  5. 5. 5.1.1 データの発生確率の設定 LR & ROC AISECjp データの属性が「t=1」である確率 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -1 -0.9 -0.8 -0.7 -0.6 -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 𝒂 𝜎 𝑎 = 1 1 + 𝑒−𝑎 ロジスティック関数
  6. 6. 5.1.1 データの発生確率の設定 LR & ROC AISECjp 点(x,y)で得られたデータの属性が・・・ 𝑷 𝒙, 𝒚 = 𝝈(𝒘 𝟎 + 𝒘 𝟏 𝒙 + 𝒘 𝟐 𝒚) 𝟏 − 𝑷 𝒙, 𝒚 の確率:𝑡 = 1 の確率:𝑡 = 0
  7. 7. 5.1.1 データの発生確率の設定 LR & ROC AISECjp トレーニングセット で考える𝑥 𝑛, 𝑦𝑛, 𝑡 𝑛 𝑛=1 𝑁 𝑷 𝒙 𝒏, 𝒚 𝒏の場合: 𝟏 − 𝑷 𝒙 𝒏, 𝒚 𝒏 𝑡 𝑛 = 1 𝑡 𝑛 = 0 の場合: 𝑷 𝒏 = 𝑷 𝒙 𝒏, 𝒚 𝒏 𝒕 𝒏 𝟏 − 𝑷 𝒙 𝒏, 𝒚 𝒏 𝟏−𝒕 𝒏 𝒙 𝟎 = 𝟏, 𝒙 𝟏 = 𝒙
  8. 8. 𝑃𝑛 = 𝑃 𝑥 𝑛, 𝑦 𝑛 𝑡 𝑛 1 − 𝑃 𝑥 𝑛, 𝑦 𝑛 1−𝑡 𝑛 5.1.1 データの発生確率の設定 LR & ROC AISECjp を使うと・・・ の場合:𝑡 𝑛 = 1 𝑡 𝑛 = 0 の場合: 𝑷 𝒏 = 𝑷 𝒙 𝒏, 𝒚 𝒏 𝟏 𝟏 − 𝑷 𝒙 𝒏, 𝒚 𝒏 𝟎 = 𝑷 𝒙 𝒏, 𝒚 𝒏 𝑷 𝒏 = 𝑷 𝒙 𝒏, 𝒚 𝒏 𝟎 𝟏 − 𝑷 𝒙 𝒏, 𝒚 𝒏 𝟏 = 𝟏 − 𝑷 𝒙 𝒏, 𝒚 𝒏
  9. 9. 𝑃𝑛 = 𝑃 𝑥 𝑛, 𝑦 𝑛 𝑡 𝑛 1 − 𝑃 𝑥 𝑛, 𝑦 𝑛 1−𝑡 𝑛 5.1.1 データの発生確率の設定 LR & ROC AISECjp 𝑃 𝑥, 𝑦 = 𝜎(𝑤0 + 𝑤1 𝑥 + 𝑤2𝑦) 𝑷 𝒏 = 𝒛 𝒏 𝒕 𝒏 𝟏 − 𝒛 𝒏 𝟏−𝒕 𝒏 に、 を代入すると・・・
  10. 10. 5.1.1 データの発生確率の設定 LR & ROC AISECjp 𝒛 𝒏 って?
  11. 11. 5.1.1 データの発生確率の設定 LR & ROC AISECjp 𝒛 𝒏 とは 𝒛 𝒏 = 𝝈 𝑾 𝑻 𝝋n 𝑾 = 𝒘 𝟎 𝒘 𝟏 𝒘 𝟐 𝝋 𝒏 = 𝟏 𝒙 𝒏 𝒚 𝒏 トレーニングセットの全データを纏めると・・・ 𝑷 = 𝒏=𝟏 𝑵 𝑷 𝒏 = 𝒏=𝟏 𝑵 𝒛 𝒏 𝒕 𝒏 𝟏 − 𝒛 𝒏 𝟏−𝒕 𝒏 𝝈(𝒘 𝟎 + 𝒘 𝟏 𝒙 + 𝒘 𝟐 𝒚)
  12. 12. 5.1.2 最尤推定法によるパラメータの決定 LR & ROC AISECjp 確率Pを最大化するパラメータ「W」を求める パーセプトロン :確率的勾配降下法 ロジスティック回帰:ニュートン・ラフソン法 𝑾 𝒏𝒆𝒘 = 𝑾 𝒐𝒍𝒅 − Φ 𝑻 𝑹Φ −𝟏 ΦT 𝒛 − 𝒕
  13. 13. 5.1.2 最尤推定法によるパラメータの決定 LR & ROC AISECjp の各成分 𝒕 = 𝒕 𝟏 ⋮ 𝒕 𝑵 Φ = 𝟏 𝒙 𝟏 𝒚 𝟏 ⋮ ⋮ ⋮ 𝟏 𝒙 𝑵 𝒚 𝑵 𝒛 = 𝒛 𝟏 ⋮ 𝒛 𝑵 𝑾 𝒏𝒆𝒘 = 𝑾 𝒐𝒍𝒅 − Φ 𝑻 𝑹Φ −𝟏 ΦT 𝒛 − 𝒕 Rは、 を対角成分とした対角行列z 𝒏 𝟏 − 𝒛 𝒏 𝐑 = 𝒅𝒊𝒂𝒈 𝒛 𝟏 𝟏 − 𝒛 𝟏 , ⋯ , 𝒛 𝑵 𝟏 − 𝒛 𝑵
  14. 14. 5.1.2 最尤推定法によるパラメータの決定 LR & ROC AISECjp 𝒕 = 𝒕 𝟏 ⋮ 𝒕 𝑵 Φ = 𝟏 𝒙 𝟏 𝒚 𝟏 ⋮ ⋮ ⋮ 𝟏 𝒙 𝑵 𝒚 𝑵 𝒛 = 𝒛 𝟏 ⋮ 𝒛 𝑵 𝐑 = 𝒅𝒊𝒂𝒈 𝒛 𝟏 𝟏 − 𝒛 𝟏 , ⋯ , 𝒛 𝑵 𝟏 − 𝒛 𝑵  定数のベクトル/行列  パラメータ「W」に依存( )𝒛 𝒏 = 𝝈 𝑾 𝑻 𝝋n
  15. 15. 5.1.2 最尤推定法によるパラメータの決定 LR & ROC AISECjp を繰り返し計算し、確率Pを最大化 𝑾 𝒏𝒆𝒘 𝑾 𝒐𝒍𝒅 𝑾 𝒏𝒆𝒘 = 𝑾 𝒐𝒍𝒅 − Φ 𝑻 𝑹Φ −𝟏 ΦT 𝒛 − 𝒕 1. ⇒ 「z」と「R」を計算 2. 「z」と「R」を下記に代入 3. ⇒ ⇒「z」と「R」を計算 ・・・ 𝑾 𝒐𝒍𝒅 𝑾 𝒏𝒆𝒘
  16. 16. 5.1.2 最尤推定法によるパラメータの決定 LR & ROC AISECjp 計算の打ち切り条件 変化分の大きさの2乗 < 修正前の大きさの2乗 𝑾 𝒏𝒆𝒘 − 𝑾 𝒐𝒍𝒅 𝟐 𝑾 𝒐𝒍𝒅 𝟐 < 𝟎. 𝟎𝟎𝟏 𝑾 𝒏𝒆𝒘 𝑾 𝒐𝒍𝒅 𝑾 𝒏𝒆𝒘 − 𝑾 𝒐𝒍𝒅
  17. 17. 5.1.3 サンプルコードによる確認 LR & ROC AISECjp パーセプトロン vs ロジスティック回帰
  18. 18. 5.1.3 サンプルコードによる確認 LR & ROC AISECjp パーセプトロンの結果 少し偏った位置に分割線がある
  19. 19. 5.1.3 サンプルコードによる確認 LR & ROC AISECjp ロジスティック回帰の結果 ほぼ中央部分に分割線がある
  20. 20. 5.1.3 サンプルコードによる確認 LR & ROC AISECjp  パーセプトロン 全データが分類されるとWの更新を停止  ロジスティック回帰 全体的な確率を最大化する
  21. 21. 5.2 ROC曲線による学習モデルの評価 LR & ROC AISECjp
  22. 22. なぜROC曲線で評価? は確率が1/2になる点 この確率(境界)は適切か? LR & ROC AISECjp f 𝑥, 𝑦 = 0 ROC曲線を使うことで 最適な境界を求めることが可能
  23. 23. 5.2.1 ロジスティック回帰の現実問題への適用 LR & ROC AISECjp ウィルス感染検査の例 検査結果と感染/非感染の関係 -30 -20 -10 0 10 20 30 40 -30 -20 -10 0 10 20 30 40 ● ● ● ● ● ● ● ● ● xx x x x x x x x x ●:感染 x:非感染 確率 80% ● 確率 50% 確率 20%
  24. 24. 5.2.1 ロジスティック回帰の現実問題への適用 LR & ROC AISECjp 真陽性率と偽陽性率を使う
  25. 25. 5.2.1 ロジスティック回帰の現実問題への適用 LR & ROC AISECjp 用語の定義 陽性 :発見したい属性を持つデータ(t=1) 陰性 :そうでないデータ(t=0) 真陽性:本当に陽性だったもの 偽陽性:本当は陰性だったもの 真陽性率:陽性データ全体での真陽性の割合 偽陽性率:陰性データ全体での偽陽性の割合
  26. 26. 5.2.1 ロジスティック回帰の現実問題への適用 LR & ROC AISECjp 真陽性率 (TP率) 偽陽性率 (FP率) 偽陰性 (FN) 真陽性 (TP) 真陰性 (TN) 偽陽性 (FP) 1 0 0 1 陰性と判定 陽性と判定 真陽性率と偽陽性率の定義
  27. 27. 5.2.1 ロジスティック回帰の現実問題への適用 LR & ROC AISECjp 真陽性率 (TP率) 偽陽性率 (FP率) 偽陰性 (FN) 真陽性 (TP) 真陰性 (TN) 偽陽性 (FP) 1 0 0 1 陰性と判定 陽性と判定 真陽性率と偽陽性率の定義 判定ライン
  28. 28. 5.2.1 ロジスティック回帰の現実問題への適用 LR & ROC AISECjp 「判定ライン」の設定 ⇒ ROC曲線を使う
  29. 29. 5.2.2 ROC曲線による性能評価 LR & ROC AISECjp No. x y t P 1 24.43 6.95 1 0.98 2 8.84 11.92 1 0.91 3 18.69 -1.17 1 0.86 4 17.37 -0.07 1 0.86 5 4.77 11.66 1 0.85 6 0.83 10.74 0 0.73 7 1.57 8.51 1 0.69 8 10.07 -0.53 1 0.66 9 0.99 6.04 1 0.58 10 10.73 -4.88 0 0.53 11 11.16 -6.77 0 0.47 12 -11.21 14.64 0 0.46 トレーニングセットを確率順に並べたデータ
  30. 30. 5.2.2 ROC曲線による性能評価 LR & ROC AISECjp トレーニングセットを確率順に並べたデータ P>1:全データは「陰性」 真陽性率=0, 偽陽性率=0 P>0.95:No.1は「陽性」 真陽性率=1/10, 偽陽性率=0 P>0.90:No.1~2は「陽性」 真陽性率=2/10, 偽陽性率=0
  31. 31. 5.2.2 ROC曲線による性能評価 LR & ROC AISECjp 判定ラインの変更でTP率とFP率が変化する様子 真陽性率 (TP率) 偽陽性率 (FP率) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
  32. 32. 5.2.3 サンプルコードによる確認 LR & ROC AISECjp ERR 9.0%の場合
  33. 33. 5.2.3 サンプルコードによる確認 LR & ROC AISECjp ERR 22.0%の場合
  34. 34. 5.2.3 サンプルコードによる確認 LR & ROC AISECjp 箱の左上の角 ⇒ 理想の判定方法(TP=1, FP=0) ・左上の角付近を通るROC曲線:有用性が高い ・右下の部分の面積が大きい:優秀なアルゴリズム
  35. 35. 5.2.3 サンプルコードによる確認 LR & ROC AISECjp 理想の判定法 すべてを「陽性」と判定 一定確率でランダムに 「陽性」と判定する すべてを「陰性」 と判定する
  36. 36. 私的なまとめ LR & ROC AISECjp  ログ分析(攻撃検知)に使えそう 例)60%以上 ⇒ 人間による精査 60%未満 ⇒ 異常なしと判断  ROC曲線は他アルゴリズムの性能検証にも使える  計算時間は多くなるか?  パーセプトロンも捨てたもんじゃない
  37. 37. LR & ROC AISECjp 機械学習アルゴリズムは適材適所で!! 私的なまとめ
  38. 38. • Download “.PDF” version of this document: ≫ http://ssmjp.connpass.com/event/40469/

×