Funzioni univariate 28 Ottobre 2010
Funzioni univariate Outline 1 Funzioni univariate 2 optim
Funzioni univariate I metodi di ottimizzazione consentono di trovare i punti estremanti (massimi, minimi) di una funzione obiettivo f : R n R. Poiché max f (x) = min( f (x)), è sufficiente concentrarsi sui metodi per la ricerca del minimo min f (x) x Ω R n dove Ω è l insieme definito dai vincoli, se presenti. Per semplicità, nel seguito supporremo l esistenza e l unicità del punto di minimo x (locale e globale), e tratteremo l ottimizzazione in assenza di vincoli.
Funzioni univariate Metodi numerici per l ottimizzazione Ecco i metodi numerici che vedremo e implementeremo in R: per funzioni univariate: golden section search gradiente discendente per funzioni multivariate: optim (built-in R function)
Funzioni univariate Algoritmo piuttosto semplice e intuitivo per la ricerca del minimo di una funzione all interno di un intervallo [a,b] con a < b e x [a,b]. Richiede che la funzione f sia unimodale. Definizione Funzione f : R R è unimodale se esiste m R tale che f è decrescente per x m e crescente per x m. m è quindi il punto di minimo (globale).
Funzioni univariate Ecco come funziona il metodo golden section search: 1 Si parte considerando l intervallo [a 0,b 0 ] := [a,b] e si fissa una tolleranza ǫ 2 Si restringe iterativamente l intervallo a [a k+1,b k+1 ] [a k,b k ] in modo che il punto di minimo x continui a cadere al suo interno 3 Ci si arresta quando b k a k < ǫ, e si accetta b k a k 2 come una buona approssimazione del punto di minimo x Al passo 2, si determinano x 1,x 2 [a k,b k ] tali che x 1 < x 2. Poiché la funzione obiettivo è unimodale e abbiamo supposto esserci un unico punto di minimo x [a,b], se succede f (x 1 ) > f (x 2 ) allora significa x [x 1,b k ], altrimenti se f (x 1 ) < f (x 2 ) allora x [a k,x 2 ]. Selezionato l intervallo corretto, si prosegue in modo iterativo.
Funzioni univariate Nota Il nome del metodo è dovuto alla proporzione aurea esistente tra le distanze dei punti scelti dagli estremi dell intervallo: Osservazione pro: non richiede la conoscenza delle derivate contro: convergenza lenta x 2 x 1 x 1 a = x 1 a b x 1
Implementazione in R Funzioni univariate golden.r function che implementa il metodo golden section search valutazione delle funzioni obiettivo main per testare gli esempi
Esempi Funzioni univariate Esempio 1 f (x) = x 3.5 + (x 2) 2 Determinare il punto di minimo x [0,5]. (x = 2.5,f (x ) = 1.25) 10 8 6 4 1 2 3 4 5 Figure: f (x) = x 3.5 + (x 2) 2
Esempi Funzioni univariate Esempio 2 f (x) = x 3 + sinx x 2 Determinare minimi/massimi e osservare il comportamento del metodo golden section search al variare dell intervallo di ricerca. 2 1 2 2 4 6 8 1 2 Figure: f (x) = x 3 + sin x x 2
Esempi Funzioni univariate La funzione dell esempio 2 ha due minimi e due massimi nell intervallo [ 3,9]. A seconda dell intervallo di ricerca scelto, il metodo converge a uno dei minimi: [ 3,9]: due massimi, due minimi; converge a uno dei minimi [0,9]: un massimo, un minimo; converge al minimo [3,6]: un minimo; converge a quello
Funzioni univariate I metodi di discesa sono metodi iterativi che, a partire da un iterato iniziale x 0 R n, generano una successione di punti {x k } k N definiti dall iterazione x k+1 = x k + α k p k dove il vettore p k è una direzione di ricerca e lo scalare α k è un parametro positivo chiamato lunghezza del passo (step length) che indica la distanza di cui ci si muove lungo la direzione p k.
Funzioni univariate In un metodo di discesa, il vettore p k e il parametro α k sono scelti in modo da garantire la decrescita della funzione obiettivo f a ogni iterazione: f (x k+1 ) < f (x k ) k 0 In particolare, come vettore p k si prende una direzione di discesa, cioè tale che la retta x = x k + α k p k forma un angolo ottuso con il vettore gradiente f (x k ). In questo modo è possibile garantire la decrescita di f, purché α k sia sufficientemente piccolo.
Funzioni univariate Scelta della direzione di discesa A seconda della scelta di p k si hanno diversi metodi di discesa. Noi vedremo: metodo del gradiente discendente metodo di
Funzioni univariate Scelta della lunghezza del passo Esistono diverse tecniche per la scelta di α k in modo tale da garantire la convergenza del metodo verso punti stazionari di f. Step length: troppo piccola: può tradursi in una convergenza lenta troppo grande: rischio di superare il punto di minimo
Funzioni univariate Scelta della lunghezza del passo Sceglierne una step length costante, o che verifica semplicemente la condizione di decrescita f (x k+1 ) < f (x k ), non sempre garantisce convergenza. Si può determinare con: ricerca in linea esatta condizioni di Wolfe (condizione di Armijo + condizione della curvatura) sola condizione di Armijo + backtracking
Funzioni univariate Metodo del gradiente discendente: x k+1 = x k δf (x k ) direzione di ricerca (gradiente): p k = f (x k ) step length: α k = δ costante Richiede f C 1 (derivabile con continuità), e conoscenza dell espressione analitica della derivata prima. Osservazione Nome dovuto al fatto che si sceglie come direzione di ricerca quella opposta al gradiente (derivata prima, nel caso univariato).
Funzioni univariate Costo computazionale 1 valutazione della derivata prima per iterazione. Osservazione pro: converge a punti di minimo (e non genericamente a punti stazionari) non richiede il calcolo della derivata seconda (matrice Hessiana nel caso multivariato) contro: alto numero di iterazioni sensibilità rispetto all iterato iniziale (se x 0 è preso troppo lontano dal minimo x, e δ è scelta piccola, il metodo può non arrivare alla soluzione in tempi ragionevoli)
Implementazione in R Funzioni univariate gradiente.r function che implementa il metodo del gradiente discendente valutazione delle funzioni obiettivo main per testare gli esempi
Esempi Funzioni univariate Esempio 3 f (x) = e x + x 4 Determinare il punto di minimo. (x 0.528252,f (x ) 0.667504) 3.5 3.0 2.5 2.0 1.5 1.0 0.5 0.5 1.0 Figure: f (x) = e x + x 4
Funzioni univariate Metodo di : x k+1 = x k f (x k ) f (x k ) direzione di ricerca (Newton): p k = f (x k )/f (x k ) step length: α k = 1 Ha la forma del metodo di Newton per la ricerca degli zeri di una funzione, applicato a f, in quanto determinare il punto di minimo della funzione f equivale a determinare la radice della derivata prima f.
Funzioni univariate Il metodo è solitamente preferito rispetto al gradiente discendente, per la sua velocità, nonostante richieda f C 2, f 0, conoscenza dell espressione analitica delle derivate prima e seconda, e converga indistintamente a minimi e massimi. Nota Se f ha un espressione semplice, la function deriv consente di calcolarne simbolicamente le derivate prima e seconda.
Funzioni univariate Costo computazionale A ogni iterazione: valutazione di derivata prima e seconda. Osservazione pro: convergenza veloce (quadratica) contro: convergenza locale alto costo per iterazione Esistono varianti che rendono il metodo a convergenza globale e che abbassano il costo computazionale evitando di risolvere con metodi diretti il sistema per la determinazione di p k.
Implementazione in R Funzioni univariate newton optim.r function che implementano il metodo di per l ottimizzazione (uni- e bi-variata) valutazione delle funzioni obiettivo main per testare gli esempi
Esempi Funzioni univariate Esempio 3 f (x) = e x + x 4 Determinare il punto di minimo e confrontare il numero di iterazioni effettuate dal metodo di con quelle richieste dal metodo del gradiente discendente, visto in precedenza.
Funzioni univariate optim Dall espansione di Taylor nel caso multidimensionale, il metodo di multivariato assume la forma: x k+1 = x k H f (x k ) 1 f (x k ) dove ora x k R n e H f è la matrice Hessiana (derivate seconde) di f. direzione di ricerca (Newton): p k = H f (x k ) 1 f (x k ) step length: α k = 1 Osservazione La direzione di Newton è di discesa H f è definita positiva.
Funzioni univariate optim Il metodo di multivariato richiede f C 2, e conoscenza dell espressione analitica del gradiente e della matrice Hessiana. Nota Se f ha un espressione semplice, la function deriv consente di calcolarne simbolicamente il gradiente e la matrice Hessiana. Costo computazionale A ogni iterazione: valutazione di gradiente, Hessiana e risoluzione del sistema n n H f (x k )p k = f (x k ) per la determinazione di p k (costo O(n 3 )).
Funzioni univariate optim Implementazione in R newton optim.r function che implementano il metodo di per l ottimizzazione (uni- e bi-variata) valutazione delle funzioni obiettivo main per testare gli esempi
Funzioni univariate optim optim optim è una R-function per l ottimizzazione di funzioni anche di più variabili. L utente può scegliere quale metodo usare, tra: Nelder-Mead (default): robusto ma relativamente lento BFGS (quasi-newton) CG (gradiente coniugato)
Funzioni univariate optim Esempi Esempio 4 f (x,y) = 1 ( 2 0.001(x 1) 2 + (x 2 y) 2) (funzione di tipo Rosenbrock) Determinare il punto di minimo. (x = (1,1)) 0 1 2 1 10 2 5 0 2 1 0 1 2 ( Figure: f (x, y) = 1 2 0.001(x 1) 2 + (x 2 y) 2)
Funzioni univariate optim Esempi Esempio 5 ( ) f (x,y) = sin x 2 2 y2 4 cos (2x e y ) Determinare i punti di minimo e massimo. 1.0 0.5 0.0 0.5 1.0 2 0 1 2 1 0 1 ( x Figure: f (x, y) = sin 2 1 2 2 ) cos(2x e y ) 2 y2 4
Funzioni univariate optim Esempi La funzione dell esempio 5 presenta molti punti di minimo e di massimo, pertanto scegliendo iterati iniziali diversi (e metodi diversi), si può arrivare a soluzioni diverse (a seconda della grandezza dei bacini di attrazione dei punti stazionari).