Table of Contents
Percettrone
https://en.wikibooks.org/wiki/Artificial_Neural_Networks
Il percettrone svolge il compito che il neurone svolge nelle reti neurali biologiche. A volte è detto Processing Element.
- ogni percettrone è definito da tre elementi:
- dai pesi delle connessioni (sinapsi) (w nella figura)
- una funzione zetaxx(w,x) funzione di aggregazione come la somma pesata degli input x (prodotto scalare x · w). Rif. somma_di_afferenze_sinaptiche
- che somma i contributi dei neuroni che precedono il neurone attuale
- una funzione sigmaxx(zetaxx) funzione di attivazione (lineare o non lineare)
- solo se la precedente somma zetaxx supera una certa soglia, il neurone produce a sua volta un impulso
- Ogni funzione di attivazione è caratterizzata da una thetaxx soglia di attivazione
- a volte dentro al cerchio del neurone si trova rappresentata thetaxx, altre volte c'è il disegnino della funzione sigmaxx(zetaxx)
- Ogni percettrone si attiva se la somma dei segnali provenienti in ingresso supera la soglia di attivazione.
Alcune possibili funzioni di attivazione a soglia in cui f(x) supera zero solo se la variabile x supera un certo valore di soglia: quale scegliere? Probabilmente una facile da calcolare al computer…
RISPOSTA
non è meglio scegliere la funzione di attivazione più facile da calcolare al computer, infatti esiste un teorema dell'approssimazione universale secondo il quale, per poter generare un approssimatore è necessario usare funzioni non lineari.
Universal Approximation Theorem
https://en.wikipedia.org/wiki/Activation_function#Comparison_of_activation_functions
Funzioni sigmoidee nelle reti neurali
https://it.wikipedia.org/wiki/Funzione_sigmoidea
Le funzioni sigmoidee sono spesso usate nelle reti neurali per introdurre la non linearità nel modello e/o per assicurarsi che determinati segnali rimangano all'interno di specifici intervalli. Un popolare elemento neurale artificiale computa la combinazione lineare dei relativi segnali in ingresso ed applica una funzione sigmoidea limitata al risultato; questo modello può essere visto come variante “regolare” del classico neurone soglia. Un motivo per la relativa popolarità nelle reti neurali è perché la funzione sigmoidea soddisfa questa proprietà:
…
Questa relazione polinomiale semplice fra la derivata e la funzione stessa è, dal punto di vista informatico, semplice da implementare.
Funzione di attivazione
Funzione di attivazione lineare
http://it.wikipedia.org/wiki/Percettrone
Matematicamente il comportamento di un percettrone può essere descritto come una funzione (funzione di attivazione) che svolge una classificazione binaria
In questo esempio, la funzione di attivazione è del tipo a soglia (binaria 0, 1). Tale funzione è detta anche a gradino, rect o funzione di Heaviside. Anche gli input x potrebbero essere binari.
- x, è il l'input del percettrone (scalare o vettore)
- w, è il peso moltiplicato ad ogni input (scalare o vettore)
- - b, è la soglia di attivazione (bias)
Nel caso generale in cui ci siano più valori in ingresso (un vettore) si effettua un prodotto scalare tra x e w.
Altri esempi di funzioni di attivazione (lineare) sono
- y=sign(x); (output binario +1,-1)
- y=rampa
- y=x
Nel 1969 si è dimostrato che un solo percettrone con due input potrebbe imitare solo funzioni linearmente separabili come AND e OR, mentre non potrebbe imitare una funzione XOR perché quest'ultima non è linearmente separabile.
Il problema dell'addestramento delle reti neurali artificiali si riduce ad un problema di convergenza della soluzione di un algoritmo di ottimizzazione.
Funzioni di attivazione non lineari
In natura, si osserva spesso una funzione con saturazione.
Il software libFANN2 disponde delle seguenti funzioni di attivazione
Il software pybrain disponde delle seguenti funzioni di attivazione
Si tratta di funzioni che vanno spesso da 0 a 1 (oppure da -1 a 1) e che quindi potrebbero essere già note a coloro che hanno studiato in matematica le distribuzioni di probabilità. Per le distribuzioni di probabilità anche l'integrale della funzione deve dare 1.
- funzione hopfield (sign) o Step
- funzione attivazione Step (funzione a gradino) usata per i classificatori binari
- funzione attivazione sigmoid (o log-sigmoid) caso particolare della logistic
- funzione attivazione softmax (usata nei layer di output)
DA FINIRE
Se il sistema (la rete neurale) è lineare (zero layer e funzione attivazione lineare) può risolvere solo problemi in cui le classificazioni stabiliscono categorie linearmente separabili.
Un sistema dinamico possiede la capacità di continuare a modificare il proprio output in base al proprio stato interno (non continuare ad apprendere) anche durante la fase di produzione (vedere neurali:recurrent_neural_network)