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

36
Lagrange 未定乗数法 株式会社ビズリーチ 工藤啓朗 機械学習のための 数学テクニック勉強会

Upload: owllearn

Post on 13-Aug-2015

718 views

Category:

Data & Analytics


1 download

TRANSCRIPT

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

Lagrange 未定乗数法

株式会社ビズリーチ 工藤啓朗

機械学習のための数学テクニック勉強会

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

自己紹介

工藤 啓朗 (くどう ひろあき)

株式会社ビズリーチ

マーケティング本部 ビズリーチサービス企画部

北海道釧路市出身 , 30歳, 妻子有

高専 : 情報工学科

大学 : 一般相対性理論 / インフレーション宇宙論

前職(5年) : プログラマ → データ分析

現在(10ヶ月目) : アルゴリズム実装 / データドリブンの加速化 / 可視化や共有

主に Python を使用しております。

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

自己紹介(数学勉強歴)

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

本日のテーマ

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

流れ

1. まずは使ってみましょう !2. 必要となる数学的知識

3. Lagrange 未定乗数法についての解釈

4. 振り返り

5. さいごに

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

Lagrange 未定乗数法は、

最適化問題の数学的な解法の

数あるなかの一つです。

まずは使ってみましょう !

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

Lagrange 未定乗数法を使って、

下記の最適化問題を解いてみましょう。

まずは使ってみましょう !

x

y

subject to の右側にある数式を満たしたうえで、f(x, y)が最大(maximize)となる変数x,yを求める問題、という意味です。関数 f は、目的関数とよばれています。

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

解答例

x

y

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

Lagrange 未定乗数法のポイント

x = 5, y = 5

f = 10

f = 25

f = 50

f = 80

f = 20

x + y = 10は下記の青い線

f = xy を上から見た図

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

ビジネスへの応用

予測

モデル評価

学習

モデリング

今日はこの一瞬のお話 !!

機械学習の実施プロセス

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

“例” SVM(Support Vector Machine)

“モデリング”

数式でかくと、

今日解きたい問題

ビジネスへの応用

予測

モデル評価

学習

モデリング

+

+

+

---

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

ブラックボックスな機械学習

「理解しないまま機械学習のソフトウェアを使う」

(個人的な意見) →

極論、ビジネスでは仕方のないことだと思います。

一方で、誤った結果が出ても、誤っているかどうかの判断ができない、というリスクも

あります。

少しでも、数学への苦手意識を減らして、機械学習のモデルの背景を理解する、とい

う点でお役に立てればと思います。

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

ここから数学のお話

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

気になること

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

必要となる数学的知識

1. 関数の最大値と極大値

2. 微分係数と極値

3. 凸集合と閉集合と有界

4. ベクトルと勾配(gradient)

5. そして、Lagrange 未定乗数法へ

※ 以下、最大値に限定して進めます

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

最適化問題の前提条件

1. 目的関数に最大値は存在する ?

a. 関数の最大値、極大値、停留点 ??

b. 最大値を求めるには、

i. まず停留点を求めて、そこから極大値を選定する。

ii. 後は、極大値同士と境界の値を比較して、最大値を求める。

2. 制約条件はどんなものでも良いか ?

a.  制約条件を満たす領域は、有界閉集合、となっていることが前提。

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

必要となる数学的知識の整理

最適化問題

目的関数

制約条件

連続関数

閉集合

有界

理想的な前提条件

凸集合

凸関数

微分可能

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

いよいよ、Lagrange 未定乗数法へ

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

制約条件を満たしたうえで、最大値を求めることはできるか ?

- ベクトル v, w

- 平行 : v = a w, a は定数

- 垂直 : v * w = 0, v と w の内積が0となる

- 勾配(gradient) ∇

- 変化が最大となる方向と一致します

- 目的関数の等位面に対して、勾配は垂直となります

- スカラー場とベクトル場

- 目的関数は ?

- 勾配は ?

- ex. 温度分布と、川の流水の分布

ベクトル解析のおさらい

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

Lagrange 未定乗数法を理解したい

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

制約条件を満たしたうえで、最大値を求めることはできるか ?

∇ f について

- ∇ f = 0 は停留点を求めることができるが、

- その点が制約条件 g = 0 を満たすとは限らない。

- 制約条件 g = 0 を満たしたうえで、f の極大値が知りたい。

- ∇ f は、f の等位面に対して、垂直な方向を向いている。

Lagrange 未定乗数法を理解したい 1/3

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

Lagrange 未定乗数法を理解したい 2/3制約条件を満たしたうえで、最大値を求めることはできるか ?

∇ g について

制約条件 g について、

∇ g は、g の接線方向に対して垂直!?

概略は右書きを参照ください。

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

Lagrange 未定乗数法を理解したい 3/3制約条件を満たしたうえで、最大値を求めることはできるか ?

ある点 (x*, y*) について

- もし点 (x*, y*) が、g上で f の極大値をとるとすると、

- ∇ f は g の接線方向に対して垂直

- ∴ ∇ f と ∇ g は、平行となる

- つまり、適当な λ ≠ 0 を設定すれば、

- ∇ f = -λ ∇ g (∵ 平行)

となります。

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

あれ、この形 …

∇ f = -λ ∇ g

もしかして

f + λg を新しい関数として、極値を求める問題とみればOKなんじゃない ?

Lagrange 未定乗数法

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

Lagrange 未定乗数法 !!そう!!

「新しい関数 f - λg の極値問題を制約条件なしで考える」

という問題に変える方法のことを、Lagrange 未定乗数法といい

ます。

Lagrange 関数 L を下記で定義する。

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

Lagrange 関数の勾配の図示

∇f -5 ∇g ∇f - 5∇g

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

Lagrange 未定乗数法の発展

- 制約条件が不等式の最適化問題

- KKT条件

- 制約条件が複数個の最適化問題

- ヘッシアン、十分条件への言及

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

実際に機械学習の問題を例にして

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

Lagrange 未定乗数法は、

- 正則化項を加えた線形回帰モデル

- Support Vector Machine

- ナイーブベイズ分類

などで使われています。

下記の問題で適用可能です

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

ナイーブベイズ分類を実際に解いてみる

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

- 最適化問題は

- 制約条件の下で

- ある目的関数の最大または最小となる解を求めること

- Lagrange 未定乗数法は

- 目的関数と制約条件を線形結合で表した

- Lagrange 関数というものを定義して

- その制約条件なしの極値問題に問題を変える方法

振り返り

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

ビズリーチでは、新しい仲間を募集しております!!

- 数学が好きで、機械学習をビジネスに応用したい人- レコメンドエンジンに興味がある人- データ分析に興味ある人

ぜひ、お気軽にお問い合わせください。

http://owl-learn.connpass.com/

さいごに

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

ご清聴ありがとうございました

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

以下、補足スライド

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

最適化問題の前提条件

1. 目的関数に最大値は存在する ?

a. 関数の最大値、極大値、停留点 ??

b. 微分係数と停留点の関係

c. 最大値を求めるには、まず停留点を求めて、そこから極大値を選定する。後は、極大値同士と境界の値を比較し

て、最大値を求める。

※ 暗黙の前提となるケースが多いですが、そもそも最大値が必ずしも存在するわけではありません。

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

2. 制約条件はどんなものでも良いか ?

a. 閉集合と有界

b. 凸関数と凸集合

定義域が有界閉集合で、目的関数が連続関数のとき、最大値の存在が保証されています。

そして、制約条件が凸集合で、目的関数が微分可能でもある、ほうが扱いやすい。

最適化問題の前提条件