Metodi di decomposizione Marco Sciandrone Dipartimento di Ingegneria dell’Informazione Università di Firenze E-mail: [email protected] Sommario In queste note vengono analizzati i principali metodi di decomposizione per l’ottimizzazione non vincolata. Inoltre, per quanto riguarda l’ottimizzazione vincolata, si porrà l’attenzione sui metodi di decomposizione per l’addestramento di Support Vector Machines. Nell’Appendice A1 sono riportati alcuni concetti che riguardano le tecniche di ricerca unidimensionale. In maggiore dettaglio viene analizzato in Appendice A2 il metodo di Armijo, le cui proprietà sono utilizzate per dimostrare la convergenza del metodo di decomposizione di GaussSouthwell (si veda la dimostrazione della Proposizione 4 nel paragrafo 4). Nell’appendice B vengono riportati alcuni risultati tecnici che riguardano il problema di addestramento delle Support Vector Machines formulato come problema di ottimizzazione vincolata. 1 Generalità Consideriamo il problema di minimizzare una funzione f : Rn → R continuamente differenziabile. La principale motivazione per l’impiego di tecniche di decomposizione nell’ottimizzazione non vincolata è che, quando alcune variabili sono fissate, si ottengono sottoproblemi di dimensioni minori e spesso di struttura particolare, tale da consentire l’impiego di tecniche specializzate. Alcuni esempi significativi sono i seguenti. (a) Se n è molto elevato, può essere difficile e, al limite, impossibile, risolvere il problema con gli algoritmi standard, per le limitazioni della “memoria di lavoro” del mezzo di calcolo disponibile; in tal caso il problema assegnato deve essere risolto necessariamente attraverso la soluzione di sottoproblemi di dimensioni inferiori, estraendo di volta in volta i dati occorrenti da una “memoria di massa”. (b) Fissando un gruppo di variabili, si possono talvolta ottenere sottoproblemi separabili nelle variabili rimanenti, risolubili anche attraverso tecniche di calcolo parallelo. (c) In alcuni casi i sottoproblemi ottenuti dalla decomposizione possono essere risolti efficientemente dal punto di vista locale o globale, talora anche per via analitica. In particolare, in alcuni problemi non convessi i sottoproblemi possono risultare convessi rispetto al blocco di variabili ad essi associato e si possono determinare (o approssimare) facilmente gli ottimi globali dei sottoproblemi. Ciò può tradursi in soluzioni complessivamente migliori di quelle ottenibili applicando metodi locali al problema non decomposto. (d) Introducendo opportune variabili ausiliarie e tecniche di penalizzazione, la minimizzazione con metodi incrementali di funzioni obiettivo composite può essere affrontata con metodi di decomposizione rispetto alle variabili. Notiamo tuttavia che la decomposizione può portare sia a difficoltà di stabilire la convergenza globale, sia a far deteriorare la rapidità di convergenza complessiva, rispetto 2 a quella ottenibile con i metodi standard. La convenienza di adottare tecniche di decomposizione va quindi valutata caso per caso, spesso anche attraverso sperimentazioni numeriche. In generale possiamo aspettarci che un metodo di decomposizione, proprio perché opera su blocchi di variabili, richieda un numero di iterazioni maggiore rispetto a quello di un metodo standard. Tuttavia, il tempo di calcolo di ogni singola iterazione del metodo di decomposizione, grazie alla particolare struttura dei sottoproblemi e alla tecnica di soluzione adottata, potrebbe essere notevolmente più basso, per cui il tempo complessivo di calcolo richiesto dal metodo di decomposizione potrebbe essere inferiore. Alcuni esempi che motivano l’impiego di tecniche di decomposizione sono i seguenti. Example 1 Si consideri il problema di minimizzare una funzione obiettivo f della forma f (x) = ψ1 (x1 ) + n X ψi (x1 )φi (xi ) i=2 in cui f : Rn → R, ψi : R → R, per i = 1, . . . , n, φi : R → R, per i = 2, . . . , n. Osserviamo che, fissata la variabile x1 , si ottiene una funzione separabile nelle restanti variabili, che quindi può essere minimizzata in parallelo. Un modello concettuale di decomposizione, in questo caso, ad ogni iterazione k avrebbe la struttura seguente: 1. dato il punto corrente xk , determinata una soluzione x⋆1 del sottoproblema unidimensionale n minx1 ψ1 (x1 ) + X ψi (x1 )φi (xki ), i=2 poni xk+1 1 = x⋆1 ; 2. per i = 2, . . . , n, determina in parallelo le soluzioni x⋆i dei sottoproblemi unidimensionali minxi ψi (xk+1 1 )φi (xi ), poni xk+1 = x⋆i , k = k + 1 e vai al Passo 1. i I vantaggi che l’applicazione di un algoritmo di decomposizione fornirebbe, rispetto all’impiego di un metodo di ottimizzazione standard, sono legati essenzialmente al fatto che ad ogni iterazione vengono risolti n problemi unidimensionali dei quali n − 1 possono essere risolti in parallelo. Example 2 Si consideri il problema di minimi quadrati non lineari 1 minx,y f (x, y) = kΦ(y)x − bk2 , 2 (1) in cui Φ ∈ Rm×n è una matrice dipendente da un vettore di variabili y ∈ Rp , b ∈ Rm . Il vettore “complessivo” delle variabili è quindi x y ! ∈ Rn+p . 3 Si noti che, fissato il vettore y, il sottoproblema nel vettore x è un problema di minimi quadrati lineari che, per quanto visto in capitoli precedenti, può essere risolto efficientemente sia con metodi diretti che iterativi. In questo caso, appare naturale applicare uno schema di decomposizione a due blocchi: 1. dato il punto corrente (xk , y k ), determinata una soluzione x⋆ del sottoproblema di minimi quadrati lineari 1 minx f (x, y k ) = kΦ(y k )x − bk2 , 2 poni xk+1 = x⋆ ; 2. determina una soluzione y ⋆ del sottoproblema di minimi quadrati non lineari 1 miny f (xk+1 , y) = kΦ(y)xk+1 − bk2 , 2 poni y k+1 = y ⋆ , k = k + 1 e vai al Passo 1. Il vantaggio della decomposizione in questo caso deriva dal fatto che ad ogni iterazione occorre risolvere due sottoproblemi, uno dei quali particolarmente “semplice”. Example 3 Si consideri il problema minf (x) = n X (xi − 1)2 + 4 n Y i=1 i=1 xi + n Y x2i . (2) i=1 La funzione obiettivo f : Rn → R non è convessa, ma è strettamente convessa per componenti, ossia, fissando n − 1 componenti di x, la funzione della restante variabile è strettamente convessa. In particolare, la soluzione del generico sottoproblema è determinabile per via analitica essendo il vertice di una parabola. Uno schema di decomposizione particolarmente semplice è il seguente: 1. dato il punto corrente xk , per i = 1, . . . , n determina analiticamente la soluzione x⋆i del sottoproblema quadratico k+1 k+1 k k f (xk+1 min 1 , x2 , . . . , xi−1 , xi , xi+1 , . . . , xn ) x i poni xk+1 = x⋆i . i 2. Poni k = k + 1 e vai al Passo 1. Lo schema concettuale descritto è in effetti un metodo delle coordinate con ricerca di linea esatta. Può essere vantaggioso, oltre che per il fatto che i sottoproblemi sono risolvibili in forma chiusa, anche in termini di ottimizzazione globale, nel senso che le minimizzazioni esatte lungo gli assi coordinati potrebbero aiutare ad uscire da minimi locali non globali. 4 2 Notazioni e tipi di decomposizione Supponiamo che il vettore x ∈ Rn sia partizionato in m ≤ n vettori componenti xi ∈ Rni in modo tale che si abbia m X ni = n i=1 e poniamo x = (x1 , . . . , xi , . . . , xm ). Quando opportuno il valore f (x) viene anche indicato da f (x1 , . . . , xi , . . . , xm ). Indichiamo poi con ∇i f ∈ Rni il gradiente parziale di f rispetto al vettore xi . Ne segue che x∗ è punto stazionario di f , ossia soddisfa ∇f (x∗ ) = 0 se e solo se ∇i f (x∗ ) = 0, i = 1, . . . , m. Gli algoritmi che prenderemo in considerazione generano una successione {xk }, attraverso iterazioni principali (indicizzate da k) all’interno delle quali vengono effettuati opportuni passi elementari (indicizzati da i) che aggiornano le componenti di x. Faremo riferemento nel seguito a due schemi di base sulla interconnessione della sequenza di minimizzazioni parziali: decomposizione di tipo sequenziale e decomposizione di tipo parallelo. Negli algoritmi sequenziali, a partire dal punto xk = (xk1 , . . . , xki , . . . , xkm ) in ogni iterazione principale vengono effettuati, in sequenza, m passi, in ciascuno dei quali viene aggiornato un singolo blocco componente xi , ottenendo il vettore xk+1 . Si generano i cosı̀ i punti: k+1 (xk+1 , . . . , xkm ), i = 1, . . . , m, 1 , . . . , xi e al termine del passo m si avrà quindi k+1 xk+1 = (xk+1 , . . . , xk+1 1 , . . . , xi m ). In corrispondenza all’iterazione k, per i = 1, . . . , m + 1 definiamo i vettori z(k, i) tali che sia z(k, 1) ≡ xk e che per i > 1 il punto z(k, i) rappresenti il vettore in cui sono state aggiornate le componenti 1, . . . , i − 1, mentre la componenti i, i + 1, . . . , m sono rimaste invariate, ossia: k+1 k k k z(k, i) = (xk+1 1 , . . . , xi−1 , xi , xi+1 , . . . , xm ). A partire da z(k, i) supponiamo sia aggiornata la componente i−ma, ottenendo xk+1 , per i cui si puó costruire il vettore k+1 k+1 z(k, i + 1) = (xk+1 , xki+1 , . . . , xkm ). 1 , . . . , xi−1 , xi Al termine della k−ma iterazione si ha quindi xk+1 = z(k, m + 1) = z(k + 1, 1). La Figura 1 si riferisce a una decomposizione sequenziale in m = 3 blocchi. 5 xk z(k, 1) (xk+1 , xk2 , xk3 ) 1 , xk+1 , xk3 ) (xk+1 1 2 z(k, 2) z(k, 3) xk+1 z(k, 4) Figure 1: Decomposizione sequenziale con m = 3 blocchi. Nella decomposizione di tipo parallelo, a partire dal punto xk vengono aggiornati contemporaneamente e indipendentemente per i = 1, . . . , m, i singoli blocchi, ottenendo i vettori componenti di tentativo uk+1 e generando quindi i punti i (xk1 , . . . , uk+1 , . . . , xkm ), i i = 1, . . . , m. Successivamente il punto xk+1 viene costruito per mezzo di qualche regola opportuna a partire da tali punti, ad esempio identificandolo con quello che fornisce il valore migliore della funzione obiettivo. La Figura 2 illustra un caso di decomposizione parallela in m = 3 blocchi. Nei due schemi, l’aggiornamento del blocco i-mo può consistere in - determinazione del punto di minimo globale della funzione obiettivo f rispetto al blocco componente i−mo. - determinazione (eventualmente approssimata) di un punto stazionario rispetto al gradiente parziale ∇i f ; - ricerca unidimensionale lungo una direzione di ricerca dki opportuna; - effettuazione di un passo “nullo” che lascia il blocco invariato. Le condizioni di convergenza globale dipendono, in ciascuno schema di calcolo, dalle ipotesi sulla funzione obiettivo f e dalle ipotesi sulla dipendenza di f dai vari blocchi di variabili. Nel seguito analizzeremo alcune delle strutture più significative. In particolare, come algoritmi di decomposizione sequenziale considereremo: 6 xk (xk1 , xk3 , uk3 ) (uk1 , xk2 , xk3 ) (xk1 , uk2 , xk3 ) xk+1 Figure 2: Decomposizione parallela con m = 3 blocchi. - algoritmi di tipo Gauss-Seidel; - algoritmi di tipo Gauss-Southwell. Per quanto riguarda gli algoritmi di decomposizione parallela, analizzeremo algoritmi di tipo Jacobi. 3 3.1 Metodo di Gauss-Seidel a blocchi ed estensioni Lo schema Uno degli schemi più noti di decomposizione sequenziale, che può essere interpretato come estensione del metodo di Gauss-Seidel per la soluzione di sistemi di equazioni lineari, consiste in una sequenza di minimizzazioni globali rispetto ai singoli blocchi. Nell’ipotesi che i problemi di ottimo considerati ammettano soluzione, possiamo definire l’algoritmo seguente. 7 Metodo di Gauss-Seidel a blocchi (GS) Dati: punto iniziale x0 = (x01 , . . . , x0m ) ∈ Rn . For k = 0, 1, . . . For i = 1, . . . , m calcola k xk+1 ∈ Arg minn f (xk+1 i 1 , . . . , ξ, . . . , xm ). ξ∈R i (3) End For k+1 Poni xk+1 = (xk+1 1 , . . . , xm ) End For Si osservi che il metodo è ben definito solo se i sottoproblemi (3) ammettono soluzione. Per garantire che i sottoproblemi (3) ammettono soluzione è sufficiente assumere che l’insieme di livello L0 sia compatto. Lo schema del metodo di Gauss-Seidel è concettualmente molto semplice, richiede tuttavia di determinare punti di ottimo globale dei sottoproblemi che sequenzialmente vengono considerati. Per ovviare a questa difficoltà sono stati proposti algoritmi di discesa a blocchi. C’è da osservare inoltre che le proprietà di convergenza globale del metodo di GaussSeidel non sono ovvie. Esistono infatti alcuni controesempi di problemi differenziabili con i quali si mette in evidenza che il metodo può generare una sequenza che ammette punti limite, nessuno dei quali è un punto stazionario. Vedremo che proprietà di convergenza globale del metodo di Gauss-Seidel possono essere stabilite: - sotto ipotesi di convessità della funzione obiettivo; - sotto ipotesi di funzione obiettivo strettamente convessa per componenti; - senza alcuna ipotesi di convessità nel caso particolare di m = 2 blocchi. 8 Si osservi che la funzione obiettivo del problema (2) nell’esempio 2 è una funzione non convessa, ma strettamente convessa per componenti, per cui soddisfa le ipotesi di convergenza dell’algoritmo di Gauss-Seidel. Nel caso generale di m > 2 blocchi, sono state proposte delle versioni del metodo di Gauss-Seidel con modifiche di tipo “proximal point” per le quali è possibile garantire la convergenza globale senza alcuna ipotesi di convessità sulla funzione obiettivo. Riportiamo per maggiore chiarezza lo schema dell’Algoritmo di Gauss-Seidel in due blocchi. Metodo di Gauss-Seidel a due blocchi (GS2) Dati: punto iniziale x0 = (x01 , x02 ) ∈ Rn . For k = 0, 1, . . . Calcola xk+1 ∈ Arg min f (ξ, xk2 ). 1 n ξ∈R 1 Calcola xk+1 ∈ Arg min f (xk+1 2 1 , ξ). n ξ∈R 2 k+1 Poni xk+1 = (xk+1 1 , x2 ). End For Proposizione 1 (Convergenza del metodo GS in 2 blocchi) Sia f : Rn → R continuamente differenziabile su Rn e supponiamo che l’insieme di livello L0 sia compatto. Sia {xk } la successione generata utilizzando il metodo GS2. Allora ogni punto di accumulazione di {xk } è un punto stazionario di f . 9 I dettagli tecnici delle dimostrazioni di convergenza non verranno analizzati. Tuttavia è interessante fornire un’idea sull’importanza dell’ipotesi di stretta convessità per componenti. In uno schema di decomposizione di tipo Gauss-Seidel, ad ogni iterazione k, la condizione di ottimalità rispetto a blocchi differenti viene soddisfatta in punti differenti. In particolare abbiamo k k ∇1 f (xk+1 1 , x2 , . . . , xm ) = 0 k+1 k ∇2 f (xk+1 1 , x2 , . . . , xm ) = 0 .. . k+1 k+1 ∇m f (xk+1 1 , x2 , . . . , xm ) = 0. Quindi, per ottenere un risultato asintotico di convergenza globale occorre assicurare che gli m punti k k z(k, 2) = (xk+1 1 , x2 , . . . , xm ) k+1 k z(k, 3) = (xk+1 1 , x2 , . . . , xm ) .. . k+1 k+1 z(k, i + 1) = (xk+1 , xki , . . . , xkm ) 1 , x2 , . . . , xi k+1 k+1 z(k, m + 1) = (xk+1 1 , x2 , . . . , xm ) convergano allo stesso punto di accumulazione. Questo è assicurato se lim kxk+1 − xki k = 0. i k→∞ (4) L’ipotesi di stretta convessità per componenti consente di soddisfare la condizione (4). 3.2 Modifiche del metodo di Gauss-Seidel Vediamo in questo paragrafo due modifiche dello schema di decomposizione di GaussSeidel che introduciamo con differenti motivazioni. La prima modifica riguarda il caso particolare di due blocchi. Osserviamo che l’Algoritmo GS2 richiede, ad ogni iterazione, la soluzione globale di due sottoproblemi. In assenza di ipotesi di convessità questo potrebbe essere in pratica proibitivo. Una variante dell’Algoritmo GS2 che tiene conto di questo aspetto è la seguente. 10 Modifica del metodo di Gauss-Seidel a due blocchi (MGS2) Dati: punto iniziale x0 = (x01 , x02 ) ∈ Rn . For k = 0, 1, . . . Calcola xk+1 ∈ Arg min f (ξ, xk2 ). 1 n ξ∈R 1 Determina un vettore xk+1 tale che 2 k+1 k k+1 f (xk+1 1 , x2 ) ≤ f (x1 , x2 ), k+1 k∇2 f (xk+1 1 , x2 )k = 0. k+1 Poni xk+1 = (xk+1 1 , x2 ). End For Si noti che ad ogni iterazione occorre risolvere un problema di ottimizzazione globale rispetto al primo blocco. Per quanto riguarda il secondo blocco di variabili, è sufficiente determinare un punto stazionario in cui il valore della funzione obiettivo non sia aumentato. Quindi, nell’aggiornamento del secondo blocco di variabili possiamo applicare, in linea di principio, uno qualsiasi dei metodi globalmente convergenti. Vale il risultato di convergenza riportato nella proposizione seguente. Proposizione 2 (Convergenza del metodo a due blocchi MGS2) Sia f : Rn → R continuamente differenziabile su Rn e supponiamo che l’insieme di livello L0 sia compatto. Sia {xk } la successione generata utilizzando il metodo MGS2. Allora ogni punto di accumulazione di {xk } è un punto stazionario di f . Si osservi che lo schema a due blocchi MGS2 si presta ad essere adottato per la soluzione 11 del problema di minimi quadrati non lineari (1). Tale problema si presenta, ad esempio, nell’ambito dell’apprendimento automatico per l’addestramento di reti neurali. La seconda modifica che introduciamo è finalizzata ad ottenere proprietà di convergenza nel caso generale, ossia: - numero di blocchi superiore a due, - f non convessa né strettamente convessa rispetto alle componenti. Una possibilità è quella di modificare il problema di ottimo rispetto alle componenti con l’aggiunta di un termine tipo proximal point che penalizza la grandezza degli scostamenti tra le stime consecutive di uno stesso blocco. Consideriamo l’algoritmo seguente, che è ben definito se i problemi di minimizzazione considerati ammettono soluzione. Metodo GS con modifica proximal point (GSP) Dati: punto iniziale x0 = (x01 , . . . , x0m ) ∈ Rn , τi > 0, i = 1, . . . , m. For k = 0, 1, . . . For i = 1, . . . , m calcola 1 , . . . , ξ, . . . , xkm ) + τi kξ − xki k2 . xk+1 ∈ Arg minn f (xk+1 1 i ξ∈R i 2 End For k+1 Poni xk+1 = (xk+1 1 , . . . , xm ). End For Diamo una giustificazione dell’introduzione del termine tipo proximal point: 1 τi kξ − xki k2 . 2 Come detto in precedenza, la condizione (4) è un requisito che consente di dimostrare la convergenza del metodo di Gauss-Seidel nel caso di m > 2 blocchi. 12 L’introduzione del termine tipo proximal point permette di soddisfare la (4). Infatti, per definizione di xk+1 , abbiamo i 1 1 k k k k 2 k+1 − xki k2 ≤ f (xk+1 f (xk+1 , . . . , xkm ) + τi kxk+1 i 1 , . . . , xi , . . . , xm ) + τi kxi − xi k , 1 , . . . , xi 2 2 da cui segue 1 k+1 k+1 k k f (xk+1 , . . . , xkm ) ≤ f (xk+1 − xki k2 . 1 , . . . , xi 1 , . . . , xi , . . . , xm ) − τi kxi 2 (5) Abbiamo inoltre k+1 k k k f (xk+1 ) ≤ f (xk+1 , . . . , xkm ) ≤ f (xk+1 1 , . . . , xi 1 , . . . , xi , . . . , xm ) ≤ f (x ), (6) per cui, dalla convergenza della sequenza dei valori {f (xk )}, dalla (6) e dalla (5) si ottiene la (4). Nella proposizione successiva si riporta un risultato di convergenza. Proposizione 3 (Convergenza del metodo “proximal point” GSP) Sia f : Rn → R continuamente differenziabile su Rn . Supponiamo che l’Algoritmo GSP sia ben definito e che la successione {xk } generata dall’algoritmo abbia punti di accumulazione. Allora ogni punto di accumulazione di {xk } è punto stazionario di f . 4 Metodo di Gauss-Southwell Nel metodo di Gauss-Southwell, analogamente al metodo di Gauss-Seidel, il vettore delle variabili x è partizionato in m blocchi prefissati x = (x1 , . . . , xi , . . . , xm ), dove xi ∈ Rni , per i = 1, . . . , n. Tuttavia, a differenza del metodo di Gauss-Seidel, il metodo di Gauss-Southwell prevede ad ogni iterazione l’aggiornamento di un solo blocco di variabili. Occorre quindi definire la regola di selezione del blocco di variabili che viene aggiornato alla generica iterazione k. L’idea alla base del metodo di Gauss-Southwell è di selezionare, come blocco di variabili da aggiornare, quello che viola maggiormente le condizioni di ottimalità. In modo formale, all’iterazione k, l’indice i(k) ∈ {1, . . . , m} che individua il blocco di variabili da aggiornare è quello per cui risulta k∇i(k) f (xk )k ≥ k∇j f (xk )k j = 1, . . . , m. Individuato l’indice i(k), si risolve il corrispondente sottoproblema f (xk1 , . . . , ξ, . . . , xkm ). xk+1 i(k) ∈ Arg min n ξ∈R i(k) 13 (7) Metodo di Gauss-Southwell (GSW) Dati: punto iniziale x0 = (x01 , . . . , x0m ) ∈ Rn . For k = 0, 1, . . . Definito i(k) ∈ {1, . . . , m} l’indice per cui vale la (7), calcola f (xk1 , . . . , ξ, . . . , xkm ). xk+1 i(k) ∈ Arg min n ξ∈R i(k) k Poni xk+1 = (xk1 , . . . , xk+1 i(k) , . . . , xm ). End For L’Algoritmo GSW ha proprietà di convergenza globale anche in assenza di ipotesi di convessità. In particolare, vale il risultato che segue. Proposizione 4 (Convergenza del metodo GSW) Sia f : Rn → R continuamente differenziabile su Rn e supponiamo che l’insieme di livello L0 sia compatto. Allora ogni punto di accumulazione della successione {xk } generata dall’Algoritmo GSW è punto stazionario di f . Dim. Le istruzioni dell’algoritmo implicano f (xk+1 ) ≤ f (xk ), per cui la sequenza {xk } appartiene all’insieme compatto L0 e quindi ammette punti di accumulazione. Abbiamo inoltre che la sequenza dei valori di funzione {f (xk )} converge. Dimostriamo la tesi ragionando per assurdo. Supponiamo quindi che esista un sottoinsieme K ⊆ {0, 1, . . . , } tale che lim k∈K,k→∞ xk = x̄, k∇f (x̄)k > 0. (8) Esistono quindi un indice h ∈ {1, . . . , m} e uno scalare η > 0 tali che k∇h f (x̄)k ≥ 2η > 0. 14 (9) Dalla (7) e dalla (9) segue per ogni k ∈ K k∇i(k) f (xk )k ≥ k∇h f (xk )k ≥ η > 0. (10) Poiché i(k) appartiene a un insieme finito, esiste un sottoinsieme di K (che rinominiamo K) tale che i(k) = i⋆ k ∈ K. Per ogni k ∈ K, dalla (10) segue k∇i⋆ f (xk )k ≥ k∇h f (xk )k ≥ η > 0. (11) Si ponga dki⋆ = −∇i⋆ f (xk ) e si definisca la direzione dk in Rn tale che dk = (0, . . . dki⋆ , . . . , 0). Per ogni k ∈ K risulta ∇f (xk )T dk = −k∇i⋆ f (xk )k2 < 0, per cui dk è una direzione di discesa per f in xk . Sia αk il passo lungo dk determinato con il metodo di Armijo, per cui risulta f (xk + αk dk ) < f (xk ). (12) Le istruzioni dell’algoritmo implicano ∈ arg min f (xk1 , . . . , xi⋆ , . . . , xkm ), xk+1 i⋆ x i⋆ da cui segue che, comunque si scelga un passo β ∈ R e un sottovettore di⋆ ∈ Rni⋆ , risulta k k k k f (xk+1 ) = f (xk1 , . . . , xk+1 i⋆ , . . . , xm ) ≤ f (x1 , . . . , xi⋆ + βdi⋆ , . . . , xm ). Di conseguenza, utilizzando la definizione della direzione dk e la (12), possiamo scrivere f (xk+1 ) ≤ f (xk1 , . . . , xki⋆ + αk dki⋆ , . . . , xkm ) = f (xk + αk dk ) < f (xk ), da cui si ottiene, tenendo conto della convergenza di {f (xk )}, lim k∈K,k→∞ f (xk ) − f (xk + αk dk ) = 0. Dalle proprietà del metodo di Armijo (si veda la Proposizione 12 in Appendice A2) segue ∇f (xk )T dk = lim k∇i⋆ f (xk )k = k∇i⋆ f (x̄)k = 0. k∈K,k→∞ k∈K,k→∞ kdk k lim Dalla (11) otteniamo quindi k∇h f (x̄)k = 0, che contraddice la (9). ✷ 15 5 Decomposizione con sovrapposizione dei blocchi In tutti gli schemi visti finora i blocchi di variabili sono predefiniti e ogni variabile appartiene a uno e un solo blocco. Per maggiore generalità si può pensare a schemi di decomposizione in cui: - la decomposizione in blocchi può variare da una iterazione all’altra; - ci possono essere stesse variabili che, in iterazioni successive, appartengono a blocchi differenti, avendo in tal modo sovrapposizione dei blocchi. Per tenere conto delle possibilità sopra citate, adotteremo un formalismo diverso rispetto a quello finora considerato e definiremo uno schema generale di decomposizione. In una strategia di decomposizione, ad ogni iterazione k, il vettore delle variabili xk è partizionato in due sottovettori (xkW k , xk k ), dove W k ⊂ {1, . . . , n} identifica le variabili W k che vengono aggiornate ed è denominato working set, e W = {1, . . . , n} \ W k identifica le restanti componenti del vettore delle variabili che non vengono modificate. A partire dalla soluzione corrente xk = (xkW k , xk k ), il sottovettore xk+1 W k è determinato W calcolando la soluzione del sottoproblema minxW k f (xW k , xk k ) (13) W k+1 k Il sottovettore xk+1 k , e la soluzione corrente viene k non viene modificato, cioè x k = x W W k+1 aggiornata ponendo xk+1 = (xk+1 W k , x k ). W W Esempio. Si consideri un problema con n = 6 variabili. Sia all’iterazione k W k = {2, 5} k W = {1, 3, 4, 6}. Il sottoproblema (13) è nel caso specifico minx2 ,x5 f (xk1 , x2 , xk3 , xk4 , x5 , xk6 ) ✷ Passiamo ora a definire in modo formale uno schema generale di decomposizione. 16 Metodo generale di decomposizione (DEC). Data. Punto iniziale x0 ∈ Rn . Inizializzazione. Poni k = 0. While ( il criterio d’arresto non è soddisfatto) 1. seleziona il working set W k ; 2. Determina una soluzione x⋆W k del problema (21); ⋆ xi 3. poni xk+1 = i xki se i ∈ W k altrimenti; 4. poni k = k + 1. end while Le proprietà di convergenza dello schema presentato dipendono dalla regola di selezione del working set. Possiamo in particolare fornire delle regole che dànno luogo a estensioni degli algoritmi di Gauss-Seidel e di Gauss-Southwell precedentemente analizzati. La prima regola richiede essenzialmente che entro un numero massimo di iterazioni successive ogni variabile xj , con j ∈ {1, . . . , n}, sia una delle variabili del sottoproblema (13). In modo formale definiamo la regola nel modo seguente. Regola di selezione WS1. Esiste un intero M > 0 tale che, per ogni k ≥ 0 e per ogni j ∈ {1, . . . , n}, esiste un indice j(k), con 0 ≤ j(k) ≤ M , tale che j ∈ W k+j(k) . È immediato verificare che la regola WS1 definisce, come caso particolare, l’Algoritmo di Gauss-Seidel. Ai fini della convegenza occorre garantire che kxk+1 − xk k → 0 per k → ∞. Questo può essere assicurato, ad esempio, sotto ipotesi di stretta convessità per componenti della funzione obiettivo (oppure introducendo delle modifiche di tipo “proximal point”). Proposizione 5 Sia f : Rn → R continuamente differenziabile su Rn e assumiamo che sia strettamente convessa rispetto a un qualsiasi sottoinsieme di componenti di x quando le altre componenti sono fissate. Supponiamo che l’insieme di livello L0 sia compatto. Sia {xk } la successione generata utilizzando il metodo DEC con regola di selezione del working set WS1. Allora ogni punto di accumulazione di {xk } è punto stazionario di f . 17 La seconda regola di selezione del working set impone che ad ogni iterazione k sia inserito nel working set l’indice corrispondente alla variabile che viola maggiormente le condizioni di ottimalità, ossia l’indice cui corrisponde la componente del gradiente in valore assoluto più grande. Regola di selezione WS2. Per ogni k ≥ 0, denotato con i(k) ∈ {1, . . . , n} l’indice tale che |∇i(k) f (xk )| ≥ |∇j f (xk )| j = 1, . . . , n, deve risultare i(k) ∈ W k . Si può facilmente verificare che la regola WS2 definisce, come caso particolare, l’Algoritmo di Gauss-Southwell. La convergenza può essere garantita anche senza ipotesi di convessità della funzione obiettivo. Proposizione 6 Sia f : Rn → R continuamente differenziabile su Rn e supponiamo che l’insieme di livello L0 sia compatto. Sia {xk } la successione generata utilizzando il metodo DEC con regola di selezione del working set WS2. Allora ogni punto di accumulazione di {xk } è punto stazionario di f . 6 Metodo di Jacobi In questo paragrafo analizzeremo un metodo di decomposizione di tipo parallelo, in cui il vettore delle variabili x è partizionato in m blocchi prefissati x = (x1 , . . . , xi , . . . , xm ), dove xi ∈ Rni , per i = 1, . . . , n. Uno schema di decomposizione di tipo parallelo si può definire supponendo che, a partire dal punto xk , vengano aggiornati contemporaneamente e indipendentemente per i = 1, . . . , m, i singoli blocchi, ottenendo i vettori componenti di tentativo uk+1 , e i generando cosı̀ i punti w(k, i) definiti ponendo w(k, i) = (xk1 , . . . , uk+1 , . . . , xkm ), i i = 1, . . . , m. I punti w(k, i) possono essere determinanti con un qualsiasi algoritmo non vincolato (minimizzando globalmente rispetto a ciascuna componente). Il punto xk+1 deve essere quindi costruito per mezzo di qualche regola opportuna a partire da tali punti, in modo da garantire il soddisfacimento di qualche condizione di convergenza globale. Si può, ad esempio, scegliere xk+1 coincidente con il punto w(k, i∗ ) tale che f (w(k, i∗ )) = min {f (w(k, i))}. 1≤i≤m 18 In particolare, si può costruire un algoritmo di globalizzazione relativo a una versione non lineare del metodo di Jacobi. Metodo modificato di Jacobi Dati: punto iniziale x0 = (x01 , . . . , x0m ) ∈ Rn . For k = 0, 1, . . . For i = 1, . . . , m 1. Calcola ui ∈ Arg minn f (xk1 , . . . , ξ, . . . , xkm ). ξ∈R i 2. Poni w(k, i) = (xk1 , . . . , ui , . . . , xkm ). End For Determina i∗ tale che f (w(k, i∗ )) = min {f (w(k, i))}. 1≤i≤m Poni xk+1 = w(k, i∗ ). End For Possiamo enunciare e dimostrare un risultato di convergenza globale senza richiedere ipotesi di convessità della funzione obiettivo. Proposizione 7 Sia f : Rn → R continuamente differenziabile su Rn e supponiamo che l’insieme di livello L0 sia compatto. Sia {xk } la successione generata utilizzando il metodo modificato di Jacobi. Allora ogni punto di accumulazione di {xk } è punto stazionario di f. 19 7 Cenni su metodi di decomposizione per problemi con vincoli di box Si consideri il problema minx∈Rn f (x) (14) l ≤ x ≤ u, n dove f : R → R è una funzione continuamente differenziabile, l, u ∈ Rn . Il metodo di Gauss-Seidel a blocchi si estende facilmente al caso di problema del tipo (14), in cui l’insieme ammissibile è definito come il prodotto cartesiano di insiemi convessi e chiusi. Per semplicità di esposizione consideriamo una decomposizione in n blocchi, dove n è il numero di variabili, ossia poniamo x = (x1 , . . . , xi , . . . , xn ) , con xi ∈ R, per i = 1, . . . , n, la k−esima iterazione del metodo di Gauss-Seidel assume la forma seguente For i = 1, . . . , m calcola k xk+1 ∈ Arg min f (xk+1 i 1 , . . . , ξi , . . . , xn ). li ≤ξi ≤ui (15) End For I risultati di convergenza del metodo sono analoghi a quelli del caso non vincolato. Alcune differenze emergono nell’estensione del metodo di Gauss-Southwell. Queste differenze sono dovute al fatto che il metodo di Gauss-Southwell si basa sulle condizioni di ottimalità per la selezione della variabile da aggiornare ad ogni iterazione. In particolare, viene selezionata la variabile che viola maggiormente le condizioni di ottimalità. Si osservi che per il problema (14) possono essere utilizzate in linea di principio due condizioni generali di ottimalità dell’ottimizzazione convessa, ossia la condizione ∇f (x̄)T (x − x̄) ≥ 0 ∀x : l ≤ x ≤ u, (16) e la condizione x̄ = P [x − s∇f (x̄)], (17) dove P è l’operatore di proiezione e s uno scalare > 0. Tuttavia, potrebbe anche essere utilizzata la condizione di ottimalità specifica dei problemi con vincoli di box, ossia la condizione ≥ 0 se x̄i = li ∂f (x̄) = 0 se li < x̄i < ui (18) ∂xi ≤ 0 se x̄i = ui 20 In relazione alla condizione (18), si introduce il gradiente ridotto ∇red f (x̄) la cui i−esima componente è min{0, ∇i f (x̄)} se x̄i = li ∇i f (x̄) se li < x̄i < ui ∇red f (x̄) = i max{0, ∇i f (x̄)} se x̄i = ui da cui segue che x̄ è un punto critico se e solo se ∇red f (x̄) = 0. (19) In linea di principio possono qundi essere definite tre versioni differenti del metodo di Gauss-Southwell, corrispondenti alle differenti condizioni di ottimalità. Queste condizioni di ottimalità sono tra loro equivalenti, tuttavia possono dare luogo a selezioni differenti di variabili da aggiornare nelle varie iterazioni. In particolare, denotati con xk il punto corrente, e con i(k) l’indice corrispondente alla variabile che viola maggiormente la condizione di ottimalità, abbiamo tre possibilità: (i) se si utilizza la condizione (16), si calcola il punto di “Frank-Wolfe” x̂k ∈ arg min ∇f (xk )T x, l≤x≤u e si seleziona l’indice i(k) come segue i(k) ∈ arg min {∇i f (xk )(x̂ki − xki )}; 1≤i≤n (ii) se si utilizza la condizione (17), si seleziona l’indice i(k) come segue i(k) ∈ arg max {|xki − P [xki − ∇i f (xk )]|}; 1≤i≤n (iii) se si utilizza la condizione (19), introdotto il gradiente ridotto ∇red f (xk ), si seleziona l’indice i(k) come segue k i(k) ∈ arg max {|∇red i f (x )|}. 1≤i≤n La k−esima iterazione del metodo di Gauss-Southwell assume la forma seguente Definito l’indice i(k) (con una delle 3 regole (i)-(iii)), calcola k+1 k xk+1 i(k) ∈ Arg min f (x1 , . . . , ξi , . . . , xm ). li ≤ξi ≤ui 21 (20) 8 Il problema di addestramento di Support Vector Machines Le Support Vector Machines (SVM) costituiscono una classe di “macchine di apprendimento” che traggono origine da concetti riguardanti la teoria statistica dell’apprendimento. Nel caso di insiemi linearmente separabili, l’idea alla base delle SVM è di costruire un iperpiano di separazione (denominato iperpiano ottimo) che massimizzi il margine di separazione dagli elementi delle due classi. Questa tecnica di separazione è motivata da alcuni risultati della teoria statistica dell’apprendimento, in base ai quali, l’errore sui dati di test (cioè l’errore di generalizzazione) di una macchina di apprendimento è limitato superiormente dalla somma dell’errore sui dati di training e di un termine che dipende dalla Vapnik-Chervonenkis (VC) dimension, che è una misura della capacità di classificazione della famiglia di funzioni realizzata dalla macchina di apprendimento. Nel caso di insiemi linearmente separabili, l’iperpiano ottimo definisce una superficie di separazione che fornisce un errore di training nullo e minimizza il secondo termine dipendente dalla VC dimension. Di conseguenza, le SVM possono presentare buone proprietà di generalizzazione in problemi di classificazione. La tecnica di apprendimento delle SVM si può estendere al caso di insiemi non linearmente separabili, e al caso di problemi di approssimazione. Approfondimenti sulle SVM possono essere trovati nella dispensa ad esse dedicata. Nelle brevi note della dispensa, gli aspetti riguardanti la teoria statistica dell’apprendimento non vengono analizzati. Viene invece mostrato che il problema di addestramento di SVM è riconducibile, mediante la teoria della dualità, ad un problema di programmazione quadratica convessa con vincoli lineari (l’insieme dei vincoli è costituito da un vincolo lineare e da vincoli di box). Poichè tale problema è denso e, in molte applicazioni, di dimensione elevata, gli algoritmi di addestramento proposti i letteratura si basano sull’impiego di tecniche di decomposizione, che analizzeremo nel seguito. La formulazione del problema di addestramento (nel caso di classificazione) di una SVM è la seguente min f (x) = 1 T x Qx 2 t.c. aT x = 0 − eT x (21) 0 ≤ x ≤ C, dove x ∈ Rn (n è il numero di dati di addestramento), Q è una matrice n × n simmetrica e semidefinita positiva, e ∈ Rn è il vettore i cui elementi sono pari a uno, a ∈ {−1, 1}n (il vettore a contiene le etichette dei dati che individuano la classe di appartenenza) e C è uno scalare positivo. Il generico elemento qij della matrice Q è ai aj k(xi , xj ), dove k(x, z) = φ(x)T φ(z) è la funzione kernel associata all’applicazione φ dallo spazio di ingresso al feature space. La matrice Hessiana Q è una matrice densa e la sua memorizzazione diventa proibitiva 22 per problemi di dimensione elevata, cioè per problemi in cui il numero l di dati di addestramento è elevato. Gli algoritmi che prenderemo in considerazione per la soluzione del problema (21) sono algoritmi di decomposizione, che non richiedono la memorizzazione della matrice Hessiana Q. In uno schema generale di decomposizione, ad ogni iterazione k, il vettore delle variabili k k x è partizionato in due sottovettori (xkW , xW ), dove W ⊂ {1, . . . , n} identifica le variabili del sottoproblema che deve essere risolto ed è denominato working set, e W = {1, . . . , n} \ W (per non appesantire la notazione la dipendenza di W e W dal contatore di iterazioni k è omessa). k A partire dalla soluzione corrente xk = (xkW , xW ), che è un punto ammissibile, il k+1 sottovettore xW è determinato calcolando la soluzione del sottoproblema min f (xW , xkW ) x W k aTW xW = −aTW xW (22) 0 ≤ xW ≤ C. k+1 non viene modificato, cioè xW = xkW , e la soluzione corrente viene Il sottovettore xk+1 W k+1 aggiornata ponendo xk+1 = (xk+1 W , xW ). Osservazione. La cardinalità q del working set, cioè la dimensione del sottoproblema, deve essere necessariamente maggiore o uguale a 2, perchè altrimenti, per la presenza del vincolo lineare di uguaglianza, si avrebbe xk+1 = xk . Infatti, con q = 1 e W = {i}, se xk è un punto ammissibile abbiamo k ai xki = −aTW xW e affinchè anche xk+1 sia ammissibile deve risultare T k ai xk+1 = −aW xW i e quindi xk+1 = xk . ✷ La regola di selezione del working set è importante per assicurare proprietà di convergenza della sequenza {xk }. Riportiamo di seguito uno schema generale di algoritmo di decomposizione. 23 Schema di decomposizione Dati. Un punto ammissibile x0 (in genere x0 = 0). Inizializzazione. Poni k = 0. While ( il criterio d’arresto non è soddisfatto) 1. seleziona il working set W k secondo una regola di Working Set Selection (WSS); 2. poni W = W k e determina una soluzione x∗W del problema (21); 3. poni xk+1 i ∗ xi = xki se i ∈ W altrimenti; 4. poni k = k + 1. end while Return x∗ = xk 9 Algoritmi di decomposizione di tipo SMO Gli algoritmi di decomposizione usualmente utilizzati sono quelli in cui il working set ha cardinalità pari a 2. Questi algoritmi sono detti di tipo “Sequential Minimal Optimization” (SMO), perché effettuano sequenzialmente l’ottimizzazione “minimale”, ossia rispetto a 2 variabili. Ad ogni iterazione in un algoritmo di tipo SMO occorre risolvere un sottoproblema in due variabili quadratico e convesso: qii qij T 1 xi xj min q(xi , xj ) = 2 qji qjj t.c. xi xj ! − xi − xj (23) ai x i + aj x j = 0 0 ≤ xh ≤ C h = i, j È importante osservare che la soluzione di un sottoproblema a due variabili del tipo (23) può essere ottenuta con una regola molto semplice (verrà mostrato in appendice), e ciò motiva l’interesse nella definizione di metodi di decomposizione basati sull’aggiornamento, ad ogni iterazione, di due variabili. 24 Dobbiamo ora analizzare la strategia di selezione ad ogni iterazione k delle due variabili del sottoproblema 23. La strategia di selezione deve essere tale che, con la soluzione del corrispondente sottoproblema in due variabili, si ottenga un punto xk+1 in cui il valore della funzione obiettivo sia strettamente diminuito rispetto a quello nel punto corrente xk . Il nuovo punto xk+1 è ottenuto con l’aggiornamento di due sole variabili, indicate con xi e xj , per cui abbiamo xk+1 = xk1 , . . . , xk+1 , . . . , xk+1 , . . . , xkn . i j Si osservi che: (24) (i) il nuovo punto xk+1 deve essere ammissibile; (ii) se xk non è soluzione, si vuole che nel nuovo punto risulti f (xk+1 ) < f (xk ). Le osservazioni (i) e (ii) e la (24) portano a porre l’attenzione su direzioni ammissibili (oss. (i)) e di discesa (oss. (ii)) con solo 2 componenti diverse da zero (si veda la (24)). Nel seguito quindi analizzeremo direzioni di questo tipo che sono alla base delle strategie di decomposizione per il problema considerato. Si consideri l’insieme ammissibile del problema (21) denotato con F, cioè F = {x ∈ Rl : aT x = 0, 0 ≤ x ≤ C}. Per ogni punto ammissibile x, denotiamo gli insiemi degli indici (lower e upper) dei vincoli di box attivi L(x) = {i : xi = 0}, U (x) = {i : xi = C}. L’insieme delle direzioni ammissibili in un punto x ∈ F è il seguente cono D(x) = {d ∈ Rl : aT d = 0, di ≥ 0, ∀ i ∈ L(x), e di ≤ 0, ∀ i ∈ U (x)}. Infatti, se d è una direzione ammissibile in x ∈ F, allora per t sufficientemente piccolo deve risultare aT (x + td) = 0, da cui segue aT d = 0. Inoltre, x + td ≥ 0, x + td ≤ C, da cui segue di ≥ 0 se xi = 0, di ≤ 0 se xi = C. e 25 Dato un punto x̄ ∈ F, vogliamo definire direzioni ammissibili in x̄ con solo due componenti di e dj diverse da zero. Dovendo risultare ai di + aj dj = 0, poniamo di = 1 ai dj = − 1 . aj Inoltre: - se i ∈ L(x̄), ossia x̄i = 0, deve risultare di ≥ 0, ossia deve essere ai > 0; - se i ∈ U (x̄), ossia x̄i = C, deve risultare di ≤ 0, ossia deve essere ai < 0; - se j ∈ L(x̄), ossia x̄j = 0, deve risultare dj ≥ 0, ossia deve essere aj < 0; - se j ∈ U (x̄), ossia x̄j = C, deve risultare dj le0, ossia deve essere aj > 0. Si osservi che se 0 < x̄i < C, non ci sono vincoli sul segno di di (e quindi sul segno di ai ). Analogamente, se 0 < x̄j < C, non ci sono vincoli sul segno di dj (e quindi sul segno di aj ). Le considerazioni precedenti portano a partizionare gli insiemi L e U nei sottoinsiemi L− , L+ , e U − , U + rispettivamente, dove L+ (x) = {i ∈ L(x) : ai > 0}, L− (x) = {i ∈ L(x) : ai < 0} U + (x) = {i ∈ U (x) : ai > 0}, U − (x) = {i ∈ U (x) : ai < 0}. Si noti che se: - i appartiene a L+ oppure a U − , e - j appartiene a L− oppure a U + , allora la corrispondente direzione di,j è ammissibile in x̄. Al fine di caratterizzare le direzioni ammissibili (a due componenti diverse da zero) nel punto x̄, definiamo i seguenti insiemi di indici R(x̄) = L+ (x̄) ∪ U − (x) ∪ {i : 0 < x̄i < C} (25) S(x̄) = L− (x̄) ∪ U + (x̄) ∪ {i : 0 < x̄i < C}. Si osservi che R(x̄) ∩ S(x̄) = {i : 0 < x̄i < C} R(x̄) ∪ S(x̄) = {1, . . . , n}. I due insiemi di indici R e S consentono di definire tutte e sole le direzioni ammissibili a due componenti diverse da zero, come mostrato nella proposizione successiva. 26 Proposizione 8 Sia x̄ un punto ammissibile e sia (i, j) ∈ {1, . . . , n}, i 6= j, una coppia di indici. Allora la direzione di,j ∈ Rn tale che di,j h 1/ai = −1/aj 0 se h = i se h = j altrimenti (i) è una direzione ammissibile nel punto x̄ se e solo se i ∈ R(x̄) e j ∈ S(x̄); (ii) la direzione di,j è una direzione di discesa per f in x̄ se e solo se (∇f (x̄))i (∇f (x̄))j − < 0. ai aj (26) Dim. (ia) Assumiamo che di,j sia ammissibile. Mostreremo che necessariamente i ∈ R(x̄) e j ∈ S(x̄). Supponiamo per assurdo che i ∈ R(x̄) e j ∈ / S(x̄), cioè j ∈ L+ (x̄) ∪ U − (x̄). + Se j ∈ L (x̄) allora x̄j = 0 e aj = 1, per cui dj < 0 e quindi di,j non è una direzione ammissibile, perché risulta x̄j + tdj < 0 ∀t > 0. Analogamente, se j ∈ U − (x̄) allora x̄j = C e aj = −1, per cui dj > 0 e quindi di,j è una direzione ammissibile. (ib) Assumiamo che i ∈ R(x̄) e j ∈ S(x̄). Occorre dimostrare che la direzione di,j è tale che aT di,j = 0 e di,j e di,j h ≥ 0 ∀h ∈ L(x̄) h ≤ 0 ∀h ∈ U (x̄). i,j Dalla definizione di di,j segue immediatamente aT d = ai di,j i + aj dj = 0. Inoltre, abbiamo i ∈ R(x̄), e quindi se i ∈ L(x̄), allora la (25) implica i ∈ L+ (x̄), ossia di = 1/ai > 0. Analogamente, abbiamo j ∈ S(x̄), e quindi se j ∈ U (x̄), allora j ∈ U + (x̄), ossia dj = −1/aj < 0. Le stesse conclusioni possono essere tratte nel caso in cui i ∈ U (x̄) e j ∈ L(x̄). (ii) Poichè la funzione f è convessa e continuamente differenziabile la condizione ∇f (x̄)T di,j = (∇f (x̄))i (∇f (x̄))j − <0 ai aj è condizione necessaria e sufficiente affinchè di,j sia una direzione di discesa per f in x̄. ✷ Se la coppia di indici (i, j) definisce una direzione di,j ammissibile e di discesa nel punto corrente xk , allora la minimizzazione rispetto alla coppia di variabili xi e xj produrrà uno stretto decremento della funzione obiettivo. Sulla base di questa osservazione e della Proposizione 8 definiamo lo schema formale di un algoritmo di tipo SMO. 27 Algoritmo SMO Dati. Il punto iniziale x0 = 0 e il gradiente ∇f (x0 ) = e. Inizializzazione. Poni k = 0. While ( il criterio d’arresto non è soddisfatto) 1. seleziona i ∈ R(xk ), j ∈ S(xk ), tali che ∇f (xk )T di,j < 0, e poni W = {i, j}; 2. determina una soluzione x∗ = x⋆i ∗ xi 3. poni xk+1 = x∗j h xkk per h = i x⋆j T del problema (23); per h = j altrimenti; 4. poni ∇f (xk+1 ) = ∇f (xk ) + (xk+1 − xki )Qi + (xk+1 − xkj )Qj ; i j 5. poni k = k + 1. end while Return x∗ = xk Si noti che lo schema descritto genera una sequenza {xk } tale che f (xk+1 ) < f (xk ). (27) Inoltre, non richiede la memorizzazione di matrici nella dimensione del problema, e questa è la motivazione che giustifica l’impiego di tecniche di decomposizione. Lo schema richiede la memorizzazione di un vettore di dimensione n (il gradiente ∇f (xk )) e l’estrazione di due colonne, Qi e Qj , della matrice Q. La regola di aggiornamento del gradiente deriva dal fatto che la funzione obiettivo è quadratica per cui risulta ∇f (xk+1 ) = Qxk + Q xk+1 − xk − e = ∇f (xk ) + Q xk+1 − xk . La scelta del punto inziale x0 = 0 deriva dal fatto che questo punto, oltre ad essere ammissibile, è tale che il calcolo del gradiente ∇f (x0 ) non richiede alcun elemento della 28 matrice Q, essendo ∇f (0) = −e. Osserviamo che la condizione (27) non è sufficiente per garantire la convergenza dello schema di algoritmo SMO. Per assicurare proprietà di convergenza occorre introdurre ulteriori regole di selezione del working set. Ad esempio, regole di tipo “Gauss-Southwell” basate sulla violazione delle condizioni di ottimalità, come descritto nel paragrafo successivo. 9.1 L’Algoritmo SVMlight L’Algoritmo SVMlight è l’algoritmo di decomposizione di tipo SMO che presenta proprietà di convergenza e che usualmente viene utilizzato per la soluzione di problemi di addestramento di SVM di dimensione elevata In corrispondenza di un punto ammissibile x, abbiamo già introdotto i due insiemi R(x) = L+ (x) ∪ U − (x) ∪ {i : 0 < xi < C} (28) − + S(x) = L (x) ∪ U (x) ∪ {i : 0 < xi < C}. Gli insiemi di indici R e S consentono di definire condizioni di ottimalità per il problema (21) definite nella proposizione seguente, la cui dimostrazione completa e rigorosa è riportata in Appendice B2. Qui ci limitiamo a riportare l’idea della dimostrazione che si basa sulle condizioni di ottimalità di Karush-Kuhn-Tucker (KKT). Proposizione 9 Un punto ammissibile x∗ tale che R(x⋆ ) e S(x⋆ ) sono entrambi non vuoti è soluzione del problema (21) se e solo se max i∈R(x⋆ ) ( (∇f (x⋆ ))i − ai ) ≤ min⋆ j∈S(x ) (∇f (x⋆ ))j . − aj ( ) (29) Sketch di dimostrazione. Il problema considerato ha funzione obiettivo convessa e vincoli lineari, per cui le condizioni KKT sono necessarie e sufficienti. Si consideri la funzione Lagrangiana ˆ = f (x) + λaT x − ξ T a + ξˆT (x − C). L(x, λ, ξ, ξ) Le condizioni KKT sono le seguenti ∇i f (x⋆ ) + λ⋆ ai − ξi⋆ + ξi⋆ = 0 ξi⋆ x⋆i = 0 ξˆi⋆ (x⋆i − C) = 0 ξ ⋆ , ξˆ⋆ ≥ 0. i i 29 Dalle precedenti condizioni segue immediatamente if i ∈ L(x∗ ) (∇f (x ))i + λ ai ≤ 0 if i ∈ U (x∗ ) = 0 if i ∈ / L(x∗ ) ∪ U (x∗ ), ∗ ∗ ≥ 0 da cui otteniamo, tenendo conto del segno di ai , ≥0 ≥ 0 if if (∇f (x∗ ))i + λ∗ ≤ 0 if ai ≤ 0 if = 0 if i ∈ L+ (x∗ ) i ∈ U − (x∗ ) i ∈ L− (x⋆ ) i ∈ U + (x∗ ) i∈ / L(x∗ ) ∪ U (x∗ ), Possiamo quindi scrivere − (∇f (x∗ ))i ≤ λ⋆ ai ∀i ∈ L+ (x⋆ ) ∪ U − (x⋆ ) (∇f (x∗ ))i ai ∀i ∈ L− (x⋆ ) ∪ U + (x⋆ ) λ⋆ ≤ − (∇f (x∗ ))i ∀i ∈ / L(x⋆ ) ∪ U (x⋆ ). ai Dalle precedenti relazioni e dalle definizioni degli insiemi di indici R e S segue la condizione (29). ✷ λ⋆ = Descriviamo di seguito la versione dell’Algoritmo SVMlight in cui la dimensione q del working set è pari a 2. Come anticipato, questo algoritmo utilizza una regola di selezione del working set di tipo “Gauss-Southwell”, ossia una regola basata sulla “massima violazione” delle condizioni di ottimalità della Proposizione 9. Preliminarmente introduciamo, in corrispondenza di un generico punto ammissibile x, i due insiemi di indici ( ) (∇f (x))h I(x) = i : i = argmax − , h∈R(x) ah ( ) (∇f (x))h J(x) = j : j = argmin − . (30) h∈S(x) ah Osserviamo che: • gli insiemi di indici I(x) e J(x) sono ben definiti se entrambi gli insiemi R(x) e S(x) sono non vuoti; • se uno dei due insiemi R(x), S(x) è vuoto allora dalla Proposizione 16 (si veda l’Appendice B2) segue che x è soluzione ottima; si osservi che questa evenienza può verificarsi solo nel punto x = 0; 30 • se x non è soluzione ottima allora dalla Proposizione 9 segue che max h∈R(x) ( (∇f (x))h − ah ) ( ) (∇f (x))h > min − ; h∈S(x) ah • se x non è soluzione allora - una direzione di,j ∈ Rn , con i ∈ I(x) e j ∈ J(x), è una direzione ammissibile e di discesa per f in x (segue dalla proposizione 8); infatti, si ha i ∈ R(x), j ∈ S(x), (∇f (x))i (∇f (x))j − + > 0; ai aj - tra tutte le direzioni ammissibili e di discesa aventi due componenti diverse da zero e uguali a +1 e/o -1 è quella (eventualmente non l’unica) con derivata direzionale minore. Infatti, per ogni s ∈ R(x) e t ∈ S(x) abbiamo − (∇f (x))i ai ≥− (∇f (x))s as − (∇f (x))j aj ≤− (∇f (x))t , at da cui segue ∇f (x)T di,j ≤ ∇f (x)T ds,t . Quindi la coppia di indici (i, j) con i ∈ I(x) e j ∈ J(x) individua, tra tutte le direzioni ammissibili e di discesa aventi due componenti diverse da zero e uguali a +1 e/o -1, quella di “massima discesa”. • la coppia di indici (i, j) con i ∈ I(x) e j ∈ J(x) definisce la coppia di variabili che viola maggiormente le condizioni di ottimalità, ed è quindi denominata ”maximum violating pair“. Sulla base di queste osservazioni possiamo introdurre l’Algoritmo SVMlight . 31 Algoritmo SVMlight Dati. Il punto iniziale x0 = 0 e il gradiente ∇f (x0 ) = e. Inizializzazione. Poni k = 0. While ( il criterio d’arresto non è soddisfatto) 1. seleziona i ∈ I(xk ), j ∈ J(xk ), e poni W = {i, j}; 2. determina una soluzione x∗ = x⋆i ∗ xi 3. poni xk+1 = x∗j h xkk per h = i x⋆j T del problema (23); per h = j altrimenti; − xkj )Qj ; 4. poni ∇f (xk+1 ) = ∇f (xk ) + (xk+1 − xki )Qi + (xk+1 j i 5. poni k = k + 1. end while Return x∗ = xk Si osservi che l’algoritmo può essere definito di tipo ”Gauss-Southwell“, in quanto la regola di selezione del working set individua la coppia di variabili che viola maggiormente le condizioni di ottimalità della Proposizione 9. Per quanto riguarda le proprietà di convergenza dell’algoritmo, vale il seguente risultato la cui dimostrazione è molto tecnica ed è stata omessa. Proposizione 10 Si assuma che la matrice Q sia simmetrica e semidefinita positiva e sia {xk } la sequenza generata dall’ Algoritmo SVMlight . Ogni punto limite della sequenza {xk } è soluzione del Problema (21). Criterio d’arresto Si introducano le funzioni m(x), M (x) : F → R: (∇f (x))h max − m(x) = ah h∈R(x) −∞ 32 if R(x) 6= ∅ altrimenti (∇f (x))h min − M (x) = ah h∈S(x) +∞ if S(x) 6= ∅ altrimenti dove R(x) e S(x) sono gli insiemi di indici precedentemente definiti. Dalla definizione di m(x) e M (x), e dalla Proposizione 9, segue che x̄ è soluzione del problema (21) se e solo se m(x̄) ≤ M (x̄). Si consideri una sequenza di punti ammissibili {xk } convergente ad una soluzione x̄. Ad ogni iterazione k, se xk non è soluzione, segue (nuovamente dalla Proposizione 9) che m(xk ) > M (xk ). Uno dei criteri proposti è m(xk ) ≤ M (xk ) + ǫ, (31) con ǫ > 0. Si osservi che le funzioni m(x) e M (x) non sono continue. Infatti, anche assumendo k x → x̄ per k → ∞, può accadere che R(xk ) 6= R(x̄) oppure S(xk ) 6= S(x̄) per k sufficientemente grande, di conseguenza almeno uno dei limiti lim m(xk ) = m(x̄) k→∞ lim M (xk ) = M (x̄) k→∞ potrebbe non essere verificato. In generale può accadere che un punto limite x̄ sia soluzione del problema (21), ma il criterio (31) non è mai soddisfatto. Sotto opportune ipotesi sulla matrice Q è stato dimostrato che l’Algoritmo SVMlight genera una sequenza {xk } tale che m(xk ) − M (xk ) → 0 per k → ∞. Di conseguenza, per qualsiasi valore di ǫ, l’Algoritmo SVMlight soddisfa il criterio d’arresto (31) in un numero finito di iterazioni. 33 10 10.1 Appendice A1: Ricerca unidimensionale Generalità I metodi di ricerca unidimensionale hanno essenzialmente l’obiettivo di globalizzare in modo costruttivo gli algoritmi di ottimizzazione, ossia di garantire che venga raggiunto asintoticamente un punto stazionario, a partire da un punto iniziale scelto arbitrariamente. Nel seguito ci riferiamo al caso in cui, per ogni punto assegnato xk ∈ Rn , si suppone nota una direzione dk ∈ Rn e la ricerca unidimensionale consiste nella determinazione del passo αk ∈ R lungo dk e quindi del punto xk + αk dk . Si parla in tal caso di ricerca di linea (line search), ossia di ricerca lungo la retta passante per xk e parallela a dk . Supponiamo quindi, salvo esplicito avviso, che la successione {xk } generata dall’algoritmo preso in considerazione sia definita assumendo xk+1 = xk + αk dk , k = 0, 1, . . . . (32) Il passo αk viene determinato con riferimento alla funzione di una sola variabile reale, φ : R → R definita (per un k fissato) da φ(α) = f (xk + αdk ), che caratterizza l’andamento di f lungo la direzione di ricerca dk . Si ha, ovviamente, in particolare, φ(0) = f (xk ). Essendo f differenziabile, esiste la derivata di φ(α) rispetto ad α, indicata con φ̇(α). Utilizzando le regole di derivazione delle funzioni composte di più variabili, si verifica facilmente che φ̇(α) = ∇f (xk + αdk )T dk , (33) e coincide quindi con la derivata direzionale di f lungo la direzione dk nel punto xk + αdk . In particolare abbiamo φ̇(0) = ∇f (xk )T dk , e quindi φ̇(0) è la derivata direzionale di f in xk lungo dk . Se f è due volte differenziabile esiste anche la derivata seconda φ̈(α) di φ rispetto ad α e si ha φ̈(α) = dTk ∇2 f (xk + αdk )dk . 10.2 (34) Ricerca di linea esatta Uno dei primi criteri proposti per la determinazione del passo consiste nello scegliere un valore di α che minimizzi la funzione obiettivo lungo la direzione di ricerca, ossia un valore αk per cui si abbia: f (xk + αk dk ) ≤ f (xk + αdk ), per ogni α ∈ R. (35) Se si assume che xk ∈ L0 e che L0 sia compatto, allora, per ogni k fissato, esiste un valore di α che risolve il problema (35). Essendo f differenziabile, dovrà risultare φ̇(αk ) = ∇f (xk + αk dk )T dk = 0. 34 (36) φ(α) = f(xk + αdk ) ′ φ (α⋆k ) = 0 αk⋆ α Figure 3: Passo ottimo. Si parla, in tal caso, di ricerca esatta1 e il punto αk che risolve il problema (35) viene denominato passo ottimo. Il passo ottimo è indicato in Fig. 1, con riferimento al caso di una funzione strettamente convessa. Dal punto di vista geometrico, la (36) esprime il fatto che se αk minimizza φ(α), il gradiente di f nel punto xk + αk dk deve essere ortogonale alla direzione di ricerca dk . Se f è convessa la (36) assicura che αk sia un punto di minimo globale di f lungo dk . Un’espressione analitica del passo ottimo si può ottenere solo in casi molto particolari. Ad esempio, se f è quadratica, ossia è del tipo 1 f (x) = xT Qx + cT x, 2 con Q definita positiva, dalla (36), esplicitando l’espressione di ∇f (xk +αk dk ) e risolvendo rispetto ad αk , si ottiene αk = − ∇f (xk )T dk (Qxk + c)T dk = − . dTk Qdk dTk Qdk (37) Nel caso generale, la ricerca esatta non dà luogo, anche quando f è convessa, a un algoritmo realizzabile basato sull’iterazione (32). Infatti, la determinazione di un punto di minimo o di un punto stazionario di φ potrebbe richiedere a sua volta un metodo iterativo convergente asintoticamente, per cui il metodo definito dall’iterazione (32), che prevede una sequenza di ricerche unidimensionali, potrebbe non essere ben definito. 1 Nella letteratura sull’argomento si parla talvolta di “ricerca esatta” con riferimento al calcolo di un punto αk che soddisfi la (36), ossia a un punto stazionario di φ. 35 11 11.1 Appendice A2: Metodo di Armijo Definizione del metodo e convergenza Il metodo di Armijo è uno dei primi metodi di tipo inesatto proposti per il caso in cui, per ogni xk con ∇f (xk ) 6= 0, si suppone disponibile una direzione di discesa dk tale che ∇f (xk )T dk < 0. È una tipica procedura di backtracking, in cui si effettuano successive riduzioni del passo, a partire da un valore iniziale assegnato ∆k > 0, fino a a determinare un valore αk che soddisfi una condizione di sufficiente riduzione della funzione obiettivo, espressa da f (xk + αk dk ) ≤ f (xk ) + γαk ∇f (xk )T dk , (38) dove γ ∈ (0, 1). Ricordando la definizione di φ, la (38) si può porre equivalentemente nella forma φ(αk ) ≤ φ(0) + γ φ̇(0)αk . Dal punto di vista geometrico, la condizione precedente impone che φ(αk ) sia al di sotto della retta passante per (0, φ(0)) e avente pendenza γ φ̇(0), definita da y = φ(0) + γ φ̇(0)α. Poiché φ̇(0) < 0, tale retta ha pendenza negativa, ed essendo γ < 1, risulta meno inclinata (in genere molto meno inclinata) rispetto alla tangente nell’origine. Il criterio di sufficiente riduzione utilizzato nel metodo di Armijo è illustrato nella Fig. 4, dove A1 ∪ A2 è l’insieme dei valori di α che soddisfano la (38). Una condizione di sufficiente spostamento viene imposta, nel metodo di Armijo, richiedendo innanzitutto che il passo iniziale sia “sufficientemente grande” (nel senso che sarà chiarito più precismente nel seguito) e assicurando poi che le eventuali riduzioni dei passi di tentativo siano effettuate utilizzando un coefficiente moltiplicativo δ ∈ (0, 1) costante (o che almeno rimane all’interno di un intervallo costante), al variare di k e delle eventuali iterazioni interne. Supponendo, per semplicità, che il coefficiente di riduzione sia costante, il passo determinato dal metodo di Armijo si può esprimere nella forma: n αk = max α : α = ∆k δ j , φ(α) ≤ φ(0) + γ φ̇(0)α, o j = 0, 1, . . . . Perché αk sia ben definito occorre ovviamente mostrare, come sarà fatto fra breve, che esiste un valore finito di j per cui risulta soddisfatta la condizione di sufficiente riduzione. Possiamo schematizzare il metodo di Armijo con il modello concettuale seguente, in cui l’indice j è un contatore delle iterazioni interne. 36 φ(α) A2 A1 α Figure 4: Criterio di sufficiente riduzione nel metodo di Armijo. Metodo di Armijo (modello concettuale) Dati: ∆k > 0, γ ∈ (0, 1), δ ∈ (0, 1). Poni α = ∆k e j = 0. While f (xk + αdk ) > f (xk ) + γα∇f (xk )T dk assumi α = δα e poni j = j + 1. End While Poni αk = α ed esci. Si può dimostrare che il metodo è ben definito, ossia che termina in un numero finito di passi assumendo che la direzione dk sia tale che ∇f (xk )T dk < 0. Le proprietà di convergenza del metodo di Armijo sono riportate nella proposizione successiva, in cui imponiamo la condizione che il passo iniziale ∆k sia “sufficientemente grande”. 37 φ(α) φ(0) = f (xk ) ′ φ (0) αk = δ∆k ∆k α Figure 5: Metodo di Armijo. Proposizione 11 (Convergenza del metodo di Armijo) Sia f : Rn → R continuamente differenziabile su Rn . Supponiamo che l’insieme di livello L0 sia compatto e che valga la condizione ∇f (xk )T dk < 0 per ogni k. Supponiamo inoltre che il passo iniziale ∆k ∈ R+ sia tale da soddisfare la condizione: ∆k ≥ T ∇f (x ) d k k 1 , σ kdk k kdk k (39) dove σ : R+ → R+ è una funzione di forzamento. Allora il metodo di Armijo determina in un numero finito di passi un valore αk > 0 tale che 1̧ f (xk + αk dk ) < f (xk ); 2̧ se xk+1 è tale che f (xk+1 ) ≤ f (xk + αk dk ), allora ∇f (xk )T dk = 0. k→∞ kdk k lim 38 φ(α) ⋆ αk A αk α Figure 6: Valori accettabili del passo. 11.2 Estensioni dei risultati di convergenza* I risultati di convergenza ottenuti per il metodo di Armijo possono essere estesi facilmente per stabilire la convergenza di altri algoritmi. Una prima osservazione è che nella dimostrazione della Proposizione 11 non è essenziale supporre che sia xk+1 = xk +αkA dk , avendo indicato con αkA il passo calcolato con il metodo di Armijo. Basta infatti che xk+1 sia scelto in modo tale che risulti: f (xk+1 ) ≤ f (xk + αkA dk ). L’insieme dei valori accettabili è indicato in fig.6. Più in generale, le conclusioni della Proposizione 11 si applicano a qualsiasi algoritmo per cui f (xk+1 ) ≤ f (xk + αkA dk ), quale che sia il criterio usato per il calcolo di xk+1 , che potrebbe anche non essere un punto della semiretta definita da dk . Una seconda osservazione è che i risultati di convergenza valgono anche se le ricerche unidimensionali vengono effettuate in corrispondenza a una sottouccessione, indicata con {xk }K , di una successione {xk } generata da un qualsiasi algoritmo, a condizione che si possa ancora assicurare la convergenza di {f (xk )}. In tal caso, infatti, possiamo ripetere la dimostrazione della Proposizione 11 ridefinendo inizialmente {xk }K come {xk }. Tenendo conto delle osservazioni precedenti, possiamo riformulare l’enunciato della Proposizione 11 in termini più generali, lasciando per esercizio la dimostrazione della proposizione riportata di Proposizione 12 Sia f : Rn → R continuamente differenziabile su Rn . Supponiamo che 39 l’insieme di livello L0 sia compatto e sia {xk }K una sottosuccessione di una successione {xk } assegnata. Supponiamo che siano soddisfatte le condizioni seguenti. (i) La successione {f (xk )} converge. (ii) Per ogni k ∈ K si ha f (xk+1 ) ≤ f (xk + αkA dk ), dove ∇f (xk )T dk < 0 e il passo αkA è determinato con il metodo di Armijo, in cui il passo iniziale ∆k ∈ R+ soddisfa la condizione ∇f (xk )T dk 1 , σ ∆k ≥ kdk k kdk k (40) dove σ : R+ → R+ è una funzione di forzamento. Allora si ha ∇f (xk )T dk = 0. k∈K,k→∞ kdk k lim Notiamo che, nelle ipotesi fatte, la condizione (i) sarà soddisfatta, in particolare, se si assume che per ogni k valga la condizione f (xk+1 ) ≤ f (xk ). 12 12.1 Appendice B:Support Vector Machines Appendice B1: Calcolo della soluzione analitica per problemi a due variabili Si consideri il problema min f (x) = 1 T x Qx 2 t.c. a1 x 1 + a2 x 2 = b − eT x 0 ≤ xi ≤ C (41) i = 1, 2, dove Q è una matrice 2 × 2 simmetrica semidefinita positiva, b ∈ R, a1 , a2 ∈ {−1, 1}. L’insieme delle direzioni ammissibili in un punto ammissibile x̄ è il seguente cono D(x̄) = {d ∈ Rl : aT d = 0, di ≥ 0, ∀ i ∈ L(x̄), e di ≤ 0, ∀ i ∈ U (x̄)}, dove L(x̄) = {i : x̄i = 0} U (x̄) = {i : x̄i = 0}. Dato un punto ammissibile x̄ e una direzione d ∈ D(x̄), indichiamo con β̄ il massimo passo ammissibile lungo d a partire da x̄, ossia 40 - se d1 > 0 e d2 > 0, β̄ = min{C − x̄1 , C − x̄2 }; - se d1 < 0 e d2 < 0, β̄ = min{x̄1 , x̄2 }; - se d1 > 0 e d2 < 0, β̄ = min{C − x̄1 , x̄2 }; - se d1 < 0 e d2 > 0, β̄ = min{x̄1 , C − x̄2 }. ! 1/a1 Sia d+ = . Riportiamo di seguito uno schema di calcolo di una soluzione −1/a2 ottima del problema (41). Procedura di calcolo della soluzione analitica (PSA) 1. Se ∇f (x̄)T d+ = 0 poni x⋆ = x̄ e stop; 2. Se ∇f (x̄)T d+ < 0 poni d⋆ = d+ ; 3. Se ∇f (x̄)T d+ > 0 poni d⋆ = −d+ ; 4. Calcola il massimo passo ammissibile β̄ lungo d⋆ : 4a. se β̄ = 0 poni x⋆ = x̄ e stop; 4b. se (d⋆ )T Qd⋆ = 0 poni β ⋆ = β̄, altrimenti −∇f (x̄)T d⋆ e poni β ⋆ = min{β̄, βnv }; (d⋆ )T Qd⋆ 4c. poni x⋆ = x̄ + β ⋆ d⋆ e stop. calcola βnv = Proposizione 13 La procedura PSA fornisce un vettore x⋆ che è soluzione ottima del problema (41). Dim. Osserviamo preliminarmente che (i) lo spazio lineare Γ = {d ∈ R2 : aT d = 0} ha dimensione 1; (ii) il vettore d+ = 1/a1 −1/a2 ! appartiene a Γ e quindi è una base di Γ; (iii) per ogni d ∈ D(x̄) esiste un t > 0 tale che d = td+ e d+ ∈ D(x̄), oppure d = td− e d− ∈ D(x̄) (infatti, d ∈ D(x̄) implica aT d = 0, cioè d ∈ Γ, e quindi d = ud+ , con u 6= 0, essendo d+ una base di Γ); (iv) se entrambi i vettori d+ e d− non appartengono a D(x̄) allora D(x̄) è vuoto e x̄ è una soluzione di (41). 41 Si noti che la Procedura PSA termina al passo 1, oppure ai passi 4a e 4c. Analizziamo i vari casi di terminazione della procedura. (1.) In questo caso, dalla (iii) segue ∇f (x̄)T d = 0 per ogni d ∈ D(x̄) e quindi dalla convessità di f segue che x̄ è soluzione di (41). Supponiamo quindi che una delle seguenti condizioni sia soddisfatta (I) ∇f (x̄)T d+ < 0; (II) ∇f (x̄)T d− < 0. Si ponga d⋆ = d+ se vale la (I) e d⋆ = d− altrimenti. (4a.) In questo caso, cioè quando il massimo passo ammissibile è nullo, abbiamo che d⋆ non è una direzione ammissibile. Quindi, dalla (iii), per ogni d ∈ D(x̄) abbiamo d = −td⋆ con t > 0 e di conseguenza ∇f (x̄)T d > 0, per cui dalla convessità della funzione obiettivo otteniamo che x̄ è soluzione di (41). Supponiamo quindi β̄ > 0. Si noti che dalla definizione di β̄ segue che la direzione ⋆ d non è una direzione ammissibile nel punto x̄ + β̄d⋆ ; viceversa, la direzione −d⋆ è una direzione ammissibile nel punto x̄ + β̄d⋆ (infatti, dalla convessità dell’insieme ammissibile segue che la direzione (x̄ − x⋆ ) è ammissibile in x⋆ ), inoltre −d⋆ = β̄1 (x̄ − x⋆ )). Si consideri la funzione di una variabile 1 φ(β) = f (x̄ + βd⋆ ) = f (x̄) + β∇f (x̄)T d⋆ + β 2 (d⋆ )T Qd⋆ . 2 Si può facilmente verificare che ′ - se (d⋆ )T Qd⋆ = 0 allora, posto β ⋆ = β̄, risulta φ (β) < 0 per ogni β ≤ β ⋆ ; - se (d⋆ )T Qd⋆ > 0 allora, posto βnv = n o −∇f (x̄)T d⋆ , (d⋆ )T Qd⋆ ′ ′ e β ⋆ = min β̄, βnv , abbiamo φ (βnv ) = 0, φ (β) < 0 per ogni β < β ⋆ . Osserviamo che β ⋆ è l’unica soluzione del problema unidimensionale min φ(β) 0 ≤ β ≤ β̄. Mostreremo ora che il punto x⋆ = x̄ + β ⋆ d⋆ è soluzione del problema (41). Il punto x⋆ è ammissibile e abbiamo due possibilità: β ⋆ = βnv oppure β ⋆ < βnv . In particolare - se β ∗ = βnv allora ′ ∇f (x⋆ )T d⋆ = φ (βnv ) = 0 e quindi la (iii) implica ∇f (x⋆ )T d = 0 per ogni d ∈ D(x⋆ ), per cui, dalla convessità della funzione obiettivo si ottiene che x⋆ è soluzione del problema (41); 42 - se β ∗ = β̄ < βnv allora ′ ∇f (x⋆ )T d⋆ = φ β̄ < 0; tenendo conto che d⋆ ∈ / D(x⋆ ) e −d⋆ ∈ D(x⋆ ), dalla (iii) segue che per ogni d ∈ D(x⋆ ) ⋆ abbiamo d = −td con t > 0 e quindi ∇f (x⋆ )T d > 0 per ogni d ∈ D(x⋆ ); la precedente relazione e la convessità della funzione obiettivo implicano che x⋆ è soluzione del problema (41). ✷ 12.2 Appendice B2: Condizioni di ottimalità Verranno definite le condizioni di ottimalità per il problema (21) in una forma che è utilizzata nello schema di decomposizione noto come Algoritmo SVMlight , che costituisce uno dei metodi maggiormente impiegati. Indichiamo con F l’insieme ammissibile del problema (21), cioè F = {x ∈ Rn : aT x = 0, 0 ≤ x ≤ C}. Assegnato un punto x ∈ F, abbiamo che un vettore d 6= 0 è una direzione ammissibile se e solo se - aT d = 0; - se xi = 0 allora di ≥ 0; - se xi = C allora di ≤ 0. Quindi, l’insieme delle direzioni ammissibili in un punto x ∈ F è il seguente cono D(x) = {d ∈ Rn : aT d = 0, di ≥ 0, ∀ i ∈ L(x), e di ≤ 0, ∀ i ∈ U (x)}. Dato un vettore x ∈ Rn e un insieme di indici W ⊆ {1, . . . , n}, abbiamo già introdotto la notazione xW ∈ R|W | per indicare il sottovettore di x costituito dalle componenti xi con i ∈ W. Poichè f è convessa e i vincoli sono lineari, un punto ammissibile x∗ è una soluzione del problema (21) se e solo se le condizioni KKT sono soddisfatte. Si introduca la funzione Lagrangiana ˆ = 1 xT Qx − eT x − λaT x − ξ T x + ξˆT (x − C), L(x, λ, ξ, ξ) 2 dove x ∈ Rn , λ ∈ R, ξ, ξˆ ∈ Rn . Per ogni punto ammissibile x, denotiamo gli insiemi degli indici (lower e upper) dei vincoli di box attivi L(x) = {i : xi = 0}, U (x) = {i : xi = C}. Per maggiore generalità, nelle seguenti proposizioni assumeremo che la funzione obiettivo f sia una funzione convessa continuamente differenziabile. 43 Proposizione 14 Un punto ammissibile x⋆ è una soluzione del problema (21) se e solo se esiste uno scalare λ∗ tale che ∗ ∗ ≥ 0 (∇f (x ))i + λ ai ≤ 0 =0 if i ∈ L(x∗ ) if i ∈ U (x∗ ) if i ∈ / L(x∗ ) ∪ U (x∗ ). (42) Dim. Poichè la funzione obiettivo è convessa e i vincoli sono lineari, un punto ammissibile x⋆ è una soluzione del problema (21) se e solo se esistono moltiplicatori di Lagrange λ⋆ ∈ R, ξ ⋆ , ξˆ⋆ ∈ Rl tali che ∇f (x⋆ ) + λ⋆ a − ξ ⋆ + ξˆ⋆ = 0 (ξ ⋆ )T x⋆ = 0 (ξˆ⋆ )T (x⋆ − C) = 0 ξ ⋆ , ξˆ⋆ ≥ 0. (43) (44) (45) (46) Dimostreremo che le condizioni (43)-(46) sono soddisfatte se e solo se vale la (42). (a) Supponiamo che x⋆ sia ammissibile e che siano verificate le (43)-(46). Sia x⋆i = 0, e quindi i ∈ L(x⋆ ). La condizione di complementarità (45) implica ξˆi⋆ = 0, per cui dalla (43) e dalla (46) si ottiene (∇f (x∗ ))i + λ∗ ai = xi⋆i ≥ 0. Analogamente, sia x⋆i = C, e quindi i ∈ U (x⋆ ). La condizione di complementarità (44) implica ξi⋆ = 0, per cui dalla (43) e dalla (46) si ottiene (∇f (x∗ ))i + λ∗ ai = −ξˆi⋆ ≤ 0. Infine, sia 0 < x⋆i < C, e quindi i ∈ / L(x∗ ) ∪ U (x∗ ). Le condizioni di complementarità (44) ⋆ ˆ⋆ e (45) implicano ξi , ξi = 0, per cui dalla (43) si ottiene (∇f (x∗ ))i + λ∗ ai = 0. (b) Supponiamo che x⋆ sia ammissibile e che la (42) sia verificata. Per i = 1, . . . , n: - se x⋆i = 0 si ponga ξˆi⋆ = 0 e ξi⋆ = (∇f (x∗ ))i + λ∗ ai ; - se x⋆i = C si ponga ξi⋆ = 0 e ξˆi⋆ = − [(∇f (x∗ ))i + λ∗ ai ] ; - se 0 < x⋆i < C si ponga ξi⋆ = 0 e ξˆi⋆ = 0. 44 Si può verificare facilmente che le (43)-(46) risultano soddisfatte. ✷ Le condizioni KKT possono essere scritte in un’altra forma. Partizioniamo gli insiemi L e U nei sottoinsiemi L− , L+ , e U − , U + rispettivamente, dove L− (x) = {i ∈ L(x) : ai < 0}, L+ (x) = {i ∈ L(x) : ai > 0} U − (x) = {i ∈ U (x) : ai < 0}, U + (x) = {i ∈ U (x) : ai > 0}. Dalla proposizione 14 si ottiene immediatamente il seguente risultato. Proposizione 15 Un punto x∗ ∈ F è soluzione del problema (21) se e solo se esiste uno scalare λ∗ tale che (∇f (x∗ ))i ai (∇f (x∗ ))i λ∗ ≤ − ai (∇f (x∗ ))i λ∗ = − ai λ∗ ≥ − ∀ i ∈ L+ (α∗ ) ∪ U − (x∗ ) ∀ i ∈ L− (x∗ ) ∪ U + (x∗ ) (47) ∀i∈ / L(x∗ ) ∪ U (x∗ ). In corrispondenza di un punto ammissibile x, definiamo i seguenti insiemi R(x) = L+ (x) ∪ U − (x) ∪ {i : 0 < xi < C} S(x) = L− (x) ∪ U + (x) ∪ {i : 0 < xi < C}. Si osservi che R(x) ∩ S(x) = {i : 0 < xi < C} R(x) ∪ S(x) = {1, . . . , l}. Enunciamo una condizione sufficiente di ottimalità. Proposizione 16 Sia x∗ un punto ammissibile e si assuma che uno dei due insiemi R(x⋆ ), S(x⋆ ) sia vuoto. Allora x∗ è soluzione del problema (21). Dim. Supponiamo S(x⋆ ) = ∅ (il caso R(x⋆ ) = ∅ è perfettamente analogo). Si ponga ⋆ λ = max⋆ i∈R(x ) ( (∇f (x⋆ ))i − ai ) = max i∈L+ (x∗ )∪U − (x∗ ) ( (∇f (x⋆ ))i − . ai ) Le relazioni della (47) risultano verificate e quindi x⋆ è soluzione del problema (21). ✷ Proposizione 17 Un punto ammissibile x∗ tale che R(x⋆ ) e S(x⋆ ) sono entrambi non vuoti è soluzione del problema (21) se e solo se max i∈R(x⋆ ) ( (∇f (x⋆ ))i − ai ) ≤ min⋆ j∈S(x ) 45 (∇f (x⋆ ))j − . aj ( ) (48) Dim. (a) Assumiamo che il punto ammissibile x∗ sia soluzione. La proposizione 15 implica l’esistenza di un moltiplicatore λ∗ tale che la coppia (x∗ , λ∗ ) soddisfa le condizioni (47) che possono essere scritte come segue (∇f (x∗ ))i (∇f (x∗ ))i ∗ ≤ λ ≤ − min − max − i∈L (x∗ )∪U + (x∗ ) i∈L+ (x∗ )∪U − (x∗ ) ai ai ∗ (∇f (x )) i λ∗ = − ∀i∈ / L(x∗ ) ∪ U (x∗ ). ai ) ( ( ) Dalla definizione degli insiemi R(x∗ ) e S(x∗ ) si ottiene max i∈R(x∗ ) (∇f (x∗ ))i − ai ( ) ≤ min∗ j∈S(x ) ( (∇f (x∗ ))j − aj ) , e quindi la (48) è verificata. (b) Assumiamo che valga la (48). Possiamo definire un moltiplicatore λ∗ tale che max i∈R(x∗ ) ( (∇f (x∗ ))i − ai ) ∗ ≤ λ ≤ min∗ i∈S(x ) ( (∇f (x∗ ))i , − ai ) (49) e quindi le relazioni di disuguaglianza della (47) sono soddisfatte. D’altra parte la definizione degli insiemi R(x∗ ), S(x∗ ) e la scelta del moltiplicatore λ∗ (per cui vale la (49)) implicano max {i: 0<xi <C} ( (∇f (x∗ ))i − ai ) ≤ λ∗ ≤ min {i: 0<xi <C} (∇f (x∗ ))i , − ai ( e quindi anche le relazioni di uguaglianza della (47) sono verificate. ✷ 46 )