Theorie: Eigenentwicklungen

Problemstellung

Nicht jedes prak­tisch rele­van­te Opti­mie­rungs­pro­blem lässt sich als LP, QP, … schrei­ben und mit bereits vor­han­de­ner Soft­ware lösen. Ist das Pro­blem jedoch kon­vex oder ist das Ziel die Ver­bes­se­rung einer bestehen­den Lösung ohne Anspruch auf glo­ba­le Opti­ma­li­tät, dann bestehen nichts­des­to­trotz gute Chan­cen. Die Eigen­ent­wick­lung mass­ge­schnei­der­ter Algo­rith­men ist dann unentbehrlich

KKT Bedingung

Unter der Hypo­the­se, dass sowohl die Ziel­funk­ti­on \(f(x)\) als auch die Unglei­chun­gen zwei­fach dif­fe­ren­zier­bar und kon­vex sind und die Glei­chun­gen affin, ist die Lösung des Optimierungsproblemes

\begin{align} \min_x &~~~ f(x) \\ \text{s.t.}&~~~ (Ax)_k = b_k ~~~~~~~~~~~ k =1, … ‚m_1 \\ & ~~~ g_l(x) \le 0 ~~~~~~~~~~~~~ l=1, … ‚m_2 \end{align}

ein­deu­tig defi­niert durch einen Satz Glei­chun­gen. Die­se heis­sen Karush-Kuhn-Tucker (KKT) Bedin­gun­gen und erklä­ren, dass \(x^*, \lambda^*, \nu^*\) opti­ma­le pri­ma­le und dua­le Opti­mie­rungs­va­ria­blen sind, wenn das Gleichungssystem

\begin{align} \nabla f (x^*) + \sum_{k=1}^{m_1} \nu_k^* \nabla (Ax^*)_k + \sum_{l=1}^{m_2}\lambda^*_l \nabla g_l(x^*) &=0 \\ (Ax^*)_k — b_k &=0 ~~~~~ k=1, …, m_1 \\ g_l(x^*) &\le 0 ~~~~~ l=1, …, m_2 \\ \lambda^*_l &\ge 0 ~~~~~ l=1, …, m_2 \\ \lambda^*_kg_l(x^*) &=0 ~~~~~ l=1, …, m_2 \end{align}

erfüllt ist [1, p. 244]. Die 5 Glei­chun­gen reflek­tie­ren die Opti­ma­li­täts­for­de­rung gegen­über der Ziel­funk­ti­on, die Zuläs­sig­keit der pri­ma­len und dua­len Varia­blen sowie eine Kom­ple­men­ta­ri­täts­be­din­gung, die dua­le Varia­blen und Neben­be­din­gun­gen koppelt.

Abbil­dung 1: Ver­schie­de­ne Glei­chun­gen aus dem KKT Sys­tem und deren Interpretation.

Newtonverfahren mit Nebenbedingungen

In dem KKT Glei­chungs­sys­tem sind ins­be­son­de­re die ers­te und drit­te Zei­le nicht­li­ne­ar und eine direk­te Lösung ist schwie­rig. Wie im Abschnitt zur Nume­rik beschrie­ben, kön­nen die Unglei­chun­gen durch Bar­rie­re­funk­tio­nen ersetzt und die nicht­li­nea­re Glei­chung mit­tels New­ton­ver­fah­ren auf­ge­löst wer­den. Die Updates für die pri­ma­len und dua­len Variablen

$$x_{k+1}=x_k + \Delta x ~~~~ \lambda_{k+1}= \lambda_k + \Delta \lambda ~~~~ \nu_{k+1}= \nu_k+\Delta \nu $$

erge­ben sich aus einer Fol­ge von Glei­chungs­sys­te­men für die Such­rich­tung \((\Delta x, \Delta \lambda, \Delta \nu)\). Die Glei­chungs­sys­te­me sind indi­ziert von einer gegen \(0\) stre­ben­den fol­ge von Zah­len \(\mu_0, \mu_1, …\) und lau­ten [1, p. 610]

$$\begin{bmatrix} \Delta f (x_k) + \sum_{l=1}^{m_2}\lambda_l\Delta
g_l(x_k) & \nabla g(x_k) & A^T \\
-\operatorname{diag}(\lambda)\nabla g^T(x_k) &
-\operatorname{diag}(g(x_k)) & 0 \\ A & 0& 0\end{bmatrix}
\begin{bmatrix} \Delta x \\ \Delta \lambda \\ \Delta \nu \end{bmatrix} = — \begin{bmatrix} \nabla f(x_k) + \nabla g(x_k)+ A^T \nu \\ -\operatorname{diag}(\lambda) g(x_k) — \mu_k \vec{1} \\ Ax‑b \end{bmatrix} $$

wobei \(\vec{1}=[1, …, 1]^T\) , \( g(x_k)=[ g_1(x_k), … g_{m_2}(x_k)]^T\), \(\nabla g(x_k) ][\nabla g_1 (x_k), … ‚\nabla g_2(x_k)]\) mit \(\nabla g_l\) dem Gra­di­en­ten von \(g_l\) und \(\Delta g_l(x_k))_{ij}=(\partial_{x_i} \partial_{x_j} g_l)(x_k)\). Der Term \( \operatorname{diag(v)}\) ist die matrix mit Ein­trä­gen des Vek­tors \(v\) auf der Dia­go­na­len. Sinn­vol­le Ver­fah­ren zur Lösung der Glei­chungs­sys­te­me füh­ren zu Such­rich­tun­gen \((\Delta x, \Delta \lambda, \Delta \nu)\) und letzt­end­lich  zur Lösung des mit dem KKT-Sys­tem assi­zier­ten Optimierungsproblemes.

Numerische Stabilisierung

Das obi­ge Glei­chungs­sys­tem erweckt den Anschein, ein voll­stän­di­ges und pro­gram­mier­tech­nisch imple­men­tier­ba­res Sche­ma für kon­ve­xe Opti­mie­rung zu lie­fern. Dem ist nicht so. In der Pra­xis sind wei­te­re Schrit­te durch­zu­füh­ren, um nume­ri­sche Sta­bi­li­tät zu gewähr­leis­ten. Dabei müs­sen Such­rich­tun­gen unter ande­rem ska­liert, zen­triert, und kor­ri­giert wer­den [2]. Andern­falls kann das New­ton­ver­fah­ren kon­ver­genz­pro­ble­me auf­wei­sen. Bei Anwe­sen­heit meh­re­rer loka­ler Mini­ma ist der Zusam­men­hang zwi­schen Start­punkt und End­punkt des New­ton­ver­fah­rens zudem alles ande­re als offen­sicht­lich. Sie­he dazu auch die fol­gen­den Illus­tra­tio­nen basie­rend auf Berech­nun­gen von [3, p. 34] und [4, p. 21].

Abbil­dung 2: Kon­ver­genz und Diver­genz des New­ton­ver­fah­rens. Die obe­ren Gra­fi­ken zei­gen die Resul­ta­te des New­ton­ver­fah­rens zur Lösung der Glei­chung \(t(\sqrt{1+t^2})^{-1}=0\). Die unte­ren Gra­fi­ken illus­trie­ren, wel­che der drei Lösun­gen der Glei­chung \(x^3–1=0\) von wel­chem Start­punkt aus erreicht wird.

Beispiel

Die opti­ma­le Schät­zung von Kor­re­la­tio­nen in Daten ist essen­ti­ell für hoch­di­men­sio­na­le Sta­tis­tik im Zusam­men­hang mit sto­chas­ti­schen Pro­zes­sen. Sie kann als Maxi­mie­rung der Wahr­schein­lich­keit einer Wis­hart ver­teil­ten Zufalls­grös­se auf­ge­fasst wer­den, sodass letzt­end­lich das Optimierungsproblem

\begin{align} \min_{\gamma} & ~~~ \log \det C_{\gamma} + \langle S, C_{\gamma}^{-1} \rangle_F + r\left[- \log \det \gamma + \langle \operatorname{diag}(\lambda) ^{-1}, \gamma \rangle_F\right] \\ \text{s.t.} & ~~~ A \gamma =b \\ & ~~~ \gamma \succeq 0\end{align}

ent­steht [5, p. 193 ]. Dabei ist \(\gamma\) eine posi­ti­ve semi­de­fi­ni­te Matrix von Opti­mie­rungs­va­ria­blen, \(\langle \cdot, \cdot\rangle_F\) das Fro­be­ni­us-Ska­lar­pro­dukt, \(S\) eine empi­ri­sche Kova­ri­anz­ma­trix,  \(\lambda\) sind Eigen­wer­te und \(C_\gamma\) ist eine aus \(\gamma\) kon­stru­ier­te Kova­ri­anz­ma­trix und \(r\) ein Regu­la­ri­sie­rungs­ko­ef­fi­zi­ent. Die New­ton-Schrit­te sind expli­zit bere­chen­bar zu

\begin{align} \gamma_{k+1} =& \gamma_{k}+\Delta \gamma_{1}- \gamma A^T(A\gamma A^T)^{-1}A\Delta \gamma_1 \\ &\text{ mit } \Delta \gamma_1 = (1+r)^{-1}[(r‑1)\gamma +S_{\psi} — r\gamma \operatorname{diag}(\lambda)^{-1}\gamma] \\ & \text{ und } S_{\psi} \text{ einer trans­for­mier­ten Kova­ri­anz­ma­trix} \end{align}

und die Opti­mie­rung kann z.B. in Python imple­men­tiert werden.

Abbil­dung 3: Bei­spiel­haf­te Imple­men­ta­ti­on einer Opti­mie­rung in Form von Python­code. Die­ser ist aus­führ­bar durch Inter­ak­ti­on mit einer gra­fi­schen Benutzeroberfläche.

Implementation

Prak­ti­sche Imple­men­ta­tio­nen eines mass­ge­schnei­der­ten Opti­mie­rungs­al­go­rith­mus erfor­dern ein zuver­läs­si­ges Öko­sys­tem nume­ri­scher Pro­gram­me. Die Pro­gram­mier­spra­che Python bie­tet mit Num­Py [6] eine sol­che Umge­bung an und zeich­net sich durch pro­blem­lo­se Inter­pre­tier­bar­keit des Codes und die Ver­füg­bar­keit ein­fach zu navi­gie­ren­der gra­fi­scher Benut­zer­ober­flä­chen aus. Die Ein­stiegs­freund­lich­keit ist sowohl für Ent­wick­ler als auch Kun­den von Vorteil.

Code & Quellen

Bei­spiel­code: Theory_newton_convergence.py in unse­rem Tuto­ri­al­fol­der

[1] Boyd, S., & Van­den­berg­he, L. (2004). Con­vex Optimi­zation. Cam­bridge: Cam­bridge Uni­ver­si­ty Press.

[2] Meh­ro­tra, S. (1992). On the imple­men­ta­ti­on of a pri­mal-dual inte­ri­or point method. SIAM Jour­nal on Optimi­zation. 2 (4): 575–601.

[3] Nes­terov, Y. (2013). Intro­duc­to­ry Lec­tures on Con­vex Optimi­zation: A Basic Cour­se. Ber­lin Hei­del­berg: Sprin­ger Sci­ence & Busi­ness Media.

[4] Stern­berg, S. (2014). Dyna­mi­cal Sys­tems. New York: Cou­rier Corporation.

[5] Butt, J.A. (2019). An RKHS approach to model­ling and infe­rence for spa­tio­tem­po­ral geo­de­tic data with appli­ca­ti­ons to ter­restri­al radar inter­fe­ro­me­try. Dis­ser­ta­ti­on ETH Zürich, Zürich.

[6] Har­ris, C.R., Mill­man, K.J., van der Walt, S.J., Gom­mers, R., Vir­ta­nen, P., Cor­na­peau, D., Wie­ser, E., Tay­lor, J., Berg, S., Smith, N.J., Kern, R., Picus, M., Hoyer, S., van Kerkwi­jk, M.H., Brett, M., Hald­ane, A., Fer­nan­dez del Rio, J., Wie­be, M., Peter­son, P., Gerard-Mar­chant, P., Shepp­ard, K., Red­dy, T., Weckes­ser, W., Abba­si, H., Goh­le, C., & Oli­phant T.E. (2020). Array pro­gramming with Num­Py. Natu­re, Vol 585, No. 7825.