Deep Learning Tesi Triennale
Deep Learning Tesi Triennale
Facoltà di INGEGNERIA
Corso di laurea in INGEGNERIA INFORMATICA E
DELL’AUTOMAZIONE
1
2
Sommario
Introduzione.................................................................................................................................4
Capitolo 1....................................................................................................................................5
Introduzione...........................................................................................................................5
1.1 Il Machine Learning.........................................................................................................7
1.2 Gli algoritmi di Reinforcement Learning.....................................................................10
1.2.1 Componenti del Reinforcement Learning.............................................................15
1.2.2 Modello dell’ambiente: Markov Decision Process................................................17
1.2.3 Valore di ritorno......................................................................................................18
1.2.4 La funzione valore...................................................................................................19
1.2.5 Equazioni di Bellman..............................................................................................19
1.3 Le reti neurali.................................................................................................................25
1.3.1 Il modello matematico del neurone........................................................................27
1.3.2 L’architettura della rete..........................................................................................30
1.3.3 Addestramento della rete........................................................................................32
1.3.4 Le Reti convoluzionali.............................................................................................34
1.4 Il Deep Reinforcemente Learning.................................................................................41
1.4.1 Algoritmo Deep Q-Learning...................................................................................41
Capitolo 2..................................................................................................................................43
Introduzione.........................................................................................................................43
2.1 I Regolatori PID.............................................................................................................47
2.1.1 L’azione proporzionale...........................................................................................49
2.1.2 L’azione integrale....................................................................................................57
2.1.3 L’azione derivativa..................................................................................................68
Capitolo3...................................................................................................................................76
Introduzione.........................................................................................................................76
3.1 Controllo del cart-pole mediante tecniche classiche....................................................76
3.1.1 Modello del sistema.................................................................................................77
3.1.2 Modello matematico e funzione di trasferimento..................................................78
3.1.3 Controllo a ciclo aperto...........................................................................................82
3.1.4 Controllo a ciclo chiuso...........................................................................................85
3.2 Controllo mediante tecniche Reinforcement Learning................................................95
3.2.1 Ambiente di simulazione.............................................................................................95
3
3.2.2 Implementazione degli algoritmi................................................................................98
Algoritmo Q-Learning.....................................................................................................99
Algoritmo Deep Q-Network...........................................................................................103
3.2.4 Risultati ottenuti........................................................................................................110
Conclusioni.............................................................................................................................115
Bibliografia.............................................................................................................................117
Introduzione
Obiettivo di questa tesi è cercare di comparare attraverso con l’ausilio di alcuni trattati e
particolare di quelli che sono gli algoritmi di rinforzo profondo detti appunto Deep
disamina a scopo puramente didattico e non esaustivo su quelli che sono i punti di forza
e gli obiettivi che si possono raggiungere con ciascuna di queste tecniche da quelle
classiche a quelle di deep learning. Nello specifico nel primo capitolo passeremo in
di questa più ampia branca. Nel secondo capitolo invece parleremo del controllo
limiti legati all’implementazione di ciascuna delle tre azioni di cui si compongono tali
analizzeranno le varie combinazioni di tali azioni per cercare di dedurre quali sono gli
effetti dei vari parametri sulla bontà del controllo e anche provare a definire quale possa
4
essere il miglior compromesso per raggiungere gli obiettivi impostati. Infine nel terzo
pendolo inverso su un carrello, anche detto Cart Pole, in quanto esso costituisce un
esempio “didattico” che però ben rappresenta molte altre applicazioni di controllo, di
vario genere, di interesse pratico in ambito industriale quali ad esempio sistemi guida
dettaglio il codice usato per le diverse simulazioni presenti nei diversi articoli e
parametri dei diversi regolatori PID e dall’altro dei parametri che l’algoritmo di deep
Capitolo 1
Introduzione
Machine Learning (ML) . A sua volta l’apprendimento automatico (ML) è visto come
sfruttano i dati per migliorare le prestazioni di tutta una serie di attività. Gli algoritmi di
5
applicazioni, come in medicina, filtraggio della posta elettronica , riconoscimento
per trasformare un insieme di input in un insieme di output tramite una rete neurale
neurali profonde, reti neurali ricorrenti e reti neurali convoluzionali sono state applicate
a vari campi tra cui visione artificiale , riconoscimento vocale , elaborazione del
farmaci , analisi delle immagini mediche , scienza del clima , ispezione dei materiali
e gioco da tavolo, dove hanno prodotto risultati paragonabili, e in alcuni casi anche
superiori, alle prestazioni che sono in grado di avere gli esperti umani.
Il funzionamento delle reti neurali artificiali (ANN) si ispira al modo in cui vengono
biologici . Possiamo affermare però che esse presentano però varie differenze rispetto
6
ai cervelli biologici. Nello specifico, le reti neurali artificiali tendono ad essere statiche
e simboliche, mentre il cervello biologico della maggior parte degli organismi viventi è
computazionale che impara a prendere decisioni per tentativi ed errori e che il deep RL
prendere decisioni da dati di input non strutturati senza ingegneria manuale dello spazio
di stato. Gli algoritmi Deep RL sono in grado di accettare input molto grandi (ad es.
ogni pixel visualizzato sullo schermo in un videogioco) e decidere quali azioni eseguire
gioco). L'apprendimento per rinforzo profondo è stato utilizzato per una serie
concetti che sono alla base della teoria dell’apprendimento e che ne costituiscono le
Deep Learning.
è solo in seguito che esso ha avuto una svolta decisiva grazie alle teorie innovative di
Alan Turing il quale, nel 1950, ipotizzò la necessità di realizzare algoritmi specifici per
7
Intelligence” introdusse i concetti base per modellare un’intelligenza artificiale. Quando
si parla di Machine Learning si affronta quindi una branca dell’informatica nota come
macchina stessa: non è più l’essere umano che tenta di codificare algoritmi al fine di
base ai dati di input e alle risposte fornitele, determina le regole per risolvere il
Samuel, a definire esplicitamente il Machine Learning come: "field of study that gives
computers the ability to learn without being explicitly programmed" [1]. Le basi del
Machine Learning sono essenzialmente date dalla teoria della probabilità e statistica.
Come riportato nel testo “Deep reinforcement learning: An overview” [2] il ML, ad
influenzare le scelte dei suoi utilizzatori, grazie allo sviluppo di intelligenza artificiale in
ottimizzazione: il dataset viene diviso in diverse parti non sovrapponibili, una per il
differiscono non solo per gli algoritmi utilizzati, ma soprattutto per lo scopo per cui
8
sono realizzate le macchine stesse: apprendimento supervisionato, non supervisionato e
Reinforcement Learning.
che il sistema identifichi una regola generale che associ l’input all’output corretto. La
dati, non etichettati, senza alcuna indicazione sulla loro categoria di appartenenza: in
identificare negli input una logica di struttura senza appunto che questi siano
imparare anche dagli errori, il comportamento del sistema è basato su una politica di
learning è diverso dal learning supervisionato, in cui si parte da un training set di esempi
già classificati che quindi offrono all’algoritmo già un certo grado di conoscenza. Ogni
elemento di questo training set possiede una specifica (label) che indica la corretta
azione che il sistema dovrebbe intraprendere in quella situazione, che di solito consiste
9
contenuta nel training set per poi essere utilizzata per identificare le label corrette non
presenti negli insiemi di test. Il reinforcement learning si differenzia anche dal learning
importanti metodi di learning ma non adeguati per imparare dalle interazioni. Nei
comportamenti desiderati che siano, sia corretti che rappresentativi di tutte le situazioni
nel quale l’agente potrebbe trovarsi ad operare. In queste situazioni costituite anche da
territori inesplorati un agente dovrebbe poter imparare solo dalla propria esperienza.
a creare degli agenti, che operano in un certo ambiente, tali agenti sono in grado di
risolvere task basandosi su dati che variano nel tempo il che implica che tali agenti
avranno un comportamento dinamico, rispetto ai dati elaborati, per cui le azioni da essi
ricompensa, viene usato per indicare sia una quantità positiva che negativa: lo scopo
dati di confronto per poter sviluppare conoscenza, a tale scopo l’accento si pone sul
applicano bene quindi alla risoluzione di task di controllo. Una delle prime strategie di
dimensione sempre minore e di più facile risoluzione che conducono in ultima istanza
alla risoluzione del problema principale. Tale metodologia risultò però non sempre
eventi inattesi, non più catalogabili come già affrontati o da affrontare, ne andava a
risoluzione del problema. Per ovviare a tali problemi si rese necessario ricorrere ad una
strategia "per tentativi" (trial and error) che generalmente si riconduce ai metodi Monte
Carlo, che includono una vasta classe di algoritmi computazionali, i quali effettuano un
quella che combina l’applicazione di metodi per tentativi, da cui possiamo ricavare
11
• L’ottimizzazione dei parametri in tempo reale di una raffineria di petrolio da
dopo essere nata si alza in piedi, dopo qualche ora è già in grado di correre a 20
miglia all’ora;
oppure rientrare alla base per ricaricarsi: il fattore discriminante sarà dato da un
lato dall’attuale livello di carica delle batterie e dall’altro dalla velocità e facilità
esegue permettono di simulare lo stato futuro dell’ambiente in tal modo l’agente potrà
capire quali azioni e opportunità saranno disponibili in seguito il che, nel caso degli
esempi riportati sopra si traduce in: la previsione della successiva posizione di un pezzo
sulla scacchiera, la previsione del livello delle riserve della raffineria, della posizione
successiva del robot e del futuro livello di carica. Pe arrivare alla scelta corretta
tempo stesso l’effetto delle azioni non può essere totalmente determinato e per tale
sono obiettivi espliciti con cui l’agente può giudicare i suoi progressi una volta che
12
questi vengono raggiunti che nel caso degli esempi citati si traducono in: il giocatore di
stima quando la batteria sarà scarica. L’agente però può usare anche la propria
esperienza per migliorare le sue performance nel tempo in modo che, ad esempio,
degli scacchi oppure o nel caso dell’esempio della gazzella, possa migliorare
l’efficienza della corsa. La conoscenza che l’agente porta all’inizio della risoluzione del
task può derivare da task simili svolti precedentemente oppure costituita da una
specifica posta all’interno dello stesso algoritmo mentre l’interazione con l’ambiente è
Nel seguito di questo paragrafo viene definito il RL in termini delle sue componenti
un’analisi di alcuni tra i più comuni algoritmi nello specifico SARSA e Q-Learning per
poi spostarsi, nel prossimo paragrafo, il paragrafo tre, su algoritmi più avanzati basati su
reti neurali come Deep Q-Network. La trattazione che segue trae spunto da [3].
esso ottiene uno stato, ma anche dalle azioni che l’agente stesso decide di intraprendere
e che vanno a modificare lo stato stesso, dove l’ambiente è definito come tutto ciò che
13
circonda l’agente e con cui esso può interagire. Il funzionamento di algoritmi di
reinforcement learning può essere sintetizzato nella figura 1.1 che segue:
Notiamo che in un dato time step t, sia l’agente che l’ambiente si trovano in uno stato s,
posizione di un oggetto. Dallo stato s può essere eseguita un’azione a, ottenendo quindi
una coppia stato-azione. L’insieme di tutte le coppie stato-azione, può essere sia
discreto sia continuo. Prima di passare al successivo time step, t+1, l’agente riceve un
premio (reward) che viene trasferito al prossimo stato. Ciò che permette di determinare
di policy sarà definito e approfondito nel successivo paragrafo, insieme a quelli che
sono gli altri elementi che contraddistinguono il RL. Per adesso continuiamo dicendo
che all’agente non viene detto quale azione intraprendere, ma è lui che deve scoprire
esplorando l’insieme delle azioni possibili. Nei problemi più interessanti le azioni
14
possono condizionare non solo il reward immediato ma anche la successiva situazione e
reward. Per ottenere molti reward, o reward alti, l’agente deve preferire azioni che ha
già provato in passato e per cui ha già ottenuti reward elevati. Ma per scoprire queste
azioni, deve provare azioni che non ha mai selezionato prima. Quindi l’agente deve da
un lato sfruttare quello che ha già avuto modo di apprendere per ottenere il reward,
dall’altro esplorare nuove strade per selezionare migliori azioni nel futuro.
Oltre agli agenti e all’ambiente, possiamo identificare altri sotto elementi nel paradigma
modello dell’ambiente. La policy definisce il modo con cui l’agente apprende e il suo
comportamento in un dato istante. Per semplificare, una policy può essere vista come il
tali stati. In alcuni casi la policy può essere espressa come semplice funzione o tabella di
ricerca, mentre in altri può coinvolgere anche una ulteriore computazione come i
quando a partire da un per un certo stato viene intrapresa sempre la stessa azione,
determinato stato viene scelta in base al calcolo della distribuzione di probabilità tra le
possibili azioni e lo stato dato. Il segnale di reward, possiamo dire che rappresenta il
goal in un problema di reinforcement esso definisce così quali sono i buoni ed i cattivi
comportamenti per l’agente. In ogni time step, l’ambiente invia all’agente un singolo
15
il reward totale che riceve durante un episodio del programma. Questo segnale è la base
dalla policy è seguita da un reward basso, allora la policy potrebbe cambiare per
Mentre il reward indica cosa è buono nell’immediato, la funzione valore specifica cosa
è buono nel lungo termine. Il valore dello stato è l’ammontare totale dei reward che un
agente si aspetta di accumulare nel futuro, partendo da quello stato. La funzione valore
quindi determina la desiderabilità a lungo termine degli stati dopo aver preso in
Per esempio uno stato potrebbe sempre portare un reward immediato basso ma avere
ancora un valore alto poichè è regolarmente seguito da altri stati che portano reward alti,
e viceversa. Per fare un’analogia umana, i reward sono come il piacere (reward alto) o il
dolore (reward basso). I reward sono in un certo senso, elementi primari, mentre i
valori, intesi come predizione dei reward, sono secondari. Senza reward non ci possono
essere valori e l’unico scopo di stimare i valori è quello di raggiungere reward più alti.
Pure essendo elementi secondari, sono però i valori gli elementi di confronto utilizzati
quando si valutano le decisioni da prendere. Le scelte delle azioni sono fatte sulla base
di giudizi sui valori. Si cercano le azioni che producano stati a massimo valore, non a
massima ricompensa, perché queste azioni ottengono maggior ricompensa nel lungo
devono essere stimati e re-stimati dalle sequenze di osservazioni che un agente compie
durante la sua intera esistenza. In effetti, la componente più importante di quasi tutti gli
algoritmi considerati è un metodo per stimare in modo efficiente i valori, anche se tale
16
ragionamento non è detto sia valido per qualsiasi ambiente. Il quarto ed ultimo elemento
può predire il risultato della prossima coppia stato-azione. I modelli sono usati per
pianificare, ovvero decidere prima quali azioni saranno eseguite sulla base degli stati
che potranno essere raggiunti. Vediamo più nel dettaglio come viene viene modellato
l’ambiente.
A questo punto proviamo a dare una descrizione formale dell’ambiente. Diciamo subito
che non è necessario sapere esattamente come è fatto l’ambiente ma piuttosto formulare
delle ipotesi generali sulle proprietà che esso possiede. In genere nel RL si assume che
all’istante t l’agente percepisce l’ambiente come uno stato st ∈ S e sulla base di st decide
di agire con una determinata azione a t ∈ A . L’ambiente risponde dando all’agente una
L’ipotesi Markoviana implica che quello che succede all’istante t + 1, (st +1 , r t +1)
dipende solo da quello che è successo all’istante precedente (st ,r t ) e non da tutto
l’ipotesi Markoviana ha una dinamica che può essere descritta con una “dinamica ad un
passo”: cioè il problema può essere trattato come episodico, dove gli episodi sono i
proprietà di Markov è molto importante nel RL perchè tutti i metodi legati a questo tipo
siano funzione solo dello stato corrente e dell’azione intrapresa all’istante precedente.
massimizzi la somma dei reward attesa. La somma dei reward viene chiamata valore di
Per compiti a valore continuo, invece del valore di ritorno, viene definito il discount
18
1.2.4 La funzione valore
Per decidere quale azione intraprendere in un certo istante, è importante per l’agente
conoscere quanto è “buono” essere in un particolare stato. Un modo per misurare questa
bontà dello stato è la funzione valore. Essa è definita come la somma dei rewards attesa
particolare stato s. Per una data la policy π la funzione valore, V π (s) è data da:
∞
V π ( s )=E π ( Gt|s t =s )=E π ( ∑ γ k r t +k ∨st =s) (1.4)
k=0
può essere definita come la somma dei rewards prevista mentre si intraprende un’azione
come segue:
(∑ | )
∞
Q π ( s , a )=E π ( Gt|s t =s , at=a ) =Eπ γ k r t +k s t=s , at =a (1.5)
k=0
reward attesa può essere formulato in termini di relazione ricorsiva con la funzione
valore. Una policy π è considerata migliore di un’altra policy π ' se il ritorno atteso per
quella policy è maggiore di quello atteso per π ' e questo per tutti gli s ∈ S, che implica
V π ( s ) ≥ V π (s) per tutti gli s ∈ S . La funzione valore ottimale V ¿ (s) quindi può essere
'
definita come:
V ¿ ( s ) =max V π ( s ) , ∀ s ∈ S (1.6)
V ¿ ( s ) = max Q π (s , a) ¿
(1.8)
a ∈ A (s)
a a
dove p ( s '|s , a ) indica la probabilità di arrivare nello stato s' partendo dallo stato s
ed intraprendendo l’azione a.
( a
'
'
| ) s
' [
Q¿ ( s , a ) =E r t + γ max Q¿ ( s t +1 , a ) s t=s , at =a =∑ p ( s |s , a ) r t +γ max Q¿ ( s ,a ) (1.11)
'
a
'
' '
]
dove Q¿ (s , a) è definita ricorsivamente in base alle equazioni 1.5 e 1.7.
conosciute, o che al limite vengano stimate sul momento. Per altri algoritmi invece,
quelli conosciuti come algoritmi model-free si assume che le probabilità non siano
conosciute e che debbano essere stimate sia policy che funzione valore attraverso un
rollout del sistema, ovvero applicando uno o più step di simulazione per testare le
possibili conseguenze. Gli algoritmi model-free più comunemente usati sono: Monte
Carlo, Temporal Difference e Policy Search. Nel seguito del paragrafo ci focalizzeremo
20
sui metodi model-free per poi poter introdurre gli algoritmi Q-learning e, nel successivo
Gli approcci model-free che non richiedono alcun modello dell’ambiente, possono
essere classificati anche come approcci on-policy o approcci off-policy. I primi cercano
ricercano la policy ottimale direttamente nello spazio dei parametri della policy stessa.
Inoltre i metodi on-policy utilizzano la policy corrente per generare azioni e per
esplorazione diversa per generare azioni rispetto alla policy che viene aggiornata.
Vediamo ora nel dettaglio due tipologie di metodi model-free: i metodi Monte Carlo e
I metodi Monte Carlo lavorano sull’idea della GPI (generalized policy iteration). La
GPI è uno schema iterativo ed è composto da due processi. Il primo prova a costruire
evaluation step). Nel secondo step, la policy viene migliorata rispetto alla funzione a
valore corrente (policy improvement step). Nei metodi Monte Carlo, per stimare la
funzione valore si utilizza la tecnica del rollout eseguendo la policy corrente sul sistema.
attraverso tecnica greedy. Utilizzando questi due step in modo iterativo, è possibile
dimostrare che l’algoritmo converge alla funzione e alla policy del valore ottimale.
Sebbene i metodi Monte Carlo siano semplici nella loro implementazione, richiedono
21
un gran numero di iterazioni per la loro convergenza e soffrono di una grande varianza
Anche i metodi Temporal Difference (TD) si basano sull’idea della GPI ma differiscono
dai metodi Monte Carlo nell’ evaluation step della policy. Questi metodi calcolano
l’errore temporale, ovvero la differenza tra la nuova stima e la vecchia stima della
per aggiornare la funzione valore, invece di usare la somma totale di renard. Un simile
corrente, s è il vecchio stato e s' è il nuovo stato, da essa si nota che nei metodi temporal
difference la funzione valore viene aggiornata ad ogni time step, al contrario dei metodi
Monte Carlo che per aggiornare la funzione valore che l’episodio sia completato. Per
SARSA e Q-Learning.
Algoritmo Sarsa
funzione azione-valore invece della funzione valore. Lo step di evaluation usa l’errore
temporale per la funzione azione-valore, come avviene in modo simile per la funzione
Algoritmo SARSA
22
In(s,a) random
repeat
Osserva stato iniziale s1
Seleziona un’azione a1 usando la policy derivata da Q (es: ϵ-greedy)
for t=1 to T do
Esegui azione a 1
Osserva il reward rt e il nuovo stato st+1
Scegli la nuova azione at+1 la policy derivata da Q (es: ϵ-greedy)
Aggiorna Q usando
Q ( s t , at ) ←Q ( st , a t ) + α [r t + γ Q ( s t +1 , at +1 )−Q ( s t , a t ) ]
end for
until terminazione
Algoritmo Q-Learning
la prima volta nel 1989 da Watkins, come citato in [4]. A differenza di SARSA, esso
esperienza è definita dall’insieme (s , a , r , s ' ) il che vuol dire che l’agente partendo
dallo stato s, dopo aver eseguito l’azione a e aver ricevuto un reward r, si muove inverso
un nuovo stato s' . Ricevendo il reward massimo possibile da un’azione nello stato s' si
Algoritmo Q-Learning
until terminazione
Per salvare i valori della funzione valore per ognuno dei differenti stati, il metodo più
semplice è utilizzare la forma tabellare. Questo metodo presenta però alcune limitazioni:
se lo spazio degli stati del problema è molto vasto risulta impossibile salvare tutti i
valori nel formato tabellare in quanto la memoria richiesta per salvare tutti questi dati
risulterà troppo vasta. Inoltre anche la ricerca nella tabella di un solo valore in un
particolare stato potrebbe essere proibitiva dal punto di vista computazionale. Infine uno
meglio discretizzazione degli stati stessi. Questi sono i motivi che portano ad adottare il
della funzione valore in più regioni dello spazio degli stati, questo fintato che il numero
24
dei parametri dell’approssimatore è minore del numero di valori di stato, ciò fa sì che gli
Esistono vari metodi per l’approssimazione di funzione. Per brevità nel prossimo
paragrafo verranno trattare solamente le Reti Neurali, in maniera generale, per poi
Network) sono uno degli strumenti attualmente più utilizzati, sono modelli ispirati
alla natura infatti quello che rende le ANN particolarmente interessanti è la possibilità
di riprodurre molte delle caratteristiche del cervello umano, quali ad esempio la capacità
basso consumo di energie, come spiegato nella fonte [5] di questa tesi. Di seguito
rete di neuroni. Ogni neurone biologico è composto da una parte centrale, detta corpo
cellulare, in cui risiede il nucleo che regola tutte le attività del neurone stesso. Dal corpo
cellulare hanno origine due tipi di prolungamenti, detti dendriti e assoni. I dendriti
hanno il compito di ricevere i segnali da migliaia di altri neuroni, per poi propagarli
verso il nucleo, l’assone, invece, conduce il segnale dal nucleo verso i dendriti di altri
spiegato nella fonte [6] che riportiamo in bibliografia. Ciascun neurone esegue una
efficiente tra tutte le cellule che si sviluppa quella che definiamo intelligenza.
Una rete neurale artificiale, in analogia alla struttura biologica appena descritta, è
artificiali, che prendono tanti input dall’esterno, li codificano in quello che rappresenta
il corpo cellulare, per così dire, e li propagano verso le altre unità. Nel modello
artificiale un parametro che influenza il risultato della rete, è il cosiddetto peso sinaptico
che viene inserito per tenere conto dell’importanza degli ingressi. La rete ANN è un
sistema adattivo cioè un sistema che durante l’allenamento cambia la propria struttura
con l’obiettivo di avere un output della rete sempre più simile a quello desiderato. A tale
scopo vengono variati i valori dei pesi sinaptici, questo parametro può assumere un
qualsiasi valore reale. L’obiettivo della rete è di minimizzare la differenza tra output
26
reale e quello predetto dall’algoritmo a partire da una serie di dati di input e dagli stessi
output associati agli ingressi. Durante la fase di addestramento della rete, si cercherà
questo modo, a partire dagli esempi con cui si è allenata, la rete costruirà una mappa
Per capire il ruolo dei pesi all’interno della rete risulta fondamentale descrivere la
riceve in ingresso una serie di input e dà come uscita una combinazione lineare dei suoi
dove:
• a = funzione di attivazione del neurone, ovvero la legge che regola la sua uscita.
Secondo tale modello, il neurone artificiale riceve dei valori in ingresso (x1, x2, ...,
27
xn) (tanti quanti sono i dati di input scelti dall’operatore) che vengono moltiplicati
per il peso della connessione corrispondente (w1, w2, ....., wn). Successivamente i
di attivazione a. Se tale valore supera una data soglia, il neurone genera un segnale di
{
N
y=1 , se ∑ w i x i >0
i=1
N
y=0 , se ∑ w i x i <0
i=1
classificazione che, a seconda del risultato della moltiplicazione tra input e peso,
restituisce un output. Dal momento che i dati di input e il valore soglia sono definiti
prima dell’inizio dell’addestramento, l’unico parametro che può essere cambiato al fine
l’algoritmo cercherà di modificare i pesi in modo tale che l’output sia più vicino
possibile a quello desiderato. Nella figura che segue mostriamo questa variazione,
conosciuta come Delta Rule, la quale permette di variare i pesi in modo proporzionale ai
dati di input e all’errore δ operato dal neurone che è valutato come la differenza tra
l’uscita reale y e quella target yd, mentre la costante di proporzionalità è detta tasso di
28
FIGURA 3 MODELLO DEL NEURONE CON DELTA RULE [8]
Dal momento che realizza una semplice combinazione lineare dei valori di ingresso,
questo tipo di modello non permette di gestire i problemi complessi. Per questo motivo
viene introdotta una funzione di attivazione diversa dalla semplice soglia. Tra le
vengono utilizzate funzioni di attivazione ancora più semplici, come la ReLu che
tre tipologie appena descritte sono mostrate nella figura che segue:
29
FIGURA 4 FUNZIONI DI ATTIVAZIONI: A SINISTRA LA FUNZIONE SIGMOIDALE, AL
CENTRO QUELLA A TANGENTE IPERBOLICA, A DESTRA LA RELU [8].
Com’è facile intuire, siccome un singolo neurone non è abbastanza per costruire un
neurali connesse tra loro che formano appunto una rete neurale. Le reti assumono una
struttura stratificata cioè sono composte da diversi livelli ciascuno dei quali contiene
una quantità distinta di neuroni. L’unità neurale di ogni strato riceve come input gli
output dei neuroni dello strato precedente e fornisce il proprio output ad ognuno dei
neuroni dello strato successivo, che lo accetta come input pesato. L’architettura più
semplice di una rete neurale artificiale è composta da tre layer in cui ogni neurone
elabora i segnali ricevuti dal livello precedente e trasmette il risultato alle unità
30
FIGURA 5 ARCHITETTURA A STRATI DI UNA SEMPLICE RETE NEURALE [9]
Il primo strato, detto input layer, è formato da neuroni che ricevono come
non lineari degli input immessi nella rete. Nell’architettura più semplice è
presente solo un livello di questo tipo, ma nei modelli più complessi ci sono
31
L’ultimo strato, chiamato output layer, sarà formato da tanti neuroni quanti
sono gli output del problema che si vuole risolvere. Se ad esempio si vuole
diversi, l’ultimo strato della rete sarà formato da due neuroni associati agli
ogni neurone di questo livello viene convertito attraverso una funzione che può
quello predetto dall’algoritmo, a partire da una serie di dati di input e dagli stessi output
associati agli ingressi. Per addestrare una rete neurale uno dei metodi più efficaci è
l’algoritmo di propagazione all’indietro dell’errore, che prevede che i valori dei pesi
dalla rete al valore desiderato cioè l’output noto. L’errore commesso dall’algoritmo,
ovvero la distanza che intercorre tra gli output desiderati e i corrispondenti output della
rete, può essere descritto da una funzione detta funzione di costo. Durante
32
raggiungimento del minimo assoluto della funzione di costo. All’inizio dell’algoritmo di
Durante la prima fase si calcolano le attivazioni dei neuroni in base al valore corrente
dei pesi procedendo così dal layer di input si arriva al layer di output. Una volta arrivati
33
fase di backward propagation in cui si correggono i pesi a partire dal layer di output fino
un altro parametro del sistema molto importante detto tasso di apprendimento o learning
rate. Esso può assumere valori tra zero e uno e condiziona la velocità di apprendimento
dell’algoritmo, in effetti quanto più tale parametro si avvicina a uno tanto più rapido
sarà l’addestramento dal momento che questo causa una modifica maggiore del peso
sinaptico verso il valore ottimo. D’altro canto però, un learning rate molto alto comporta
Le reti neurali convoluzionali (CNN) sono una tipologia di reti stratificate ispirate alla
corteccia visiva dei mammiferi, ovvero una regione del cervello che elabora le
immagini provenienti dal sistema visivo. A tale scopo le cellule appartenenti alla
corteccia sono suddivise in gruppi, ognuno dei quali estrae informazioni da una
ottimale per cercare forti correlazioni spaziali, caratteristica tipica delle scene naturali.,
Gli studiosi, visto le grandi performance di queste strutture, hanno cercato di riprodurle
modo molto accurato. Per analizzare un’immagine, essa viene rappresentata come una
matrice di pixel, ovvero una matrice di valori che indicano l’intensità di colore dei vari
punti dell’immagine. Utilizzando una rete neurale per analizzare l’immagine, ogni
valore della matrice rappresenterà un dato di input. Però questa tipologia di rete
presenta due limitazioni. La prima riguarda il numero di neuroni di input nel primo
34
strato della rete che risultea essere troppo elevato dal momento che è associato al
numero totale dei pixel dell’immagine (si noti che anche nel caso si immagini con
dimensioni contenute, il numero di pixel risulta essere molto alto), il che comporterebbe
un numero enorme di pesi di collegamento tra l’input layer e l’hidden layer che
legato alla perdita della spazialità dei dati. Infatti considerando ogni pixel come un dato
separato dagli altri, la rete non risulterebbe più essere influenzata dalle traslazioni e
Grazie allo sviluppo delle reti convoluzionali,questi limiti si possono superare. Esse
sono così chiamate perché al loro interno si utilizza un’operazione matematica detta
input, uno o più blocchi nascosti e un blocco di output che effettua la classificazione,
Costituisce il primo strato della rete e prende in input le immagini del Dataset,
introdotte come matrici di pixel. Ciascun dato singolare a cui è associato un neurone
della rete,è rappresentato da un pixel formando così per ogni immagine una matrice di
neuroni.
Strato di convoluzione
immagine (detta feature map) di dimensione uguale a quella originale, come si può
SU UN’IMMAGINE [12]
Notiamo che vengono applicati diversi filtri in sequenza e il risultato del filtraggio viene
“impilato” per cosi dire a formare un blocco che ha spessore pari al numero di filtri
36
utilizzati. Il filtraggio è un’operazione che consiste nel prodotto scalare tra i valori dei
all’immagine, avviene su una porzione dell’immagine della stessa dimensione del filtro,
detta campo di ricezione locale. Il filtro viene chiamato anche sliding window (finestra
37
FIGURA 10 ESEMPIO DELLA CONVOLUZIONE TRA LA MATRICE DI INPUT E UN KERNEL
3X3
dimensione del filtro sia maggiore del campo di ricezione, per ovviare viene effettuata
una operazione detta padding, cioè viene aggiunto un bordo all’immagine contenente
una CNN possiede più di un livello convolutivo. Man mano che vengono trasmesse
delle informazioni, dal primo strato verso l’uscita della rete, ogni filtraggio permette di
estrarre caratteristiche sempre più astratte, fin quando all’ultimo livello si effettua la
classificazione dell’immagine.
Strato di attivazione
In questo livello viene applicata una funzione di attivazione chiamata "ReLu function"
introdurre all’interno delle reti un elemento di non linearità che è fondamentale per
38
risolvere problemi complessi. In figura 10 è mostrata la funzione ReLu descritta
convoluzionale che sono minori di zero. Tutto questo non solo permette di facilitare ma
dell’errore a valle .
Strato di raggruppamento
la rete deve apprendere. Vengono prodotte in questo modo delle nuove mappe delle
sono fonte di disturbo ed errore. Le tecniche più comuni per effettuare pooling sono:
l’average pooling in cui si estrae la radice quadrata della somma dei quadrati dei pixel
osservati, e il max pooling in cui si estrae il valore massimo fra i pixel nella finestra di
39
possibile introdurre un padding per preservare le dimensioni della matrice di output,
Il Fully connected layer rappresenta l’ultimo livello di una rete neurale convoluzionale.
precedente in un vettore lineare. Fatto ciò si introduce il livello Fully connected ciascun
neurone sarà collegato a tutti i neuroni dello strato precedente, ma due neuroni
appartenenti allo stesso layer non possono essere connessi tra loro. L’output di questo
layer avrà un numero di neuroni pari al numero di oggetti che si vogliono classificare. I
apprendimento legato ad essa viene chiamato Deep Learning. Con il termine Deep
in molti settori come per esempio nel giocare a videogiochi Atari come spiegato nella
fonte [13] riportata in bibliografia. Nel paragrafo che segue viene spiegato nel dettaglio
Learning. Esso inizialmente era considerato instabile quando usato con le reti neurali e
per questo veniva a usato solo per compiti e problemi che coinvolgevano spazi di stato a
41
limitata dimensionalità. In seguito pero è stato dimostrato, come spiegato nella fonte
citata [13], che le tecniche di Q-Learning possono essere utilizzate con le DNN. Questo
seguito questa tesi ci si riferirà sempre a tale algoritmo con il nome di Deep Q-Learning
Learning dove la tabella stato-azione viene sostituita da una rete neurale. In questo
nell’aggiustamento dei pesi dei neuroni che compongono la rete attraverso la tecnica
modifica dei pesi in base alla funzione costo o loss function, nel seguente modo:
Lt ¿ ¿ ¿ (1.14)
dove Lt quindi rappresenta l’errore commesso. L’obbiettivo è quello di far tendere questa
differenza a zero in modo tale che la previsione si avvicini il più possibile al risultato
il valore stimato dalla rete. Mediante backpropagation, gli errori calcolati dalla funzione
costo saranno propagati all’indietro nella rete seguendo la logica di discesa del gradiente
esperienze estratte random da questo replay memory, viene effettuato il training. Questa
42
tecnica permette quindi di utilizzare le esperienze passate che saranno usate in più di un
memory permette di interrompere la forte correlazione che potrebbe essere presente tra
Capitolo 2
Introduzione
In questo capitolo passeremo in rassegna alcune tra le principali tecniche di controllo
classiche in particolare quella basata sui regolatori PID e quella denominata MPC.
43
Con il termine “controllo” si indica l’azione svolta per portare, e mantenere, ad un
i regolatori e le trasmissioni dei segnali, ma dall’inizio degli anni ’80 abbiamo assistito
hanno prestato maggiori possibilità di elaborazione e una maggiore precisione oltre che
maggiore stabilità nel tempo. Questi regolatori industriali sono riusciti a svolgere quella
fare in modo che la/e variabile/i di uscita del sistema da controllare inseguano nel modo
invece che il sistema controllato sia stabile, che la risposta a regime a certi segnali di
segnali di ingresso risulti limitata e il costo del sistema di controllo sia basso. Con
riferimento alla risposta a regime e alla risposta in transitorio ad una determinata classe
quanto a seguito dell’energia immessa nel sistema dalle variabili di ingresso essa è
44
soggetta a fenomeni di dissipazione e accumulo di energia. La risposta a regime è
quella invece la parte della risposta che persiste nel tempo mentre il segnale di ingresso
Ai giorni d’oggi esistono molti tipi di sistemi di controllo, più o meno sofisticati,
realizzati con diverse tecniche (alcuni attraverso dispositivi informatici ma altri ancora
secondo tecnologie idrauliche e pneumatiche), nel seguito del capitolo, nel primo
standard tempo invarianti molto diffusi utilizzano tre tipi di leggi di controllo diverse:
azione Proporzionale, azione Integrale, azione Derivativa , da qui l’acronimo PID che è
Benché siano realizzati mediante una tecnologia antiquata per gli standard tecnologici
relativa semplicità di taratura dei loro parametri di lavoro. Ragion per cui il controllore
PID, nelle sue innumerevoli varianti, gestisce attualmente circa il 95% degli anelli di
Ci sono svariati fattori che hanno favorito il successo dei regolatori PID tra cui
possiamo elencare:
45
convenienza economica derivanti dalla standardizzazione a cui si è oramai
a causa della natura stesa delle prestazioni piuttosto scadenti della maggior parte
dei sistemi di controllo dovute a problemi nei sensori e negli attuatori, dovute
controllo può diventare modesto, per cui viene meno la motivazione di cercare
essi possono essere usati anche e soprattutto in schemi di controllo più complessi
In sintesi, possiamo affermare che il successo dei PID è dovuto al fatto che essi
efficacia/costo globale.
Di seguito quindi analizzeremo i PID nella loro struttura, descrivendo nel dettaglio il
ognuna di esse saranno messi in evidenza pregi e difetti, ed anche i problemi tecnici che
sorgono al momento del loro utilizzo pratico nelle diverse situazioni di lavoro. La
trattazione che segue trae spunto dalle fonti presenti in bibliografia come [1], [2], [3].
46
2.1 I Regolatori PID
I regolatori PID possono essere adattati ad una vasta gamma di sistema di regolazione in
parametri del sistema di controllo in cui sono inseriti entro ampi limiti. Essi possono
essere utilizzati dunque sia per controllare, ad esempio, una portata, sia per controllare
una temperatura, la quale ha una risposta molto più lenta della prima.
FIGURA 14
e(t): errore dato dalla differenza tra il segnale di riferimento in ingresso e l’uscita
(In realtà nello schema completo sarebbe la differenza tra riferimento e uscita
retroazione. Per semplicità in questa trattazione riterremo che la f.d.t del sensore
47
Dalla figura (2.1) possiamo notare come il controllore venga posto in serie al sistema da
controllare, ovviamente prima di esso perché il controllo abbia effetto sulla grandezza in
d’ingresso del controllore. La legge di controllo del regolatore, cioè il legame tra e(t) e u(t)
sarà:
t
de (t)
u ( t )=K P e ( t ) + K I ∫ e( τ )dτ + K D (2.1)
t0 dt
( )
t
1 de(t)
u ( t )=K P e ( t ) + ∙∫ e ( τ ) dτ +T D ∙ (2.2)
TI 0 dt
Nella 2.2 insieme al KP, al posto di KI, e KD compaiono le costanti di tempo delle azioni
KP
T I=
KI
KD
T D=
KP
Essendo i PID, almeno nella loro forma ideale, sistemi dinamici SISO, lineari, stazionari,
impropri, possiamo applicare la trasformata di Laplace alla formula (2.2), così facendo si
) ( )
2
(
U (s ) 1 T T s +T I s+ 1
PID( s)= =K P 1+ +T D s =K P D I (2.3)
E( s) TI s TI s
48
che rappresenta un sistema lineare tempo invariante e dinamico improprio il che lo
ottenendo la funzione:
( )
U (s ) 1 TD s
PID( s)= =K P 1+ +
E( s) TI s T s (2.4)
1+ s D
N
Nel seguito approfondiremo tale aspetto analizzando, più nel dettaglio, una per una le tre
In riferimento alla formula generale del PID riportata sopra e data dalla (2.2), nelle
attua la sola azione di una correzione proporzionale all’errore e(t) in funzione di KP. Per
sua natura un’azione proporzionale implica che l’ingresso e(t) e l’uscita u(t) sono legati
u ( t )=K P ∙ e ( t ) (2.5)
seguente:
FIGURA 15
49
Il significato dell’azione proporzionale sta nel fatto che maggiore sarà l’errore e(t)
all’ingresso del controllore e maggiore sarà l’azione di controllo svolta dallo stesso
regolatore. Possiamo ben capire che la velocità di risposta del sistema, all’aumentare
del guadagno proporzionale, aumenta, ma allo stesso tempo per guadagni elevati,
riguarda il guadagno proporzionale ricordiamo che più spesso, in letteratura, invece che
minima variazione dell’ingresso e(t), espressa in percentuale, che porta l’uscita u(t) dal
valore minimo al suo valore di fondo scala. Nella figura che segue, la figura 15, sono
evidenziati due esempi nei quali si ha un campo di valori uguale sia per l’ingresso che
per l’uscita del PID, ma come possiamo notare, nel diagramma di sinistra la percentuale
del suo valore di fondo scala, è del 50%, detta in altri termini è necessario che l’ingresso
e(t) arrivi a metà del suo valore massimo per avere il passaggio dell’uscita u(t) dal suo
valore minimo di 0.1V al suo valore di fondo scala di 10V, mentre nel diagramma di
destra tale variazione risulta del 25%. Dunque avviene la medesima variazione del
segnale di uscita al suo valore di fondo scala in entrambi i casi ma con valori di banda
proporzionale diversi.
50
FIGURA 16
La relazione tra BP e KP è data da :
100
K P=
BP
Essa può essere usata nel momento in cui KP è espresso come rapporto tra i segnali di
uscita e ingresso, entrambi normalizzati ai rispettivi valori di fondo scala, cioè espresso
u(t)/u fondoscala
K P=
e (t)/e fondoscala
Dalla relazione che lega il guadagno alla banda si deduce che agendo sulla banda,
quanto è sufficiente una minore variazione dell’errore in ingresso perché questa porti ad
precisione migliora il che implica che aumenta la velocità di risposta del sistema. Ad un
aumento del guadagno corrisponde anche un aumento del valore raggiunto all’uscita del
blocco proporzionale. Tale valore si discosterà sempre di meno dal valore originale del
segnale r(t) senza però raggiungerlo a causa dell’errore a regime. Il contributo dovuto a
51
KP è appunto proporzionale all’errore e diminuisce man mano che l’errore si avvicina a
zero. All’aumento del guadagno c’è però un limite. Infatti oltre un certo valore, il
sistema entra in uno stato di auto oscillazione, cioè di instabilità. Ed è per questo che la
sola azione proporzionale viene utilizzata nei sistemi nei quali sono consentiti
scostamenti tra il valore effettivo della grandezza controllata e quello desiderato, come
ad esempio negli impianti di riscaldamento degli edifici e quindi anche valori bassi del
le affermazioni fatte fin qui. Facendo riferimento allo schema di figura 2, associamo a
1 A0
R ( s )= e G ( s )=
s 1+τ ∙ s
primo ordine con un polo in −1/τ . Ad anello chiuso la funzione di trasferimento del
KP ∙ A0
Y (s) 1+ τ ∙ s KP ∙ A0
W ( S )= = = (2.6)
R(s) K ∙A 1+ sτ + K P ∙ A 0
1+ P 0
1+τ ∙ s
d’uscita:
1 KP ∙ A0
Y ( s )=R ( s ) ∙W ( s )= ∙ (2.7)
s 1+sτ + K P ∙ A 0
52
Per ottenere la risposta nel dominio del tempo del nostro sistema, scomponiamo la (2.7)
in fratti semplici mediante l’applicazione del teorema dei residui, poi antitrasformiamo
secondo Laplace e otteniamo la risposta cercata che sarà quindi data da:
( )[ ]∙ δ
−1+ K P ∙ A 0
K P ∙ A0 t
y (t)= ∙ 1−e τ
−1 ( t ) (2.8)
1+ K P ∙ A 0
Dalla (2.9) si capisce come all’aumento del guadagno proporzionale KP, corrisponde
una crescita del guadagno in continua del sistema che si avvicina circa all’unità, e nello
aumentando KP, il valore asintotico dell’uscita sarà sempre più vicino al valore costante
richiesto (in questo caso si avvicinerà al valore 1 visto che il nostro segnale d’ingresso
contemporanea riduzione del tempo necessario per arrivare a tale livello asintotico.
Notiamo tuttavia che l’uscita non arriverà mai esattamente al valore richiesto ma
presenterà quello che è detto offset che corrisponde al valore asintotico dell’errore di
53
Invece l’errore a regime, ottenuto mediante il teorema del valor finale, sarà espresso
1
lim e ( t )=lim s ∙ E (s )= (2.10)
t →+ ∞ s→0 1+ K P ∙ A 0
Vediamo ora un secondo esempio nel quale il processo è caratterizzato da una funzione
A0
G ( s )= (2.11)
( )( )
2
s s
1+2 ξ +
ωn ωn
pulsazione naturale. Analogamente a come fatto nel caso del sistema di primo ordine
Y (s) K P ∙ A0
W ( s )= = (2.12)
( )( )
2
R(s) s s
1+ K P ∙ A 0 +2 ξ +
ωn ωn
Allo stesso modo seguendo la procedura usata nella (2.9), in cui ora la G(s) è data dalla
(2.11), possiamo esprime l’errore del sistema ciclo chiuso sempre in riferimento ad un
( ) ( ) (2.13)
2
s s
1+2 ξ +
1 ωn ωn
E ( s )= ∙
( ωs )+( ωs )
2
s
1+ K ∙ A + 2 ξ
P 0
n n
dell’errore a regime:
54
1
lim e ( t )=lim s ∙ E (s )= (2.14 )
t →+ ∞ s→0 1+ K P ∙ A 0
Analogamente a quanto visto per un processo con un polo del primo ordine, anche in
sistema ad anello chiuso W(s), notiamo che, all’aumentare di KP, il transitorio segue
elevata e meno smorzate. Quanto detto è evidenziato a titolo d’esempio nella figura che
segue:
FIGURA 17
Notiamo che già per KP = 10 si riduce l’effetto dell’offset, ma la risposta al transitorio è
(offset) tra il valore costante richiesto a regime e quello effettivamente ottenuto. Tale
55
Se il processo da controllare possiede coppie di poli complessi coniugati, però,
Dallo studio effettuato fin qui possiamo trarre dunque importanti conclusioni per quanto
Per avere un errore a regime molto piccolo bisogna che A0 KP sia elevato (ed
essendo fissato A0 tale discorso vale per KP), ma questo aumento può
misura (cioè agli errori che avvengono sull’uscita y(t) e che si ripercuotono sulla
stabilità del sistema, margini che possono essere facilmente determinati tramite
56
2.1.2 L’azione integrale
proporzionale al suo valor medio). Il legame tra e(t) e u(t) sarà dato dunque dalla
seguente formula:
t
u ( t )=K I ∙∫ e ( τ ) dτ (2.15)
0
KP
integrale T I = (chiamata anche tempo di reset), in questo caso lo schema del
KI
regolatore ad azione integrale sarà quello riportato nella figura che segue:
FIGURA 18
L’azione integrale è particolarmente importante nelle applicazioni, perché assicura un
errore nullo a regime per variazioni a gradino del segnale di riferimento r(t). L’errore
rimane nullo anche in presenza di variazioni del guadagno del processo, purché sia
preservata la stabilità del sistema in anello chiuso . In generale l’azione integrale è quasi
controllori PI, proporzionali integrali appunto, il cui legame tra e(t) e u(t) sarà il
seguente:
( )
t
1
u ( t )=K P e ( t ) + ∙∫ e ( τ ) dτ (2.16)
TI 0
57
essi permettono di ottenere una maggiore precisione senza peggiorare il grado di
stabilità del sistema (mediante scelta opportuna delle costanti), unita ad una maggiore
regime di modesta entità unito ad una buona velocità di risposta alle variazioni della
Nel caso di un segnale di riferimento r(t) a gradino, per esempio, l’integrale crescerà
FIGURA 19
Quando aggiungiamo l’azione integrale al blocco proporzionale eliminiamo a priori la
presenza dell’offset. Inoltre, con l’azione integrale, un piccolo errore positivo e(t)
darà un decremento del segnale di controllo a prescindere dal fatto di quanto sia piccolo
cui si ha a che fare è la costante di tempo integrale T I ; da essa infatti dipende l’effetto di
integrazione che è tanto più importante quanto più T I è piccola, in quanto riducendo il
58
tempo di reset, l’azione integrale entra in gioco prima, cioè l’integrale dell’errore salirà
più velocemente verso il valore r(t) in ingresso e cioè prima si raggiunge il segnale di
riferimento. Il prezzo da pagare per questa velocità di salita però sono delle forti
primo ordine con un polo in −1/τ . Facendo riferimento alla figura 1, il segnale di
( )
A0 1
G ( s )= e PI (s )=K P 1+
1+sτ TIs
1
W ( s )= (2.17)
T I s (1+ sτ )
1+
A 0 K P (1+T I s)
E l’errore:
1 T I s ( 1+sτ )
E ( s )= ∙ (2.18)
s T I s+ ( 1+ sτ + A0 K P ) + A 0 K P
59
proporzionale. Nella figura che segue figura 19 viene mostrato l’effetto di diverse scelte
di T I in essa si nota che l’offset presente quando si opera solo con il controllore
FIGURA 20
Facciamo ora alcune considerazioni sui limiti dell’azione integrale. Sappiamo che gli
attuatori che troviamo nei sistemi industriali, di solito, lavorano entro un range di valori
molto superiore di quello della variabile che di controllo. Nonostante ciò, in qualche
caso, tuttavia, tali limiti possono essere anche raggiunti e superati, per effetto ad
situazioni del genere il circuito di retroazione può rompersi e il sistema funziona come
un anello aperto perché l’attuatore entra in saturazione e il valore che si ottiene in uscita
non rispecchia più quello in ingresso. Evidenziamo ciò nella figura che segue
60
FIGURA 21
La saturazione dell’attuatore è definita dalla seguente relazione:
{
U max se v ( t ) ≥U max
u ( t )= v ( t ) se U max < v (t )< U max
U min se v (t )≤ U min
dove Umax e Umin sono rispettivamente i limiti massimo e minimo dell’uscita, cioè i
ingresso. Quindi dopo la retroazione all’ingresso arriva un segnale correttivo minore del
previsto, che inciderà di meno sulla correzione di r(t) e perciò farà aumentare il tempo
nel quale l’errore viene inseguito e raggiunto. Il processo continua così fino a quando il
segnale y(t) non supera r(t) e l’errore non diventa negativo, ma in quell’istante anche se
il valore dell’integrale inizierà a diminuire, passerà dell’altro tempo prima che questo
Nei grafici che seguono è mostata la differenza tra quanto avviene in presenza di un
con limiti di saturazione (rappresentato da una linea continua) quando viene utilizzato
21:
61
FIGURA 22
Con l’attuatore ideale l’uscita del sistema ha una forma d’onda che segue l’andamento
62
FIGURA 23
In presenza di attuatore ideale, comportamento indicato con la linea tratteggiata, l’errore
presenza di un attuatore reale indicato con la linea continua, invece, aumenta il ritardo
finire su valori negativi per tutta durata della sovraelongazione. Il processo evolverà
ricevendo un ingresso u(t) costante come se fosse in anello aperto, il blocco integratore
tenderà ad allontanarsi anche di molto dai valori di controllo che gli competono, a causa del
polo che possiede nell’origine esso è un sistema dinamico non stabile BIBO. Inoltre,
durante questo periodo di saturazione dell’attuatore, il sistema non avrà nessun tipo di
reiezione alla presenza di eventuali disturbi. Osservando i grafici che seguono potremmo
63
FIGURA 24
Dalla figura 23 si può evincere come il termine integrale cresca inizialmente perché
l’errore è positivo; raggiunge il suo valore massimo al tempo t = 10, quando l’errore
FIGURA 25
Dalla figura 24 notiamo infatti che l’uscita rimane satura in quel punto a causa del
grande valore del termine integrale. La stessa uscita non lascia il limite di saturazione
fino a quando l’errore è diventato negativo per un tempo sufficientemente lungo tale da
consentire alla parte integranle di scendere a un livello basso. Infine nella figura 25 che
64
FIGURA 26
notiamo come il segnale di controllo rimbalzi tra i suoi limiti più volte. L’effetto
questo punto l’uscita finalmente arriva così vicino al valore di riferimento che
integrato, ciò significa che il termine integrale può diventare molto grande. Da qui il
fenomeno conosciuto come windup. È quindi necessario che l’errore sia di segno
opposto per un lungo periodo prima che le cose tornino alla normalità. La conseguenza
è che qualsiasi controllore con azione integrale può dare transitori di elevata durata
l'integratore inizierà ad accrescere il suo valore in uscita per via dell'errore non nullo.
che l'uscita dell'integratore continuerà a crescere fino a quando l'errore non diventerà
uscita non sarà inferiore alla saturazione relativa all'attuatore. Ovviamente una
65
situazione del genere è indesiderata e richiede un certo periodo di tempo prima che la
situazione normale si ristabilisca, ma fortunatamente ci sono vari modi per poter ovviare
a questo problema. Uno di questi metodi può essere l’introduzione di limitatori sulle
variazioni del valore di riferimento in modo che l’uscita del regolatore non raggiunga
Sempre parlando di metodi correttivi al fenomeno del windup, possiamo anche avere il
cosiddetto metodo degli algoritmi incrementali nel quale si calcola prima il tasso di
variazione del segnale di controllo che viene poi inviato all’integratore e dunque il
fenomeno del windup viene evitato mediante integrazione inibendo l’uscita ogni volta
che satura.
Un altro metodo di compensazione del fenomeno di windup consiste nel ricalcolo del
viene riportato all’ingresso del blocco integrale e sottratto al valore dell’errore e(t).
E’ facile notare che facendo in questo modo, quando l’attuatore sta lavorando entro i
influisce in alcun modo sul controllo, mentre quando questi limiti verranno superati si
genera un valore del segnale di errore che permetta di smorzare la salita del termine
66
FIGURA 27
Notiamo inoltre che, prima del ritorno del segnale di compensazione al blocco
1
cui funzione di trasferimento F(s) è solitamente pari a il cui valore controlla la
Tt
ridotti, si avrà un’azione di desaturazione più rapida anche se più facilmente soggetta a
disturbi; mentre invece, se il valore della costante di tempo risulta elevato, l’azione di
desaturazione sarà più lenta, ,anche se meno influenzata dai disturbi” [4].
questo caso abbiamo la presenza del coefficiente dell’azione derivativa KD. Il legame
de ( t )
u ( t )=K D ∙ (2.20)
dt
La (2.20) ancora una volta è ricavata come caso particolare della (2.2) in cui si è posto
67
KP = 0 e KD = 0. Se invece della KD, definiamo la costante di tempo derivativa T D come
KD
T D= lo schema del regolatore sarà quello riportato nella figura che segue:
KP
FIGURA 28
Un controllore derivativo viene chiamato anche controllore di velocità, oppure
presente o passato, ma dalla velocità con cui varia l’errore. Inoltre l’azione derivativa
importanza ad esempio nel caso in cui vi sia un forte ritardo di fase nell’azione in catena
aperta, in quanto, in sua assenza una variazione della variabile di errore determina,
controllata con un certo ritardo, cioè è come se il controllore agisse “in ritardo” rispetto
Il valore della costante di tempo derivativa T D determina la velocità di salita del segnale
di controllo.
Ricordando che nelle applicazioni industriali più diffuse, anche l’azione derivativa
si prestano bene ad essere utilizzati nei sistemi in cui si hanno improvvise variazioni di
68
carico, oppure sistemi che non presentano problemi di stabilità e di prestazioni statiche
PD ( s )=K P ∙ ( 1+ s T D ) (2.21)
In analogia a quanto fatto per i due tipi di azioni analizzate in precedenza, consideriamo che
il processo da controllare G(s) sia un sistema del secondo ordine la cui la funzione di
consideriamo ancora una volta in ingresso un gradino di ampiezza unitaria e per cui l’uscita
Il termine derivativo introduce uno zero e considerando il polinomio di secondo grado posto
anche il coefficiente del termine pari a 1 aumenta di un fattore pari ω 20 rispetto al caso del
sistema comportando una riduzione delle oscillazioni che si verificano in occasione dei
transitori. Riportiamo nella figura che segue il grafico dell’uscita dell’esempio appena
analizzato:
69
FIGURA 29
da esso si può apprezzare l’azione anticipatrice del blocco derivatore e la sua correzione
sulle oscillazioni attorno al valore desiderato. L’offset è lo stesso che si ha con il solo
pari a:
dn(t)
un ( t )=T D = A T D ω cos ωt (2.24)
dt
Notiamo che tale contributo ha ampiezza crescente con ω, il che comporta che i segnali
di rumore, avendo un contributo rilevante alle alte frequenze(ω molto alta), verranno
FIGURA 30
e il segnale di rumore n ( t )=0 , 1 sin20 πt . Sommando n(t) al segnale e(t) precedente,
FIGURA 31
L’effetto dell’azione derivativa sul solo segnale utile mostrato in figura 29, sarebbe
71
FIGURA 32
ora, invece, a causa dell’alta frequenza del rumore, assistiamo a una degenerazione
FIGURA 33
Motivo per cui l’azione derivativa non è utilizzabile da sola, perché farebbe perdere al
necessaria fino ad una certa frequenza, oltre la quale è conveniente che vi sia
attenuazione, per filtrare il rumore fuori dalla banda di regolazione, si limita il livello di
72
amplificazione del rumore introducendo un filtro del primo ordine, con funzione di
trasferimento:
1
F ( s )= (2.25)
sTD
1+
N
dove N in genere assume valori tra 5 e 10. A valle dell’introduzione di questo filtro,
K PsT D
D ( s )= (2.26)
sTD
1+
N
Un punto importante è capire come scegliere il termine N per fare in modo che il polo
sia fuori dalla banda di regolazione. Per ottenere questo risultato N dovrà assumere
problematico. Nella figura che segue, la figura 33 vediamo come l’andamento della
versione senza filtro sul termine derivativo (linea continua) a una con il filtro (linea
tratteggiata):
73
FIGURA 34
In ultimo osserviamo che nel caso in cui all’ingresso del controllore ci sia un segnale
r(t) a gradino, seguendo una disposizione classica in parallelo dei blocchi all’interno del
controllore, come quella mostrata nella figura che segue figura 34:
FIGURA 35
Potrebbero sorgere dei problemi in quanto essendo il segnale di riferimento un gradino,
alla quale normalmente si progetta il regolatore. Per tali ragioni in genere si preferisce
utilizzare uno schema modificato in cui l’azione derivativa è esercitata sulla sola
variabile di uscita y(t). Poiché essa Facendo così in modo che la presenza dell’azione
derivativa non provoca il suddetto andamento impulsivo di u(t), infatti y(t) è l’uscita di
istantanee (e quindi la sua derivata) sono in genere contenute.” [4]. Nella figura che
FIGURA 36
Capitolo3
Introduzione
Come già accennato, in questo capitolo cercheremo di mettere a confronto tecniche di
controllo classiche, nello specifico quelle basate sui regolatori PID e tecniche di
analizzato i risultati ottenuti con ciascuna delle due tecniche prendendo in esame un
75
caso studio in particolare e cioè quello costituito dal pendolo inverso anche noto come
cart-pole problem. Nel seguito quindi mostreremo nello specifico entrambe le tecniche
finalità del sistema in esame è quella di mantenere in equilibrio il pendolo, agendo sulla
dinamica del carrello semovente. Come si può notare dalla figura che segue il carrello
può muoversi a sinistra o a destra, per mezzo di un motore che agisce direttamente sulle
ruote. Facciamo l’ipotesi che le prestazioni che deve garantire il sistema controllato
sono tali che il pendolo sia in equilibrio instabile con una pendenza massima di 2 gradi
PENDOLO
INVERSO
MOTORE IN CC
CARRELLO
SEMOVENTE
BATTERIA
76
3.1.1 Modello del sistema
Le specifiche del sistema richiedono che: θ< 2° = π/90 rad, come mostrato dalla
mp
l
mc
x
p
77
3.1.2 Modello matematico e funzione di trasferimento
Possiamo a questo punto ricavare il modello matematico del sistema per descriverne la
dinamica attraverso l’analisi delle equazioni di bilanciamento delle forze e dei momenti.
Focalizzeremo la nostra attenzione sul carrello semovente e sul pendolo inverso e non
tenendo conto della dinamica propria del motore. Il sistema sarà pertanto
g
I due elementi del sistema il pendolo e il carrello semovente saranno una modellati a
costanti concentrate. Per cui il pendolo avrà tutta la massa concentrata nel proprio
con il carrello, mentre il carrello avrà tutta la massa concentra nel punto di giunzione
78
y
l
y
x
x
p
l
p ( t ) =x+ sin θ 3.1
2
l
y ( t ) = cos θ 3.2
2
Sul pendolo agiscono 3 forze esterne: la gravità, la spinta del carrello lungo l’asse delle
x e la spinta del carrello lungo l’asse delle y. La gravità agisce nel baricentro del
pendolo e le due spinte agiscono nell’estremità del pendolo incernierata con il carrello,
queste forze producono come effetto un’accelerazione lungo l’asse delle x, una
Sul carrello semovente invece agiscono due forze esterne: la spinta del motore che
indicheremo con U, la reazione alla spinta orizzontale del pendolo inverso e la forza di
attrito viscoso di coefficiente β, che si oppone al moto del carrello. La forza di gravità e
la reazione alla spinta verticale del pendolo inverso non forniscono alcun contributo alla
79
dinamica del sistema, in quanto il carrello può spostarsi solo lungo l’asse x, pertanto
Tali forze causano un solo effetto: una accelerazione lungo l’asse delle x essendo quella
differenziali:
{
l l ¨ pθ
mp p̈ cos θ− ( m p ÿ + mp g ) sin θ=J
2 2 3.3
U −m p p̈− β ẋ=mc ẍ
{ ( ) ( ( ) )
2 2
l d l l d l
mp 2 x + sin θ cos θ− m p 2 cos θ + m p g sin θ=J p θ̈
2 dt 2 2 dt 2 3.4
( )
2
d l
U −m p 2 x + sin θ −β ẋ=mc ẍ
dt 2
quanto le specifiche del sistema richiedono che: θ < 2° = π/90 radianti. In base
{
θ≈0
sin θ ≈ θ
cos θ ≈ 1
80
{ ( ) ( () )
2 2
l d l l d l
mp 2 x + θ cos θ− m p 2 + mp g θ=J p θ̈
2 dt 2 2 dt 2 3.5
( )
2
d l
U −m p 2 x+ sin θ −β ẋ=mc ẍ
dt 2
{
l l2 l
mp ẍ + mp θ̈− mp gθ=J p θ̈
2 4 2 3.6
l
U −m p ẍ−mp θ̈−β ẋ=mc ẍ
2
Ponendo inoltre:
l
L=
2
M =m p +mc
{
m p LX s 2=( J p−m p L2 ) θ s2 +m p Lgθ
2
U =MX s + βXs+m p Lθ s
2
3.8
Infine mettendo il termine in X nella prima equazione delle 3.8 e sostituendolo nella
l’ingresso è rappresentato dalla spinta del motore U e l’uscita dalla posizione angolare
del pendolo, dopo alcune manipolazioni essa può essere espressa nella seguente forma:
81
θ(s) m p Ls
= 3.9
U ( s) ( M J p −M m p L2+ m2p L2 ) s 3+ β ( J p−m p L2 ) s2 + M m p Lgs+ β m p Lg
m p=0.2 Kg
mc =0.5 Kg
l = 0.6 m (L = 0.3m)
β = 0.1 Nm-1s
g = 9.9 ms-2
l
2
mp 2 m
J p= ∫ x dx= p l 2=0.006 Kg m2
−l l 12
2
θ(s) 0.06 s
=P ( s )= 3.10
U ( s) −0.0048 s −0.0012 s 2 +0.4158 s +0.0594
3
Inoltre notiamo che sono tutti poli reali ma che in particolare p1 è un polo a parte
reale positiva ciò comporta che il modo di evoluzione ad asso associato tende a
divergere e a causa di questo polo quindi il sistema risulta instabile e non avrà
quanto essa rappresenta la funzione di trasferimento del sistema nel dominio del
tempo e che basta conoscere la risposta impulsiva per ricostruire la risposta del
82
sistema ad un qualsiasi segnale quindi abbiamo provato a perturbare il sistema e
segue:
FIGURA 37
specifiche imposte. Allo scopo di studiare la dinamica del sistema abbiamo poi
provato a sollecitare il sistema con una spinta costante e cioè abbiamo studiato la
83
risposta a gradino. Calcoliamo innanzitutto il guadagno della funzione di
trasferimento:
1 0.06
K=lim P ( s )= =1.0101 3.11
s →0 s 0.0594
s
P ( s )=K 3.12
( 1−
s
)(
p1
1−
s
p2
1−
)(
s
p3 )
L’uscita al gradino unitario sarà data quindi dalla seguente formula:
1 1
θ ( s )=P ( s ) =K 3.13
s ( 1+s τ 1 ) ( 1+s τ 2 ) ( 1+s τ 3 )
−1
τ1= =−0.108
p1
−1
τ 2= =0.1068
p2
−1
τ3= =7.0028
p3
84
FIGURA 38
Notiamo ancora una volta che dopo un tempo iniziale di ritardo, l’angolo θ diventa
costante, genera in uscita instabile che non si può limitare e quindi risulta chiara
Sappiamo che il controllo a ciclo chiuso permette di ottenere come vantaggio una
85
Abbiamo visto nel paragrafo precedente che, essendo il sistema in esame in equilibrio
instabile qualsiasi ingresso e quindi forma di energia immessa nel sistema lo perturba e
che abbiamo scelto questa diversa metodologia di controllo atta ad attenuare effetti di
disturbi costanti sul pendolo o sul carrello. Consideriamo quindi il seguente sistema a
FIGURA 39
Da cui avremo:
Y (s) 1
= 3.16
D ( s ) 1+ L ( s )
azione proporzionale con funzione di trasferimento G(s) = K G. La 3.16 allora sarà data
da:
86
Y (s) 1
= 3.17
D ( s ) 1+ K G P ( s )
Tracciando il luogo delle radici di P(s), possiamo studiare l’andamento dei poli della
z (s )
1+ K G P ( s )=1+ K G =0 → p ( s ) + K G z ( s )=0 3.18
p (s )
FIGURA 40
È evidente come all’aumentare di K G il polo p3, già prossimo allo zero z 1, continua ad
avvicinarsi all’origine, il che implica costanti di tempo ancora più grandi e cioè
transitorio ancora più lungo. Il luogo delle radici mostra chiaramente l’impossibilità di
87
quanto il sistema ad anello chiuso, indipendentemente dal valore di K G presenta un
voluta (θ= 0), il derivatore che agisce nel processo P(s) amplifica tutte le variazioni del
segnale di ingresso U(s) che non sono attenuate nella controreazione. Infatti sappiamo
che l’azione proporzionale aumenta la velocità di risposta del sistema all’aumentare del
repentine in uscita dal controllore U(s), proviamo perciò ad aggiungere una azione
integrale che «addolcisca» le variazioni del segnale U(s), integrando E(s). Aggiungere
nell’origine) presente nel processo. Il luogo delle radici con G(s) = K I /¿s diventa:
88
FIGURA 41
attraverso un intervento puramente integrale nel controllore. Infatti si vede che per
dotato di sola azione integrale G(s) = K I /¿s si elimina l’effetto dovuto al derivatore
variazioni a gradino del segnale di riferimento r(t), ma non si modifica il polo p a parte
89
reale positiva che causa l’instabilità del sistema a catena aperta e del sistema a catena
chiusa.
G ( s )=K P +
KI
s
+ K D s=
KI
s
1+
KP
KI(s+
KD 2
KI
s 3.19
)
Ricaviamo quindi i valori dei guadagni mediante il metodo di sintesi diretta, riscriviamo
KG
G ( s )= ( 1+ α s + β s 2) 3.20
s
KP KD
K G =K I α = β= 3.21
KI KI
KG K
G ( s )= ( 1+ μ s ) ( 1+γ s )= G ( 1+ ( μ+ γ ) s+ μγ s2 ) 3.22
s s
{α=μ+γ
β=μγ
90
La funzione di anello L(s) sarà:
KG Ks K G K ( 1+ μ s )( 1+ γ s )
L ( s )=G ( s ) P ( s ) = ( 1+ μ s )( 1+ γ s ) = 3.23
s ( 1+ s τ 1) ( 1+ s τ 2) ( 1+ s τ 3 ) ( 1+ s τ 1) ( 1+ s τ 2) ( 1+ s τ 3 )
Y (s ) 1 1 ( 1+ s τ 1 ) ( 1+s τ 2 ) ( 1+s τ 3 )
W ( s )= = = = 3.24
D ( s ) 1+ L ( s )
1+
K G K ( 1+ μ s )( 1+ γ s ) ( 1+ s τ 1 ) ( 1+ s τ 2 ) ( 1+ s τ 3 ) + K G K ( 1+ μ s ) (1+ γ s )
( 1+ s τ 1 )( 1+ s τ 2 )( 1+ s τ 3 )
Per conseguire il nostro obiettivo di ottenere tutti poli a parte reale negativa cerchiamo
μ=τ 2 γ =τ 3 3.25
Y (s) ( 1+ s τ 1 ) ( 1+ s τ 1 )
= = 3.26
D ( s ) ( 1+ s τ 1 ) + K G K ( K G K +1 ) + s τ 1
Y (s ) 1 ( 1+ s τ 1) ' ( 1+ s τ 1 )
W ( s )= = =K 3.27
D ( s ) ( K G K +1 ) τ1 ( 1+ s τ ' )
1+ s
( K G K +1 )
' 1
Avendo posto nella 3.27 K =
( K G K +1 )
Dalla 3.25 si vede come la condizione necessaria e sufficiente affinché il sistema sia
stabile è che τ ' sia un valore positivo perciò è sufficiente imporre che:
91
' τ1
τ= >0 3.28
( K G K +1 )
Essendo τ 1 =−0.108 , la 3.26 implica che deve essere anche denominatore minore di
1
K G K +1<0 ↔ K G ← =−0.99 3.29
K
K I =K G =−1
gradino, non è per niente soddisfacente come possiamo notare dalla figura che segue:
92
FIGURA 42
Sappiamo dalle specifiche che l’errore a regime permanente dovrebbe essere inferiore a
2°, ovvero a 2π/180 = 0.0349 radianti. Notiamo che la funzione ad anello aperto L(s) è
del tipo 0, non presenta poli in zero in quanto tale polo dovuto all’integratore è stato
cancellato dallo zero della funzione di trasferimento del nostro sistema. Dalle 3.23,
KG K
L ( s )=P ( s ) G ( s ) = 3.30
( 1+ s τ 1 )
' (
1 1+ s τ 1 ) '
y ( ∞ )=lim y (t)=lim sY ( s )=lim s W ( s )=lim K =K 3.31
t →∞ s →0 s→0 s s→0 ( 1+s τ )'
' −1
K =( K G K +1 )
−1
y ( ∞ )=( K G K +1 ) =( 1−1.0101 )=
−1 −1
=−99.01 3.32
0.0101
1
| y ( ∞ )|<0.0349 →|( K G K +1 )−1|<0.0349 →| K G K + 1|> 3.33
0.0349
K G K +1<0 3.34
−1 +1
< K K+ 1< 3.35
0.0349 G 0.0349
Ma tenuto conto della 3.34 in definitiva avremo che la condizione da rispettare sarà:
1
−( K G K +1 ) > 3.36
0.0349
Il che implica:
1 1.0349 −1.0349
−K G K >1+ = → KG< =−27.3319 3.37
0.0349 0.0349 K 0.0349
K I =K G =−30
K P=−7.1096
94
K D=−0.7479
Con questa configurazione dei parametri PID, riusciamo sia a soddisfare le condizioni di
stabilità del sistema che ad avere una risposta all’errore costante unitario che rispetta le
FIGURA 43
tempo e risorse) quindi la simulazione ci viene in aiuto per accelerare e rendere possibili
questi studi. Bullet è un modulo software che simula un modello fisico newtoniano
utilizzando variabili come massa, velocità, attrito alla resistenza del vento e altro. Il
impiegato per la simulazione fisica di robot, giochi, effetti visivi e machine learning.
collision detection, inoltre fornisce l’integrazione con Gym openAI, toolkit in Python
per gestire in maniera semplice ambienti simulati utilizzabili per implementare tecniche
di machine learning. Oltre alla simulazione, il framework fornisce supporto alla realtà
virtuale. Bullet sfrutta le API fornite da OpenGL “ [19] ” per il rendering del proprio
grafico. È una libreria di grafica e modellazione 3D, molto veloce e performante. Sono
96
passo le operazioni necessarie per creare l’aspetto desiderato. Per la creazione di questo
ambiente sono state scelte ed utilizzate due tecnologie software: OpenAi Gym e
pyBullet. OpenAi Gym, come già accennato, è un toolkit nato per la ricerca in
un carrello (cart) affinché il palo (pole) montato sopra di esso rimanga il più possibile in
posizione verticale. Il sistema presenta due gradi di libertà. In questo modo il palo potrà
solamente cadere in avanti o indietro. La posizione del cart potrà solamente spostarsi in
avanti o indietro. Gli ambienti devono essere di natura episodica per cui deve essere
presente uno stato terminale. Ogni episodio deve terminare sia in caso di
Diamo quindi per raggiunto l’obiettivo di bilanciamento del pole se trascorre un certo
numero di step senza che il palo cada. Il limite viene posto per evitare che gli episodi
portino via troppo tempo in fase di learning. Il reward utilizzato in questi ambienti è un
reward cumulativo: ciò significa che ogni step di un determinato episodio ha come
reward in uscita sempre 1. In questo modo viene sommato ai reward all’interno dello
97
stesso episodio. Così facendo, più il reward è alto più il palo viene mantenuto stabile e
più a lungo possibile (il bilanciamento) un reward unico e cumulativo può essere una
buona scelta. Definito come deve essere assegnato il reward è opportuno definire di
vettore di parametri che descrivono l’ambiente nella sua condizione corrente. Nel cart-
pole problem l’ambiente è descritto da 4 stati: 2 stati che descrivono il cart ovvero
inclinazione (theta) e velocità angolare (theta_dot). I metodi forniti dagli ambienti, agli
metodo reset ha il compito di resettare l’ambiente, portandolo nel suo stato iniziale.
Comprende le istruzioni per il loading di tutti gli elementi solidi che dovranno essere
caricati dal motore grafico e ritornano lo stato iniziale dell’ambiente. Il metodo step ha
Questo metodo coincide quindi con uno step di esecuzione dato dall’algoritmo di
La variabile deltav prende il valore dell’azione scelta dalla variabile action passata come
parametro al metodo step, essa viene poi utilizzata per modificare lo stato del corpo
solido all’interno della simulazione. L’ambiente cart-pole viene caricato all’interno del
98
L’ambiente è composto da 2 file URDF: plane.urdf che ha il solo scopo di definire
l’appoggio ai corpi solidi della scena, e il file cartpole.urdf in cui è definito il cart.
per l’apprendimento degli ambienti descritti nel paragrafo precedente. Degli algoritmi di
Q-Learning e DQN che sono stati introdotti teoricamente nel capitolo 1 di questa tesi,
utilizzo della forma tabellare prevede una Q-table in cui vengono rappresentate le
algoritmo più avanzato che prevede l’utilizzo di una rete neurale al posto della Q-Table.
Lo pseudo-codice sopra riportato mostra la struttura su cui sono basati gli algoritmi
nel quale l’agente dovrà apprendere. Ad ogni inizio episodio il metodo reset provvede a
99
resettare l’ambiente restituendo lo stato iniziale. All’interno di ogni episodio è presente
sceglie un’azione sulla base dello stato iniziale che viene poi passata come parametro al
passo di learning vero e proprio, che dipende dall’algoritmo utilizzato. Il metodo step
oltre a restituire il nuovo stato state2, restituisce anche il flag done utile a comprendere
Algoritmo Q-Learning
ad ogni passo di step. L’approccio off-policy indica invece un procedimento che utilizza
due tipi di policy: una policy totalmente greedy che viene utilizzata per l’esplorazione
(behavior policy) delle coppie stato-azione in modo tale da non ricadere in ottimi locali,
e una policy di apprendimento vera e propria con politica ε-greedy chiamata anche
l’algoritmo verso una scelta esplorativa piuttosto che di apprendimento. Con l’avanzare
degli episodi l’exploration rate viene decrementato per dare più peso alla policy di
esplorativa all’inizio del training per poi spostare l’attenzione sul fattore di
aggiuntivi oltre a quelli forniti dall’ambiente come dimensionalità dello stato o numero
100
di azioni eseguibili. Tre sono i parametri aggiuntivi: α, ε,ϒ che rappresentano
discount sono rappresentati nella formula 1.13 presentata nel capitolo1,e vengono
fissato a 0.8. Ciò significa che inizialmente la politica di esplorazione verrà scelta con
percentuale del 80% rispetto alla politica di learning. La formula descritta dal codice
dalla variabile decay_speed che viene richiesta come parametro di ingresso. Più
decay_speed assume valore prossimo allo zero, più lento sarà il decremento di ε.
Anche il fattore α (learning rate) decrementa all’aumentare del time step: il massimo
valore che può assumere è fissato a 0.5 mentre il valore minimo a 0.01. Il learning rate,
101
l’importanza delle ricompense future. Un fattore pari a 0 renderà l’agente "opportunista"
renderà l’agente attento anche alle ricompense che riceverà in un futuro a lungo termine.
0.99.
scegliere la beauvoir policy greedy che consiste in una scelta randomica dell’azione,
oppure viene utilizzata la target policy che preleva l’azione con il Q-value maggiore
L’update della Q-Table segue la formula 1.13 dove best_q è il valore maggiore ottenuto
Per utilizzare la tabella Q-table per la memorizzazione dei valori per le coppie stato-
attraverso una tecnica a bucket. Fissato il numero di bucket per ogni parametro dello
102
stato si sfrutta una funzione che, preso in input lo stato in forma non discretizzata,
assegnato.
dove bucket_size è una tupla di n elementi dove n è la dimensionalità dello stato mentre
num_actions è la dimensionalità data dal numero delle azioni si ottiene quindi la forma
Tutte le configurazioni dei vari parametri compreso il numero di bucket scelto per
ogni stato verrà discusso assieme ai risultati ottenuti nel paragrafo 3.2.4.
103
Algoritmo Deep Q-Network
learning dell’ambiente può essere risolto. La Q-Table infatti viene sostituita da una rete
neurale la quale non necessita più di alcuna forma di discretizzazione che approssima la
funzione valore. La rete prende lo stato come input e produce una stima della funzione
valore per ogni azione. Il nome Deep Q-Network deriva dall’utilizzo di più livelli
nascosti nella composizione della rete. Purtroppo l’utilizzo di una rete neurale per
rappresentare la funzione valore non sempre produce risultati stabili. Per rispondere a
questo problema sono stati introdotte quindi alcune idee chiave per stabilizzare il
training.
successive. Per questo motivo, la rete potrebbe facilmente andare in overfitting con
detto per Q-Learning, anche DQN utilizza metodologia off-policy per bilanciare la
104
num_output, numero di neuroni per l’output layer (valore fornito
dall’ambiente);
Per realizzare la rete neurale è stata utilizzata la libreria python Tensor-Flow [20],
si utilizzano le API fornite da Keras [21] per la creazione della rete neurale, che
permette con poche righe di codice la creazione di una rete neurale in maniera molto
Il metodo create_net sopra citato permette la creazione di una rete neurale con
tre livelli nascosti con funzione di attivazione ReLu mostrata nella figura4 del capitolo
105
dell’environmentcon funzione di attivazione lineare. Il metodo add permette di
aggiungere sequenzialmente i layer alla rete. Questi layer sono di tipologia "Dense"
ovvero i neuroni sono fully connected con i neuroni del livello successivo. Invece di una
semplice funzione di gradient descent, viene utilizzato un algoritmo più sofisticato per
funzione
classificazione) viene utilizzata come loss function l’errore quadratico medio invece di
cross entropy. Gli errori calcolati dalla loss function saranno propagati all’indietro nella
rete mediante un passo backward, seguendo la logica di discesa del gradiente con
l’intento di minimizzare l’errore. Una volta creata la rete viene lanciato il metodo Train
106
La logica di funzionamento rispecchia quanto detto ad inizio capitolo. Il metodo
aggiorna ε, variabile che controlla la velocità di decadimento. Come ultimo step viene
107
aggiornata la rete e quindi eseguito il passo di learning vero e proprio. Nel codice
mostrato di seguito è descritto il metodo per l’aggiornamento dei pesi nella rete neurale:
Il metodo prende come parametri di input il fattore di discount (settato a 0.99 come per
Vengono quindi fatte le predizioni per tutti gli stati iniziali e finali del batch in un unico
step. La variabile no_state viene utilizzata come variabile dummy di stato quando lo
108
stato finale è None, questo perchè Keras non supporta lo stato None che in questo caso
viene sostituito con un array di zero. La variabile p ora contiene le predizioni per gli
stati iniziali è verrà usata come variabile target per il learning (variabile T
contiene le predizioni degli stati finali e viene utilizzata nella parte finale della formula
maxa Q( s ' ; a) (algoritmo 3). Per ogni campione prelevatodalla replay memory vengono
salvate iterativamente le variabili target e stato in due vettori x e y che vengono poi dati
in input alla funzione fit che esegue uno step di gradient descend aggiornando la rete.
A conclusione, per completezza viene mostrato qui di seguito il codice della classe
campione alla memoria, mentre il metodo pick_n ritorna un numero n di campioni presi
109
dalla memoria. Se la memoria risulta piena, add provvede ad eliminare il primo
campione
risultati ottenuti dai metodi Q-Learning e Deep Q-Network applicati all’ambiente cart-
pole.
Ogni episodio di training ha durata massima 700 step, posto come limite per non
fase di training prevede il salvataggio della Q-Table per Q-Learning e dei pesi della rete
neurale per DQN. Questi risultati vengono sottoposti a testing su 500 episodi per
discussi i grafici ottenuti dagli algoritmi Q-Learning e Deep Q-Network. Infine saranno
La configurazione adottata per questo ambiente è riassunta nella tabella che segue:
110
TABELLA 1 CONFIGURAZIONE PARAMETRI IN AMBIENTE CART-POLE
dimensionalità dei bucket per ogni stato dell’ambiente. Dopo varie configurazioni
provate, quella mostrata in tabella risulta essere la più performante per lo scopo
ad arrivare agli ultimi episodi di training dove il valore è prossimo a 0.01. Nel seguito
viene riportato il grafico delle performance del metodo Q-Learning in fase di training:
111
FIGURA 44 PERFORMANCE DELL’ALGORITMO Q-LEARNING
accuratezza:
Dove si considerano gli episodi correttamente classificati quelli che superano la soglia
i pesi salvati in fase di learning delle reti neurali, e le Q-Table salvate per l’algoritmo Q-
Learning.
Il grafico riporta l’andamento del total reward medio ogni 100 episodi (arancione) e il
total reward massimo ogni 100 episodi. L’algoritmo si considera risolto quando
completa con successo 500 episodi consecutivi: si nota infatti come nel grafico gli
ultimi total reward registrati siano tutti sopra la soglia di vincita dell’algoritmo (linea
verde).
Per quanto riguarda invece l’algoritmo Deep Q-Network l’obiettivo non consiste
solamente nel raggiungere il reward più alto, ma consiste nel farlo nel minor numero di
episodi possibile. Per questo motivo e per la natura semplice dell’ambiente, è stato
possibile configurare la rete con un unico livello nascosto anzichè tre come proposto nel
numero ridotto di episodi. Nel grafico che segue viene mostrato il risultato del learning.
113
FIGURA 45 PERFORMANCE DELL’ALGORITMO DEEP Q-NETWORK
sono richiesti più di 20mila. Si può notare come l’algoritmo DQN non raggiunga per
tutti gli episodi il valore massimo stabilito dall’algoritmo di 700 step. Probabilmente ciò
114
è dovuto alla terminazione dell’algoritmo che necessita solamente di 500 episodi
Mettendo a confronto i due algoritmi adottati si può notare che l’algoritmo Q-Learning
ha buoni risultati, nonostante il passo di discretizzazione effettuato sugli stati, con una
accuracy del 100% che produce comunque un reward medio superiore alla soglia
mostato una accuracy del 99.60% con un reward medio di 697.262 comunque superiore
Conclusioni
L’utilizzo di internet e in particolare dei Social Network ha oramai invaso le nostre vite
ricreative. Tutto ciò ha spinto i diversi ambiti di ricerca ad affrontare sempre maggiori
informatici, tecnologici e non: Facebook la sfrutta per i propri algoritmi di tag, Google
per la ricerca delle foto, Amazon per indicare consigli sui prodotti e sugli acquisti e così
anche altre piattaforme social come Pinterest o Instagram; questi algoritmi riscuotono
immagini e video oltre che essere molto usate per il riconoscimento di tracce audio e
115
linguaggi naturali, e in un'ampia varietà di branche del sapere, dove è difficile o non
ad per riconoscere ad esempio dati diversi sintomi come essi possono essere sintomi di
una determinata patologia piuttosto che un'altra . L’obiettivo dichiarato e verso cui si
sta puntando con decisione in ambito machine learning è pareggiare e in alcuni casi
alla quale in una macchina si predispone l'abilità di apprendere qualcosa dai dati in
maniera autonoma, senza istruzioni esplicite . In generale nell’ambito dei controlli come
abbiamo cercato di mettere in evidenza in questa tesi, i limiti sono ancora visibili a
causa di tutta una serie di infrastrutture presenti nelle aziende che andrebbero cambiate
o quanto meno riadattate allo scopo di imparare a controllare i processi per ottimizzare
gli obiettivi predefiniti e imparare a predire lo stato successivo del processo che si sta
controllando. Nello specifico caso di studio che abbiamo preso in esame possiamo
concludere che i risultati ottenuti sono stati soddisfacenti con entrambe le tecniche di
controllo in quanto siamo riusciti, nel caso di controllo mediante PID a settare i
fede alle specifiche date sull’angolo θ, nel caso invece del bilanciamento del sistema
l’apprendimento automatico solleva una problematica per così dire etica in ragione
116
macchina che manca di spirito critico e di conseguenza la raccolta responsabile dei dati
Bibliografia
[1] P. Simon., Too Big to:The Business Case for Big Data., Wiley, 2013.
[4] C. J. C. H. .Watkins, Learning from delayed rewards., London: PhD thesis, King’s College,
1989.
[10] G. Gullo, “Deep learning svelato: ecco come funzionano le reti neurali artificiali..”,
https://medium.com/professionai/deep-learning-svelato-ecco-come-funzionano-le-reti-
neurali-artificiali-f7dced2, 2018.
[11] N. Manchev, “Convolutional neural networks with pytorch domino data lab..”,
https://www.dominodatalab.com/blog/gpu-accelerated-convolutional-neural-networks-
with-pytorch, 2022..
117
[15] G. F. P. R. G.A. Magnani, Tecnologie dei sistemi di controllo. II edizione, Mc Graw – Hill,
2020.
[17] A. D. Carli, Sulla scelta di una modalità di controllo, Collana Editoriale Universitaria
eCampus.
[19] O. https://www.opengl.org/.
[22] R. K. Shubhendu Trivedi, «Optimization for Deep Neural,» University of Chicago, vol.
Lecture 6, 2017.
118