Lezione 13. Identificazione di modelli non lineari F. Previdi - Controlli Automatici - Lez. 13 1 Schema della lezione 1. Identificazione di modelli non lineari statici 2. Reti neurali multilayer feedforward 3. Modelli NARX-NARMAX 4. Local Model Networks F. Previdi - Controlli Automatici - Lez. 13 2 1. Identificazione di modelli statici Per introdurci al problema dell’identificazione di modelli non lineari, cominciamo considerando sistemi in cui non i dati non dipendono dal tempo. Esempi 50 1600 45 Percentuale di grasso corporeo 1800 Emissioni di NOx [a.u.] 1400 1200 1000 800 600 400 200 0 40 35 30 25 20 15 10 5 0 50 100 150 Portata di combustibile [a.u.] 200 0 0 20 40 60 80 100 120 Circonferenza dell'addome [cm] 140 160 I dati sono organizzati “a coppie” F. Previdi - Controlli Automatici - Lez. 13 3 Etichettiamo i dati con un indice i = 1,, N X = {x(1), x(2),, x(N − 1), x(N )} Le coppie sono {x (1), y (1)}, {x (2 ), y (2 )},, {x (N ), y (N )} Y = {y (1), y (2),, y (N − 1), y (N )} Vogliamo identificare un modello parametrico x (i ) y = f ( x; θ ) y (i ) θ è un vettore di n parametri da stimare f ( ⋅ ; θ ) è una funzione (dei parametri e di x) Esempi di f sono: y (i ) = θ 0 + θ1 x (i ) y (i ) = θ 0 + θ1 x (i ) + θ 2 x 2 (i ) lineare non lineare y (i ) = θ 0 log( x (i ) + θ1 ) non lineare y (i ) = θ 0e non lineare −θ1 ( x (i )−θ 2 )2 Nota bene 1 Ribadiamo: non c’è il tempo! La funzione f è statica. Nota bene 2 y (i ) dipende solo dal corrispondente x (i ) F. Previdi - Controlli Automatici - Lez. 13 Si pongono due diversi problemi. 4 Interpolazione 10 0 -10 y -20 -30 -40 -50 -60 1 2 3 4 5 6 7 8 9 10 x Si desidera che il modello stimato y = f (x; θ ) “passi” per tutti i punti {x (i ), y (i )}i =1,,N , cioè i valori dei parametri sono calcolati in modo che sia y (i ) = f (x (i ); θ ) . Quindi i parametri possono essere calcolati risolvendo Si tratta di N (numero dei dati) equazioni in n y (1) = f ( x (1); θ ) (numero dei parametri) incognite. y (2 ) = f ( x (2 ); θ ) .. Sotto opportune ipotesi ha una ed una sola . soluzione per n=N y (N ) = f ( x (N ); θ ) F. Previdi - Controlli Automatici - Lez. 13 5 Nota bene 3 Se si riesce a risolvere un problema di interpolazione usando n<N si ottiene una compressione dei dati. F. Previdi - Controlli Automatici - Lez. 13 6 Fitting (approssimazione) 10 0 -10 y -20 -30 -40 -50 -60 1 2 3 4 5 6 7 8 9 10 x Se i dati sono disturbati da rumore (per es. errore di misura) non ha senso chiedere che il modello stimato y = f (x; θ ) “passi” per tutti i punti {x (i ), y (i )}i =1,,N . Si desidera invece che il modello “aderisca” ai dati eliminando le variazioni dovute al rumore. Il problema di fitting richiede che n<<N F. Previdi - Controlli Automatici - Lez. 13 7 Osservazione Nel caso di dati affetti da rumore/incertezza l’unico problema sensato è quello di fitting. Infatti la funzione approssimante non sarà “perfetta” sui dati ma ha capacità di generalizzazione, cioè fornirà una buona approssimazione su dati generati dal medesimo sistema ma affetti da differente realizzazione del rumore. 10 0 -10 y -20 -30 -40 -50 -60 1 2 3 4 5 6 7 8 9 10 x Dati diversi, ma stesse curve delle slide precedenti. F. Previdi - Controlli Automatici - Lez. 13 8 Nota bene 4 In generale, non si hanno relazioni tra scalari (uno a uno), ma spesso tra vettori (per es. la percentuale di grasso corporeo dipende anche dalla statura). E’ sufficiente però utilizzare modelli con m ingressi e 1 uscita. y = f (x; θ ) con x ∈ ℜm y ∈ℜ x1 (i ) x (i ) cioè x (i ) = 2 ( ) x i m x1 (i ) .. . xm (i ) y = f (x; θ ) y (i ) Infatti per costruire modelli con m ingressi e p uscite è sufficiente usare in parallelo p modelli con m ingressi ed 1 uscita. y = f (x; θ ) con x ∈ ℜm y ∈ℜp x1 (i ) x (i ) x (i ) = 2 x1 (i ) xm (i ) .. cioè . x (i ) y1 (i ) m y (i ) y (i ) = 2 ( ) y i m F. Previdi - Controlli Automatici - Lez. 13 y1 = f1 (x; θ ) y1 (i ) .. . y p = f p (x; θ ) y p (i ) 9 Universal approximators Come scegliere le funzioni approssimanti y = f (x; θ ) ? L’idea è scegliere delle funzioni “base” che opportunamente combinate linearmente siano capaci di descrivere molte funzioni. Sono possibili molte scelte, noi useremo funzioni sigmoidali discriminatorie. Esempi di funzioni discriminatorie 1 0.5 1 y = tanh ( x ) 0.8 0.6 y= 1 1 + e− x 0 0.4 -0.5 -1 -3 0.2 -2 -1 0 1 2 3 0 -3 -2 -1 F. Previdi - Controlli Automatici - Lez. 13 0 1 2 3 10 Per queste funzioni vale il seguente teorema (Cybenko, 1989). Sia σ una funzione discriminatoria. Allora le somme finite del tipo G (x ) = ∑ α jσ (w Tj x + β j ) N j =1 sono dense nell’insieme delle funzioni continue a supporto compatto in ℜn . In altre parole, data una qualunque funzione f continua a supporto compatto, per ogni ε > 0 c’è una sommaG (x ) come quella sopra per cui G (x ) − f (x ) < ε per tutti gli x nell’insieme compatto F. Previdi - Controlli Automatici - Lez. 13 11 2. Reti neurali multilayer perceptron Sono una particolare classe di approssimatori universali che utilizza le funzioni sigmoidali discriminatorie per approssimare. Per esse (ma non solo per esse) è intuitivo dare una rappresentazione grafica a rete. Elemento base (neurone) – caso scalare 1 β x w + + uscita bias σ (•) y y = σ (wx + β ) due parametri ingresso peso funzione di attivazione F. Previdi - Controlli Automatici - Lez. 13 12 Elemento base (neurone) – caso generale In generale l’ingresso è un vettore x ∈ ℜm 1 β x1 x2 .. . xm + + w1 + + σ (•) y m y = σ ∑ w j x j + β = j =1 = σ (wx + β ) w2 .. . w θ = ∈ ℜm +1 β wm ingressi pesi x ∈ ℜm w ∈ ℜm x1 x x = 2 xm F. Previdi - Controlli Automatici - Lez. 13 w1 w w = 2 wm 13 E’ possibile costruire una rete neurale multilayer feedforward facendo “processare” l’ingresso a più neuroni in parallelo (uno strato) e poi iterando questa struttura (l’uscita di uno strato è l’ingresso del successivo). β1 neurone 1 + bias x1 w11 + σ (•) γ ∈ℜ + w uscita 21 + wn1 x2 w12 .. w .w β2 + + + + w22 n2 βn 1m xm + + w2m + + wnm pesi ingressi x ∈ℜ m α1 neurone 2 σ (•) .. . α2 y ∈ℜ γ + + + + αn ~ (•) σ y neurone uscita σ (•) pesi W = {wij }∈ ℜn×m neurone n α ∈ ℜn bias β ∈ ℜn F. Previdi - Controlli Automatici - Lez. 13 14 Il singolo neurone svolge sempre la stessa operazione. Per es. il neurone 1 m il neurone 2 z1 = σ ∑ w1 j x j + β1 j =1 dove z1 è l’uscita del neurone 1 m z2 = σ ∑ w2 j x j + β2 j =1 dove z2 è l’uscita del neurone 2 m zn = σ ∑ wnj x j + βn j =1 dove zn è l’uscita del neurone n il neurone n Mettendo tutto insieme vettore dei bias z = σ (Wx + β ) vettore delle uscite dei neuroni del primo strato matrice dei pesi vettore degli ingressi z =σ( n×1 W x + β) n×1 n×m m×1 F. Previdi - Controlli Automatici - Lez. 13 15 Il neurone di uscita (uno solo, per noi l’uscita è sempre scalare) opera esattamente come gli altri ma sulle uscite dei neuroni nello strato nascosto. n y = σ~ ∑ αi zi + γ = σ~ (αz + γ ) = i =1 = σ~ (ασ (Wx + β ) + γ ) Nota bene 5 E’ possibile (ma inutile) introdurre più strati di neuroni (cosiddetti “strati nascosti”). Il teorema di Cybenko però dimostra che è sufficiente un solo strato nascosto per avere proprietà approssimanti ottime. Nota bene 6 E’ possibile usare diverse funzioni di attivazione nei diversi strati nascosti. Per esempio uno strato con funzioni sigmoidali ed uno con la tangente iperbolica. Nel neurone di uscita si usa una funzione di attivazione lineare (non satura ed è coerente con il teorema di Cybenko, anche se nulla impedisce di usare funzioni diverse). Quindi, se il neurone di uscita ha funzione di attivazione lineare y = ασ (Wx + β ) + γ F. Previdi - Controlli Automatici - Lez. 13 16 Quanti parametri ha una rete neurale multilayer feedforward con • m ingressi • n neuroni nello strato nascosto ? m×n n n 1 pesi dagli ingressi ai neuroni bias nello strato nascosto pesi dallo strato nascosto al neurone di uscita bias del neurone di uscita m×n+2n+1 IN TOTALE Quindi, per es. 4 ingressi e 3 neuroni sono 19 parametri… tanti! …attenzione a non avere più parametri che dati… The curse of dimensionality … F. Previdi - Controlli Automatici - Lez. 13 17 Stima dei parametri di una rete neurale Sia α colW il θ= β γ vettore che raggruppa i parametri della rete neurale. Devo risolvere un problema di minimizzazione di una cifra di merito quadratica (la varianza campionaria dell’errore – Mean Squared Error). θˆ = arg min J (θ ) θ 1 J (θ ) = N N 2 ˆ ( ( ) ( ) ) y k − y k ; θ ∑ k =1 Nel caso di modelli non lineari la J (θ ) è non lineare e non quadratica, quindi potrebbe avere molti minimi locali. Bisogna usare metodi numerici iterativi, senza garanzia di trovare il risultato ottimo. F. Previdi - Controlli Automatici - Lez. 13 18 3. Modelli N-ARMAX L’idea è di passare da una regressione lineare ad una non lineare. Modello ARMAX y (t ) = a1 y (t − 1) + a2 y (t − 2 ) + + am y (t − m ) + + b0u (t − 1) + b1u (t − 2 ) + + bp u (t − p − 1) + + e(t ) + c1e(t − 1) + + cn e(t − n ) Combinazione lineare di valori passati di uscita e ingresso più rumore. Modello N-ARMAX y (t ) = f ( y (t − 1), y (t − 2 ),, y (t − m ), u (t − 1), u (t − 2 ),, u (t − p − 1), e(t ), e(t − 1),, e(t − n ); θ ) Combinazione non lineare di valori passati di uscita, ingresso e rumore (anche al tempo t). La funzione y (t ) = f ( ⋅ ; θ ) è nonlineare parametrica (per es. rete neurale) F. Previdi - Controlli Automatici - Lez. 13 19 In realtà è poco sensato pensare di poter ottenere modelli non lineari di rumore e quindi si usano Modelli N-ARX y (t ) = f ( y (t − 1), y (t − 2 ),, y (t − m ), u (t − 1), u (t − 2 ),, u (t − p − 1); θ ) + e(t ) con rumore bianco lineare e additivo. Il predittore si scrive in modo immediato yˆ (t t − 1) = f ( y (t − 1), y (t − 2 ),, y (t − m ), u (t − 1), u (t − 2 ),, u (t − p − 1); θ ) ed i parametri si stimano risolvendo il seguente problema θˆ = arg min J (θ ) θ 1 J (θ ) = N ∑ ( y (t ) − yˆ (t t − 1; θ )) N 2 k =1 F. Previdi - Controlli Automatici - Lez. 13 20 La struttura del predittore è la seguente y (t ) z z −1 y (t − 1) −2 y (t − 2 ) ... z u (t ) −m y (t − m ) −1 u (t − 1) −2 u (t − 2 ) z z ... z ... − p −1 f ( ⋅ ; θ) yˆ (t t − 1) ... u (t − p − 1) F. Previdi - Controlli Automatici - Lez. 13 21 La stima dei parametri viene (di norma) effettuata mediante minimizzazione della seguente funzione costo (varianza campionaria dell’errore di predizione – stima o training in predizione): 1 J (θ ) = N ∑ ( y (t ) − yˆ (t t − 1; θ )) N 2 k =1 1 = N N ∑ ε (t ) k =1 2 p Il rischio è l’overfitting. F. Previdi - Controlli Automatici - Lez. 13 22 In realtà, una volta stimati i parametri, il modello sarà usato in simulazione, perchè non disporremo più di dati di uscita veri. z z −1 yˆ (t − 1 t − 2 ) −2 yˆ (t − 2 t − 3) ... z u (t ) −m z z yˆ (t − m t − m − 1) −1 u (t − 1) −2 u (t − 2 ) ... z ... − p −1 f ( ⋅ ; θ) yˆ (t t − 1) ... u (t − p − 1) F. Previdi - Controlli Automatici - Lez. 13 23 Sarebbe quindi opportuno effettuare la stima dei parametri mediante minimizzazione della funzione costo (varianza campionaria dell’errore di simulazione – stima o training in simulazione): 1 J (θ ) = N N ∑ ε (t ) k =1 2 s Minimizzare questa cifra di merito non è banale e si possono percorrere due strade: - Minimizzare una sua approssimazione - Minimizzare l’errore di predizione utilizzando opportuni metodi per evitare l’overfitting (tecniche di regolarizzazione). F. Previdi - Controlli Automatici - Lez. 13 24 4. Local Model Networks Modelli NARX possono essere stimati usando reti neurali multilayer perceptron ma anche altre famiglie di modelli. Tra queste i le Reti di Modelli (lineari) Locali. L’idea è la seguente. Consideriamo un modello NARX y (t ) = f ( y (t − 1), y (t − 2 ),, y (t − m ), u (t − 1), u (t − 2 ),, u (t − p − 1); θ ) Supponiamo che abbia un equilibrio (u , y ) , cioè y = f ( y , y ,, y , u , u ,, u ; θ ) Linearizziamolo intorno all’equilibrio ∂f ( ⋅ ; θ ) a1 = ∂y (t − 1) u , y ∂f ( ⋅ ; θ ) a2 = ∂y (t − 2 ) u , y … ∂f ( ⋅ ; θ ) am = ∂y (t − m ) u , y ∂f ( ⋅ ; θ ) b0 = ∂u (t − 1) u , y b1 = ∂f ( ⋅ ; θ ) ∂u (t − 2 ) u , y … bp = F. Previdi - Controlli Automatici - Lez. 13 ∂f ( ⋅ ; θ ) ∂u (t − p − 1) u , y 25 Si ottiene un modello linearizzato δy (t ) = a1δy (t − 1) + a2δy (t − 2 ) + + amδy (t − m ) + + b0δu (t − 1) + b1δu (t − 2 ) + + bpδu (t − p − 1) che si può scrivere come dove A(z −1 )δy (t ) = B (z −1 )δu (t ) A(z −1 ) = 1 − a1 z −1 − a2 z −2 − − am z − m B (z −1 ) = b0 z −1 + b1 z −2 + + bp z − p −1 Non sorprende che linearizzando un modello NARX si ottenga un modello ARX. In realtà a noi non serve un modello lineare tangente, ma un modello lineare locale. La differenza è che quest’ultimo deve includere anche l’informazione sull’equilibrio (ed è perciò un modello affine). F. Previdi - Controlli Automatici - Lez. 13 26 Il sistema linearizzato è descritto dalle seguenti equazioni modello tangente δy (t ) = a1δy (t − 1) + a2δy (t − 2 ) + + amδy (t − m ) + + b0δu (t − 1) + b1δu (t − 2 ) + + bpδu (t − p − 1) (ARX-lineare) u u (t ) − δu (t ) + y S δ δy (t ) + + y (t ) ~ S Includendo l’informazione sull’equilibrio si ha y (t ) = a1 y (t − 1) + a2 y (t − 2 ) + + am y (t − m ) + m + b0u (t − 1) + b2u (t − 2 ) + + bp u (t − p − 1) − ∑ bk u + 1 − ∑ ak y k =0 k =1 p modello locale (ARX-affine) F. Previdi - Fondamenti di Automatica - Lez. 4 27 Il modello locale si può anche scrivere A(z −1 )y (t ) = B (z −1 )u (t ) + d p m dove d = 1 − ∑ ak y − ∑ bk u k =1 k =0 A(z −1 ) = 1 − a1 z −1 − a2 z −2 − − am z − m B (z −1 ) = b0 z −1 + b1 z −2 + + bp z − p −1 oppure y (t ) = θ Tψ (t − 1) dove θ = [a 1 a2 am b0 b1 bp ψ (t − 1) = [ y (t − 1) y (t − 2 ) d] T y (t − m ) u (t − 1) u (t − 2 ) u (t − p − 1) 1] T F. Previdi - Controlli Automatici - Lez. 13 28 Supponiamo ora che il sistema NARX abbia M equilibri {ui , yi }i =1,,M per i quali calcoliamo M modelli lineari locali yi (t ) = θi ψ (t − 1) T θi = [a1i a2 i ami b0i b1i bpi Essendo yi (t ) l’uscita dell’i-esimo modello locale. di ] T con i = 1,, M E’ possibile trovare un modo per “unire” l’informazione fornita da tutti i singoli modelli in un unico modello del sistema? F. Previdi - Controlli Automatici - Lez. 13 29 Consideriamo la famiglia di funzioni W = {wi ( ⋅ )}i =1,,M definita su un sottoinsieme Φ dello spazio Ψ dei vettori di regressione, cioè Φ⊆Ψ ψ = [ y (t − 1), y (t − 2 ),, y (t − m ), u (t − 1), u (t − 2 ),, u (t − p − 1)]T ∈ Ψ che rispetta le seguenti specifiche: i) 0 ≤ wi (ϕ ) ≤ 1 ∀i = 1,, M ∀ϕ ∈ Φ M ii) ∑ wi (ϕ ) = 1 ∀ϕ ∈ Φ weighting functions i =1 Si definisce Rete di Modelli Lineari Locali (Local Model Network) il seguente modello NARX M y (t ) = ∑ wi (ϕ )yi (t ) i =1 F. Previdi - Controlli Automatici - Lez. 13 30 Alternativamente è possibile scrivere il modello come segue M M k =1 k =1 y (t ) = ∑ wi (ϕ ) yi (t ) = ∑ wi (ϕ ) θTiψ (t − 1) w1 (t ) LM 1 y1 (t ) w2 (t ) u (t ) LM 2 .. . LM M y2 (t ) + + y (t ) + wM (t ) y M (t ) F. Previdi - Controlli Automatici - Lez. 13 31 Per le LMN è immediato progettare un controllore nonlineare (tutte da dimostrare però le proprietà del sistema in anello chiuso!!) procedendo come segue. Per ciascun modello ARX si progetta un controllore MV locale 1 ~ 0 ( ) ( ) ui t = y t − Ri (z ) yi (t ) Bi (z )Ei (z ) [ ] Tutti i controllori ottenuti contribuiscono a generare l’azione di controllo complessiva usando la stessa regola di prima M u (t ) = ∑ wi (ϕ ) ui (t ) k =1 F. Previdi - Controlli Automatici - Lez. 13 32 Controllore LCN Modello LMN w1 (t ) LC 1 w1 (t ) u1 (t ) LM 1 w2 (t ) e(t ) y 0 (t ) + _ LC 2 .. . LC M w2 (t ) + u2 (t ) + + wM (t ) uM (t ) y1 (t ) u (t ) LM 2 .. . LM M F. Previdi - Controlli Automatici - Lez. 13 y2 (t ) + + y (t ) + wM (t ) y M (t ) 33