1 M. Monaci - ottimizzazione convessa Introduzione all’ottimizzazione convessa Michele Monaci Dipartimento di Ingegneria dell’Informazione, Università di Padova Viale Gradenigo, 6/A - 35131 - Padova [email protected] 1 1.1 Ottimizzazione convessa Insiemi convessi Definizione 1 Dati due punti x, y ∈ Rn , si definisce la combinazione convessa di x e y l’insieme dei punti z = λx + (1 − λ)y ottenuti per qualche λ ∈ [0, 1]. Una combinazione convessa si dice stretta quando ci si limita a considerare valori di λ ∈ (0, 1). 1 k L’estensione di questo concetto è rappresentata dalla Pk Pkcombinazione convessa di k punti x , . . . , x , i definita come l’insieme dei punti z = i=1 λi x con i=1 λi = 1 e λi ≥ 0 per i = 1, . . . , k. Definizione 2 Un insieme X ⊆ Rn si dice convesso se contiene la combinazione convessa di qualunque coppia di suoi punti, ossia se λ x + (1 − λ) y ∈ X ∀x, y ∈ X e ∀λ ∈ [0, 1] Geometricamente ciò significa che il segmento che congiunge due qualunque punti di una regione convessa appartiene completamente alla regione stessa. '$ m '$ &% @ @ A A A A &% A A A A A A Figura 1: Esempi di insiemi convessi (sx) e non convessi (dx). 1.2 Esempi di insiemi convessi • L’insieme {x ∈ Rn : ||x|| ≤ t} è convesso, indipendentemente dalla norma || · || utilizzata. 2 M. Monaci - ottimizzazione convessa Definizione 3 Un insieme S ⊆ Rn si dice cono se x ∈ S ⇒ αx ∈ S ∀α ≥ 0. • Un cono è un insieme convesso. Definizione 4 Un iperpiano è l’insieme {x ∈ Rn : αT x = α0 }. • Un iperpiano è un insieme convesso. Definizione 5 Un semispazio affine è l’insieme {x ∈ Rn : αT x ≤ α0 }. • Un semispazio affine è un insieme convesso. (Nota: un iperpiano definisce due semispazi affini) • L’intersezione di un insieme di insiemi convessi è un insieme convesso. Quindi anche un poliedro (= intersezione di iperpiani e semispazi) è un insieme convesso. Dim. Sia Si un insieme convesso per ogni i ∈ M e sia S = ∩i Si l’intersezione di tali insiemi. Dimostriamo che, presi x, y ∈ S e un qualche λ ∈ [0, 1], allora il punto z = (λx + (1 − λ)y) ∈ S. Fissato λ ∈ [0, 1], il punto z appartiene a ciascun insieme Si , dato che per ipotesi questi insiemi sono convessi. Allora z ∈ ∩i Si , ossia z ∈ S. • Sia S ⊆ Rn un insieme convesso e sia f : S → Rm una funzione affine, ossia f (x) = Ax + b dove A è una matrice m × n e b è un vettore di Rm . Allora l’insieme f (S) ⊆ Rm , ottenuto come immagine di S tramite f , è convesso. Dim. Sia y1 ∈ f (S) un punto dell’immagine; per definizione ∃x1 ∈ S tale che y1 = Ax1 + b. Analogamente sia y2 ∈ f (S) e sia x2 ∈ S tale che y2 = Ax2 + b. Prendiamo ora un λ ∈ [0, 1], definiamo il punto z = λy1 + (1 − λ)y2 e mostriamo che z ∈ f (S), ossia che ∃t ∈ S tale che z = At + b. Si ha z = λy1 +(1−λ)y2 = λ(Ax1 +b)+(1−λ)(Ax2 +b) = λAx1 +(1−λ)Ax2 +b = A(λx1 +A(1−λ)x2 )+b = At+b con t = λx1 + (1 − λ)x2 . Per la convessità di S si ha che t ∈ S, e quindi la tesi. In maniera analoga, se f : Rk → Rn è una funzione affine, allora anche l’immagine inversa di un insieme convesso S tramite f , ossia l’insieme f −1 (S) = {x ∈ Rk : f (x) ∈ S} è un insieme convesso. Il risultato precedente permette di affermare che alcune operazioni insiemistiche rilevanti, quali ad esempio scaling, traslazione e proiezione, preservano la convessità dell’insieme: • Se S ⊆ Rn è convesso, allora l’insieme αS = {αx : x ∈ S} è convesso ∀α > 0. • Se S ⊆ Rn è convesso, allora l’insieme S + a = {x + a : x ∈ S} è convesso ∀a ∈ Rn . • Se S ⊆ Rn+m è convesso, allora l’insieme Sx = {x ∈ Rn : (x, y) ∈ S per qualche y ∈ Rm } è convesso. 2 Funzioni convesse Definizione 6 Sia X ⊆ Rn un insieme convesso. Una funzione f : X → R si dice convessa se f (λx + (1 − λ)y) ≤ λ f (x) + (1 − λ) f (y) ∀x, y ∈ X e ∀λ ∈ [0, 1] (1) Una funzione f si dice concava se la funzione −f è convessa. Una funzione f si dice strettamente convessa (o strettamente concava) se la disuguaglianza vale con 3 M. Monaci - ottimizzazione convessa 6 f (x) b H H HH H rλf (x) + (1 − λ)f (y) HH H HH b r f (y) f (λx + (1 − λ)y) 0 x λx + (1 − λ)y y Figura 2: Funzione convessa. il minore (maggiore) stretto per tutti i λ ∈ (0, 1). Nota: una funzione f lineare è sia concava che convessa (ma non strettamente). Intuitivamente una funzione convessa è una funzione che “si piega verso l’alto”, come mostrato in figura 2; in questo caso il segmento che congiunge f (x) e f (y) è completamente al di sopra della curva f nell’intervallo [x, y]. Non necessariamente una funzione convessa deve essere continua. Esempio: Si consideri la funzione f : R+ → R definita come −x per x > 0; f (x) = 1 per x = 0 f (x) 6 s c @ - x @ @ @ @ La funzione è convessa su R+ , ma discontinua nell’origine. Infatti prendendo due punti x > 0 e y > 0 si ha f (λx + (1 − λ)y) = −(λx + (1 − λ)y) = −λx − (1 − λ)y = λf (x) + (1 − λ)f (y) Viceversa, se uno dei due vale zero (es. x = 0) si ha f (λx + (1 − λ)y) = f ((1 − λ)y) = −((1 − λ)y) ≤ λ + (1 − λ)y = λf (x) + (1 − λ)f (y) Esiste una stretta relazione tra funzioni convesse ed insiemi convessi: si può dimostrare che una funzione f convessa su un insieme convesso S può avere punti di discontinuità solamente sulla frontiera di S. Inoltre, vale la seguente proprietà: • Sia f : Rn → R una funzione convessa. Allora l’insieme S = {x ∈ Rn : f (x) ≤ t} è convesso. Dim. Siano x, y ∈ S, ossia tali che f (x) ≤ t e f (y) ≤ t. Vogliamo mostrare che f (z) ≤ t per un punto z = λx + (1 − λ)y con λ ∈ [0, 1]. Per la convessità della funzione f si ha f (z) = f (λx + (1 − λ)y) ≤ λf (x) + (1 − λ)f (y) ≤ λt + (1 − λ)t = t, ossia z ∈ S. Per le funzioni convesse dotate di derivate continue, esistono caratterizzazioni equivalenti alla convessità. 4 M. Monaci - ottimizzazione convessa Teorema 1 Sia X ⊆ Rn un insieme convesso. Sia f : X → R una funzione continuamente differenziabile. Se f è convessa allora f (y) ≥ f (x) + ∇f (x)T (y − x) ∀x, y ∈ X (2) Dim. Siano x e y due punti di X. Definiamo la loro combinazione convessa λx + (1 − λ)y ottenuta per λ = 1−, con “sufficientemente” vicino a zero. Si ha λx+(1−λ)y = (1−)x+y = x+(y −x) e, analogamente, λf (x) + (1 − λ)f (y) = f (x) + [f (y) − f (x)]. Utilizzando la definizione (1) di funzione convessa si ha f (x + (y − x)) = f (λx + (1 − λ)y) ≤ λf (x) + (1 − λ)f (y) = f (x) + [f (y) − f (x)] Scrivendo l’espansione in serie di Taylor del primo ordine per la funzione f nel punto x con h = (y − x) si ha f (x + (y − x)) = f (x) + ∇f (x)T (y − x) + R1 (x, ||y − x||) Confrontando le due espressioni si ha f (x) + [f (y) − f (x)] ≥ f (x) + ∇f (x)T (y − x) + R1 (x, ||y − x||) Ricordando che è arbitrariamente piccolo (dato che l’espansione in serie di Taylor vale in un = 0, si ottiene intorno di x) e che lim→0 R1 (x,||y−x||) ||y−x|| f (y) − f (x) ≥ ∇f (x)T (y − x) ossia la tesi. È da notare che vale anche il viceversa: se la condizione (2) vale ∀x, y ∈ X, allora f è convessa (dim. omessa). Teorema 2 Sia X ⊆ Rn un insieme convesso. Sia f : X → R una funzione continuamente differenziabile, e sia x ∈ X un punto nel quale ∇2 f (x) è semidefinita positiva. Allora, almeno in un intorno di x, f è una funzione convessa. Dim. Prendiamo un punto x ∈ X per il quale la matrice ∇2 f (x) è definita e ∇2 f (x) 0, e consideriamo un punto y ∈ X “sufficientemente vicino” a x. Dato che siamo in un intorno di x, possiamo approssimare f (y) tramite l’espansione in serie di Taylor con h = y − x: 1 f (y) = f (x) + ∇f (x)T (y − x) + (y − x)T ∇2 f (x)(y − x) + R2 (x, ||y − x||) 2 dove, al solito, lim||y−x||→0 R2 (x,||y−x||) = 0. Quindi, per ||y − x|| sufficientemente piccolo, la ||y−x|| 2 condizione ∇ f (x) 0 implica f (y) ≥ f (x) + ∇f (x)T (y − x) per cui vale l’estensione del Teorema 1, secondo la quale f è convessa. Nota: vale anche un risultato più forte: se ∇2 f (x) 0 per ogni x ∈ X allora f è convessa (dim. omessa), e analogamente se ∇2 f (x) 0 per ogni x ∈ X allora f è strettamente convessa. Purtroppo, non vale il contario: la funzione f : R → R, x → x4 è strettamente convessa ma la derivata seconda è nulla in x = 0. 5 M. Monaci - ottimizzazione convessa 2.1 Esempi di funzioni convesse • La funzione f : Rn → R, x → ||x|| è convessa, indipendentemente dalla norma || · || utilizzata. • Una funzione quadratica f : Rn → R, x → 12 xT Qx + cT x + r è convessa se Q 0. Infatti per questa funzione si ha ∇f (x) = Qx + c, e ∇2 f (x) = Q. Pm • Date m funzioni f1 , . . . , fm convesse, la loro combinazione lineare f (x) = i=1 λi fi (x) è convessa a patto che λi ≥ 0 ∀i. Quindi la somma di funzioni convesse è una funzione convessa; non necessariamente, invece, il prodotto di funzioni convesse è convesso: ad esempio il prodotto di f (x) = x2 e g(x) = x fornisce una funzione f (x)g(x) = x3 che non è convessa. • Date m funzioni f1 (x), . . . , fm (x) convesse con dominio in Rn , allora la funzione massimo puntuale f (x) : Rn → R, x → max{f1 (x), . . . , fm (x)} è convessa. Dim. Dati x, y ∈ Rn e λ ∈ [0, 1] si ha f (λx + (1 − λ)y) = max fi (λx + (1 − λ)y) ≤ max [λfi (x) + (1 − λ)fi (y)] ≤ i=1,...,m i=1,...,m λ max fi (x) + (1 − λ) max fi (y) ≤ λf (x) + (1 − λ)f (y) i=1,...,m i=1,...,m • Sia f : Rn+m → R, (x, y) → f (x, y) una funzione che, ∀y ∈ Rm , è convessa rispetto a x. Allora la funzione g : Rn → R, x → maxy∈Rm f (x, y) è convessa. Dim. Consideriamo due punti x1 ∈ Rn e x2 ∈ Rn e la loro combinazione convessa con moltiplicatore λ ∈ (0, 1). Si ha g(λx1 + (1 − λ)x2 ) = max f (λx1 + (1 − λ)x2 , y) ≤ max [λf (x1 , y) + (1 − λ)f (x2 , y)] ≤ m m y∈R y∈R max [λf (x1 , y)] + max [(1 − λ)f (x2 , y)] = λg(x1 ) + (1 − λ)g(x2 ) m y∈Rm y∈R In maniera del tutto analoga, se f (x, y) è concava rispetto a x, allora la funzione g : Rn → R, x → miny∈Rm f (x, y) è concava. Esempio Una conseguenza di questo risultato è che il problema lagrangiano duale è un problema di ottimizzazione convessa, indipendentemente dalla struttura della funzione obiettivo f originale. Infatti basta osservare che il rilassamento lagrangiano di un generico problema con moltiplicatori (u, v) è definito nel seguente modo `(u, v) = minn L(x; u, v) x∈R e che la funzione lagrangiana L(x; u, v) = f (x) + uT g(x) + v T h(x) è lineare nei moltiplicatori u e v. Ne consegue che la funzione ` : Rm+p → R, (u, v) → minn L(x; u, v) x∈R è una funzione concava in (u, v) indipendentemente dalla forma di f, g e h. Il problema lagrangiano duale richiede di massimizzare la funzione `(u, v), ossia di minimizzare la funzione convessa −`(u, v). L’insieme ammissibile per il lagrangiano duale è definito solo da vincoli di segno per i moltiplicatori associati a disuguaglianze, per cui è un insieme convesso. Come vedremo, questo problema appartiene quindi alla classe dei problemi di ottimizzazione convessa. 6 M. Monaci - ottimizzazione convessa 3 Proprietà della programmazione convessa Consideriamo ora un problema di ottimizzazione convessa, definito nel seguente modo (P c ) min f (x) (3) x ∈ Rn (4) gi (x) ≤ 0 i∈I (5) hj (x) = 0 j∈E (6) dove la funzione obiettivo f è convessa, le funzioni gi sono tutte convesse e le funzioni hj (x) = aTj x−b sono tutte lineari, ossia la regione ammissibile S := {x ∈ Rn : gi (x) ≤ 0 ∀i ∈ I e hj (x) = 0 ∀j ∈ E} è un insieme convesso. Nonostante le limitazioni sulla funzione obiettivo e sulla regione ammissibile, i problemi di ottimizzazione convessa rivestono una particolare importanza in numerose applicazioni reali. In generale però, i risultati che vedremo per questi problemi non valgono per l’ottimizzazione non lineare. Viceversa, questi risultati saranno validi anche in un caso particolare di grande rilevanza, la programmazione lineare, che si ha in in presenza di funzione obiettivo e vincoli lineari. Teorema 3 Sia S ⊆ Rn un insieme convesso e sia f : S → R una funzione convessa. Se x è un minimo locale per f su S, allora x è anche un minimo globale per f su S. Dim. Per assurdo supponiamo che esista y ∈ S tale f (y) < f (x). Dato che x è un minimo locale, esiste un ρ > 0 tale che f (x) ≥ f (x) ∀x ∈ B(x, ρ). Consideriamo una combinazione convessa dei punti x e y definita come z = λx + (1 − λ)y con λ ∈ (0, 1) sufficientemente piccolo, in modo che z ∈ B(x, ρ); in base a quanto detto, si ha f (z) ≥ f (x). Dato che la funzione f è convessa si ha f (z) ≤ λf (x) + (1 − λ)f (y); per ipotesi si ha f (y) < f (x) da cui segue f (z) < f (x), che contraddice l’ipotesi secondo cui x è un minimo locale. Teorema 4 Sia S ⊆ Rn un insieme convesso e sia f : S → R una funzione convessa. Siano x1 , . . . , xk dei punti di minimo per la funzione f su S. Allora una qualunque combinazione convessa dei punti x1 , . . . , xk è un minimo globale per f su S. Dim. Data l’equivalenza tra minimi locali e globali, indichiamo con f (x∗ ) = f (x1 ) = . . . f (xk ) il Pk valore della funzione f sui punti minimi x1 , . . . , xk . Prendiamo un punto z = i=1 λi xi ottenuto Pk come combinazione convessa dei minimi, con coefficienti λi ≥ 0 (i = 1, . . . , k) tali che i=1 λi = 1. Allora si ha k k X X f (z) ≤ λi f (xi ) = f (x∗ ) λi = f (x∗ ) i=1 i=1 ∗ Dato che f (x ) è il valore del minimo globale di f su S, non si può avere f (z) < f (x∗ ). Ne deriva quindi f (z) = f (x∗ ). Teorema 5 Sia S ⊆ Rn un insieme convesso e sia f : S → R una funzione strettamente convessa. Allora se x è un minimo globale, questo è l’unico minimo globale. Dim. Per assurdo supponiamo che esista y ∈ S tale f (y) = f (x). Preso un qualunque λ ∈ (0, 1) si avrebbe f (λx + (1 − λ)y) < λf (x) + (1 − λ)f (y) = f (x) e quindi x non sarebbe un minimo globale. 7 M. Monaci - ottimizzazione convessa Nella dimostrazione dei teoremi precedenti non abbiamo fatto nessuna ipotesi sulla funzione f , a parte la (stretta) convessità. Se la funzione f è differenziabile, è possibile utilizzare le condizioni del primo ordine per caratterizzare in modo univoco i punti di ottimo globale. Teorema 6 Sia S ⊆ Rn un insieme convesso e sia f : S → R una funzione convessa di classe C 1 . Condizione necessaria e sufficiente affinchè un punto x ∈ S sia un minimo globale per f su S è che sia ∇f (x) = 0. Dim. Se x è un minimo globale (e quindi anche locale), deve essere necessariamente ∇f (x) = 0 per le condizioni del primo ordine. Viceversa, se la funzione f è convessa e ∇f (x) = 0, il Teorema 1 permette di scrivere f (y) ≥ f (x) ∀y ∈ S. 3.1 Rilassamento lagrangiano Il seguente risultato mostra che in ottimizzazione convessa si ha una completa corrispondenza tra i punti KKT ed i punti di sella della funzione lagrangiana. Teorema 7 Sia (P c ) un problema di ottimizzazione convessa. Allora (x, u, v) è un punto di sella se e solo se x è un punto KKT ed i vettori u e v sono i corrispondenti moltiplicatori. Dim. Sia (x, u, v) un punto di sella. Come visto, x è un minimo della funzione L(x; u, v) e quindi ∇x [L(x; u, v)] = 0, ossia ∇f (x) + m X ui ∇gi (x) + i=1 p X v j ∇hj (x) = 0 j=1 Dato che (x, u, v) è un punto di sella si ha anche g(x) ≤ 0, h(x) = 0, u ≥ 0 e uT g(x) = 0, il che garantisce che x è un punto KKT con moltiplicatori u e v. p Viceversa, sia x un punto KKT con moltiplicatori u ∈ Rm + e v ∈ R , ossia tali che ∇f (x) + m X ui ∇gi (x) + i=1 p X uT g(x) = 0 v j ∇hj (x) = 0 u≥0 j=1 Dalla convessità di f e gi (i = 1, . . . , m) si ha che, per ogni x ∈ Rn , (∗) f (x) ≥ f (x) + ∇f (x)(x − x) (∗∗) gi (x) ≥ gi (x) + ∇gi (x)(x − x) mentre per le funzioni lineari hj si ha (∗ ∗ ∗) hj (x) = hj (x) + ∇hj (x)(x − x) Sommando l’equazione (*), le (**) moltiplicate per ui e le (***) moltiplicate per v j si ottiene L(x; u, v) = f (x) + m X i=1 f (x) + ∇f (x)(x − x) + m X i=1 ui gi (x) + p X v j hj (x) ≥ j=1 ui [gi (x) + ∇gi (x)(x − x)] + p X j=1 v j [hj (x) + ∇hj (x)(x − x)] = 8 M. Monaci - ottimizzazione convessa L(x; u, v) + (x − x)[∇f (x) + m X ui ∇gi (x) + i=1 p X v j ∇hj (x)] j=1 ossia L(x; u, v) ≥ L(x; u, v) + ∇x [L(x; u, v)]T (x − x). Ricordando che in un punto KKT si ha ∇x [L(x; u, v)] = 0, allora deve essere L(x; u, v) ≥ L(x; u, v) ∀x ∈ Rn Inoltre dato che x è KKT con moltiplicatori u e v, si ha che g(x) ≤ 0, h(x) = 0, u ≥ 0 e uT g(x) = 0. T T p T T Quindi, ∀u ∈ Rm + e ∀v ∈ R risulta L(x; u, v) = f (x)+u g(x)+v h(x) ≤ f (x)+u g(x)+v h(x) = L(x; u, v) e dunque (x, u, v) è un punto di sella. Una conseguenza del teorema precedente è che in ottimizzazione convessa non può esistere duality gap. Infatti, sia (x, u, v) un punto di sella; il rilassamento lagrangiano con moltiplicatori u, v fornisce un lower bound di valore min L(x; u, v) = L(x; u, v) = f (x) x cioè pari al valore della soluzione x. 4 4.1 Esempi di problemi di ottimizzazione convessa Problemi con norme Sia dato un poliedro P = {x : aTi x ≤ bi , i = 1, . . . , m}. Si definisce il centro di Chebyschev di (P ) il centro della più grande palla che possa essere iscritta dentro a (P ). Una palla di raggio r centrata in xc è iscritta in (P ) se, per ogni vincolo i, si ha sup{aTi (xc + u) : ||u||2 ≤ r} = aTi xc + r||ai ||2 ≤ bi Quindi il problema può essere formulato in questo modo max{r : aTi xc + r||ai ||2 ≤ bi , i = 1, . . . , m} e questo è un problema di ottimizzazione convessa. 4.2 Problemi quadratici Sia data una funzione quadratica f (x) = 1 T x Q x + cT x + r 2 dove Q è una matrice n × n, che può essere sempre presa simmetrica senza perdita di generalità. Abbiamo già visto che in questo caso il gradiente e l’hessiana della funzione obiettivo sono definiti come ∇f (x) = Qx + c ∇2 f (x) = Q per cui f è strettamente convessa se e solo se Q è definita positiva. In questo caso, l’unica soluzione ottima può essere trovata imponendo la condizione di stazionarietà: ∇f (x) = 0 ossia x = −Q−1 c 9 M. Monaci - ottimizzazione convessa 4.3 Problemi di classificazione e Support Vector Machines Una tipica applicazione dell’Intelligenza Artificiale si ha nei problemi di classificazione. In questi problemi, è dato un insieme di osservazioni (punti), per ciascuna delle quali sono noti un insieme di valori (attributi). Inoltre, per ciascun punto è nota una classificazione in base a qualche criterio (non noto). L’obiettivo consiste nel determinare una regola (classificatore) che permetta di classificare correttamente tutti i punti, in modo da poter classificare nuovi punti che vengano forniti in un secondo momento. Questo problema ha notevoli applicazioni; es. in ambito biomedico (es. per stabilire se un paziente è affetto da una certa malattia, noti alcuni sintomi), nel campo informatico (es. per gli algoritmi di spam detection), nell’addestramento delle reti neurali, nel riconoscimento di immagini e/o di informazioni. Sebbene il modello generale preveda che i punti debbano essere classificati in k ≥ 2 gruppi disgiunti (es. per il riconoscimento di lettere e/o testi), noi considereremo solo il caso particolare di classificazione binaria (k = 2) nel quale i punti devono essere partizionati in due sottoinsiemi; nel seguito classificheremo i punti come punti rossi e punti blu, oppure con etichette di valore +1 e -1. Generalmente la soluzione del problema prevede tre fasi: • apprendimento: in questa fase si definisce un modello matematico per la classificazione di un sottoinsieme dei punti di input (training set); • valutazione: in questa fase il modello ottenuto viene testato sui restanti dati di input (test set) per verificare la bontà della classificazione; • classificazione: è la fase nella quale il modello viene utilizzato in modo preditivo, al fine di classificare nuovi punti. Noi ci concentreremo solo sulla fase di apprendimento, ossia sulla definizione di un modello matematico per classificare un dato insieme di punti. Quindi il problema che vogliamo risolvere è questo: Problema di classificazione. Sono dati m vettori di Rn ; per ciascun vettore xi = (xi1 , xi2 , . . . , xin ) è data una classificazione yi ∈ {−1, +1} (i = 1, . . . , m). Si vuole determinare una funzione φ : Rn → {−1, +1} tale che sia yi = φ(xi1 , xi2 , . . . , xin ) ∀i = 1, . . . , m. Classificatore lineare Il classificatore è dunque una funzione degli attributi di ciascun punto che restituisce la classificazione del punto. La funzione più semplice cui possiamo pensare è una funzione lineare; quindi per prima cosa cerchiamo di determinare un classificatore lineare, ossia un iperpiano H = {x : wT x + b = 0} che divida i punti dati in punti rossi (per i quali wT x+b > 0) dai punti blu (per i quali wT x+b < 0). Pur sapendo che non necessariamente questo iperpiano esiste, facciamo per ora l’assunzione che i i punti siano classificabili in modo lineare; vedremo in seguito come generalizzare il modello per rimuovere questa assunzione. Dato un iperpiano (w, b) che classifica i punti rossi e quelli blu, è possibile definire altri due iperpiani, paralleli a quello dato, che classificano correttamente i punti e che “toccano” alcuni punti; questi punti sono detti punti di supporto. A meno di normalizzazioni, questi iperpiani sono definiti da wT x + b = 1 per i punti di supporto rossi, e wT x + b = −1 per i punti di supporto blu. Quello che vorremmo fare è determinare l’iperpiano (w, b) per il quale la distanza tra i due iperpiani di supporto è massima – il che corrisponde a determinare la soluzione di massima robustezza. 2 e quindi dipende solo dal vettore w. Quindi il problema di classificaQuesta distanza è pari a ||w|| zione lineare consiste nel determinare le componenti del vettore w e lo scalare b che permettono di classificare correttamente tutti i punti del training set, massimizzando la distanza dei due iperpiani di supporto. Un modello matematico per questo problema è il seguente 10 M. Monaci - ottimizzazione convessa 1 ||w||2 2 yi (wT xi + b) ≥ 1 min (7) i = 1, . . . , m (8) n (w, b) ∈ R × R (9) La funzione obiettivo (7) minimizza la norma del vettore w che definisce l’iperpiano, mentre l’i-esimo vincolo (8) impone che ciascun punto con yi = 1 sia classificato come rosso (wT x + b > 0) mentre ogni punto con yi = −1 sia classificato come blu (wT x + b < 0). Consideriamo il rilassamento lagrangiano del modello (7)–(9) ottenuto con un vettore di moltiplicatori λ ∈ Rm + . La funzione lagrangiana diventa L(w, b; λ) = m X 1 ||w||2 + λi (1 − yi (wT xi + b)) 2 i=1 Annullando il il gradiente del lagrangiano rispetto a w e b si ottiene m X ∂L(w, b; λ) =w− λi yi xi = 0 ∂w i=1 m e ∂L(w, b; λ) X = λi yi = 0 ∂b i=1 per cui in corrispondenza di una soluzione (w, b) ottima deve esistere un vettore λ ottimo tale che w= m X λi yi xi e i=1 m X λi yi = 0 (10) i=1 Utilizzando queste condizioni, la funzione obiettivo del lagrangiano può essere riscritta in funzione delle sole variabili λi nel seguente modo: L(w, b; λ) = m m m m X m X X 1 XX T T λi λk yi yk xi xk + λi − λi λk yi yk xi xk = 2 i=1 i=1 i=1 k=1 = m X i=1 k=1 m λi − m 1 XX T λi λk yi yk xi xk = `(λ) 2 i=1 k=1 Quindi il problema lagrangiano duale richiede di massimizzare Pm la funzione `(λ) con i vincoli di non negatività dei moltiplicatori (λ ≥ 0) e con la condizione i=1 λi yi = 0. In aggiunta alle (10), le condizioni KKT associate ad una coppia di soluzioni (w, b) e λ sono λi (1 − yi (wT xi + b)) = 0 i = 1, . . . , m (11) λi ≥ 0 i = 1, . . . , m (12) yi (w x + b)) ≥ 1 i = 1, . . . , m (13) T i In particolare, la condizione (11) impone che sia yi (wT xi + b) = 1 per i punti i che hanno λi > 0 (vettori di supporto) e che sia λi = 0 per i punti i tali che yi (wT xi +b) > 1 (vettori non di supporto). Noti i moltiplicatori ottimi, l’iperpiano di separazione è definito come w= m X i=1 λi yi xi e b= 1 − w T xi yi (per qualche punto i con λi 6= 0), ed il classificatore per un eventuale nuovo punto x è dato da sgn(wT x + b). 11 M. Monaci - ottimizzazione convessa Punti non classificabili in maniera lineare Esistono diversi modi per estendere il modello al caso in cui non sia necessariamente valida l’assunzione secondo cui tutti i punti possono essere classificati correttamente. La prima soluzione consiste nell’introdurre delle variabili decisionali ξi che agiscano da slack nei vincoli di classificazione dei vari punti, in modo da (eventualmente) disattivare questi vincoli. Si ottiene il seguente modello matematico min C m X 1 ξi + ||w||2 2 i=1 yi (wT xi + b) ≥ 1 − ξi (14) i = 1, . . . , m n (w, b) ∈ R × R ξi ≥ 0 (15) (16) i = 1, . . . , m (17) nel quale la funzione obiettivo cerca di minimizzare la somma (pesata con un parametro C > 0) delle variabili ξi ; ciascuna di quetse variabili può essere interpretata come l’entità della riduzione di margine nella classificazione del punto i associato (ξi = 0 se il punto viene classificato con il margine richiesto). Classificatore non lineare Una seconda possibilità per gestire punti non separabili linearmente è quella di utilizzare un classificatore non lineare. L’idea di base è quella di utilizzare una funzione ψ : Rn → RN che lavori in uno spazio diverso da Rn (generalmente uno spazio esteso, ossia con N >> n) nel quale i punti dati siano separabili in modo lineare. In questo modo la funzione obiettivo del problema duale può essere scritta come m m m X 1 XX λi λk yi yk K(xi , xk ) λi − 2 i=1 i=1 k=1 dove K(xi , xk ) = ψ(xi )T ψ(xk ) è la funzione di kernel. Le caratteristiche e proprietà di una funzione di kernel sono descritte dal Teorema di Mercer: una funzione simmetrica K(xi , xk ) è un kernel se e solo se per ogni insieme di punti x1 , . . . , xm la matrice associata a tutte le coppie di punti è semidefinita positiva. In letteratura sono state proposte molte funzioni di kernel; le principali sono T • K(xi , xk ) = xi xk T • K(xi , xk ) = (1 + xi xk )p i k −x • K(xi , xk ) = exp(− ||x 2σ 2 ||γ ) T • K(xi , xk ) = tanh(γ xi xk − δ)p Una volta risolto il problema trasformato attraverso la funzione di kernel, la funzione da Pm utilizzare per classificare un punto x è data da sgn( i=1 λi yi K(xi , x) + b). 5 Algoritmi a punto interno In questa sezione vengono considerati gli algoritmi a punto interno. Anche se la trattazione viene svolta relativamente al caso di problemi di ottimizzazione convessa (ottimizzare una funzione 12 M. Monaci - ottimizzazione convessa obiettivo convessa su un insieme convesso), le tecniche sono più generali e possono essere applicate anche al caso non convesso. In particolare, considereremo un problema di questo tipo min f (x) : Ax = b, x ∈ S = {x ∈ Rn : gi (x) ≤ 0 (i = 1, . . . , m)} dove le funzioni f e gi sono convesse e Ax = b sono vincoli lineari. Per questo problema analizzeremo il metodo della barriera, che prevede l’introduzione di termini di penalità nella funzione obiettivo, in analogia con quanto visto per gli algoritmi di penalità sequenziali. La differenza fondamentale è che negli algoritmi a punto interno si cerca di definire, ad ogni iterazione, una soluzione ammissibile che sia interna ad S, penalizzando le soluzioni che si avvicinano alla frontiera di S. Per fare questo, l’assunzione di base è che esista almeno un punto strettamente interno in S, ossia che esista x ∈ Rn tale che Ax = b e gi (x) < 0 (∀i = 1, . . . , m). Inoltre assumiamo che il problema abbia un ottimo finito, ossia che minx∈S f (x) >= −∞. Sotto queste condizioni valgono le condizioni di qualificazioni di Slater; quindi in base al Teorema KKT ogni minimo soddisfa le KKT. Il metodo della barriera logaritmica si basa sulla definizione di un problema ausiliario (Paux ) min p(x) (18) n (19) Ax = b (20) x∈R dove la funzione obiettivo è definita come p(x) = f (x) + tφ(x) tramite la seguente funzione di penalità: φ(x) = X − log(−gi (x)) i∈I Si noti che funzione obiettivo p(x) è una funzione convessa e differenziabile, ed è quindi possibile utilizzare l’algoritmo di Newton per risolvere il problema ausiliario. Ovviamente il problema ottenuto risulta essere una approssimazione del problema originale; la bontà di questa approssimazione dipende dal valore del parametro t. Intuitivamente, per valori grandi di t il termine dominante nella funzione obiettivo è dato dalla funzione di penalità; quindi, l’algoritmo troverà delle soluzioni x per le quali φ(x) ' 0, ma sarà guidato da una funzione obiettivo molto diversa dalla funzione originale. Viceversa, per t piccoli la funzione obiettivo sarà simile a quella originale, e quindi l’algoritmo fornirà una “buona” approssimazione. Il dominio della funzione φ(x) è costituito dai soli punti interni di S, ossia quelli per cui g(x) < 0. Indipendentemente dal valore di t, la funzione φ cresce velocemente quando x si avvicina alla frontiera di S; l’effetto è quello di alzare una barriera che impedisca di arrivare a punti che si avvicinino troppo alla frontiera di S. Quindi, qualunque algoritmo di ricerca utilizzato per risolvere il problema ausiliario che parta da un punto iniziale interno ad S sarà vincolato a non uscire da S. Quindi, nonostante il problema ausiliario sia definito su tutto l’interno di S, la regione ammissibile che può essere raggiunta è minore di S (per via della barriera). Questo effetto è tanto più evidente quanto più il valore di t è elevato. Dato un valore di t > 0 indichiamo con x∗ (t) la soluzione ottima del problema ausiliario. Per via della barriera, questa soluzione è tale che Ax∗ (t) = b e gi (x∗ (t)) < 0 i = 1, . . . , m Dato che il problema ausiliario è un problema convesso, la soluzione ottima x∗ (t) deve essere un punto KKT, ossia deve esistere un vettore di moltiplicatori ve ∈ Rp tale che ∇p(x∗ (t)) + AT ve = 0 13 M. Monaci - ottimizzazione convessa Pm Ricordando l’espressione di φ si ha ∇φ(x) = i=1 −g1i (x) ∇gi (x) e quindi le condizioni KKT per x∗ (t) diventano m X 1 ∗ ∇f (x (t)) + t ∇gi (x∗ (t)) + AT ve = 0 ∗ (t)) −g (x i i=1 Definendo λ∗i (t) = −t 1 (i = 1, . . . , m) gi (x∗ (t)) e v ∗ (t) = v la condizione KKT può essere riscritta come ∇f (x∗ (t)) + m X λ∗i (t)∇gi (x∗ (t)) + AT v ∗ (t) = 0 (21) i=1 Definiamo il rilassamento lagrangiano del problema (3)–(6) con moltiplicatori λ∗i (t) (per i = 1, . . . , m) e v ∗ (t); si noti che tutti i moltipicatori λ∗i (t) sono positivi, dato che gi (x∗ (t)) < 0 ∀i ∈ I. La funzione obiettivo lagrangiana è definita da L(x; λ∗ (t), v ∗ (t)) = f (x) + m X λ∗i (t)gi (x) + v ∗ T (t)(Ax − b) i=1 Annullando il gradiente della funzione obiettivo lagrangiana, si ottiene la (21) e quindi x∗ (t) è un ottimo del problema lagrangiano. La qualità del lower bound fornito da questa soluzione è stabilita dal seguente teorema. Teorema 8 La soluzione x∗ (t) ha un gap di dualità non superiore a mt. Dim. In base a quanto visto, la tripletta (x∗ (t), λ∗ (t), v ∗ (t)) è un punto di sella e il lower bound lagrangiano associato è pari a `(λ∗ (t), v ∗ (t)) = infn L(x; λ∗ (t), v ∗ (t)) = L(x∗ (t); λ∗ (t), v ∗ (t)) = f (x∗ (t)) − mt x∈R Quindi il duality gap associato alle soluzioni x∗ (t) e (λ∗ (t), v ∗ (t)) è pari a mt (invece che 0, come nelle KKT classiche), ed anche la distanza tra la soluzione x∗ (t) e la soluzione ottima è al massimo mt. È interessante notare come le condizioni KKT per il punto x∗ (t) rispetto al problema ausiliario siano relative all’esistenza di moltiplicatori λ∗ (t) e v ∗ (t) tali che X ∇f (x∗ (t)) + λ∗i (t)∇gi (x∗ (t)) + AT v ∗ (t) = 0 i∈I gi (x∗ (t)) ≤ 0 i∈I ∗ Ax (t) = b λ∗i (t) ≥ 0 i∈I λ∗i (t)gi (x∗ (t)) = −t i∈I Si tratta quindi di condizioni KKT “rilassate” per il problema originale, nelle quali l’entità del rilassamento è pari a −t per ciascuna disuguaglianza. Il risultato appena visto conferma che la bontà della approssimazione ottenuta risolvendo il problema ausiliario cresce al decrescere del valore di t e fornisce uno strumento per determinare il valore di t da utilizzare nella definizione del problema ausiliario. Immaginando di voler ottenere una soluzione ottima con precisione assegnata basterà risolvere il problema (Paux ) per t = /m. 14 M. Monaci - ottimizzazione convessa Purtroppo però per piccolo si devono utilizzare valori piccoli di t, che rendono difficile l’ottimizzazione della funzione p(x). Quello che viene generalmente fatto è utilizzare un procedimento iterativo nel quale si parte da un valore “grande” di t, per ridurlo ad ogni iterazione secondo il seguente schema: tk+1 = µtk , dove µ < 1 è un parametro. Ad ogni iterazione il problema ausiliario viene risolto tramite l’algoritmo di Newton partendo dalla soluzione trovata all’iterazione precedente. È evidente che per valori di µ vicini a 1 si avranno piccoli incrementi del valore della funzione obiettivo ma le singole esecuzioni dell’algoritmo di Newton saranno veloci (si parte sempre da una soluzione vicina all’ottimo). Viceversa, valori elevati di µ comportano un maggior numero di iterazioni dell’algoritmo di Newton ma richiedono meno iterazioni globali. Immaginiamo di partire da un valore iniziale t0 e di decrementare il valore di t ad ogni iterazione di un fattore µ; ad ogni iterazione il gap di dualità diminuisce di un fattore µ. Dopo α iterazioni l’algoritmo utilizza un coefficiente tα = µα t0 e quindi il gap della soluzione è limitato da µαmt0 . Per ottenere una precisione pari a , il numero di iterazioni da effettuare è dato da d log tm0 e logµ Resta da vedere come inizializzare l’algoritmo, ovvero come determinare la soluzione iniziale per la prima iterazione. A tal fine si può applicare una fase 1 nella quale si risolve il seguente problema min s : Ax = b gi (x) ≤ s (i = 1, . . . , m) verificando poi se il valore della soluzione ottima è negativo oppure no. Se la soluzione ottima di questo problema ha valore ≥ 0, allora non esiste nessuna soluzione interna ad S (assunzione violata → il metodo abortisce). In caso contrario, bisogna fissare un valore t0 per inizializzare t. È evidente che un valore troppo grande di t0 si tradurrebbe, alla prima iterazione, in un problema ausiliario difficile da risolvere (tale da richiedere molte iterazioni del metodo di Newton). Spesso, oltre alla soluzione primale, è facile anche determinare una soluzione duale, e quindi è noto un gap di dualità iniziale. In questo caso, il valore di t0 viene scelto in mdoo che il gap duale della prima iterazione sia confrontabile al gap duale associato alla soluzione di partenza. L’insieme di punti {x∗ (tk )}k viene detto il central path, e rappresenta il cammino percorso dall’algoritmo partendo dal punto iniziale per arrivare ad un punto di accumulazione. In ottimizzazione convessa vale il seguente risultato: Teorema 9 Se f (x), g(x) e φ(x) sono continue e convesse su int S, allora ogni punto limite della successione {x∗ (tk )}k generata da un metodo a barriera è un minmo globale del problema originale. Dim. Sia x il punto cui converge la serie {x∗ (tk )}k . Dato che x∗ (tk ) ∈ S ∀k, allora si avrà x ∈ S. Inoltre si ha lim [f (x∗ (tk )) + tk φ(x∗ (tk ))] = f (x) + lim [tk φ(x∗ (tk ))] = f (x). (22) k→∞ k→∞ Per assurdo, sia x∗ ∈ S un punto di minimo globale. Allora, per la continuità della funzione f , x) < f (x). ∃x e ∈ int S tale che f (x∗ ) < f (e Per ogni k si ha f (x∗ (tk )) + tk φ(x∗ (tk )) ≤ f (e x) + tk φ(e x) e quindi per k → ∞ si ha lim [f (x∗ (tk )) + tk φ(x∗ (tk ))] ≤ lim [f (e x) + tk φ(e x)] = f (e x) + lim [tk φ(e x)] = f (e x) k→∞ k→∞ k→∞ (23) Combinando la (22) e la (23) si ottiene f (e x) ≥ lim [f (x∗ (tk )) + tk φ(x∗ (tk ))] ≥ f (x) k→∞ che è in contraddizione con la definizione di x e, e quindi con l’ipotesi di esistenza di x∗ (assurdo). 15 M. Monaci - ottimizzazione convessa Nella pratica l’algoritmo della barriera puro funziona male; questo perchè, ad ogni iterazione, si cerca di risolvere il problema ausiliario in modo ottimo (ossia, si cerca il central path). È stato dimostato (Nesterov e Nemirovski, 1994) che, sotto alcune condizioni, la convergenza è garantita anche considerando, ad ogni iterazione, una soluzione approssimata x e(tk ) del problema ausiliario ∗ k invece della soluzione ottima x (t ). In particolare, esistono alcune funzioni barriera “buone” (inclusa la funzione logaritmo), per le quali è possibile definire un parametro rφ > 1 tale che vale la seguente proprietà. Se • l’aggiornamento del parametro t viene fatto come 1 tk+1 0.1 1 = (1 + √ ) k rφ t e • ad ogni iterazione x e(tk ) è “vicina”a x∗ (tk ) allora l’algoritmo di Newton (inizializzato da x e(tk )) riesce a determinare, in una sola iterazione, k+1 ∗ k+1 una soluzione x e(t ) “vicina”a x (t ). Questo significa che, utilizzando una funzione barriera “buona”, è possibile con poco sforzo arri√ vare ad una buona approssimazione del central path. Inoltre ogni O( rφ ) iterazioni, l’errore di approssimazione diminuisce di un fattore costante. Riferimenti bibliografici [1] A. Agnetis, Introduzione allottimizzazione non vincolata. Dispense disponibili su http://www.dii.unisi.it/~agnetis/ottnonvinc.pdf. [2] S. Boyd e L. Vandenberghe, Convex Optimization. Cambridge University Press [3] M. Fischetti, Lezioni di Ricerca Operativa. Edizioni Libreria Progetto, Padova. [4] L. Grippo e M. Sciandrone, Metodi di Ottimizzazione Non Vincolata. Springer [5] S. Lucidi, Appunti dalle lezioni di RICERCA OPERATIVA. Dispense disponibili su http: //www.dis.uniroma1.it/~lucidi/didattica/Ric-Oper-11-12.pdf. [6] J. Nocedal e S. J. Wright, Numerical Optimization. Springer