Casa / Internet / Reti neurali, algoritmi genetici e sistemi fuzzy. Reti neurali, algoritmi genetici e sistemi fuzzy (500,00 rubli). Logica fuzzy nei controller PID

Reti neurali, algoritmi genetici e sistemi fuzzy. Reti neurali, algoritmi genetici e sistemi fuzzy (500,00 rubli). Logica fuzzy nei controller PID

1

Questo articolo descrive una variante della costruzione della struttura di un algoritmo genetico, nonché la possibilità di utilizzare tali algoritmi nei problemi di apprendimento reti neurali. L'articolo analizza ed evidenzia i vantaggi degli algoritmi genetici nella ricerca di soluzioni ottimali rispetto ai metodi classici. Lo schema per costruire ogni fase dell'algoritmo genetico è descritto in dettaglio, compreso il funzionamento di varie operazioni di mutazione, come la mutazione basata sull'incremento e l'operatore di mutazione classico. Inoltre, si propone nuovo operatore mutazioni, che include gli algoritmi di funzionamento degli operatori di mutazione sopra descritti. Inoltre, viene presentato uno schema per rappresentare i dati di una rete neurale artificiale sotto forma di materiale genetico per la possibilità di ulteriore elaborazione dei dati utilizzando algoritmi genetici, incluso uno schema per convertire i dati memorizzati in una matrice in un cromosoma, che riduce il numero di iterazioni nel processo di formazione della rete.

algoritmo genetico

formazione di reti neurali

1. Aksenov S.V., Novoseltsev V.B. Organizzazione e utilizzo delle reti neurali (metodi e tecnologie) / ed. ed. V.B. Novoseltsev. - Tomsk: casa editrice NTL, 2006. - 128 pag.

2. Batyrshin I.Z. Sistemi ibridi fuzzy. Teoria e pratica / ed. NG Yarushkina. - M.: FIZMATLIT, 2007. - 208 pag.

3. Gladkov LA Algoritmi genetici / LA Gladkov, V.V. Kureichik, VM Kureichik. - M.: FIZMATLIT, 2006. - 320 pag.

4. Osovsky S. Reti neurali per l'elaborazione delle informazioni / per. dal polacco ID Rudinskij. - M.: Finanza e statistica, 2002. - 344 p.

Gli algoritmi genetici possono essere considerati il ​​modo più accettabile per regolare i coefficienti di peso delle reti neurali artificiali. Ciò è dovuto al fatto che nella fase iniziale non ci sono assolutamente informazioni sulla direzione del movimento in termini di impostazione dei pesi della matrice. In condizioni di incertezza, i metodi evolutivi, inclusi gli algoritmi genetici, hanno le maggiori possibilità di ottenere i risultati richiesti. L'algoritmo genetico classico opera con un sistema di numeri binari, anche se recentemente ci sono spesso lavori in cui operatori di algoritmi genetici eseguono operazioni su un insieme di numeri reali. Ciò consente di espandere notevolmente le possibilità di utilizzo degli algoritmi descritti.

Consideriamo il modello matematico del problema posto. Dan vettore X con una dimensione di 256, che è un'immagine codificata di un carattere riconoscibile noto. C'è anche un vettore Y con una dimensione di 10, che riflette il risultato di riconoscimento richiesto, indicando che il simbolo appartiene al campione di riferimento. Dobbiamo trovare la matrice dei pesi w, i cui elementi sono numeri reali nel segmento in modo che valga l'uguaglianza:

X* W=Y (1)

È necessario regolare la matrice del peso w utilizzando un algoritmo genetico. Nell'ambito del problema da risolvere, la matrice in esame ha le seguenti dimensioni: il numero delle righe è 10, ovvero tutti i caratteri che descrivono i numeri arabi; il numero di colonne è determinato dalla dimensione della familiarità assegnata a ciascun carattere, 256 colonne.

Dal punto di vista dell'ovvietà e della facilità di comprensione, ogni colonna della matrice del peso dovrebbe essere considerata come un cromosoma, il che porterà alla presenza di 256 cromosomi, che insieme rifletteranno ogni individuo. Tuttavia, nell'implementazione pratica è molto più conveniente usarne di più struttura semplice, anche se meno evidente. Ciò è dovuto al fatto che è piuttosto difficile attuare operazioni di crossover e mutazione in presenza di più cromosomi. Ciascun individuo nell'algoritmo genetico sviluppato può essere rappresentato come un solo cromosoma, il che semplifica notevolmente l'implementazione del software su un computer. Questo può essere ottenuto nel modo seguente. Il cromosoma partirà dalla prima colonna della matrice del peso e ogni colonna successiva verrà semplicemente aggiunta alla fine del cromosoma "singolo" già esistente. Questo metodo è illustrato nella Figura 1.

Riso. 1. Trasformazione della matrice dei pesiW per pesare il vettorevw.

L'algoritmo genetico classico consiste in una serie di passaggi più importanti. In effetti, queste fasi possono essere disposte in ordine cronologico.

  1. INIZIALIZZAZIONE - la formazione della popolazione iniziale.
  2. VALUTAZIONE FITNESS - calcolo della funzione fitness per ogni individuo (nel nostro caso, i cromosomi).
  3. SELEZIONE - una selezione basata sulla valutazione dell'idoneità dei cromosomi più adatti, ai quali sarà dato il diritto di partecipare alle operazioni di crossing over.
  4. CROSSINGOVER - l'incrocio di due individui.
  5. MUTAZIONE - un cambiamento artificiale intenzionale di alcuni geni nei cromosomi di un individuo.
  6. FORMAZIONE DI UNA NUOVA POPOLAZIONE - riduzione del numero di individui sulla base di una valutazione dell'idoneità, unitamente alla selezione dell'individuo "migliore".
  7. VERIFICA DEL CRITERIO DI STOP DELL'ALGORITMO - se viene raggiunta la condizione di ricerca richiesta - uscire, altrimenti - andare al punto n. 3.
  8. ESTRAZIONE DELLA SOLUZIONE MIGLIORE - l'individuo con il valore massimo della funzione fitness è considerato la soluzione migliore.

Tutte le fasi descritte sono assolutamente corrette nell'ambito della risoluzione del problema. L'implementazione pratica del primo passaggio di qualsiasi algoritmo genetico nella maggior parte dei casi non è altro che un'inizializzazione casuale. A ogni gene di qualsiasi cromosoma viene assegnato un valore casuale dall'intervallo valori consentiti. Di conseguenza, quando si regola la matrice di peso W, ciascun gene riceverà informazioni genetiche sotto forma di un valore casuale nell'intervallo . L'implementazione software di questo metodo di inizializzazione è la più semplice e presenta vantaggi e svantaggi. I vantaggi sono i seguenti.

  • Non sono richiesti algoritmi aggiuntivi.
  • L'inizializzazione è veloce e non carica il computer.
  • Ridotte possibilità di raggiungere l'ottimo locale.

Come svantaggio, possiamo notare la mancanza di conoscenze accumulate sui coefficienti regolabili nell'algoritmo sviluppato. Pertanto, come risultato della fase di inizializzazione, c'è una pronta popolazione di soluzioni. Nonostante l'assurdità, si può parlare dell'esistenza di una soluzione già nella prima fase. Dopo aver ricevuto la popolazione iniziale, si passa alla seconda fase: la valutazione dell'idoneità.

La valutazione dell'idoneità degli individui in una popolazione consiste nel calcolare il valore della funzione di idoneità per ciascun membro della popolazione. E maggiore è questo valore, più l'individuo soddisfa i requisiti del problema da risolvere. Nell'ambito del problema da risolvere, la matrice del peso è una parte della rete neurale che esegue il riconoscimento del modello. E di conseguenza, l'algoritmo genetico viene eseguito nella fase di addestramento della rete neurale. In altre parole, è necessario portare la matrice dei pesi in una forma in cui l'errore di riconoscimento dell'immagine di riferimento sarà minimo. Pertanto, la funzione fitness valuta l'errore di riconoscimento di ciascuna immagine di riferimento e minore è l'errore, maggiore è il valore della funzione fitness. Il problema è ridurre al minimo l'errore di riconoscimento. Per fare ciò, è necessario confrontare il vettore risultante Y' con campione di riferimento Y.

La fase di selezione prevede la selezione di quegli individui il cui materiale genetico parteciperà alla formazione della prossima popolazione di soluzioni, ad es. nella creazione della prossima generazione. La scelta descritta viene effettuata secondo il principio della selezione naturale, grazie alla quale gli individui con i valori più alti della funzione fitness hanno le massime possibilità. Ci sono molti metodi di selezione. Uno dei più famosi e spesso utilizzati è il metodo della "roulette". Questo nome aiuta intuitivamente a comprenderne i principi. Ogni individuo riceve un determinato settore sulla "ruota", la cui dimensione dipende direttamente dal valore della funzione fitness.

Ciò implica che maggiore è il valore della funzione fitness, maggiore è la dimensione del settore sulla "ruota della roulette". Ovviamente, maggiore è il settore, maggiore è la probabilità di "vincere" l'individuo corrispondente. E, di conseguenza, la probabilità di scegliere un determinato individuo risulta essere proporzionale al valore della sua funzione di fitness. L'uso del metodo della "roulette" porta spesso a una convergenza prematura dell'algoritmo, il che significa che gli individui migliori iniziano a dominare nella popolazione, ma non quelli ottimali. Dopo diverse generazioni, la popolazione sarà quasi interamente composta da copie dei migliori individui. Tuttavia, è altamente improbabile che la soluzione raggiunta sia ottimale, poiché la popolazione iniziale è generata casualmente e rappresenta solo una piccola parte dello spazio di ricerca. Per prevenire la convergenza prematura dell'algoritmo genetico, viene utilizzato il ridimensionamento della funzione di fitness. Il ridimensionamento della funzione fitness consente di escludere la situazione in cui gli individui medi e migliori iniziano a formare lo stesso numero di discendenti simili nelle generazioni successive, il che è un fenomeno estremamente indesiderabile. Va notato che il ridimensionamento previene anche i casi in cui, nonostante la significativa eterogeneità della popolazione, il valore medio della funzione fitness differisce poco dal massimo. Quindi, il ridimensionamento della funzione fitness non è altro che la trasformazione della sua forma. Ci sono tre trasformazioni principali: lineare, power e sigma-cut. L'algoritmo sviluppato utilizza la trasformazione sigma-cutoff.

, (2)

dove un- un piccolo numero, generalmente da 1 a 5; - il valore medio della funzione fitness per la popolazione; δ - deviazione standard della popolazione. Nel caso in cui i valori ottenuti dalla funzione trasformata siano negativi, vengono equiparati a 0.

È anche possibile modificare in una certa misura questo metodo di selezione o creare una selezione basata sulla sintesi di più metodi contemporaneamente.

Il passo successivo nell'algoritmo genetico è la ricombinazione o il crossing over. Ogni sezione del cromosoma di un individuo contiene un certo carico di informazioni. L'obiettivo della ricombinazione è ottenere una tale combinazione di lacune cromosomiche che l'individuo rappresenti la migliore soluzione possibile con l'attuale materiale genetico. Di conseguenza, il compito principale dell'operazione di crossover è in definitiva quello di ottenere le caratteristiche più funzionali che erano presenti negli insiemi di soluzioni iniziali. Un meccanismo simile per risolvere i problemi di ottimizzazione, in contrasto con metodi esistenti, non sostituisce una soluzione con un'altra, ma ottiene nuove possibili soluzioni attraverso lo scambio di informazioni tra di loro.

Il crossover è l'operatore più importante dell'algoritmo genetico, poiché è con l'aiuto dell'operatore del crossover che le informazioni vengono scambiate tra le soluzioni. La prole contiene una combinazione delle caratteristiche specifiche di entrambi i genitori. L'efficienza di qualsiasi algoritmo genetico è direttamente proporzionale all'efficienza dell'operazione di crossover. Inoltre, le prestazioni dell'algoritmo genetico dipendono in primo luogo dal successo del crossover. Nell'ambito della risoluzione del problema, viene implementato un operatore di crossover ordinato. L'incrocio ordinato esegue una trasformazione di routine passo dopo passo del materiale genetico, avvicinandosi alla soluzione ottimale.

Sulla fig. 2 mostra il processo di ottenimento di nuovi individui mediante il crossing over ordinato. Ci sono due cromosomi parentali: Vw1 e Vw2. Il materiale genetico è costituito da numeri reali da 0 a 1. Il crossing over ordinato funziona come segue. Inizialmente, un "punto di taglio" viene determinato in modo casuale. Nella fase successiva, il primo figlio di New_Vw1 eredita la parte sinistra del cromosoma genitore Vw1. Il riempimento dei geni rimanenti del nuovo cromosoma viene effettuato grazie alle informazioni memorizzate dal secondo genitore Vw2. L'algoritmo esegue la scansione del cromosoma Vw2 fin dall'inizio ed estrae i geni che differiscono dai geni già nel discendente di più di e = 0,02. Un piccolo valore di e viene impostato nell'algoritmo per determinare la "relazione" dei geni. Ad ogni passaggio successivo, e soprattutto nelle fasi finali dell'algoritmo, ha senso diminuire il valore di questo valore per ottenere risultati più accurati. Una procedura simile viene eseguita quando si ottiene il secondo figlio di New_Vw2. Il secondo figlio New_Vw2 eredita il lato sinistro del cromosoma genitore Vw2. Il riempimento dei geni rimanenti del cromosoma risultante viene effettuato a causa dell'informazione che si trova nel secondo genitore Vw1.

Riso. 2. Principio di funzionamento dell'attraversamento ordinato.

L'algoritmo analizza il cromosoma Vw1 dal primo gene ed esegue un'estrazione ordinata di geni che differiscono dai geni già nel discendente di più di e = 0,02. Come risultato del lavoro di ciascun operatore di attraversamento, nella popolazione compaiono due nuovi individui. Il fattore di crossover viene utilizzato per controllare il numero di operazioni di crossover. K k, che determina la proporzione di bambini prodotti ad ogni iterazione. Il numero dei discendenti è determinato dalla seguente formula:

Conta p =il giro(Dimensioni pag* K k)*2, (3)

dove Dimensioni pag- dimensione della popolazione, Conte- il numero della prole risultante, il giroè l'operazione di arrotondamento.

Alto rapporto di crossover K k consente di aumentare il numero di aree dello spazio di ricerca e riduce il rischio di cadere nell'optimum locale, tuttavia un valore troppo grande di questo parametro comporterà un aumento del tempo di esecuzione dell'algoritmo, nonché un eccessivo esplorazione di aree poco promettenti dello spazio di ricerca.

Il passo successivo nell'algoritmo genetico è la mutazione. Una mutazione è un cambiamento che porta alla manifestazione di proprietà qualitativamente nuove del materiale genetico. Le mutazioni si verificano in modo casuale e causano bruschi cambiamenti nella struttura del genotipo.

Come parte della risoluzione dei problemi di ottimizzazione, le mutazioni genetiche sono della massima importanza, che nella maggior parte dei casi interessano uno o più geni. Una mutazione può apparire in qualsiasi modo, che sia lo scambio di geni con le loro posizioni o la copia del valore di un altro gene, ecc. In ogni algoritmo genetico è necessario decidere la scelta del tipo di mutazione. Nell'algoritmo genetico in esame, i geni contengono numeri reali da 0 a 1. In base a ciò, l'operatore di mutazione deve apportare modifiche specifiche al materiale genetico, ad es. modificare i valori di determinati geni senza fare affidamento su geni già esistenti. L'essenza dell'operatore di mutazione sviluppato è la seguente. Nel cromosoma studiato, anche un numero casuale di geni viene isolato in modo casuale. Tasso di mutazione Km determina l'intensità delle mutazioni. Determina la proporzione di geni mutati nell'iterazione corrente, in base al loro numero totale. Se il tasso di mutazione è troppo basso, si verificherà una situazione in cui molti geni utili semplicemente non esisteranno nella popolazione. Allo stesso tempo, l'uso di grande importanza il coefficiente di mutazione porterà a molte perturbazioni casuali e aumenterà notevolmente il tempo di ricerca. I discendenti non assomiglieranno più ai loro genitori, l'algoritmo non sarà più in grado di apprendere in base alla conservazione dei tratti ereditari. Viene applicata una trasformazione ai geni selezionati, che fa sì che il valore del gene corrente cambi di una piccola quantità. Il valore viene scelto in modo tale che dopo aver modificato il valore io- esimo gene, era nel segmento.

Riso. 3. Incremento basato sulla mutazione casuale.

Sulla fig. 3 mostra come la mutazione viene eseguita utilizzando l'incremento. I geni con i numeri 2 e 45 hanno ricevuto con successo un nuovo valore, che porterà a un cambiamento nelle indicazioni della funzione fitness dell'individuo mutante. Mentre la mutazione del gene numero 6 era inaccettabile e, di conseguenza, è stata ignorata. L'uso di mutazioni con incremento β consente di introdurre nuovo materiale genetico nella popolazione. Ciò comporterà un aumento dello spazio di ricerca, necessario per una ricerca efficiente dell'ottimo. Naturalmente, ha senso utilizzare l'operatore di mutazione classico, che si basa su un cambiamento casuale nell'ordine dei geni. Questo porta anche a risultati abbastanza buoni già nelle prime fasi dell'algoritmo genetico. Quando si risolve il problema in esame, viene utilizzato anche l'operatore di mutazione multipunto. L'algoritmo seleziona casualmente diversi geni in base al fattore di intensità della mutazione, i cui valori cambiano poi con i valori dei geni vicini. Il lavoro del classico operatore di mutazione multipunto è mostrato in fig. quattro.

L'uso di diversi tipi dell'operatore di mutazione in un algoritmo contemporaneamente consente di effettuare ricerca efficiente soluzione ottimale. Ciò consente di ottenere buoni risultati in tempi brevi, nonché di individuare i “quartieri di soluzioni” più idonei per lo studio.

L'operatore di mutazione viene applicato ai discendenti di individui ottenuti dopo l'operazione di incrocio. Gli individui con mutazioni rimangono nella popolazione fino all'inizio della fase di "formazione di una nuova popolazione". Il numero di individui mutanti è determinato dalla formula:

,

dove K m k- coefficiente di mutazione classico; K m δ- tasso di mutazione basato su δ- compensazioni; Km- tasso di mutazione totale; Conta m- il numero di individui che hanno subito una mutazione; Conte- il numero della prole; il giroè l'operazione di arrotondamento.

Riso. 4. Operatore classico di mutazione multipunto.

Dalla formula si evince che l'algoritmo consente, in termini percentuali, di regolare l'equilibrio tra l'operatore di mutazione multipunto classico e la mutazione basata su d- incremento. Usando questa funzione, puoi adattare l'algoritmo alle condizioni di un particolare problema. Con l'aumento della proporzione di utilizzo dell'operatore di mutazione classico, aumenta l'accuratezza della ricerca in prossimità delle migliori soluzioni basate sull'attuale materiale genetico e con l'aumento della proporzione di mutazioni basate sull'incremento, la ricerca totale lo spazio aumenta di conseguenza e la composizione genetica della popolazione viene aggiornata.

La fase successiva dell'algoritmo genetico sviluppato è la formazione di una nuova popolazione. Quanto è cresciuta la popolazione è determinata dal tasso di mutazione complessivo Km e rapporto di crossover K k. In generale, la dimensione attuale della popolazione viene calcolata utilizzando la seguente formula:

Taglia p =Taglia p+Conte +Conta m, (5)

dove Conte- numero di discendenti Conta m- il numero di individui ottenuti a seguito di mutazioni, e Dimensioni pag- dimensione della popolazione.

La fase di formazione di una nuova popolazione è progettata per riportare la popolazione al suo valore originale. È noto il significato delle funzioni di fitness degli individui: i genitori che erano già nella popolazione. L'algoritmo valuta l'idoneità degli individui - discendenti ottenuti a seguito dell'operazione di crossing over, nonché la valutazione degli individui ottenuti come risultato dell'operatore di mutazione. Sulla base dei valori ottenuti dalla funzione fitness per ciascun individuo della nuova popolazione, vengono rimossi gli individui con i valori della funzione fitness più bassi. L'algoritmo implementa questo compito rimuovendo in sequenza l'individuo con il valore minimo della funzione fitness fino a quando la dimensione della popolazione non torna al valore iniziale. Il numero di individui "morti" è calcolato dalla formula:

Conte d =Conte +Conta m, (6)

dove Conte d- il numero di individui "morti", Conte- il numero dei discendenti ricevuti, Conta m- il numero di individui ottenuti utilizzando l'operatore di mutazione.

Nella fase di formazione di una nuova popolazione, viene eseguita anche una ricerca soluzione migliore- l'individuo con il valore massimo della funzione fitness. Questa operazione viene eseguita dopo che la dimensione della popolazione è stata impostata sul valore iniziale. Dopo aver scelto l'individuo migliore, l'algoritmo trasferisce il controllo del processo alla fase successiva, controllando l'arresto dell'algoritmo.

La determinazione del criterio di arresto per un algoritmo genetico dipende direttamente dalle specifiche del problema da risolvere e dalle informazioni disponibili sull'oggetto di ricerca. Nella maggior parte dei problemi di ottimizzazione, per i quali è noto il valore ottimale della funzione fitness, l'algoritmo può essere interrotto quando l'individuo migliore raggiunge questo valore, possibilmente con qualche errore. Il problema da risolvere non ha effettivamente informazioni sul valore ottimale della funzione fitness. In altre parole, l'algoritmo cerca di massimizzare la funzione fitness, dato che l'errore di riconoscimento tende a zero. Pertanto, l'algoritmo creato implementa un meccanismo di arresto della ricerca, basato sull'assenza di un cambiamento nella funzione di fitness dell'individuo migliore per un certo numero di iterazioni, che viene impostato come parametro dell'algoritmo genetico. Inoltre l'algoritmo provvede a fermare il suo lavoro dopo un certo numero di iterazioni, anch'esso impostato come parametro. Nel caso in cui la condizione di arresto sia soddisfatta, l'algoritmo fornisce come soluzione ottimale quella rappresentata dal miglior individuo determinato nella fase di formazione di una nuova popolazione. Se la condizione non è soddisfatta, l'algoritmo trasferisce il controllo alla fase di selezione.

Pertanto, come risultato del lavoro dell'algoritmo genetico, è stato ottenuto un insieme di coefficienti di peso che garantiscono il corretto funzionamento della rete neurale. Da segnalare anche il fatto che l'utilizzo di uno speciale operatore di mutazione ha consentito di ridurre i tempi di addestramento della rete. Per la formazione è stato scelto un set di formazione di 180 elementi. Il tempo di addestramento su questo set utilizzando l'algoritmo genetico descritto utilizzando la mutazione basata sull'incremento, la rete fuzzy Wang-Mendel era di 2 min. 50 sec., l'allenamento utilizzando l'algoritmo utilizzando il classico operatore di mutazione multipunto è durato 3 min. 10 sec., e l'uso dell'operatore di mutazione ibrida ha permesso di ridurre il tempo di addestramento a 1 min. 20 sec. Pertanto, l'algoritmo genetico ottenuto consente di ridurre i tempi di ricerca della migliore soluzione nell'ambito del compito.

CROSSINGOVER - l'incrocio di due individui.

Collegamento bibliografico

Mishchenko VA, Korobkin AA UTILIZZO DEGLI ALGORITMI GENETICI NELL'INSEGNAMENTO DELLE RETI NEURALI // I problemi moderni della scienza e dell'educazione. - 2011. - N. 6.;
URL: http://science-education.ru/ru/article/view?id=5138 (data di accesso: 23/03/2020). Portiamo alla vostra attenzione le riviste pubblicate dalla casa editrice "Accademia di Storia Naturale"

I controller PID sopra descritti hanno indicatori di prestazioni scadenti durante il controllo di sistemi non lineari e complessi, nonché quando le informazioni sull'oggetto di controllo sono insufficienti. Le caratteristiche dei controller in alcuni casi possono essere migliorate utilizzando metodi di logica fuzzy, reti neurali e algoritmi genetici. I metodi elencati sono chiamati "soft-computing" all'estero, sottolineando la loro differenza dall'"hard-computing", che consiste nella capacità di operare con dati incompleti e imprecisi. Combinazioni dei metodi di cui sopra (controllori fuzzy-PID, neuro-PID, neuro-fuzzy-PID con algoritmi genetici) possono essere utilizzate in un controllore.

Lo svantaggio principale dei controller di rete fuzzy e neurale è la complessità della loro configurazione (creazione di una base di regole fuzzy e addestramento di una rete neurale).

5.7.1. Logica fuzzy nei controller PID

L'inferenza fuzzy viene eseguita come segue. Assumiamo che l'area del cambio di errore sia suddivisa in insiemi, l'area di modifica dell'azione di controllo - in insiemi e che con l'aiuto di un esperto sia stato possibile formulare le seguenti regole per il funzionamento del controller [Astrom]:

Regola 1: se = e = , allora =

Regola 2: se = e = , allora =

Regola 3: se = e = , allora =

Regola 4: se = e = , allora =

Regola 5: se = e = , allora =

Regola 6: se = e = , allora =

Regola 7: se = e = , allora =

Regola 8: se = e = , allora =

Regola 9: se = e = , allora = .

Queste regole sono spesso scritte in una forma tabellare più compatta (Fig. 5.91).

Usando le regole, puoi ottenere il valore della variabile di controllo all'uscita del controller fuzzy. Per fare ciò occorre trovare la funzione di appartenenza della variabile all'insieme formatosi a seguito dell'esecuzione di operazioni di inferenza sugli insiemi compresi nel sistema di regole (5.118).

e

Riso. 5.91. Rappresentazione di regole fuzzy in forma tabellare

L'operazione "AND" nelle regole (5.118) corrisponde all'intersezione di insiemi e il risultato dell'applicazione di tutte le regole corrisponde all'operazione di unione di insiemi [Rutkovskaya]. La funzione di appartenenza per l'intersezione di due insiemi, per esempio, e (vedi Regola 1) si trova come [Rutkovskaya]

È possibile definire funzioni di appartenenza ottenute dall'intersezione o dall'unione di insiemi diversi modi, a seconda del significato del problema da risolvere. In questo senso, anche la stessa teoria degli insiemi fuzzy è sfocata. [Rutkowska] fornisce 10 diverse definizioni della funzione di appartenenza per l'intersezione di insiemi, ma non dice quale dovrebbe essere scelta per risolvere un particolare problema. In particolare, utilizzano un'operazione più comprensibile per trovare funzioni di appartenenza nel caso di intersezione e unione di insiemi, che ha un'analogia con le regole di moltiplicazione e addizione delle probabilità:

Tuttavia, l'uso dei primi due metodi per trovare la funzione di appartenenza è generalmente preferibile, perché pur mantenendo la maggior parte delle regole sviluppate per gli insiemi ordinari [Uskov].

Le funzioni di appartenenza per ciascuno degli insiemi inclusi nella variabile fuzzy nelle regole (5.118) si ottengono nella forma [Rutkovskaya]

Qui ciascuna delle 9 equazioni corrisponde a una delle regole (5.118). La risultante funzione di appartenenza dell'azione di controllo, ottenuta dopo l'applicazione di tutte le 9 regole, si trova come unione delle funzioni di appartenenza di tutte le regole:

Ora che la risultante funzione di appartenenza all'azione di controllo è stata ottenuta, sorge la domanda: quale valore specifico dell'azione di controllo dovrebbe essere scelto. Se utilizziamo l'interpretazione probabilistica della teoria degli insiemi fuzzy, diventa chiaro che tale valore può essere ottenuto per analogia con l'aspettativa matematica dell'azione di controllo nella forma:

.

Questo metodo di defuzzificazione è il più comune, ma non l'unico.

Per costruire controllori fuzzy, vengono solitamente utilizzate le leggi di controllo P, I, PI e PD PD+I, PI+D e PID [Mann ]. Il segnale di errore, l'incremento dell'errore, il quadrato dell'errore e l'integrale dell'errore [Mann ] vengono utilizzati come segnali di ingresso per il sistema di inferenza fuzzy. L'implementazione di un controller PID fuzzy causa problemi perché deve avere una tabella di regole tridimensionale secondo i tre termini nell'equazione del controller PID, che è estremamente difficile da completare utilizzando le risposte degli esperti. Un gran numero di strutture di controller fuzzy simili a PID può essere trovato nell'articolo [Mann].

La messa a punto finale di un controller fuzzy o una messa a punto prossima all'ottimale è ancora un compito difficile. Per fare ciò, vengono utilizzati algoritmi di apprendimento style="color:red"> e metodi di ricerca genetica, che richiedono grandi risorse di calcolo e tempo.

Utilizzo della logica fuzzy per regolare il guadagno PID

La regolazione del controller eseguita con le modalità descritte nelle sezioni "Calcolo dei parametri" e "Tuning e adattamento automatico" non è ottimale e può essere migliorata con un'ulteriore messa a punto. La sintonizzazione può essere eseguita dall'operatore in base alle regole (vedi sezione "Sintonizzazione manuale in base alle regole") o automaticamente, utilizzando un blocco di logica fuzzy (Fig. 5.92). Il blocco logico fuzzy (blocco fuzzy) utilizza la base delle regole di regolazione e dei metodi di inferenza fuzzy. L'ottimizzazione fuzzy riduce l'overshoot, riduce il tempo di assestamento e migliora la robustezza del controller PID [Yesil].

Il processo di autotuning del controller utilizzando un blocco di logica fuzzy inizia con la ricerca delle approssimazioni iniziali dei coefficienti del controller. Questo di solito viene fatto con il metodo Ziegler-Nichols, basato sul periodo delle oscillazioni naturali in un sistema chiuso e sul guadagno di anello. Successivamente, formuliamo la funzione di criterio richiesta per la ricerca valori ottimali parametri di regolazione mediante metodi di ottimizzazione.

Diversi passaggi [Hsuan ] vengono utilizzati nel processo di ottimizzazione del controller. In primo luogo, gli intervalli dei segnali di ingresso e di uscita dell'unità di autotuning, la forma delle funzioni di appartenenza dei parametri desiderati, le regole dell'inferenza fuzzy, il meccanismo di inferenza, il metodo di defuzzificazione e gli intervalli dei fattori di scala necessari per convertire le variabili nitide in quelli sfocati sono selezionati.

La ricerca dei parametri del regolatore viene eseguita con metodi di ottimizzazione. Per fare ciò si sceglie la funzione obiettivo come integrale della somma dei quadrati dell'errore di controllo e del tempo di assestamento. La velocità di variazione della variabile di output dell'oggetto viene talvolta aggiunta al criterio di minimizzazione.

Come parametri desiderati (parametri da trovare), vengono scelti la posizione dei massimi delle funzioni di appartenenza (vedi Fig. 5.90) ​​e i fattori di scala all'ingresso e all'uscita del blocco fuzzy. Al problema dell'ottimizzazione si aggiungono le restrizioni sulla gamma di modifiche nelle posizioni delle funzioni di appartenenza. L'ottimizzazione della funzione del criterio può essere eseguita, ad esempio, utilizzando algoritmi genetici.

Va notato che nei casi in cui ci sono informazioni sufficienti per ottenere un modello matematico accurato dell'oggetto, il controller tradizionale sarà sempre migliore del controller fuzzy, perché i dati iniziali vengono forniti approssimativamente durante la sintesi di un controller fuzzy.

5.7.2. Reti neurali artificiali

Le reti neurali, come la logica fuzzy, sono utilizzate nei controller PID in due modi: per costruire il controller stesso e per costruire un blocco per la regolazione dei suoi coefficienti. La rete neurale ha la capacità di "apprendere", che consente di utilizzare l'esperienza di un esperto per addestrare la rete neurale nell'arte della regolazione dei coefficienti del controller PID. Un controller di rete neurale è simile a un controller basato su tabella (vedere "Controllo tabulare">), ma è diverso metodi speciali impostazioni ("training") sviluppate per reti neurali e metodi di interpolazione dei dati.

A differenza di un controller fuzzy, in cui un esperto deve formulare regole di ottimizzazione in variabili linguistiche, quando utilizza una rete neurale, l'esperto non ha bisogno di formulare regole: è sufficiente che regoli il controller più volte nel processo di "addestramento" del rete neurale.

Le reti neurali furono proposte nel 1943 da McCulloch e Pitts come risultato dello studio dell'attività neurale e dei neuroni biologici. neurone artificialeè un blocco funzionale con un'uscita e ingressi che implementa nel caso generale una trasformazione non lineare , dove - coefficienti di peso (parametri) per le variabili di input; - spostamento costante; -" funzione di attivazione"neurone, per esempio, della forma (funzione sigmoidea), dove è un parametro. Una rete neurale (Fig. 5.93) è composta da molti neuroni interconnessi, il numero di connessioni può essere migliaia. A causa della non linearità delle funzioni di attivazione e un largo numero coefficienti configurabili ([Kato] utilizzava 35 neuroni nello strato di input e 25 nello strato di output, mentre il numero di coefficienti era 1850), la rete neurale può eseguire una mappatura non lineare di input multipli su output multipli.

In fig. 5.94 [Kawafuku, Kato]. La rete neurale in questa struttura svolge il ruolo di convertitore funzionale, che per ogni insieme di segnali genera i coefficienti del controller PID. Vengono utilizzati anche altri metodi per trovare il minimo, inclusi algoritmi genetici, metodo di simulazione di ricottura, metodo dei minimi quadrati.

Il processo di addestramento della rete neurale è il seguente (Fig. 5.95). L'esperto ha l'opportunità di regolare i parametri del regolatore in un sistema di controllo automatico a circuito chiuso con vari ingressi. Si presume che l'esperto sia in grado di farlo con una qualità sufficiente per la pratica. I diagrammi temporali (oscillogrammi) delle variabili ottenute in un sistema regolato da un esperto vengono registrati in un archivio e quindi alimentati a una rete neurale collegata a un controller PID (Fig. 5.95

Riso. 5.95. Schema di addestramento della rete neurale nel blocco di autotuning

La durata del processo di apprendimento è il principale ostacolo all'uso diffuso dei metodi delle reti neurali nei controller PID [Uskov]. Altri svantaggi delle reti neurali sono l'impossibilità di prevedere l'errore di controllo per azioni di input che non erano incluse nell'insieme dei segnali di addestramento; l'assenza di criteri per la scelta del numero di neuroni nella rete, della durata dell'allenamento, dell'intervallo e del numero di influenze dell'allenamento. Nessuna delle pubblicazioni ha esaminato la robustezza o il margine di stabilità del regolatore.

5.7.3. Algoritmi genetici

1. Selezione della popolazione iniziale di cromosomi di dimensione N.

2. Valutazione dell'idoneità dei cromosomi nella popolazione.

3. Verifica della condizione di arresto dell'algoritmo.

4. Selezione dei cromosomi.

5. Applicazione degli operatori genetici.

6. Formazione di una nuova popolazione.

7. Vai al passaggio 2.

Affinché l'algoritmo funzioni, è necessario impostare i limiti inferiore e superiore della modifica dei parametri desiderati, la probabilità di incrocio, la probabilità di mutazione, la dimensione della popolazione e il numero massimo di generazioni.

La popolazione iniziale di cromosomi viene generata in modo casuale. L'idoneità del cromosoma viene valutata utilizzando una funzione oggettiva in forma codificata. Successivamente, i cromosomi con la migliore forma fisica vengono assemblati in un gruppo, all'interno del quale vengono eseguite operazioni di incrocio o mutazione genetica. L'incrocio ti consente di ottenere una prole promettente da due genitori. L'operatore di mutazione apporta modifiche ai cromosomi. Nel caso della codifica binaria, la mutazione consiste nel cambiare un bit casuale in una parola binaria.

Riso. 5.97), poi c'è uno scambio di informazioni genetiche situato a destra della posizione prescelta [Fleming].

Dopo l'esecuzione dell'algoritmo genetico, viene eseguita la decodifica rappresentazione binaria in quantità ingegneristiche.

La valutazione dell'idoneità dei cromosomi in una popolazione per la stima dei coefficienti del controller PID può essere scelta, ad esempio, come

,

dove è il valore corrente dell'errore di controllo, è il tempo.

La selezione dei cromosomi viene effettuata con il metodo della roulette. Ci sono settori sulla ruota della roulette e la larghezza del settore è proporzionale alla funzione fitness. Pertanto, maggiore è il valore di questa funzione, più probabile sarà la selezione del cromosoma ad essa corrispondente.

ISBN 978-5-9912-0320-3 Sito dell'editore: www.techbook.ru Reti neurali, algoritmi genetici e sfocato sistemi <...> neurale reti, algoritmi genetici e sfocato sistemi: Per. dal polacco.<...>BBK 30.17 Indirizzo Internet dell'editore www.techbook.ru Pubblicazione scientifica Rutkowska Danuta, Pilinski Maciej, Rutkowski Leszek NEURALE RETI, ALGORITMI GENETICI E SISTEMI FUZZY 2a edizione, editore stereotipato A.S.<...> Adattivo pesato lineare sommatore con uscita sigmoidea.<...> Esempi ottimizzazione <...> Esempi ottimizzazione funzioni utilizzando il programma Evolvere . <...>Risolvere problemi combinatori utilizzando il programma Evolvere . <...> Esempi ottimizzazione funzioni utilizzando il programma FlexTool.<...> Esempi ottimizzazione funzioni utilizzando il programma Evolvere . <...>I seguenti sono due algoritmo algoritmo inversione diffusione errori algoritmo <...>I seguenti sono due algoritmo apprendimento delle reti neurali multistrato: classiche e più comunemente usate algoritmo inversione diffusione errori, oltre che molto più veloce algoritmo, basato sul metodo dei minimi quadrati ricorrenti.<...> algoritmo formare queste reti: algoritmo inversione diffusione errori e ricorrenti algoritmo <...>Pertanto, in questo capitolo, discuteremo prima Elementi basici reti neurali multistrato - perceptron e sistemi di tipo Adaline (con output lineare e non lineare), dopo di che ne definiamo due algoritmo formare queste reti: algoritmo inversione diffusione errori e ricorrenti algoritmo metodo dei minimi quadrati.<...>Perceptron 23 Iperpiano<...>

Neural_networks,_genetic_algorithms_and_fuzzy_systems.pdf

D. Rutkovskaya M. Pilinskiy L. Rutkovskiy Reti neurali, algoritmi genetici e sistemi fuzzy Linea diretta- Telecom WYDAWNICTWO NAUKOWE PWN 2a edizione

Pagina 1

Neural_networks,_genetic_algorithms_and_fuzzy_systems_(1).pdf

2a edizione

Pagina 3

UDC 681.322 LBC 30.17 P90 Rutkovskaya D., Pilinsky M., Rutkovsky L. P90 Reti neurali, algoritmi genetici e sistemi fuzzy: Per. dal polacco. ID Rudinsky. - 2a ed., Stereotipo. - M.: Hotline - Telecom, 2013. - 384 p.: ill. ISBN 978-5-9912-0320-3. Il libro è dedicato ai temi dell'"informatica intelligente". Contiene conoscenze di base su algoritmi genetici, programmazione evolutiva, sistemi fuzzy, nonché sulle connessioni di queste aree con le reti neurali. Per i lavoratori scientifici e ingegneristici nel campo dell'informatica e della tecnologia informatica coinvolti nella creazione e nell'uso di sistemi intelligenti, nonché per studenti laureati e studenti di varie specialità nel campo della tecnologia informatica. BBK 30.17 Indirizzo Internet dell'editore www.techbook.ru Edizione scientifica Danuta Rutkowska, Maciej Pilinski, Leszek Rutkowski RETI NEURALI, ALGORITMI GENETICI E SISTEMI FUZZY 2a edizione, stereotipato Editore A. S. Popov Layout del computer di T. S. Levykina Copertina dell'artista V. G. Sitnikova Firmato per la pubblicazione il 09.01. 2013. Formato 60×90/16. Stampa digitale Uch.-ed. l. 24. Tiratura 200 copie. ed. N. 13320 ISBN 978-5-9912-0320-3 © Rutkovskaya D., Pilinsky M., Rutkovsky L. 1997, 2013 © Wydawnictwo Naukowe PWN, 1997, 1999, 2004 © Rudinsky ID, tradotto dal polacco, 2004, 2013 © Casa editrice "Hot Line-Telecom", 2004, 2013

Pagina 4

Sommario Prefazione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Prefazione all'edizione russa. . . . . . . . . . . . . . . . . . . . . . . 12 1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Riferimenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2. Reti neurali multistrato e algoritmi di apprendimento 18 2.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2. Neurone e suoi modelli. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3. Perceptron. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4. Sistemi di tipo adalino. . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.1. Sommatore lineare pesato. . . . . . . . . . . . . . . 26 2.4.2. Sommatore lineare ponderato adattivo. . . . . 30 2.4.3. Sommatore adattivo lineare pesato con uscita sigmoidea. . . . . . . . . . . . . . . . . . . . . . . 31 2.5. algoritmo di backpropagation. . . . . . . . . . 33 2.6. Applicazione del metodo dei minimi quadrati ricorrenti per il training di reti neurali. . . . . . . . . . . . . . . . . . . . . 37 Riferimenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3. Insiemi fuzzy e inferenza fuzzy. . . . . . . . . . . . . . . . 45 3.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2. Concetti di base e definizioni della teoria degli insiemi fuzzy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3. Operazioni su set fuzzy. . . . . . . . . . . . . . . . . . . 56 3.4. principio di espansione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.5. Numeri sfocati. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.6. regole triangolari. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.7. Relazioni fuzzy e loro proprietà. . . . . . . . . . . . . . . . . . 78 3.8. Conclusione sfocata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.8.1. Regole di base dell'inferenza in logica binaria. . . . . . 83 3.8.2. Regole di base dell'inferenza in logica fuzzy. . . . . . 84 3.8.2.1. Modus ponens della regola fuzzy generalizzata. . . 84 3.8.2.2. Modus tollens della regola fuzzy generalizzata. . . 87 3.8.3. Regole di implicazione fuzzy. . . . . . . . . . . . . . . . . . 88

Pagina 5

6 Indice 3.9. Controllo sfocato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.9.1. Classico modulo di controllo fuzzy. . . . . . 92 3.9.1.1. Base di regole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.9.1.2. Blocco di sfocatura. . . . . . . . . . . . . . . . . . . . . . 94 3.9.1.3. Blocco decisionale. . . . . . . . . . . . . . . . . . 94 3.9.1.4. blocco di defuzzificazione. . . . . . . . . . . . . . . . . . . . . 105 3.9.2. Metodo di controllo fuzzy Takagi-Sugeno. . . . . . . 106 3.10. Progettare una base di regole fuzzy basate su dati numerici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 3.10.1. Costruzione di regole fuzzy. . . . . . . . . . . . . . . . . 110 3.10.2. Sfida al parcheggio dei camion. . . . . . . . . . . . . . . . . . . 115 3.10.3. Nota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Riferimenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 4. Algoritmi genetici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.2. Algoritmi genetici e metodi di ottimizzazione tradizionali. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.3. Concetti di base degli algoritmi genetici. . . . . . . . . . 126 4.4. Algoritmo genetico classico. . . . . . . . . . . . . . . . 130 4.5. Un'illustrazione dell'esecuzione di un algoritmo genetico classico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.6. Codifica dei parametri problema nell'algoritmo genetico 139 4.7. Il teorema principale sugli algoritmi genetici. . . . . . . . . 144 4.8. Modifiche dell'algoritmo genetico classico. . . 157 4.8.1. metodi di selezione. . . . . . . . . . . . . . . . . . . . . . . . . . . 157 4.8.2. Procedure speciali di riproduzione. . . . . . . . . . . . . . . 160 4.8.3. Operatori genetici. . . . . . . . . . . . . . . . . . . . . . 161 4.8.4. Metodi di codifica. . . . . . . . . . . . . . . . . . . . . . . . . 163 4.8.5. Ridimensionamento della funzione fitness. . . . 164 4.8.6. Nicchie nell'algoritmo genetico. . . . . . . . . . . . . . . . 166 4.8.7. Algoritmi genetici per l'ottimizzazione multiobiettivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 4.8.8. Microalgoritmi genetici. . . . . . . . . . . . . . . . . . 169 4.9. Esempi di ottimizzazione di una funzione utilizzando il programma FlexTool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 4.10. algoritmi evolutivi. . . . . . . . . . . . . . . . . . . . . . . . 206 4.11. Applicazioni di algoritmi evolutivi. . . . . . . . . . . . . . 213

Pagina 6

Indice 7 4.11.1. Esempi di ottimizzazione di una funzione utilizzando il programma Evolver. . . . . . . . . . . . . . . . . . . . . . . . . 214 4.11.2. Risolvere problemi combinatori utilizzando il programma Evolver. . . . . . . . . . . . . . . . . . . . . . . . . 246 4.12. Algoritmi evolutivi nelle reti neurali. . . . . . . . 250 4.12 1. Applicazione indipendente di algoritmi genetici e reti neurali. . . . . . . . . . . . . . . . . . . . . . . . . 252 4.12.2. Reti neurali a supporto di algoritmi genetici. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 4.12.3. Algoritmi genetici per supportare le reti neurali. . . . . . . . . . . . . . . . . . . . . . . . . . 253 4.12.4. Applicazione di algoritmi genetici per l'addestramento di reti neurali. . . . . . . . . . . . . . . . . . . 256 4.12.5. Algoritmi genetici per la scelta della topologia delle reti neurali. . . . . . . . . . . . . . . . . . . . . . . . . . 256 4.12.6. Sistemi adattivi interagenti. . . . . . 257 4.12.7. Tipico ciclo evolutivo. . . . . . . . . . . . . . . . . . . . . 257 4.12.7.1. L'evoluzione dei pesi obbligazionari. . . . . . . . . . . . . . . . . . . 259 4.12.7.2. L'evoluzione dell'architettura di rete. . . . . . . . . . . . . . . 261 4.12.7.3. L'evoluzione delle regole di apprendimento. . . . . . . . . . . . . . . 264 4.13. Esempi di modellazione di algoritmi evolutivi in ​​applicazione alle reti neurali. . . . . . . . . . . . . . . . . . 266 4.13.1. Programmi Evolver e BrainMaker. . . . . . . . . . . . . . 268 4.13.2. Programma GTO. . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Riferimenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 5. Moduli di controllo neurale fuzzy. . . . . . . . . . . . . . . . 307 5.1. Un modulo di controllo fuzzy con una struttura definita nel processo di defuzzificazione. . . . . . . . . . . 308 5.1.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 5.1.2. Progettazione del modulo. . . . . . . . . . . . . . . . . . . . . . . . . 309 5.1.3. Struttura del modulo. . . . . . . . . . . . . . . . . . . . . . . . . . . 311 5.1.4. Utilizzo dell'algoritmo di backpropagation. . . . . . . . . . . . . . . . . . . . . 313 5.1.5. Modifiche ai moduli. . . . . . . . . . . . . . . . . . . . . . . 320 5.1.6. Applicazione di un modulo di controllo fuzzy per la previsione di serie temporali casuali. . . . 322 5.1.7. Applicazione di un modulo di controllo fuzzy per risolvere il problema del parcheggio del camion. . . . . . . . . . . . . 326 5.1.8. Nota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

Pagina 7

8 Sommario 5.2. Rappresentazione del modulo di controllo fuzzy sotto forma di rete neurale standard. . . . . . . . . . . . . . . . . . . . . . . 330 5.3. Un modulo di controllo fuzzy con una rete neurale per eseguire la defuzzificazione. . . . . . . . . . . . . . . . . . . . . . 333 5.3.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 5.3.2. Progettazione del modulo. . . . . . . . . . . . . . . . . . . . . . . . . 334 5.3.3. Struttura del modulo. . . . . . . . . . . . . . . . . . . . . . . . . . . 335 5.3.4. Algoritmi di apprendimento dei moduli. . . . . . . . . . . . . . . . . . 337 5.3.5. Soluzione del problema della stabilizzazione di un pendolo invertito. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 5.3.6. Nota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 5.4. Modulo di controllo fuzzy con la possibilità di correggere le regole. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 5.4.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 5.4.2. Fase di apprendimento basato sull'auto-organizzazione. . . . . . 349 5.4.3. fase di apprendimento con un insegnante. . . . . . . . . . . . . . . . . . . . 354 5.4.4. Nota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 5.5. Modulo di controllo fuzzy di tipo Takagi-Sugeno: il caso di variabili linguistiche indipendenti. . . . . . 356 5.5.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 5.5.2. Implementazione neurale della funzione di appartenenza. . 357 5.5.3. Moduli Takagi-Sugeno. . . . . . . . . . . . . . . . . . . . . . . 359 5.5.4. Attuazione delle condizioni. . . . . . . . . . . . . . . . . . . . . . . . . 359 5.5.5. Attuazione delle conclusioni. . . . . . . . . . . . . . . . . . . . . . 361 5.5.6. Nota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 5.6. Modulo di controllo fuzzy di tipo Takagi-Sugeno: il caso di variabili linguistiche dipendenti. . . . . . . 365 5.6.1. Introduzione. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 5.6.2. Reti neurali per inferenza fuzzy. . . . . . . . . . 366 5.6.3. Struttura del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . 368 5.6.4. Modo di apprendimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 5.6.5. Risolvere il problema del parcheggio del camion. . . . . . . . . . . . 374 5.6.6. Nota. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 Riferimenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Indice delle materie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381

Pagina 8

Prefazione Il XX secolo si è concluso con una rivoluzione nell'elaborazione delle informazioni. Abbiamo assistito sia a un rapido aumento della quantità di dati disponibili, sia a un aumento della velocità di elaborazione e trasferimento, nonché a un aumento della capacità di archiviazione. Si vede chiaramente che questi fenomeni non solo sono interconnessi, ma si rafforzano a vicenda. In una situazione di aumento a valanga del volume delle informazioni e della potenza di calcolo, sorge la domanda ovvia: come possiamo migliorare la nostra capacità di comprendere il mondo che ci circonda, avendo capacità tecniche così ampie e in continua crescita? L'aiuto viene dai collaudati metodi matematici classici creati dalle opere di Newton, Leibniz, Eulero e altri geni del passato, che hanno gettato le basi per i moderni algoritmi di calcolo. Grazie a loro disponiamo di procedure computazionali specializzate per il riconoscimento delle immagini e del parlato, per il controllo di sistemi di varie classi e per la risoluzione di altri problemi simili. La ricerca nel campo dell'intelligenza artificiale indipendente da questa direzione ha portato alla creazione di sistemi esperti e predittivi basati sull'elaborazione simbolica e sull'utilizzo di basi di regole. Tuttavia, tutti gli approcci sopra elencati implicano l'uso di tecniche computazionali altamente specializzate o di basi di conoscenza specializzate, il più delle volte racchiuse in un rigido corsetto di logica binaria. Un'altra limitazione all'uso di questi metodi è legata al fatto che non consentono la soluzione diretta dei problemi quando si utilizzano sistemi informatici con un'architettura universale comune alla maggior parte delle applicazioni pratiche. Veniamo così all'origine e all'essenza delle tecnologie informatiche oggetto di questo libro. Queste tecnologie, combinate nella letteratura in lingua inglese sotto il nome di Computational Intelligence, permettono di ottenere soluzioni continue o discrete a seguito di training sui dati disponibili. Una delle sottoclassi del gruppo di metodi discusso sono le reti neurali che utilizzano algoritmi stocastici per addestrare un modello con un insegnante o per auto-organizzazione. Sono progettati per elaborare dati digitali rumorosi, in base ai quali algoritmi di apprendimento costruiscono modelli unidirezionali o ricorrenti di processi di nostro interesse. Questi modelli sono caratterizzati da una struttura regolare composta da elementi non lineari, uniti da una vasta rete di connessioni lineari e spesso integrati da feedback locali o globali. Durante la modellazione dei processi, le capacità delle reti neurali possono essere migliorate attraverso l'uso della tecnologia di elaborazione delle informazioni basata su insiemi fuzzy e inferenza fuzzy. Questo metodo è associato alla stima della funzione di appartenenza degli elementi agli insiemi utilizzando operatori logici fuzzy. L'approccio proposto non solo indebolisce i requisiti per l'accuratezza dei dati nel processo di costruzione

Pagina 9

10 Prefazione del modello, ma permette anche di descrivere sistemi complessi utilizzando variabili i cui valori sono determinati a livello intuitivo. Il paradigma risultante di modellazione, gestione, processo decisionale, ecc. porta alla formazione di argomenti linguistici di funzioni logiche. Tali funzioni che descrivono oggetti reali possono essere perfezionate nel processo di apprendimento utilizzando i dati disponibili. Un altro approccio consiste nel formare regole di inferenza direttamente nel processo di apprendimento. Ciò determina la compenetrazione e la complementarità di modelli e sistemi neurali basati sulla logica fuzzy. Gli operatori linguistici che utilizziamo nella comunicazione quotidiana e nel processo di apprendimento iterativo insieme portano a modelli logico-algebrici intelligenti definiti dal concetto di Intelligenza Computazionale ( tecnologie informatiche). L'intelligenza in questo caso è intesa come la capacità di applicare le conoscenze accumulate nel processo di apprendimento, come la capacità di generare regole di inferenza e come la capacità di generalizzare le informazioni. Gli algoritmi evolutivi sono considerati un'importante classe di algoritmi di apprendimento che hanno arricchito le tecnologie neurali e fuzzy. Operano su popolazioni di cromosomi, stimate dalle funzioni di fitness, e utilizzano il condizionamento evolutivo e genetico per modificare la sequenza di bit o numeri. Così, lo spazio è effettivamente esplorato possibili soluzioni. La soluzione ottimale si cerca in una serie di successive approssimazioni di argomentazioni con i migliori valori delle funzioni di fitness generate a seguito di mutazione e incrocio di cromosomi. L'autore di queste note, nella sua qualità di Presidente del Comitato del Computational Intelligence: Imitating Life Symposium, tenutosi a Orlando nel 1994, è stato in prima linea nella fusione di questi tre campi scientifici e nell'emergere di un nuovo ramo integrale della conoscenza. Accoglie volentieri Neural Networks, Genetic Algorithms e Fuzzy Systems, un libro pionieristico sul mercato editoriale polacco. Oltre a discutere gli elementi di base delle reti neurali, descrivere sistemi fuzzy e algoritmi genetici evolutivi, questo lavoro contiene anche risultati scientifici originali degli autori. Il libro fornisce dettagli sull'attuazione di specifiche soluzioni tecniche, inclusi vari processori e sistemi di apprendimento basati sulla logica fuzzy. Molta attenzione è rivolta ai problemi uso pratico una serie di pacchetti di applicazioni. Tematicamente, il libro è collegato alle direzioni scientifiche delle conferenze All-Polish sulle reti neurali e le loro applicazioni, organizzate dal professor L. Rutkowski e dall'Associazione polacca delle reti neurali nel 1994 e nel 1996. Questa pubblicazione sotto la guida del professor L. Rutkovsky è estremamente rilevante, preziosa e unica. Riempie una vasta nicchia nel capiente mercato scientifico e tecnico della Polonia. Il libro sarà particolarmente utile a ingegneri di varie specialità, economisti, fisici, matematici e informatici, nonché studenti

Pagina 10

Prefazione 11 di questi e dei relativi campi di conoscenza. Gli autori dovrebbero essere congratulati per il grande risultato ottenuto sotto forma di questo eccellente lavoro scientifico. Questo libro non dovrebbe solo aumentare il riconoscimento dei loro meriti, ma anche attrarre nuovi ranghi di appassionati di questa entusiasmante disciplina scientifica. Luglio 1996 Jacek Zurada Membro dell'IEEE. Università di Louisville, USA