More Related Content
Similar to ラグランジュ未定乗数法 (20)
ラグランジュ未定乗数法
- 2. 準備:法線ベクトル(1/2)
直線・曲線の場合
f(x, y)
法線ベクトル : (x, y)
A(x, y)
B(x + Δx, y + Δy)
方向ベクトル (Δx, Δy)
点Aも点Bもf(x, y)上にあるとする 푓푥,푦=0 푓푥+Δx,y+Δy=0 푓푥+Δx,푦+Δy=fx,y+ 휕푓 휕푥 Δx+ 휕푓 휕푦 Δy+ …=0 휕푓 휕푥 휕푓 휕푦 Δ푥 Δ푦 =0
よって法線ベクトルは、훻푓= 휕푓 휕푥 , 휕푓 휕푦 (∇はナブラという)
(テイラー展開)
(点A)
(点B)
- 3. 準備:法線ベクトル(2/2)
平面・曲面の場合(Z軸が増えただけ)
f(x, y, z)
A(x, y, z)
B(x + Δx, y + Δy, z + Δz)
方向ベクトル : (Δx, Δy, Δz)
法線ベクトル : (x, y, z)
法線ベクトルは、훻푓= 휕푓 휕푥 , 휕푓 휕푦 , 휕푓 휕푧
- 4. ラグランジュ未定乗数法(2次元)
min/max f(x, y) s.t. g(x, y) = 0
拘束条件g(x,y)=0のもとで、f(x,y)の極値を求めよ
という”制約付き最適化問題”を解く解法の一つ
関数f,gの法線ベクトル∇f, ∇gに対して
∇f = λ∇g
というλ(ラグランジュ乗数、マルチプライヤーなど)
を導入し、λを求める
- 5. ラグランジュ未定定数法(n次元)
min/max f(x1, x2, …, xn)
s.t. g(x1, x2, …, xn) = 0
n次元でも同様に、
∇f = λ∇g
を解けばよい
もし関数fが凸関数の場合、
極値 = 最大値(または最小値)
なので、色々な場面で嬉しい
例)
対数尤度関数の最適化、SVMの分離平面の決定… など
- 7. 解法1(変数消去法)
拘束条件より
y = 1 – x
これをf(x,y)に代入
f(x,y) = 2x2 + 3(1 - x)2
= 2x2 + 3(x2 -2x + 1)
= 5x2 -6x + 3
= 5(x2 - 6/5x) + 3
= 5{(x-3/5)2 – (3/5)2} + 3
よってx = 3/5, y = 1-x = 2/5
min f(x, y) = 2x2 + 3y2
s.t. x + y = 1
- 9. 解法2(ラグランジュ乗数法)
∇f = λ∇g
より、
(4x, 6y) = λ(1, 1)
なので、x = λ/4, y = λ/6
よって、
λ/4 + λ/6 = 1
より
(x, y, λ) = (3/5, 2/5, 12/5)
min f(x, y) = 2x2 + 3y2
s.t. x + y = 1
g
fの半径を縮めていく
- 10. 解法3(ラグランジュ乗数法、より簡潔に)
∇f = λ∇g の右辺を移項して ∇(f – λg) = 0 という風にも記述できる(こっちのほうが一般的) 左辺は、λも含めて関数として定義すると ∇(f – λg) = F(x1, x2, …, xn, λ) となり
- 11. 解法3(ラグランジュ乗数法、より簡潔に)
휕퐹(푥,푦,휆) 휕푥 =4푥 −휆 =0⇒푥= 휆 4
F 푥,푦,휆=2푥2+2푦2−휆 (푥+푦 −1)
Step.1 拘束条件はλでかこむ
Step.2 x, y, λで偏微分する
휕퐹(푥,푦,휆) 휕푦 =4푦 −휆 =0⇒푦= 휆 4
휕퐹(푥,푦,휆) 휕휆 =푥+푦 −1=0 x,y,휆=( 35,25,125)