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