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
)