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