Lezione 13 - Identificazione di modelli non lineari (reti neurali e

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