Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
ARTIFICIAL NEURAL NETWORKS (ANN)
In questo caso l'output Y è 1 se almeno due dei tre input sono uguali a 1
Esempio) Come funziona la classificazione sign(1*0.3 + 0*0.3 + 0*0.3 - 0.4) = "-"
Caso generale:
Il modello è un insieme di nodi interconnessi e di links pesati. Il nodo di output somma tutti i suoi valori di input in relazione ai pesi dei suoi links. Si confronta il nodo di output con una certa soglia "t" (detto anche bias "b"). La funzione "sign(x*W - b)" è chiamata activation function
In questo caso il "Perceptron Model" è il seguente:
d ∑ = - = Y sign( w X t ) sign( w X )
i i i i= =i 1 i 0
Caratterizzazione del neurone Artificiale
Il segnale potrebbe essere di input o output e di tipo: valore reale; unipolare {0,1} o bipolare {-1,+1}.
Weight (w o sigma): θij - forza della connessione da unità j a unità i
L'apprendimento equivale ad aggiustare i
pesi θij mediante un algoritmo di ottimizzazione che mira aminimizzare una funzione di costo. Come nei sistemi neurali biologici, l'addestramento di un perceptronmodel equivale ad adattare i pesi dei links fino a quando non si adattano (fit) alle relazioni input-outputdei dati sottostanti
Il bias b è una costante che può essere scritta come θ x con x = 1 e θ = b tale chei0 0 0 i0
La funzione f(net (x)) è la funzione di attivazione dell'unità. Nel caso più semplice, f è la funzione identitàie l'output dell'unità è solo il suo net input. Questa si chiama unità lineare. Altrimenti possiamo avereun'unità di segno (sign unit) o un'unità logistica (logistic unit).
PERCEPTRON CLASSIFIER
Simple linear Neuron
Sull'output abbiamo una funzione di attivazione, che nella Simple Linear Neuron è una funzione diattivazione lineare (c'è sempre il
prodotto scalare).x1 è la feature 1 di X, x2 è la feature 2 di X. L'input è un vettore xi
Il real perceptron è anche chiamato "Linear Threshold Unit"
È spesso usata la sigmoid activation function, esattamente come nella regressione logistica. La lineare non discretizza molto, per questo solitamente non è usata.
Perceptron
Una rete con un singolo livello quindi contiene solo nodi di input e di output. La funzione di attivazione solitamente è il segno: f = sign(w•x)
In questo caso, l'applicazione del modello è semplice:
Se abbiamo capito il training del perceptron, lo abbiamo capito anche delle reti neurali perché funzionano in modo simile
Learning Iterative Procedure
Durante la fase di training i parametri di peso vengono regolati fino a quando gli output del perceptron non diventano coerenti con gli output reali degli esempi di training. L'idea dell'algoritmo è questa:
- Per prima cosa
[ λ - ( k )y f ( w , x ) x
dove: è anche chiamato "delta"
i i i
L'intuizione è la seguente
Aggiornamento del peso basato sull'errore:
- Se y = f (x, w), e = 0: nessun aggiornamento necessario
- Se y > f (x, w), e = 2: il peso deve essere aumentato in modo che f (x, w) aumenti
- Se y < f (x, w), e = -2: il peso deve essere ridotto in modo che f (x, w) diminuisca
I pesi sono aggiornati solamente rispetto agli esempi di training
L'intuizione della formula di aggiornamento è che se l'errore è 0, abbiamo che l'istanza è correttamente classificata quindi i pesi non necessitano di aggiornamento.
Learning Rate
È un parametro con valore compresotra 0 e 1 utilizzato per controllare la quantità di regolazione effettuata in ciascuna iterazione, quindi quanto è importante l'aggiornamento. Se è vicino a 0, il nuovo peso è influenzato principalmente dal valore del peso precedente. Se è vicino a 1, il nuovo peso è influenzato principalmente dalla regolazione corrente. Il tasso di apprendimento può essere adattivo: inizialmente moderatamente ampio e gradualmente diminuisce nelle successive iterazioni.
Per il perceptron non abbiamo bisogno di avere un adactive learning rate, ma per le reti neurali sì.
Nonlinearly Separable Data
Poiché f(w, x) è una combinazione lineare di variabili di input, il decision boundary è lineare. Per problemi non linearmente separabili, l'algoritmo di apprendimento perceptron fallirà perché nessun piano lineare può separare perfettamente i dati. L'esempio classico di dati non separabili linearmente.è la funzione XOR (figura a destra)
Il problema non è separabile linearmente (lo XOR), vogliamo qualcosa di più forte del linear perceptron, dato che nessun iperpiano può separare perfettamente i dati. Vogliamo qualcosa di questo tipo come decision boundary
MULTILAYER NEURAL NETWORK (permette di risolvere problemi non separabili linearmente)
Gli Hidden layers sono livelli intermedi tra i livelli di input e output
In questo caso abbiamo activation functions più generali (sigmoid, linear, tangente iperbolica, ecc)
Input
w31 | xn | n1 |
w41 | yn | 5 |
w32 | wx | 5 |
n2 | 2 | 4 |
La rete neurale multilayer può risolvere qualsiasi tipo di compito di classificazione che coinvolge decision surfaces non lineari. Questa funzione di attivazione non viene applicata solo al livello finale, ma anche in quelli intermedi. Perceptron ha un singolo livello.
Possiamo pensare a ciascun nodo hidden come un perceptron che tenta di costruire un iperpiano.
mentre il nodo di output combina i risultati per restituire il decision boundary.
General Structure of ANN
Abbiamo anche una funzione di attivazione anche per i livelli intermedi. Fare training di una ANN significa apprendere i pesi dei neuroni.
Esistono vari tipi di topologia di rete neurale:
- rete single-layered (perceptron) contro rete multi-layered
- Feed-forward contro rete recurrent
E abbiamo vari tipi di funzioni di attivazione (f)
Activation Functions
Se usiamo la funzione di attivazione, ci troviamo nei modelli non lineari. La non linearità viene modificata. La funzione logistica non è ampiamente utilizzata nelle moderne ANN, ma abbiamo varie alternative:
Alternativa 1 - Funzione tanh: simile alla funzione logistica ma shiftata nel range [-1, +1]
Alternativa 2 - Funzione RELU: rectified linear unit = "max(0, w*x +b)"
Lineare con un taglio a zero (Implementazione: tagliare il gradiente quando si passa a zero)
Alternativa 3 - Soft exponential linear
unit = “log(exp(x) + 1)”
Non si satura (a un'estremità)
Sparsifica le uscite
Aiuta a sfumare il gradiente
Nota: nelle reti neurali la derivata è utilizzata per aggiornare i pesi
Sommario Funzioni di Attivazione
Learning Multi-Layer Neural Network
Possiamo applicare la regola di apprendimento del perceptron a ciascun nodo, compresi i nodi hidden?
La regola di apprendimento di Perceptron calcola il termine di errore e = y-f (w, x) e aggiorna i pesi diconseguenza. Il problema è come determinare il vero valore di y per i nodi hidden?
Calcola un errore approssimativo dei nodi hidden attraverso l’errore dei nodi di output. Tuttavia, non èchiaro in che modo la correzione nei nodi hidden influisca sull'errore generale e non c’è nessunagaranzia di convergenza alla soluzione ottimale
Un buon metodo è la discesa di gradiente
Gradient Descent for Multilayer NN (La funzione di attivazione f deve essere differenziabile)
Funzione
d’errore da minimizzare:Funzione quadratica da cui possiamo trovare una soluzione di minimo globale
- Aggiornamento dei pesi (i pesi vengono aggiornati nella direzione opposta al gradiente della loss function:
La direzione del gradiente è la direzione di salita della funzione di errore. Prendendo il negativo stiamo andando in discesa. Speriamo di minimizzare l'errore.
- Per la funzione di sigmoid otteniamo:
- La discesa di gradiente stocastica aggiorna i pesi immediatamente
Per i neuroni di output, la formula di aggiornamento del peso è la stessa vista prima (discesa di gradiente per il perceptron).
Per i neuroni hidden:
Training Multilayer NN
Error Backpropagation
L'errore viene calcolato nell’output e propagato indietro fino all’input attraverso la catena di regole per calcolare il contributo di ogni peso (derivato) alla loss (perdita). È un processo in 2 passaggi
1. Forward pass - Calcola l'output della rete
2. Backward pass - calcola irete neurale.rete neurale. È la pratica di mettere a punto ipesi di una rete neurale in base al tasso di errore (loss) ottenuto nell'epoca (iterazione) precedente. La corretta regolarizzazione dei pesi garantisce tassi di errore inferiori, rendendo il modello affidabile e aumentandone la generalizzazione. Importance of Error Functions La funzione errore/loss/costo riduce tutti i vari aspetti positivi e negativi di un sistema eventualmente complesso fino a un singolo numero, un valore scalare, che consente di confrontare le soluzioni candidate. È importante, quindi, che la funzione rappresenti fedelmente i nostri obiettivi di progettazione. Se scegliamo una funzione di errore scadente e otteniamo risultati insoddisfacenti, la colpa è nostra per aver specificato male l'obiettivo del