Algoritmul Frank-Wulf

Algoritmul Frank-Wulff [1] este un algoritm iterativ de optimizare de ordinul întâi pentru optimizarea convexă cu constrângeri . Algoritmul este cunoscut și ca metoda gradientului condiționat [2] , metoda gradientului redus și algoritmul combinației convexe . Metoda a fost propusă inițial de Marguerite Frank și Philip Wolf în 1956 [3] . La fiecare iterație, algoritmul Frank-Wulff ia în considerare o aproximare liniară a funcției obiectiv și se deplasează în direcția minimizării acestei funcții liniare (pe același set de soluții fezabile).

Declarația problemei

Să presupunem că este o mulțime compactă convexă într-un spațiu vectorial și este o funcție convexă , diferențiabilă cu valoare reală a lui . Algoritmul Frank-Wulff rezolvă problema de optimizare

Minimizați furnizat .

Algoritm

Inițializare: Să și să fie un punct în . Pasul 1. Subsarcină de căutare a direcției: Găsiți , rezolvarea problemei Minimizați in conditii (Interpretare: minimizăm aproximarea liniară a problemei obținute prin aproximarea Taylor de ordinul întâi a funcției de lângă .) Pasul 2. Determinarea mărimii pasului: Fiți , sau, alternativ, găsiți , care se minimizează în condiția . Pasul 3. Recalculare: Setați și treceți la pasul 1.

Proprietăți

În timp ce metodele concurente, cum ar fi coborârea gradientului pentru optimizarea constrânsă, necesită proiectarea fiecărei iterații într-un set de valori permise, algoritmul Frank-Wulf trebuie doar să rezolve o problemă de programare liniară pe același set la fiecare iterație, astfel încât soluția rămâne întotdeauna în setul de soluţii fezabile.

Convergența algoritmului Frank-Wulf este în general subliniară - eroarea funcției obiectiv față de valoarea optimă este după k iterații, cu condiția ca gradientul să fie continuu Lipschitz într-o anumită normă. Aceeași convergență poate fi arătată dacă subproblemele sunt rezolvate doar aproximativ [4] .

Iterațiile algoritmului pot fi întotdeauna reprezentate ca o combinație convexă nedensă de puncte extreme ale setului de soluții fezabile, ceea ce a ajutat la popularitatea algoritmului pentru problemele rare de optimizare greedy în învățarea automată și procesarea semnalului [5] , ca precum și pentru găsirea fluxurilor minime de cost în rețelele de transport [6] .

Dacă setul de soluții fezabile este dat de o mulțime de inegalități liniare, atunci subproblema rezolvată la fiecare iterație devine o problemă de programare liniară .

Deși rata de convergență din cel mai rău caz pentru cazul general nu poate fi îmbunătățită, se pot obține rate de convergență mai mari pentru probleme speciale, cum ar fi problemele strict convexe [7] .

Limitele inferioare ale valorii unei soluții și analiză primal-duală

Deoarece funcția este convexă , pentru oricare două puncte avem:

Acest lucru este valabil și pentru soluția optimă (necunoscută) . Adică . Cea mai bună limită inferioară luând în considerare un punct este dată de formulă

Această ultimă problemă este rezolvată la fiecare iterație a algoritmului Frank-Wulff, astfel încât soluția subproblemei de găsire a direcției la a-a iterație poate fi utilizată pentru a determina limite inferioare crescătoare la fiecare iterație prin atribuirea și

Asemenea limite inferioare ale valorii optime necunoscute sunt foarte importante în practică, deoarece pot fi utilizate ca criteriu pentru oprirea algoritmului și oferă un indicator eficient al calității aproximării la fiecare iterație, de când întotdeauna .

S-a demonstrat că decalajul de dualitate , care este diferența dintre și limita inferioară , scade în aceeași rată, i.e.

Note

  1. ↑ Algoritmul a fost dezvoltat de Margarita Frank și Philip Wolf, așa că denumirea de Frank-Wulf Algorithm , care este utilizat pe scară largă în literatura rusă , este eronată.
  2. Levitin, Polyak, 1966 , p. 787-823.
  3. Frank și Wolfe, 1956 , p. 95–110.
  4. Dunn și Harshbarger 1978 , p. 432.
  5. Clarkson, 2010 , p. 1–30.
  6. Fukushima, 1984 , p. 169–177.
  7. Bertsekas, 1999 , p. 215.

Literatură

Link

Vezi și