Otacon22 HgComo. Reti neurali artificiali

Похожие документы
Intelligenza Artificiale. Soft Computing: Reti Neurali Generalità

Reti Neurali in Generale

Reti Neurali. Corso di AA, anno 2016/17, Padova. Fabio Aiolli. 2 Novembre Fabio Aiolli Reti Neurali 2 Novembre / 14. unipd_logo.

Riconoscimento di cifre manoscritte tramite una rete neurale

INTRODUZIONE AI SISTEMI DI CLASSIFICAZIONE

Reti Neurali

Apprendimento automatico e Reti Neurali. Francesco Sambo tel

Tecniche di riconoscimento statistico

Struttura del calcolatore

Le reti neurali artificiali. Giacomo Trudu aka Wicker25

Introduzione agli Algoritmi Genetici ed alle Reti Neurali

Esempi di applicazioni di reti neurali

Backpropagation in MATLAB

Cap. 4 Ricostruzione delle tracce con reti neurali

Cosa è l Informatica?

Linguaggi di programmazione e astrazione

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Reti Neurali. F. Sciarrone Dicembre2005. Seminari di Sistemi Informatici

Regressione non lineare con un modello neurale feedforward

Analisi del Rischio Rapina

Strumenti per l automazione del testing di applicazioni web Javascript-based

RETI NEURALI (II PARTE)

Reti Neurali Artificiali

LINGUAGGI DI ALTO LIVELLO

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Riconoscimento e recupero dell informazione per bioinformatica

Neural Network Toolbox

INDICE PREMESSA... 2 IL SOFTWARE NFTP ISO SIMULAZIONI... 4 REPORTS DELLE SIMULAZIONI. La norma ISO

Artificial Neural Network(ANN)

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Unità Aritmetico-Logica

GLI ERRORI DI MISURA

Algoritmi e diagrammi di flusso

Conversione Analogico/Digitale

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

Sistemi numerici: numeri in virgola mobile Esercizi risolti

MONTEPAONE S.R.L. Strumentazione Scientifica da laboratorio

Sviluppo di programmi

Fondamenti di programmazione!! Parte 2!

L intelligenza artificiale

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale

In realtà i segnali con i quali dobbiamo confrontarci più frequentemente sono limitati nel tempo

Intelligenza Artificiale. Introduzione alle Reti Neurali

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Note sull implementazione in virgola fissa di filtri numerici

Music Information Retrieval

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Elettronica digitale: cenni

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Tecnica di Subnetting e Sub-subnetting

LA PROGRAMMAZIONE MATEMATICA (p.m.)

2. Algoritmi e Programmi

Informatica Generale 1 - Esercitazioni Flowgraph, algebra di Boole e calcolo binario

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

DEEP LEARNING. Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica. Elaborato finale in INTELLIGENZA ARTIFICIALE

Intelligenza Artificiale Complementi ed Esercizi

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

Programmazione modulare

Modelli di reti neurali: multilayer perceptron e radial basis function

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Dal percettrone di Rosenblatt alle Reti Convoluzionali

Il metodo della regressione

Intelligenza Artificiale. Reti Neurali

Introduzione al Calcolo Scientifico

La grande frontiera dell utilità nell economia del benessere

Apprendimento Automatico (Lezione 1)

Valutazioni preliminari all acquisto di un computer

Pianificazione di reti IP Subnetting e CIDR

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

STRUMENTO DI SUPPORTO PER L ANALISI DEL RISCHIO-RAPINA

Sintesi Sequenziale Sincrona Sintesi Comportamentale di reti Sequenziali Sincrone

Rappresentazioni numeriche

Cos è una wavelet? Applicazioni della trasformata wavelet. Analisi multirisoluzione

Транскрипт:

Otacon22 HgComo Reti neurali artificiali

Chi sono? Daniele Iamartino ( aka Otacon22 ) Membro del team HgComo Studente/sperimentatore Futura matricola del PoliMi, ex liceale con tesina sulle reti neurali!

Chi NON sono! Un esperto di reti neurali artificiali

Un po' di storia 1936 - Turing e il primo modello di macchina calcolatrice programmabile 1943 McCulloch e Pitts propongono un primo modello di neurone artificiale e la sua conessione in reti 1970-1980 - Interruzione dei finanziamenti alle ricerche 1985 Rumelhart pubblica il nuovo algoritmo di retro-propagazione dell'errore

Il neurone biologico

La sinapsi La sinapsi funziona da interfaccia tra due neuroni Può amplificare o smorzare il segnale che la attraversa Funziona con un meccanismo elettrochimico

Confronti

Valore di attivazione Si indica il valore di attivazione con a i w i,j Il peso sinaptico si indica invece con, ovvero il valore del collegamento tra un neurone i ed un neurone j Neurone 1 w i,1 w i,2 a i Neurone 2 Generico neurone i a i = f j w i,j a i... w i,j Generico neurone j Funzione di trasferimento Somma pesata

Funzione di trasferimento La più utilizzata è la sigmoide logistica o funzione sigmoidale Dominio: tutti i numeri reali Codominio: compreso in 0 ;1 f x = 1 1+e -x

La rete feed-forward

La rete feed-forward Strato di ingresso

La rete feed-forward Strato di ingresso Strato intermedio

La rete feed-forward Strato di uscita Strato di ingresso Strato intermedio

La rete feed-forward

La rete feed-forward

La rete feed-forward

La rete feed-forward

La rete feed-forward

La rete feed-forward

La rete feed-forward

La rete feed-forward + BIAS Bias

La rete feed-forward + BIAS Bias Bias

Esempio di calcolo del valore di attivazione a 1 = 1 a 2 = 0,5 w 1,3 = 1 w 2,3 = 2 a 3 = f [ a 1 w 1,3 a 2 w 2,3 ] a 3 = f [ 1 1 0,5 2 ] = f 2 a 3 = 1 0,88-2 1 +e

L'algoritmo di retro-propagazione dell'errore k j i w i,j = w i,j ε Δ i f ' x = e x e 2x 2e -x 1 Δ i = Err i f ' j w i,j a i f ' x = y y 2 Err i = valore desiderato i valore ottenuto i

L'algoritmo di retro-propagazione dell'errore Delta dei neuroni dello strato intermedio Pesi sinaptici tra strato d'ingresso e intermedio Δ j = Err j f' k w k,j a j w k,j = w k,j ε Δ j Err j = i w i,j Δ i k j i

Errore quadratico medio Errore totale della rete neurale: E tot = 1 2 i D i Y i 2 Esempio: 1 0 Valore ottenuto: 1 ; valore desiderato: 0 Valore ottenuto: 0 ; valore desiderato: 0,3 E tot = 1 2 [ 0 1 2 0,3 0 2 1 0,5 2 ] E tot 0,67 0,5 Valore ottenuto: 0,5 ; valore desiderato: 1

Applicazione: approssimazione della funzione seno

Applicazione: approssimazione della funzione seno La tangente iperbolica Dominio: tutti i numeri reali Codominio: -1;1 Set di esempi:

Risultati dell'applicazione

Risultati dell'applicazione

Sistema OCR rudimentale

Sistema OCR rudimentale

Immagine binaria 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0

Immagine binaria 16 x 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 16 = 256 bit, cioè 256 ingressi

Struttura della rete 256 neuroni in ingresso (16*16) 16 neuroni in strato intermedio 4 neuroni in uscita ( uno per lettera ) Errore quadratico medio abbassato fino a 0.002314 La rete ha compreso gli 8 esempi ed è riuscita a riconoscere le altre 40 immagini di test senza errori

Immagine binaria 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0......

E quanti neuroni hidden metto? Il numero di neuroni nello strato nascosto in una rete neurale deve dipendere dal numero di fattori o features di cui si vuole tenere conto. Purtroppo raramente è facile capire quante sono effettivamente queste features Esistono alcune formule, anche se restano poco affidabili e solo come relazioni empiriche N n = Numero Esempi Errore percentuale consentito Numero input Numero output Numero esempi 10 Numero pesi

Pregi delle reti neurali Applicazioni in contesti con dati soggetti a rumore o parzialmente errati Possono essere utilizzate in contesti di riconoscimento di immagini o di suoni in modo relativamente semplice e veloce. Utilissime in campo di previsioni: sia finanziarie (come ad esempio previsioni di bancarotta, previsione del prezzo di azioni) che meteorologiche o in altri settori. Hanno il pregio assoluto di poter astrarre a delle relazioni tra i dati in modo indipendente e capire i motivi che determinano i risultati

Difetti delle reti neurali I risultati molto efficienti ma non spiegabili in modo chiaro: dobbiamo accettarli così come sono. Un po' come una scatola nera. Necessitano spesso set di esempi molto ampi Per alcune applicazioni complesse l'addestramento può richiedere relativamente parecchio tempo. Non esiste la rete perfetta, ma la realizzazione di una struttura adatta al problema da risolvere dipende molto al creatore.

Bpnn.py È uno script/lib python comodo per fare qualche test Reperibile a http://arctrix.com/nas/python/bpnn.py Simula una rete feed-forward a tre strati, utilizzando l'algoritmo back-propagation

Bpnn.py Esempio applicativo import bpnn net = bpnn.nn(2, 2, 1) pat = [ [[0,0], [0]], [[0,1], [1]], [[1,0], [1]], [[1,1], [0]] ] net.train(pat) net.test(pat) otacon22@desktop:~$ python bpnn.py error 0.942497 error 0.042867 error 0.003480 error 0.001642 error 0.001062 error 0.000782 error 0.000794 error 0.000527 error 0.000442 error 0.000380 [0, 0] -> [0.025608579041218795] [0, 1] -> [0.98184578447794768] [1, 0] -> [0.98170742564066216] [1, 1] -> [-0.021030064439813451]

Fast Artificial Neural Network Library (FANN) Reperibile a http://leenissen.dk/fann/ Vantaggioso perchè ha il bindings su diversi linguaggi:.net, C++, Java, Ada, PERL, PHP, Python, Ruby, Delphi, TCL, Lua, Haskel, Mathematica, Matlab, Prolog, Octave, Pure Data. È dotata anche di vari tool grafici Permette molte operazioni avanzate, tra cui ad esempio settare funzioni di trasferimento diverse per strati differenti

Fann example #!/usr/bin/python from pyfann import fann connection_rate = 1 learning_rate = 0.7 num_input = 2 num_neurons_hidden = 4 num_output = 1 desired_error = 0.0001 max_iterations = 100000 iterations_between_reports = 1000 ann = fann.create(connection_rate, (num_input, num_neurons_hidden, num_output)) ann.set_learning_rate(learning_rate) ann.set_activation_function_output(fann.sigmoid_symmetric_stepwise) ann.train_on_file("../../examples/xor.data", max_iterations, iterations_between_reports, desired_error) ann.save("nets/xor_float.net")