Sei sulla pagina 1di 27

Artificial Neural Network(ANN)

Dott.ssa Elisa Turricchia


Alma Mater Studiorum - Universit di Bologna

ANN: Definizione
Una rete neurale artificiale definisce un modello
matematico per la simulazione di una rete di
neuroni biologici (es. sistema nervoso umano)

Simula i diversi aspetti legati al comportamento e


alle capacit del cervello umano:
Elaborazione intelligente delle informazioni
Elaborazione distribuita
Elevato livello di parallelismo
Facolt di apprendimento, di generalizzazione e di
adattamento
Alta tolleranza ad informazioni poco precise (o sbagliate)

Rete neurale biologica Rete neurale artificiale 2


Applicazioni (1)
 Sistemi di filtraggio del segnale (es.
eliminare il rumore da un segnale)

 Sistemi di classificazione

 Previsione di serie temporali (Time


Series Forecasting)

 Riconoscimento (es. riconoscimento


volti o delle espressioni facciali)

Applicazioni (2)
 Problemi di inversione (es. rete per
linversione di dati satellitari per estrarre
diversi tipi di profili atmosferici)

 Sistemi di allarme e prevenzione (es.


sistema per il monitoraggio del manto
autostradale per allertare con sufficiente
anticipo i mezzi di spargimento delle
misture saline in caso di pericolo)

 Diagnosi di guasto

4
Reti neurali Contenuti
 Rete neurale biologica
 Struttura del neurone biologico
 Trasmissione delle informazioni
 Potenziale dazione
 Rete neurale artificiale (ANN)
 Modello matematico
 Caratteristiche
 Il percettrone
 Caratteristiche e apprendimento
 Il percettrone multilivello
 Caratteristiche e apprendimento
 Progettare una rete neurale
 Vantaggi e svantaggi delle reti neurali

Rete neurale biologica


 costituita da un insieme di cellule nervose (i neuroni) collegati
tramite fibre nervose.
 Neurone: trasmissione di segnali tra neuroni mediante impulsi
elettrici.
 Soma: nucleo della cellula (patrimonio genetico + funzioni cellulari)
 Denitriti: ricevono le informazioni dagli altri neuroni e le trasferiscono al
nucleo della cellula (input)
 Assone: riceve le informazioni dal nucleo cellulare e le trasferisce verso gli
altri neuroni (output)
 Sinapsi: punto di contatto tra lassone di un neurone (neurone pre-
sinaptico) e il ramo dentritico di un altro neurone (neurone post-sinaptico).
Punto in cui avviene il passaggio del segnale con un processo elettrochimico.

6
Trasmissione informazioni (1)
 La trasmissione delle informazioni fra i neuroni paragonabile
alla trasmissione di un segnale elettrico.

Allinterno dellassone, la guaina mielinica


consente una veloce propagazione del
segnale, mentre i nodi di Ranvier ne
consentono la rigenerazione.

Quando il segnale arriva alle sinapsi


viene rilasciata una particolare
sostanza chimica, i
neurotrasmettitori (eccitatori o
inibitori), che consentono il
passaggio dellinformazione ai
denitriti dei neuroni vicini.
http://it.wikipedia.org/wiki/File:Sinapsi.gif
7

Trasmissione informazioni (2)


La quantit di segnale (informazione) trasmessa verso il
neurone postsinaptico dipende da diversi fattori:
 Intensit del segnale in entrata (anche ricezione di pi segnali
da neuroni diversi)
 Forza delle sinapsi dei neuroni in entrata (rilascio dei
neurotrasmettitori)
 Soglia di attivazione del neurone ricevente (superata una
certa soglia di potenziale elettrico, il neurone postsinaptico si
attiva e genera a sua volta una segnale che pu essere
propagato verso gli altri neuroni)

8
Comportamento neurone
postsinaptico
 Comportamento passivo
 Segnali ricevuti di piccola intensit (variazione di potenziale di
pochi mV)  impulso non generato
 Comportamento attivo
 Segnali ricevuti di elevata intensit (variaizone di potenziale >=
soglia)  generazione di un impulso elettrico (spike).

Rete neurale biologica vs


artificiale
n: neuroni in entrata;
xi: intensit del segnale;
wi: forza sinapsi;
b: soglia del neurone
postsinaptico
: combinazione segnali in
entrata
: funzione di attivazione
y: output

10
Modello matematico
y y= (
w x ) i i

(
) Funzione di attivazione

=
w i xi Combinazione
feature in ingresso

Vettore dei pesi


w1 w2 wn

Vettore feature in
x 1 x 2 xn ingresso
11

Caratteristiche
 Vettore pesi: funzione di memoria della conoscenza
accumulata dal singolo neurone.
 Combinazione feature in ingresso: trasformazione
matematica applicata al vettore delle feature in
ingresso per determinare lintensit del segnale in
input.
 Funzione di attivazione: funzione che simula il
comportamento del neurone postsinaptico.
A gradino
Segno (o Hard Limiter)
Sigmoide

12
Funzionamento di una rete
neurale artificiale
 Le reti neurali funzionano come un sistema black box

Il sistema una scatola nera: ci che contiene


inaccessibile o non noto
Si utilizzano dati sperimentali per derivare il modello del
sistema

Dati Algoritmo di Modello


sperimentali apprendimento matematico

Vantaggi: Svantaggi:
Non servono leggi costitutive Vengono creati modelli atti a
Adatte a descrivere il risolvere problemi specifici
comportamento di un sistema
sulla base di dati empirici 13

Il percettrone (1)
 Il percettrone la ANN pi semplice, introdotta
agli inizi degli anni 50
 Classificatore binario
 Funzione di attivazione: funzione segno.
(
)

-1

 Combinazione feature in ingresso: combinazione


lineare delle feature in ingresso (x ), con i pesi (w )
i i

come coefficienti.
14
Il percettrone (2)
Funzione di attivazione:
n
y

1, se w x >b

{
j j 1
j =1
y = n
<b

-1, se w xj =1
j j b

-1

Usiamo la
soglia come Funzione segno
input

1, se w x b > 0

{
j j
j =1
y = n

-1, se w x j j b < 0
j =1

15

Il percettrone (3)
Funzione di attivazione:
n

1, se w x b > 0

{
j j
j =1
y = n

-1, se w x j j b < 0
j =1

Si considera la soglia b come un nuovo input, tale che


w0 = b x0 = 1
n
>0
wwww
xxxx

1, se w x
{
j j
j =0 y' = sign( )
y = n
-1, se w x j j <0 FORMA
j =0 VETTORIALE

16
Esempio
output percettrone
output training set

Training set Percettrone


Classificatore binario
x1 x2 x3 y y
1 0 0 -1 -1
1 0 1 1 1 x1
w1= 0.3
1 1 0 1 1
w2= 0.3
1 1 1 1 1 x2 y

0 0 1 -1 -1 w3=0.3
0 1 0 -1 -1 x3 b=0.4
0 1 1 1 1
0 0 0 -1 -1
y = { 1,-1, se 0.3x1 + 0.3x2 + 0.3x3 -0.4 > 0
se 0.3x1 + 0.3x2 + 0.3x3 -0.4 < 0
Training set
y assume valore 1 se almeno
due input sono maggiori di 0,
altrimenti assume valore -1
17

Apprendimento
 Concetto generale: processo di aggiornamento della struttura
interna di un sistema in risposta a stimoli esterni, al fine di
eseguire una specifica attivit.
 Reti neurali:
 Aggiustare i pesi delle sinapsi al fine di ridurre lerrore fra il valore di
output generato dalla rete neurale e loutput corretto (training set)
 un processo iterativo: analogamente allapprendimento per
esperienza
 Propriet di una rete neurale addestrata:
in grado di memorizzare informazioni imprecise o che contengono
rumore, senza che venga alterata la qualit della risposta della rete
neurale
in grado di generalizzare da concetti appresi a concetti sconosciuti

18
Tipi di apprendimento
 Supervisionato:
 Training set: i valori per gli ingressi e relative uscite
 La rete impara ad inferire il legame fra gli ingressi e le uscite
 I pesi delle sinapsi vengono modificati sulla base dei valori del training set,
per minimizzare lerrore fra luscita prodotta dalla rete neurale e luscita reale
(es. Algoritmo di Backpropagation)
 Per rinforzo (particolare tipo di apprendimento supervisionato):
 Il supervisore (es. utente esperto) interpreta loutput della rete solo come
corretto o sbagliato
 Adatto per lapprendimento di sequenze temporali o per programmi per il
riconoscimento del parlato
 Non supervisionato:
 Training set: solo valori per gli ingressi
 Cluster dei valori in ingresso, lidea quella di:
Raggruppare i dati d'ingresso e individuare degli opportuni cluster
rappresentativi dei dati stessi, facendo uso tipicamente di metodi
topologici o probabilistici.
 Adatto per problemi di compressione dati
19

Modello di Apprendimento del


percettrone
 Processo iterativo
 Apprendimento supervisionato:
 Training set: valori degli ingressi e relative uscite
 Il vettore dei pesi (W) viene modificato finch loutput del percettrone risulta
consistente con loutput reale (uscite del training set).
 Formula di aggiornamento dei pesi
( k +1 ) (k) (k ) i: indice per iterare sugli esempi del
wj = wj + ( y i y 'i ) x ij training set
j: indice per iterare sulle feature
xi i-esimo esempio del training set (attributi) di ciascun esempio del
training set
xij j-esimo attributo dellesempio xi k: indice delle iterazioni

learning rate
0 Il nuovo peso influenzato prevalentemente dai pesi attribuiti nelle
precedenti iterazioni
1 Il nuovo peso influenzato dallaggiustamento eseguito
alliterazione corrente
(k ) peso associato alli-esimo esempio del training set dopo la k-esima
w iterazione w ( k ) = { w k ,.., w k ,.., w k }
1 j n 20
Algoritmo di apprendimento
percettrone
1: Let D ={(xi,yi) | i=1,2,,N} be the set of training examples.
(0)
2: Initialize the weight vector with random values, w
3: repeat //incremento di k
4: for each training example (xi,yi) D do
(k)
5: Compute the predited output y ' i
6: for each weight wj do
( k +1 ) (k) (k )
7: Update the weight, w j = w j + ( y i y ' i ) x ij
8: end for
9: end for
10: until stopping condition is met //tutti i campioni sono stati
classificati correttamente
 i pesi non sono stati
alterati

21

Aggiornamento del peso


( k +1) (k ) (k )
wj = wj + ( yi y 'i ) x ij

Errore Aggiornamento peso


y = y , errore nullo Il peso rimane invariato
y = 1 e y= -1, errore 2 Occorre incrementare il valore di y:
Si incrementano i pesi degli input
positivi
Si decrementano i pesi degli input
negativi
y = -1 e y = 1, errore -2 Occorre decrementare il valore di y:
Si decrementano i pesi degli input
positivi
Si incrementano i pesi degli input
negativi

22
Limiti del percettrone (1)
 Lalgoritmo di apprendimento del percettrone converge
(quindi si raggiunge la soluzione ottima) se il problema
linearmente separabile

23

Limiti del percettrone (2)


 Non esiste una retta in grado di suddividere lo spazio in due semi-
spazi in modo che gli oggetti della classe cerchio siano in un
semi-spazio e gli oggetti di classe triangolo nellaltro

XOR: problema
non linearmente
separabile

Il problema dello XOR non risolvibile


con un percettrone
24
Reti neurali complesse
 Percettrone multilivello

 Funzione di attivazione
 Pattern di connessione
Feed-forward
Recurrent

25
Recurrent Feed-forward

Percettrone multilivello (1)


La rete caratterizzata da uno o pi livelli intermedi (livelli nascosti)
fra il livello di input e quello di output.
 Gli output dei nodi di un livello diventano gli input per i nodi del
livello successivo.
 Ogni nodo nascosto si comporta come un singolo percettrone

26
Percettrone multilivello (2)
Supera i limiti del percettrone usando strati di neuroni nascosti che
realizzano una rappresentazione interna dellinput pi complessa, perch
individua regioni arbitrarie intersecando iperpiani diversi.

Es. Problema dello XOR


Input layer Hidden layer Output layer

x1 w31
n1 n3
w32 w53

n5 y

w41 w54

x2 n2 n4
w42

Decision boundary Topologia della rete

27

Percettrone multilivello (3)


 Aumentando il numero di livelli e dei nodi nascosti e a seconda delle
funzioni di attivazione scelte, possibile risolvere problemi di
classificazione sempre pi complessi.

Percettrone 1 livello nascosto 2 livelli nascosti

Decision boundary sempre pi complessi

Gli esempi fanno riferimento ad una funzione di attivazione a gradino


(analoga alla funzione segno, in cui per i valori di uscita sono 0 o 1).

28
Percettrone multilivello (4)
 Quanti livelli nascosti?
 1 livello: universal approximator (vedi Teorema Cybenko)
Pu approssimare in modo arbitrariamente preciso ogni funzione
continua (avendo un numero sufficiente di neuroni nascosti)
 2 livelli: per approssimare funzioni con discontinuit
 Quanti nodi?
 Non esiste un numero preciso, necessario eseguire diverse
prove!
 Quali funzioni di attivazione?
 Funzione segno
 Funzione a gradino
 Funzione sigmoide

29

Funzioni di attivazione (1)


 Segno
 Permette di simulare solo il comportamento attivo/passivo del
neurone biologico (2 soli stati)
 Funzione semplice
 Diversi ambiti applicativi (es. problema di classificazione di
documenti, in cui rilevante il numero di volte in cui una
parola compare allinterno del documento)

30
Funzioni di attivazione (2)
 A gradino
 Simile alla funzione segno
 Utile per rappresentare funzioni logiche (es. AND, OR)

31

Funzioni di attivazione (3)


 Sigmoide
 Dal punto di vista biologico, approssima meglio il comportamento del neurone
postsinaptico
 Preferibile per i neuroni nascosti perch facilit lapprendimento con
backpropagation
Differenziabile (metodo di discesa del gradiente)
Nelle funzioni segno o a gradino il gradiente nullo o non esiste
Generalmente, anche piccoli cambiamenti nei pesi, producono un
cambiamento delloutput  possibile valutare se laggiornamento porta
ad un miglioramento delloutput della rete.

32
Apprendimento di un
percettrone multilivello (1)
Metodo di discesa del gradiente: determinare il vettore dei pesi (W) che
minimizza la somma degli errori quadratici. Viene utilizzato per aggiornare i pesi
dei nodi nascosti e dei nodi di output.

1 N
E ( w) = ( yi y ' i ) 2 y' = w x Funzione di errore
2 i =1
E ( w) Derivata parziale della funzione
wj wj di errore rispetto ai pesi
w j
N: numero di neuroni
i: indice per iterare sui nodi della rete
w: vettore dei pesi in entrata sul neurone i-esimo
j: indice per iterare sui pesi in entrata sulli-esimo neurone
yi: output del training set per li-esimo neurone
yi : output della rete neurale per li-esimo neurone
: learning rate

33

Apprendimento di un
percettrone multilivello (2)
1. Linsieme corrente di pesi individua un punto sulla superficie di
errore.
2. In quel punto si calcola la pendenza della superficie lungo gli
assi formati da ciascun peso (derivata parziale);
3. Si modificano i pesi di una quantit proporzionale alla pendenza
in ciascuna delle direzioni.
4. La rete si sposta nella direzione della discesa pi ripida lungo la
superficie di errore (direzione negativa del gradiente)
5. Lalgoritmo termina quando lerrore minore di una certa soglia
fissata

34
Limiti del metodo di discesa
del gradiente
 Convergenza a minimi locali
E(w)

Possibile soluzione:
provare con diverse
inizializzazione dei parametri

 Convergenza lenta
E(w)

Se la derivata piccola
lalgoritmo si muove a piccoli
passi

w
35

Backpropagation (1)
 Il metodo di backpropagation viene utilizzato per permettere
laggiornamento dei pesi nei nodi nascosti (nel training set
presente solo il valore di output della rete complessivamente, ma
non per ciascun nodo nascosto)
 Forward-phase: i pesi ottenuti dalla iterazione precedente
vengono utilizzati per calcolare gli output dei neuroni della
rete. Gli output dei neuroni a livello k sono calcolati prima di
quelli a livello k+1.
 Backward-phase: i pesi a livello k+1 sono aggiornati prima
dei pesi a livello k. Gli errori dei neuroni a livello k+1 vengono
utilizzati per stimare gli errori per i neuroni a livello k.

36
Esempio backpropagation (1)
 Rete di partenza

Combinazione Funzione di
feature in ingresso attivazione

(Vedi modello matematico di slide 11)

37

Esempio backpropagation (2)


 Forward-phase

Calcolo della
funzione di uscita
per il primo strato

Propagazione del calcolo delle uscite in avanti, fino al livello di output

Calcolo della
funzione di uscita
per il livello di
output
38
Esempio backpropagation (3)
 Calcolo dellerrore per il livello di output
calcolo errore

z: output training set


y: output della rete

 Backward-phase Propagazione dellerrore


allindietro.
Lerrore ad un livello viene
calcolato sfruttando gli
errori calcolati al livello
successivo
Aggiornamento dei pesi
con metodo del gradiente
39

Epoche di apprendimento
 La rete neurale viene addestrata su di un training set
 Ogni esempio viene passato attraverso la rete calcolando lerrore
che verr usato per modificare i pesi
 Il training set viene passato pi volte (epoca di apprendimento)
Lerrore tende a diminuire
durante la fase di
addestramento, allaumentare
del numero di nodi nascosti e di
numero di epoche di
apprendimento (cicli di training)

Problema OVERTRAINING

Lerrore risulta essere sempre


pi vicino a 0 per gli esempi del
training set, ma la rete perde la
capacit di generalizzare sugli
esempi del test set.
40
Pattern di connessione
 Feed-forward: i nodi di un livello sono collegati solamente ai nodi del livello
successivo.
Si associa un pattern di uscita a pattern di ingresso
ad un certo istante di tempo t:

y (t ) = F ( x(t ))

 Recurrent: possono esistere connessioni fra nodi dello stesso livello e fra nodi di
un livello e i nodi di livelli precedenti.
Si associa un pattern di uscita a pattern di
ingresso ad un certo istante di tempo t, con una
dipendenza da uno stato interno z(t) che evolve a
sua volta nel tempo con gli ingressi presentati :

z (t + 1) = F ( z (t ), x(t ))
y (t ) = G ( z (t ), x(t ))

41

Sviluppare una rete neurale (1)

42
Sviluppare una rete neurale (2)
1. Definizione e formulazione del problema
1. Analisi e comprensione del problema e delle relazioni causa-
effetto che caratterizzano il fenomeno
2. Progettazione del sistema
1. Scelta del tipo di rete neurale
2. Scelta dellalgoritmo di apprendimento
3. Raccolta e pre-processing dei dati
4. Partizionamento dei dati (training, test, validation set)
3. Realizzazione del sistema:
1. Training della rete neurale
2. Valutazione delle performance
3. Modifica dei parametri della rete per migliorare laccuratezza
della rete

43

Sviluppare una rete neurale (3)


4. Verifica del sistema
1. Validazione del sistema sul validation set, per verificare la
capacit della rete di rispondere correttamente a input mai
utilizzati.
2. Eventuale comparazione delle performance della rete rispetto
ad altri metodi (es. regressione lineare, sistemi esperti)
5. Implementazione del sistema
1. Installare la rete neurale allinterno del sistema che ne fa
utilizzo
2. Collaudo dellintero sistema, prima del rilascio al cliente
6. Manutenzione del sistema
1. Adeguamento del sistema in risposta a cambiamenti
dellambiente in cui il sistema collocato (es. nuovi dati)

44
Partizionamento dei dati
 Si partiziona il data set in 3 parti
 Training set: comprende i dati appartenenti al dominio del
problema e vengono utilizzati durante la fase di
addestramento per modificare i pesi della rete.
 Test set: viene utilizzato per testare le performance delle rete
su dati sconosciuti. In base ai risultati ottenuti si modifica la
topologia della rete (es. numero nodi).
 Validation set: viene utilizzato per testare le performance
della rete (avendo individuato la configurazione ottima della
rete a seguito della fase di training), su dati sconosciuti.
 Possibile partizionamento (Looney 1996)
 65% training set, 25% testing set, 10% validation set

45

Data balancing
 Per le reti neurali usate come classificatori importante che i dati
del training set siano uniformemente distribuiti fra le classi per
evitare che la rete sia performante solo per particolari classi.
Possibili soluzioni:
 Eliminare alcune esempi relativi alle classi over-represented.
 Aggiungere esempi relativi alle classi under-represented.
 Duplicare gli esempi relativi alle classi under-represented,
inserendo del rumore (modificando gli input e mantenendo
invariato loutput degli esempi)

46
Dimensione del data set
 Data set molto piccoli non permettono lindividuazione di
adeguate porzioni di dati per training, test e validation:
 Inserire nuovi dati (se possibile)
 Inserire nuovi esempi, partendo da esempi esistenti e
aggiungendo rumore.
 Leave-k-out method:
Supponendo di avere M esempi, (M-k) vengono usati per il training set e
k per il test set
La procedura ripetuta M volte, ogni volta con inizializzazione random
dei pesi

47

Pesi, soglie e learning rate


 Linizializzazione dei pesi pu influenzare la convergenza della
rete neurale (es. convergenza lenta nellindividuazione del minimo
della funzione di errore)
 Si consiglia di utilizzare piccoli valori, per ridurre la probabilit di saturazione
dei nodi (es. pesi e soglie compresi fra -0.30 e +0.30) (ASCE, 2000)
 Learning rate:
 Learning rate alto: pu accelerare la fase di training, modificando
significativamente i pesi nelle varie iterazioni. Si rischia per di ottenere dei
minimi locali
 Learning rate basso: pu portare al raggiungimento del minimo globale ma
in maniera lenta.
 possibile utilizzare learning rate costanti o variabili durante la fase di
training
 Esempio: learning rate nel range [0.0, 1.0] (Fu, 1995)

48
Effetti degli strati nascosti
sulla rete neurale
 Livelli nascosti
 1 livello: universal approximator (vedi Teorema Cybenko)
Pu approssimare in modo arbitrariamente preciso ogni funzione
continua (avendo un numero sufficiente di neuroni)
 2 livelli: possono essere necessari per approssimare funzioni con
discontinuit
 Nodi nascosti
 Non esiste un numero preciso, necessario eseguire diverse prove

49

Costruire un classificatore
con una rete neurale
 Numero di nodi del livello di input:
 Per attributi numerici o binari un nodo per ogni attributo
 Per attributi categorici  un nodo per ogni valore dellattributo categorico
 Numero di nodi del livello di output:
 Per problemi con 2 classi  1 solo nodo
 Per problemi con k classi  k nodi
 Topologia della rete (es. numero di livelli nascosti, pattern di
connessione)
 Iniziare da una rete completamente connessa, con un sufficiente numero di nodi e livelli
nascosti. Successivamente eseguire il modello dopo aver rimosso alcuni nodi
 Inizializzazione dei pesi e del valore di soglia:
 Inizializzazione random
 Training set
 Eliminare o sostituire i valori mancanti

50
Vantaggi di una rete neurale (1)
 Capacit di generalizzazione
 Utile in problemi di riconoscimento di caratteri digitalizzati
 Comportamento dinamico
 Capacit di rispondere a stimoli esterni in maniera diversa
rispetto a ci che inizialmente stato definito allinterno del
sistema
 Capacit di riprodurre o modellare comportamenti non lineari di
un sistema

51

Vantaggi di una rete neurale (2)


 Capacit di classificare pattern complessi

 Tolleranza agli errori


 scostamenti non significativi dei valori di input vengono
assorbiti dalla rete, diminuendo cos il rumore e risultando
tolleranti agli errori o al decadimento del segnale
 Tolleranza ai guasti
 Il mal funzionamento di una unit di elaborazione pu essere
ovviato dalla presenza di molteplici neuroni che operano in
parallelo
52
Svantaggi di una rete neurale
 Ai fini dellapprendimento necessario fornire alla rete neurale
tanti pi esempi quanto pi fortemente non lineare il sistema da
modellare.
 Il processo di apprendimento potrebbe risultare lungo
 Il processo di apprendimento potrebbe portare a soluzione
subottime
 Non possibile sapere a priori quale sia la miglior topologia della
rete (numero di nodi, di strati, collegamenti fra nodi e tipo di
funzioni che devono implementare i nodi di ciascun strato) da
assegnare alla rete neurale affinch modelli al meglio il nostro
sistema.
 La rete neurale come una scatola nera, quindi non fornisce
spiegazioni sul funzionamento del sistema in esame.

53

Riferimenti
 I.A., Basheera, M. Hajmeerb 2000. Artificial neural networks: fundamentals,
computing, design, and application. Journal of Microbiological Methods 43, 331
 ASCE, 2000. Artificial neural networks in hydrology. I. Preliminary concepts. J.
Hydro. Eng. ASCE 5, 115123.
 Fu, L., 1995. Neural Networks in Computer Intelligence. McGraw-Hill, New York.
 Looney, C.G., 1996. Advances in feedforward neural networks: demystifying
knowledge acquiring black boxes. IEEE Trans. Knowledge Data Eng. 8 (2), 211
226.
 http://en.wikipedia.org/wiki/Neural_network

54