6. Clustering In molti campi applicativi si presenta il problema del data mining, che consiste nel suddividere un insieme di dati in gruppi e di assegnare un centro a ciascun gruppo. Ad esempio, in ambito sanitario, il problema consiste nel suddividere i pazienti in gruppi e assegnare a ciascun gruppo una diagnosi, sulla base dei dati medici noti per ogni paziente. Dato un insieme di punti A = {a...a m } R n, si consideri il problema di determinare una partizione di A in k sottoinsiemi (o cluster) e di assegnare a ogni cluster A j un centro c j R m (non necessariamente coincidente con un elemento in A j ) in modo tale da minimizzare la somma, su tutti i punti a i A, del quadrato della distanza Euclidea tra a i e il centro c j del corrispondente cluster A j. (a) Si proponga una formulazione di programmazione nonlineare a variabili misto-intere per problema. (b) Si considerino ora i due aspetti del problema: il partizionamento dei punti e la determinazione dei centri. Supponendo che la partizione sia data, è possibile risolvere facilmente il sottoproblema di determinare i k centri? Analogamente, supponendo che i rappresentanti siano dati, è possibile risolvere facilmente il sottoproblema di determinare le partizioni? Si proponga un algoritmo euristico basato sulla risoluzione iterativa dei due sottoproblemi proposti. 6.2 Ordine e tasso di convergenza Si consideri una successione monotona {x k } k= convergente per k a x. La successione converge con ordine p e tasso r se, per lim k, abbiamo x k+ x r x k x p. Si calcolino ordine p e tasso di convergenza r (ossia il più grande valore di p per cui il rapporto x k+ x x k x, pari al tasso r, è finito, e il tasso stesso) per le seguenti successioni: p a) x k = + k b) x k = + 2 k c) x k = + k k d) x k = + 2 2k Documento preparato da L. Liberti e S. Coniglio
6. Scelta del passo nel metodo del gradiente Nel metodo del gradiente, una volta scelta la direzione di discesa d k = f(x k ) all iterazione k, scegliamo un valore per il passo α k tale da soddisfare f(x k+ ) = f(x k + α k d k ) < f(x k ). Si consideri la funzione f : R R 4 ( x)2 2( x) per x > f(x) = 4 (+x)2 2(+x) per x < x 2 per x. (a) La si disegni e se ne discutano la convessità e derivabilità. Si individui, graficamente, un punto di minimo. (b) Si verifichi che, per punti iniziali x 0 con x 0 >, con α k = il metodo del gradiente non converge alla soluzione ottima, nonostante la funzione sia convessa. (c) Si verifichi che per punti x k con x k >, la scelta del passo α k = per ogni k soddisfa il criterio di discesa f(x k+ ) < f(x k ). 6.4 Verifica delle condizioni di Wolfe per funzioni quadratiche Si consideri la prima condizione di Wolfe f(x k +α k d k ) f(x k )+c α k ( f(x k )) T d k. () Si trovi il più grande valore di c per cui, data una funzione quadratica f(x) = x T Qx conqdefinitapositiva, lacondizioneèsoddisfattascegliendoilpassoα k medianteottimizzazione unidimensionale esatta. Suggerimento. Si calcoli il valore α k che minimizza la funzione f(x k +α k d k ). Si riscriva la condizione usando l espressione trovata di α k. 6.5 Invarianza affine del metodo di Newton Si consideri un cambio di coordinate affine non singolare, tale che x = Dy. Si consideri il metodo di Newton applicato alle funzioni f(x) e f(dy). Siano d x = ( 2 xf(x)) x f(x) e d y = ( 2 yf(dy)) y f(dy) le direzioni di Newton rispetto a f(x) e f(dy). Si mostri che x+d x = D(y +d y ). Suggerimento. Si inizi verificando che y f(dy) = D T x f(x) e 2 yf(dy) = D T 2 xf(x)d. Documento preparato da L. Liberti e S. Coniglio 2
Soluzione 6. Clustering a) Sia x ij una variabile binaria di valore se il punto a i è assegnato al cluster j e 0 altrimenti. Sia c j R n il rappresentante del cluster j. Formuliamo il problema come: min s.t. m i= j= k a i c j 2 x ij (2) k x ij = i =,...,m () j= x ij {0,} i =,...,m,j =,...,k (4) Si noti che il vincolo (non convesso) x ij {0,} è rilassabile in x ij [0,]. È immediato verificare che, in ogni soluzione ottima, o x ij assume valori interi, o esiste una soluzione a valori interi di costo equivalente. Si supponga x = 0.6 e x 2 = 0.4 con a c 2 < a c 2 2. La soluzione non può essere ottima, dato che, imponendo x = e x 2 = 0 si ottiene una soluzione di costo minore. Si supponga ora x = x 2 = 0.5 con a c 2 = a c 2 2. Assumendo che la soluzione sia ottima, è possibile ottenerne una di costo equivalente imponendo x = e x 2 = 0 o x = 0 e x 2 =. b) Si consideri un dato assegnamento x ij, per i =,...,m,j =,...,k, dei punti ai cluster. Sia A(j) = {i {,...,m} : x ij = }. Il sottoproblema di trovare il miglior rappresentante c j è il seguente: min a i c j 2. i A(j) Possiamo risolverlo in forma chiusa mediante le condizioni necessarie e sufficienti (data la convessità della funzione) del primo ordine. Scriviamo la funzione come min i A(j) (a i c j ) T (a i c j ), ne calcoliamo il gradiente (nella variabile c j ), ottenendo 2 i A(j) (a i c j ) = 2 i A(j) a i 2m(j)c j, dove m(j) = A(j), e ne detereminiamo un punto critico: c j = m(j) i A(j) a i. Dati i rappresentanti, il sottoproblema di determinazione delle partizioni (ossia dell assegnamento) è banalmente risolto assegnando ogni punto al cluster con rappresentante più vicino. Un algoritmo euristico è il seguente. Scelti inizialmente k rappresentanti (ad esempio, in modo casuale), iteriamo due operazioni: assegnare ogni punto in A al rappresentante più vicino, formando i cluster A(j) calcolare il miglior rappresentante per ogni cluster fino a quando una delle due non produce nessun cambiamento nella soluzione. Questo metodo è noto col nome di k-means. Documento preparato da L. Liberti e S. Coniglio
6.2 Ordine e tasso di convergenza a) Per la successione x k = + k abbiamo: x k+ x k p = ( k + ) p = kp k + k 0 per p < per p = per p > La successione converge quindi linearmente (p = ) con tasso. b) Per la successione x k = + 2 k abbiamo: x k+ x k p = 2 k+ ( ) p = 2 k 2 k+ = 2kp 2 k+ = 2kp (k+) = 2 k(p ) 2 kp 0 per p < 2 per p = per p > La successione converge quindi linearmente (p = ) con tasso 2. c) Per la successione x k = + k k abbiamo: x k+ x k p = k k (k +) ( k+ (k +) ) p = k+ = (k +) k+ kkp k k+ = kkp (k+) = k k(p ) La successione converge quindi superlinearmente. d) Per la successione x k = + abbiamo: 2k 2 x k+ x k p = 2 2k k kp k kp 0 per p < k 0 per p = per p > ( 2 2(k+) ) p = 22k p 0 per p < 2 p 2(k+) = 22k = 2 2k p 2 k2 = 2 2k (p 2) per p = 2 2(k+) 2 per p > 2 La successione converge quindi quadraticamente (p = 2) con tasso. Documento preparato da L. Liberti e S. Coniglio 4
6. Scelta del passo nel metodo del gradiente a) Riscrivamo la funzione come 4 x2 + 2 x 5 4 per x > f(x) = 4 x2 2 x 5 4 per x < x 2 per x. Una rappesentazione dei tre tratti è data in Figura 6.. Il gradiente di f è dato da: 2 x+ 2 per x > f(x) = 2 x 2 per x < 2x per x. Si osservi che f è convessa, derivabile (la derivata è continua) e che ammette un unico punto di minimo in x = 0. b) Si calcoli x k+ = x k d k = x k f(x k ). 2 (x k +) per x k > x k+ = 2 (x k ) per x k < x k per x k. Si osservi che x k+ = 2 (x k + ) < per x k > e x k+ = 2 (x k ) > per x k <. Partendo, ad esempio, da x 0 >, avremo x <, quindi x 2 >, e così via. Analogamente, partendo da x 0 <, avremo x >, quindi x 2 <, e così via. Per tanto, il punto di minimo x = 0 non sarà mai raggiunto. c) Per x k >, abbiamo x k+ = 2 (x k + ). La condizione f(x k+ ) < f(x k ) diventa f( 2 (x k +)) < f(x k ). Svolgendo i conti, si ottiene 9x 2 k +0x k < 0 Documento preparato da L. Liberti e S. Coniglio 5
soddisfatta per x k < 9 e x k >. È quindi soddisfatta sotto l ipotesi. Per x k <, abbiamo x k+ = 2 (x k ). La condizione f(x k+ ) < f(x k ) diventa f( 2 (x k )) < f(x k ). Svolgendo i conti, si ottiene 9x 2 k 2x k +7 < 0 soddisfatta per x k < e x k > 7 9. È quindi soddisfatta sotto l ipotesi. Si è quindi mostrato che, pur scegliendo un passo α k che soddisfi la condizione di discesa stretta, il metodo del gradiente può non convergere. 6.4 Verifica delle condizioni di Wolfe per funzioni quadratiche Per comodità, omettiamo i pedici k. Data f(x) = x T Qx, scriviamo f(x+αd) come: (x+αd) T Q(x+αd) = (x+αd) T (Qx+Qαd) = x T Qx+αd T Qx+αd T Qx+α 2 d T Qd = x T Qx+2αx T Qd+α 2 d T Qd. Supponiamo f(x) = 2Qx 0. Ne segue d T Qd 0 (per precisione > 0). Se poniamo g(α) = f(x+αd), la condizione g (α) = 0 corrisponde a 2x T Qd+2αd T Qd = 0, da cui si ottiene α = xt Qd d T Qd. La prima condizione di Wolfe f(x+αd) f(x)+c α( f(x) T d corrisponde a x T Qx+2αx T Qd+α 2 d T Qd x T Qx+2c α f(x)d Sostituendo f(x) = 2Qx, abbiamo: x T Qx+2αx T Qd+α 2 d T Qd x T Qx+2c αx T Qd ossia 2αx T Qd+α 2 d T Qd 2c αx T Qd. Dividendo per d T Qd > 0 abbiamo 2α xt Qd d T Qd +α2dt Qd d T Qd 2c α xt Qd d T Qd. Documento preparato da L. Liberti e S. Coniglio 6
Sostituendo xt Qd = α si ottiene d T Qd da cui, dividendo per α 2 > 0, abbiamo: c 2. 2α 2 +α 2 2c α 2, Si noti che saremmo potuti partire dalla disequazione c 2 Wolfe costruendo i passaggi in modo inverso. e arrivare alle condizioni di 6.5 Invarianza affine del metodo di Newton Cerchiamol espressionedi y f(dy). Operandoilcambiodivariabilex = Dy, andiamoacercare y f(x). La componente i-esima di y f(x) è, per definizione, f(x)/ y i. Abbiamo: f(x)/ y i = = = n j= n f(x) x j ( regola della catena) x j y i n k= d jky k ) j= f(x) x j ( n j= y i f(x) x j d ji ( sostituzione x j = n k= d jky k ) In altri termini, la componente i-esima è il prodotto tra il vettore colonna i-esimo della matrice D ed il vettore x f(x). Abbiamo quindi y f(dy) = D T x f(x). Con procedimento analogo (lasciato al lettore) si deriva 2 yf(dy) = D T 2 xf(x)d. Ne segue d y = (D T 2 xf(x)d) D T x f(x) (5) = D ( 2 xf(x)) (D T ) D T x f(x) (6) = D ( 2 xf(x)) x f(x) (7) = D d x (8) Essendo D non singolare, abbiamo d x = Dd y. Quindi x+d x = D(y +d y ). Documento preparato da L. Liberti e S. Coniglio 7