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.

機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法

4,125 views

Published on

7月2日(木)に開催した「機械学習を理解するための数学テクニック勉強会」の講義資料です。
今後もデータサイエンスに関する勉強会を開催するので、お気軽にご参加ください!
http://owl-learn.connpass.com/

Published in: Data & Analytics

機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法

  1. 1. Lagrange 未定乗数法 株式会社ビズリーチ 工藤啓朗 機械学習のための 数学テクニック勉強会
  2. 2. 自己紹介 工藤 啓朗 (くどう ひろあき) 株式会社ビズリーチ マーケティング本部 ビズリーチサービス企画部 北海道釧路市出身, 30歳, 妻子有 高専 : 情報工学科 大学 : 一般相対性理論 / インフレーション宇宙論 前職(5年) : プログラマ → データ分析 現在(10ヶ月目) : アルゴリズム実装 / データドリブンの加速化 / 可視化や共有 主に Python を使用しております。
  3. 3. 自己紹介(数学勉強歴)
  4. 4. 本日のテーマ
  5. 5. 流れ 1. まずは使ってみましょう ! 2. 必要となる数学的知識 3. Lagrange 未定乗数法についての解釈 4. 振り返り 5. さいごに
  6. 6. Lagrange 未定乗数法は、 最適化問題の数学的な解法の 数あるなかの一つです。 まずは使ってみましょう !
  7. 7. Lagrange 未定乗数法を使って、 下記の最適化問題を解いてみましょう。 まずは使ってみましょう ! x y subject to の右側にある数式を満たしたう えで、f(x, y)が最大(maximize)となる変数 x,yを求める問題、という意味です。 関数 f は、目的関数とよばれています。
  8. 8. 解答例 x y
  9. 9. Lagrange 未定乗数法のポイント x = 5, y = 5 f = 10 f = 25 f = 50 f = 80 f = 20 x + y = 10 は下記の青い線 f = xy を上から見た 図
  10. 10. ビジネスへの応用 予測 モデル評価 学習 モデリング 今日はこの一瞬のお話 !! 機械学習の実施プロセス
  11. 11. “例” SVM(Support Vector Machine) “モデリング” 数式でかくと、 今日解きたい問題 ビジネスへの応用 予測 モデル評価 学習 モデリング + + + - - -
  12. 12. ブラックボックスな機械学習 「理解しないまま機械学習のソフトウェアを使う」 (個人的な意見) → 極論、ビジネスでは仕方のないことだと思います。 一方で、誤った結果が出ても、誤っているかどうかの判断ができない、というリスクも あります。 少しでも、数学への苦手意識を減らして、機械学習のモデルの背景を理解する、とい う点でお役に立てればと思います。
  13. 13. ここから数学のお話
  14. 14. 気になること
  15. 15. 必要となる数学的知識 1. 関数の最大値と極大値 2. 微分係数と極値 3. 凸集合と閉集合と有界 4. ベクトルと勾配(gradient) 5. そして、Lagrange 未定乗数法へ ※ 以下、最大値に限定して進めます
  16. 16. 最適化問題の前提条件 1. 目的関数に最大値は存在する ? a. 関数の最大値、極大値、停留点 ?? b. 最大値を求めるには、 i. まず停留点を求めて、そこから極大値を選定する。 ii. 後は、極大値同士と境界の値を比較して、最大値を求める。 2. 制約条件はどんなものでも良いか ? a.  制約条件を満たす領域は、有界閉集合、となっていることが前提。
  17. 17. 必要となる数学的知識の整理 最適化問題 目的関数 制約条件 連続関数 閉集合 有界 理想的な前提条件 凸集合 凸関数 微分可能
  18. 18. いよいよ、Lagrange 未定乗数法へ
  19. 19. 制約条件を満たしたうえで、最大値を求めることはできるか ? - ベクトル v, w - 平行 : v = a w, a は定数 - 垂直 : v * w = 0, v と w の内積が0となる - 勾配(gradient) ∇ - 変化が最大となる方向と一致します - 目的関数の等位面に対して、勾配は垂直となります - スカラー場とベクトル場 - 目的関数は ? - 勾配は ? - ex. 温度分布と、川の流水の分布 ベクトル解析のおさらい
  20. 20. Lagrange 未定乗数法を理解したい
  21. 21. 制約条件を満たしたうえで、最大値を求めることはできるか ? ∇ f について - ∇ f = 0 は停留点を求めることができるが、 - その点が制約条件 g = 0 を満たすとは限らない。 - 制約条件 g = 0 を満たしたうえで、f の極大値が知りたい。 - ∇ f は、f の等位面に対して、垂直な方向を向いている。 Lagrange 未定乗数法を理解したい 1/3
  22. 22. Lagrange 未定乗数法を理解したい 2/3 制約条件を満たしたうえで、最大値を求めることはできるか ? ∇ g について 制約条件 g について、 ∇ g は、g の接線方向に対して垂直!? 概略は右書きを参照ください。
  23. 23. Lagrange 未定乗数法を理解したい 3/3 制約条件を満たしたうえで、最大値を求めることはできるか ? ある点 (x*, y*) について - もし点 (x*, y*) が、g上で f の極大値をとるとすると、 - ∇ f は g の接線方向に対して垂直 - ∴ ∇ f と ∇ g は、平行となる - つまり、適当な λ ≠ 0 を設定すれば、 - ∇ f = -λ ∇ g (∵ 平行) となります。
  24. 24. あれ、この形 … ∇ f = -λ ∇ g ⇒ もしかして f + λg を新しい関数として、極値を求める問題とみればOKなんじゃない ? Lagrange 未定乗数法
  25. 25. Lagrange 未定乗数法 !! そう!! 「新しい関数 f - λg の極値問題を制約条件なしで考える」 という問題に変える方法のことを、Lagrange 未定乗数法といい ます。 Lagrange 関数 L を下記で定義する。
  26. 26. Lagrange 関数の勾配の図示 ∇f -5 ∇g ∇f - 5∇g
  27. 27. Lagrange 未定乗数法の発展 - 制約条件が不等式の最適化問題 - KKT条件 - 制約条件が複数個の最適化問題 - ヘッシアン、十分条件への言及
  28. 28. 実際に機械学習の問題を例にして
  29. 29. Lagrange 未定乗数法は、 - 正則化項を加えた線形回帰モデル - Support Vector Machine - ナイーブベイズ分類 などで使われています。 下記の問題で適用可能です
  30. 30. ナイーブベイズ分類を実際に解いてみる
  31. 31. - 最適化問題は - 制約条件の下で - ある目的関数の最大または最小となる解を求めること - Lagrange 未定乗数法は - 目的関数と制約条件を線形結合で表した - Lagrange 関数というものを定義して - その制約条件なしの極値問題に問題を変える方法 振り返り
  32. 32. ビズリーチでは、新しい仲間を募集しております!! - 数学が好きで、機械学習をビジネスに応用したい人 - レコメンドエンジンに興味がある人 - データ分析に興味ある人 ぜひ、お気軽にお問い合わせください。 http://owl-learn.connpass.com/ さいごに
  33. 33. ご清聴 ありがとうございました
  34. 34. 以下、補足スライド
  35. 35. 最適化問題の前提条件 1. 目的関数に最大値は存在する ? a. 関数の最大値、極大値、停留点 ?? b. 微分係数と停留点の関係 c. 最大値を求めるには、まず停留点を求めて、そこから極大値を選定する。後は、極大値同士と境界の値を比較し て、最大値を求める。 ※ 暗黙の前提となるケースが多いですが、そもそも最大値が必ずしも存在するわけではありません。
  36. 36. 2. 制約条件はどんなものでも良いか ? a. 閉集合と有界 b. 凸関数と凸集合 定義域が有界閉集合で、目的関数が連続関数のとき、最大値の存在が保証されています。 そして、制約条件が凸集合で、目的関数が微分可能でもある、ほうが扱いやすい。 最適化問題の前提条件

×