近接交互線形化最小化アルゴリズム (PALM)
📂最適化理論近接交互線形化最小化アルゴリズム (PALM)
概要
Jérôme Bolte、Shoham Sabach、Marc Teboulleの論文Proximal Alternating Linearized Minimization for nonconvex and nonsmooth problemsで紹介された最適化手法であるProximal Alternating Linearized Minimization(PALM)アルゴリズムについて説明する。
アルゴリズム
以下の(1)のような最適化問題を解く方法をProximal Alternating Linearized Minimization(PALM)アルゴリズムと呼ぶ。
⎩⎨⎧x(k+1)∈proxc1f(x(k)−c1∇xH(x(k),y(k)))y(k+1)∈proxd1g(y(k)−d1∇yH(x(k+1),y(k)))
簡単に言えば、2つの変数に対する交互最適化をプロキシマル勾配法で行うことである。
説明
論文のアブストラクトによると、PALMアルゴリズムは非凸で非滑らかな最適化問題を解くための方法として紹介されている。以下のような最適化問題を考えてみよう。
x,yminimizeΨ(x,y)=f(x)+g(y)+H(x,y)(1)
ここでx∈Rn,y∈Rmであり、H:Rn×Rm→RはC1関数である。また、f,g,Hは凸関数ではないとしよう。
Linearized
アルゴリズム名のLinearizedはHを線形近似するという意味である。2つの変数xとyにそれぞれテイラーの定理を適用して、以下のようにHを近似することができる。
H(x,y)≈H(x(k),y)+(x−x(k))T∇xH(x(k),y)=H(x(k),y)+⟨x−x(k),∇xH(x(k),y)⟩(2)
H(x,y)≈H(x,y(k))+(y−y(k))T∇yH(x,y(k))=H(x,y(k))+⟨y−y(k),∇yH(x,y(k))⟩(3)
今ΨでHを(2)に近似し、Ψ、(3)で近似したものをΦとする。
Ψ(x,y)Φ(x,y)=f(x)+g(y)+H(x(k),y)+⟨x−x(k),∇xH(x(k),y)⟩=f(x)+g(y)+H(x,y(k))+⟨y−y(k),∇yH(x,y(k))⟩
以下の内容から、このように置いても結果は同じであることがわかる。しかし、とりあえず上記のように進めよう。
Ψ(x,y)Φ(x,y)=f(x)+⟨x−x(k),∇xH(x(k),y)⟩=g(y)+⟨y−y(k),∇yH(x,y(k))⟩
Alternating
次に、線形近似を適用し、Ψの2つの変数を交互に最適化する交互アルゴリズムを適用する。すると、問題(1)は以下の2つの部分問題に分かれる。
⎩⎨⎧x(k+1)y(k+1)=xargminΨ(x,y(k))=xargminf(x)+g(y(k))+H(x(k),y(k))+⟨x−x(k),∇xH(x(k),y(k))⟩=yargminΦ(x(k+1),y)=yargminf(x(k+1))+g(y)+H(x(k+1),y(k))+⟨y−y(k),∇yH(x(k+1),y(k))⟩
最初の式では、2番目と3番目の項は最適化に影響を与えないので、削除しても問題は同じである。同様に、2番目の式では、最初と3番目の項を削除しても問題は変わらない。したがって、アルゴリズムは以下のように書き換えることができる。
⎩⎨⎧x(k+1)=xargminf(x)+⟨x−x(k),∇xH(x(k),y(k))⟩y(k+1)=yargming(y)+⟨y−y(k),∇yH(x(k+1),y(k))⟩(4)
Proximal
今、(4)にプロキシマル最適化のための項を追加すると、以下のようになる。
⎩⎨⎧x(k+1)=xargmin{f(x)+⟨x−x(k),∇xH(x(k),y(k))⟩+2cx−x(k)22}y(k+1)=yargmin{g(y)+⟨y−y(k),∇yH(x(k+1),y(k))⟩+2dy−y(k)22}(5)
説明1
最初の式で、2番目と3番目の項を以下のようにまとめる。
ψ(x)=⟨x−x(k),∇xH(x(k),y(k))⟩+2cx−x(k)22
ψが最小になる点を見つけると、
∇xψ(x)=0⟹∇xH(x(k),y(k))+c(x−x(k))=0⟹x=x(k)−c1∇xH(x(k),y(k))
この点から離れすぎずに、同時にfも最小化する点はプロキシマルオペレータで表すことができる。したがって、x(k+1)は以下のように更新される。
x(k+1)∈c1fprox(x(k)−c1∇xH(x(k),y(k)))
これはプロキシマル勾配法と同じである。
説明2
最適化問題(5)はproxcf(x(k)−c1∇xH(x(k),y(k)))と同じであることを以下のように示すことができる。
c1fprox(x(k)−c1∇xH(x(k),y(k)))=xargmin{f(x)+2cx−(x(k)−c1∇xH(x(k),y(k)))22}=xargmin{f(x)+2c(x−x(k))+c1∇xH(x(k),y(k))22}=xargmin{f(x)+2c(x−x(k))22+(x−x(k))T∇xH(x(k),y(k))+c21∇xH(x(k),y(k))22}=xargmin{f(x)+2c(x−x(k))22+⟨x−x(k),∇xH(x(k),y(k))⟩}
上記の説明に従って、最終的に以下の繰り返しアルゴリズムを得る。
⎩⎨⎧x(k+1)∈proxc1f(x(k)−c1∇xH(x(k),y(k)))y(k+1)∈proxd1g(y(k)−d1∇yH(x(k+1),y(k)))
■