spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Generale > Forum generale

Rispondi
 
Strumenti discussione Modalit visualizzazioe
  #1  
Vecchio 09-07-2016, 15.59.22
L'avatar di max_robot
max_robot max_robot non è collegato
Robottaro sostenitore
 
Data registrazione: 08-10-2008
Residenza: Roma
Messaggi: 785
Potenza reputazione: 181
max_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua fama
Predefinito Reti Neurali Artificiali: Cosa sono? Come utilizzarle?

Ciao a tutti i vecchi e nuovi amici del forum. Da molto tempo non metto piede qui a causa di continui spostamenti in giro per il mondo a cui ho dovuto sottostare negli ultimi anni. Per farmi perdonare ho deciso di scrivere qualcosa su un argomento di cui molti di voi avranno sentito parlare, specialmente negli ultimi tempi, le Reti Neurali Artificiali aka Artificial Neural Networks (ANNs). Mi occupo di ANNs a livello di ricerca, e sono da anni il mio pane quotidiano. Ho notato che materiale in italiano sulle ANNs scarseggia. Presento quindi una introduzione alle ANNs sperando di fare cosa gradita.
Alzi la mano chi ha sentito parlare di Machine Learning (Apprendimento Automatico), Deep Learning (Apprendimento approfondito), Convolutional Networks (Reti Convoluzionli). Se qualcuno di voi non ha alzato la mano consiglio di leggere questo articolo comparso su Focus, questo su Panorama, e questo sul blog Robotiko... Qualche mese fa un'intelligenza artificiale marchiata Google ha battuto il campione del mondo del gioco Go. Vorreste sapere come diavolo ha fatto? Bhe, in quel caso sono stati utilizzati diversi algoritmi, tra cui le Convolutional Neural Networks (CNNs). Un appunto sulla notazione, utilizzero' spesso i termini inglesi durante la trattazione per due ragioni. Primo perche' le traduzioni in italiano sono orribili. Secondo perche' la letteratura la' fuori (fuori dall'Italia) e' tanta ed usa questa terminologia. Cominciamo con una definizione intuitiva...

Definizione e Storia

Una ANN (Artificial Neural Network, cercate di memorizzare gli acronimi), e' un modello matematico che si ispira al funzionamento di reti neurali biologiche. Una rete neurale e' costituita da unita' singole chiamate neuroni che possono essere raggruppate in layer. La rete piu' semplice in assoluto ha due layer: input layer e output layer. Una rete di questo tipo e' una delle architetture piu' conosciute ed utilizzate. Questa rete neurale fu realizzata da Frank Rosenblatt nel 1958. Rosenblatt battezzo' la sua rete con il nome di Perceptron. All'epoca la creazione del perceptron fu vista come una svolta epocale e le principali testate giornlistiche pubblicizzarono il tutto come l'avvento delle macchine realmente intelligenti. I limiti di questa prima rudimentale ANN emersero qualche anno dopo. Nel 1969 Marvin Minsky e Seymour Papert pubblicarono un libro in cui dimostravano come un Perceptron potesse apprendere solo classi di pattern che fossero linearmente separabili. Cosa significa? Significa che se abbiamo un piano cartesiano con due classi di punti che non possono essere separati da una linea retta, allora il Perceptron non potra' apprendere come disttinguere queste due classi. Un esempio e' la funzione XOR. Quello che successe dopo il libro di Minsky e Papert fu un calo di interesse (e fondi) verso il Perceptron e gli approcci di stampo connessionista. Tutto rimase in silenzio per 10 anni. Siamo negli anni ottanta, ed importanti scoperte nel settore sono all'orizzonte. Fu visto che aggiungere un terzo strato al Perceptron permetteva di apprendere funzioni non linearmente separabili. Il limite che frenava la diffusione delle ANNs fu superato. Il nuovo Perceptron a tre layer fu battezzato Multilayer Perceptron ed era costituito da uno strato di ingresso (input layer), uno intermedio (hidden layer), ed uno di uscita (output layer). Una rappresentazione del Multilayer Perceptron e' presente di seguito:



In quegli stessi anni fu anche messo appunto un algoritmo di apprendimento estremamente efficiente chiamato Backpropagation. Molti scienziati cominciarono ad utilizzare le ANNs, tuttavia presto si scoprirono ulteriori limiti. Le ANNs vennero considerate "black box", ovvero modelli il cui funzionamento non e' direttamente analizzabile. L'approssimazione di alcune funzioni richiedeva reti molto grandi ed i limiti computazionali dell'epoca rendevano l'addestramento estremamente lento. Ulteriori problemi sorgevano quando gli input erano vettori con un alto numero di dimensioni. Per la seconda volta le ANNs subirono un calo di interesse. Molti ricercatori tuttavia continuarono ad utilizzarle e studiarle. Tra questi ricercatori troviamo Yan LeCun (oggi direttore del Facebook AI Research) e Geoffrey Hinton (oggi Distinguished Researcher presso Google). Questi signori capirono che le ANNs avevano delle enormi potenzialita' e che era solo questione di tempo prima che nuove tecniche e risorse computazionali adeguate permettessero la diffusione di una nuova generazione di modelli. La nuova generazione e' arrivata in anni recenti ed ha preso il nome di Deep Learning. Questo nome puo' spaventare qualcuno, ma guardando meglio si scopre che il Deep Learning non e' altro che l'uso di ANNs con molti layer (> 3). Esattamente, il Deep Learning usa architetture simili al Multilayer Perceptron di cui abbiamo gia' discusso, ma con piu' strati. La parola deep (profondo) fa proprio riferimento alla quantita' di strati. Quali sono state le innovazioni che hanno permesso l'avvento del Deep Learning? Prima di tutto l'uso di un nuovo tipo di rete chiamata Convolutional Neural Network (CNN). Queste reti prendono in ingresso delle immagini e permettono di modificare le proprie connessioni al fine di trovare dei pattern. Il funzionamento e' leggermente diverso rispetto al classico Multilayer Perceptron ma gli algoritmi utilizzati in background sono esattamente gli stessi (backpropagation). Oltre alle CNNs altre tecniche hanno permesso di maneggiare queste enormi rete neurali (vedi Dropout e metodi di Adaptive Gradient). Ultimo fattore decisivo per la diffusione del Deep Learning e' stato il crescente diffondersi di GPU a basso costo che dal mercato del gaming si sono diffuse in quello della ricerca. Grazie a loro l'addestramento e' stato notevolmente velocizzato. Il principale produttore di GPU per il Deep Learning e' NVIDIA, una nota azienda produttrice di schede grafiche. Siamo quindi arrivati ai giorni nostri, il Deep Learning e' una realta' diffusa e le principali compagnie ne fanno uso per i piu' svariati scopi. Vi basta fare un ricerca online per trovare una valanga di informazioni, il deep learning e' il topic piu' hot del momento...
__________________
ROVER CINGOLATO ULISSE:
http://forum.roboitalia.com/showthre...ed=1#post37950

ROVER CINGOLATO ULISSE V.2
http://forum.roboitalia.com/showthread.php?t=8196

Tutorial Reti Neurali Artificiali:

Introduzione + Torretta Neurale Robotizzata


Ultima modifica di max_robot : 25-08-2017 alle ore 19.22.56
Rispondi citando
  #2  
Vecchio 09-07-2016, 16.00.16
L'avatar di max_robot
max_robot max_robot non è collegato
Robottaro sostenitore
 
Data registrazione: 08-10-2008
Residenza: Roma
Messaggi: 785
Potenza reputazione: 181
max_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua fama
Predefinito

Apprendimento
Dato questo breve riassunto storico sulle ANNs, vorrei ora introdurre alcuni concetti fondamentali. Il senso di una ANN sta nel fatto che puo' apprendere delle regole ed utilizzarle in modo "creativo" per classificare gli input forniti. Per ottenere l'apprendimento una ANN deve essere addestrata, in una fase chiamata training. Durante il training vengono fornite alla rete diversi esempi di pattern che vogliamo essa classifichi. Dopo l'apprendimento possiamo dare in input alla rete un nuovo valore (un valore che la rete non ha mai visto durante il training) e se tutto e' andato per il verso giusto la rete classifichera' questo input nel modo corretto. L'apprendimento fa uso dell'algoritmo di backpropagation che ho nominato precedentemente. Per farvi afferrare l'idea cerchiamo di capire come funziona un cervello biologico. In modo semplicistico possiamo dire che ci sono dei neuroni, e delle sinapsi che connettono questi neuroni. Possiamo vedere i neuroni come unita' statiche, mentre le connessioni come dinamiche. Quando apprendete un nuovo concetto state stabilizzando le connessioni tra diversi gruppi di neuroni. Quando avete imparato ad andare in bicicletta eravate scoordinati e probabilmente procedevate a stento. La vista ed il senso dell'equilibrio erano l'input della rete, i movimenti l'output. Nella fase di addestramento le connessioni cerebrali nell'area motoria si sono organizzate in modo tale da permettervi di calibrare meglio i movimenti. L'output del vostro sistema motorio e' servito come metro di valutazione ed ha permesso di classificare il risulato ottenuto come buono oppure no. In base all'efficienza del movimento generato le connessioni nella vostra area motoria sono state piu' o meno rafforzate. Dopo una lunga pratica avete cominciato a muovervi in modo piu' fluido ed infine avete imparato a pedalare senza cadere di continuo (almeno spero). Un processo come questo avviene durante l'addestramento di una ANN. Viene fornito un input, viene generato un output e la bonta' di questo output e' stimata confrontandola con l'output ideale. Se l'output si discosta molto da quello ideale, le connessioni vengono modificate in modo sostanziale altrimenti il cambiamento e' lieve. In una ANN le connessioni non sono altro che valori numerici. Cambiare questi valori numerici e' compito dell'algoritmo backpropagation.

Funzionamento

Spiegare il funzionamento di una ANN senza ricorrere a simbologia matematica (che potrebbe spaventare qualcuno) e' compito arduo. Cerchero' di illustrate il tutto nel modo piu' semplice ed intuitivo possibile. Ci sono due fasi principali: forward, backward. Il forward non e' altro che la computazione dell'output della rete. Dal punto di vista tecnico il forward e' composto da due passaggi: moltiplicare l'input per le connessioni (in inglese: connections, parameters, weights) e passare il risultato ad una funzione di attivazione. Il risultato e' chiamato output ed e' generalmente un valore continuo compreso tra zero ed uno. Non spaventatevi! Vi assicuro che questi step tradotti in operazioni matematiche non sono altro che addizioni e moltiplicazioni. Questo modello e' volutamente iper-semplificato (ad esempio non ho utilizzato l'unita' di bias) e serve a farvi afferrare l'idea generale.
La seconda fase principale e' il backward. Il backward procede dall'output verso l'input ed e' lo step utilizzato nella fase di apprendimento. Il backward fa uso dell'algoritmo di backpropagation per aggiustare il valore delle connessioni. Ricordate che il passaggio di backward viene utilizzato solo durante la fase di addestramento. Una volta che la rete e' stata addestrata possiamo far uso soltanto del forward.
Passiamo ad un esempio concreto. Ho realizzato una rappresentazione grafica del Perceptron, che ci aiutera' a capire come funziona.



Il nostro perceptron ha tre unita', due di input (INPUT1 ed INPUT2) ed una di output. Ha due connessioni (weights) W1 e W2. Il nostro input numerico puo' essere un valore compreso tra 0 e 255. Attenzione, il valore di ingresso puo' essere di qualsiasi tipo, nel mio esempio utilizzo il range [0-255] perche' capita spesso di avere un valore simile come lettura di un sensore. Il nostro output e' un valore continuo compreso tra 0 ed 1. Immaginate che i due input siano la lettura di due sensori infrarossi che misurano la distanza da un ostacolo, il primo sensore e' puntato verso sinistra ed il secondo verso destra. L'ouput e' un valore che utilizziamo per muovere un servomotore. Al servomotore abbiamo collegato un pericolosissimo razzo USB come questo. Abbiamo una torretta robotica di sorveglianza che vogliamo controllare con la nostra rete neurale. Vogliamo muovere il servo nella direzione dell'ostacolo piu' vicino e sparare. Bene, Il valore di output come dicevamo e' compreso tra 0 ed 1, dobbiamo rimappare questo output per muovere il nostro servo. Come fare? Semplice, questa e' la nostra convenzione: 0 significa muovi il servo a fine corsa in senso antiorario (sinistra), 1 significa muovi il servo a fine corsa in senso orario (destra), 0.5 muovi il servo nella posizione centrale. Ovviamente abbiamo tutti i valori intermedi che corrispondono ad altrettanti posizioni del nostro servo. Ora diamo dei valori ai due input. Facciamo una lettura dei due sensori infrarossi e vediamo INPUT1=218 ed INPUT2=35. Il valore di INPUT1 indica che abbiamo un oggetto a 35 cm di distanza. La nostra rete addestrata adeguatamente puntera' il razzo connesso al servo in quella direzione. I valori di W1 e W2 vengono inizialmente generati in modo casuale e devono essere prossimi a zero. Nel nostro caso W1=0.08 e W2=0.12. Ecco come calcolare l'ouput:

OUTPUT = f(INPUT1 * W1 + INPUT2 * W2)

Finito! La quantita' dentro le parentesi non e' altro che un insieme di addizioni e moltiplicazioni. La f e' la funzione di attivazione e non e' altro che un modo per schiacciare tra zero ed uno il risultato ottenuto in (INPUT1 * W1 + INPUT2 * W2). La funzione di attivazione piu' utilizzata e' chiamata Funzione Sigmoidea. Trovate la sua implementazione in ogni linguaggio di programmazione e crearsela e' estremamente semplice. Dato un valore x l'output della sigmoide non e' altro che:

sigmoid_output = 1 / (1 + math.exp(-x))

Visto che abbiamo i nostri valori calcoliamo l'output:

OUTPUT = f(218 * 0.08 + 35 * 0.12) = 4.0 * 10^(-10)

Il valore 4.0 * 10^(-10) e' espresso in notazione scientifica, e significa che siamo prossimi a zero. Il nostro servo si muovera' a fine corsa in senso antiorario puntanto a sinistra. Ma aspettate, non e' quello che vogliamo noi. Il sensore che ha rilevato qualcosa e' il sensore 2 che punta a destra della nostra torretta. In questo modo spareremo nel vuoto. La rete neurale non e' stata ancora addestrata ed il suo output e' errato. Bene, il forward come avete visto e' estremamente semplice. Una volta che avete addestrato la rete vi serve solo questo passaggio per utilizzarla. Il backward purtroppo e' piu' complicato e per capire come funziona e' necessario conoscere cosa sono le derivate parziali ed il gradiente di una funzione. Cerchero' di spiegarlo in modo intuitivo, promettendo di entrare piu' nei dettagli in un prossimo tutorial.

Siamo nella fase di apprendimento, backward. L'output della nostra rete e' 0 ma noi vogliamo che sia 1 perche' la torretta deve puntare verso destra. Il valore del nostro output ideale dati gli input visti sopra e'quindi 1. Ora state molto attenti perche' questo e' il punto cruciale di tutto il discorso. Quello che fa l'algoritmo di backpropagation e' cambiare i valori delle nostre connessioni W1 e W2 in modo da avere un valore prossimo a 1 quando input simili a quelli del nostro esempio si ripresentato. Come per un cervello biologico i valori di W1 e W2 saranno cambiati in modo graduale al primo ciclo di apprendimento. Dopo il primo ciclo se diamo gli stessi input vedremo che l'output sara' leggermente diverso, ovvero sara' piu' lontano da 0 e piu' vicino ad 1, che e'proprio quello che vogliamo noi. Ripetendo il processo per un certo numero di cicli (chiamate epoche in gergo tecnico) la rete diventera' sempre piu' brava. L'apprendimento finisce quando la prestazione della rete su un campione di valori risulta buono secondo i nostri criteri di valutazione. Ad esempio, nel nostro caso possiamo fermare la fase di apprendimento se vediamo un ouput di 0.999 quando il sensore di destra e' attivo ed un output di 0.00001 quando quello di sinistra e' attivo.

Spero che abbiate afferrato le idee principali dietro le due fasi. Tenete conto che esistono molte librerie di reti neurali che effettuano le due fasi in modo automatico. Implementare un codice completo per la nostra torretta richiederebbe poche righe di codice.
__________________
ROVER CINGOLATO ULISSE:
http://forum.roboitalia.com/showthre...ed=1#post37950

ROVER CINGOLATO ULISSE V.2
http://forum.roboitalia.com/showthread.php?t=8196

Tutorial Reti Neurali Artificiali:

Introduzione + Torretta Neurale Robotizzata


Ultima modifica di max_robot : 25-08-2017 alle ore 19.02.36
Rispondi citando
  #3  
Vecchio 09-07-2016, 16.00.54
L'avatar di max_robot
max_robot max_robot non è collegato
Robottaro sostenitore
 
Data registrazione: 08-10-2008
Residenza: Roma
Messaggi: 785
Potenza reputazione: 181
max_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua fama
Predefinito

Applicazioni
Tutto cio' sembra interessante, ma come utilizzarlo a fini pratici, come utilizzarlo sul proprio robot? Ecco a voi qualche esempio...

Esempio 1: Navigazione Neurale. Valori ottenuti dalla lettura di sensori infrarossi/ultrasuoni possono essere considerati degli input per la ANN. Come output la rete produce due valori che possono essere utilizzati per regolare la velocita' di due ruote. Inserita all'interno di un robot la rete puo imparare ad evitare gli ostacoli. Stesso concetto puo' essere applicato per costruire un Neural Line Follower.

Esempio 2: Smart Sumo Robot. Immaginate di applicare l'esempio 1 ad un sumo-robot. Esistono degli algoritmi di selezione che permettono di trovare la miglior rete neurale tra migliaia di possibili candidati. Utilizzando un simulatore (Gazebo per esempio) e' possibile addestrare la vostra rete neurale in milioni di combattimenti virtuali e fare in modo che diventi sempre migliore. Una volta che siete soddisfatti caricate la rete sul robot reale ed aspettate la prossima competizione...

Esempio 3: Riconoscimento Facciale. Alla rete forniamo diverse foto del nostro viso prese in momenti diversi ed in diverse condizioni di luce. Addestriamo la rete con queste foto. Una volta addestrata, la rete riconoscera' una nuova foto di noi che non ha mai visto prima. La stessa teconologia e' utilizzata da Facebook per suggerire i tag da mettere in una foto di gruppo. Se utilizzate questa rete neurale su un Rasperry Pi potreste creare un robot che riconosce il vostro viso e si avvicina a voi quando vi vede.

Per concludere, spero di aver fatto cosa gradita con questo thread. Eventuali feedback sono i benvenuti. Se il riscontro e' positivo posso pensare di proporre un secondo post con esempi di codice. Statevi bene...

Max
__________________
ROVER CINGOLATO ULISSE:
http://forum.roboitalia.com/showthre...ed=1#post37950

ROVER CINGOLATO ULISSE V.2
http://forum.roboitalia.com/showthread.php?t=8196

Tutorial Reti Neurali Artificiali:

Introduzione + Torretta Neurale Robotizzata

Rispondi citando
  #4  
Vecchio 10-07-2016, 15.29.29
L'avatar di greybear
greybear greybear non è collegato
Moderator
 
Data registrazione: 05-05-2003
Residenza: Roma
Et: 60
Messaggi: 1,345
Potenza reputazione: 180
greybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua fama
Invia un messaggio via Yahoo a greybear
Predefinito

Un libro bellissimo per chi parte da doppiozero (e riesce anche a trovarlo ) :

Teoria dell'informazione LINGUAGGIO E CIBERNETICA
di JAGJIT SINGH
Biblioteca della EST (Mondadori)
1976

Ultima modifica di greybear : 10-07-2016 alle ore 15.42.40
Rispondi citando
  #5  
Vecchio 10-07-2016, 15.42.09
L'avatar di greybear
greybear greybear non è collegato
Moderator
 
Data registrazione: 05-05-2003
Residenza: Roma
Et: 60
Messaggi: 1,345
Potenza reputazione: 180
greybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua fama
Invia un messaggio via Yahoo a greybear
Predefinito

Un libretto molto pratico con esempi in basic invecec (sempre per chi lo trova) :

Reti Neurali Artificiali
di Alessandro Mazzetti
Ed. Apogeo RAI Televideo
1991

Perch televideo? Perch all'epoca gli esempi si potevano scaricare dal Televideo
Rispondi citando
  #6  
Vecchio 10-07-2016, 17.28.55
L'avatar di max_robot
max_robot max_robot non è collegato
Robottaro sostenitore
 
Data registrazione: 08-10-2008
Residenza: Roma
Messaggi: 785
Potenza reputazione: 181
max_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua fama
Predefinito

Il libro su cui cominciai a studiare io diversi anni fa e' questo:

Titolo: Manuale sulle reti neurali
Autori: Floreano Dario; Mattiussi Claudio
Editore: Il Mulino

Credo sia abbastanza arduo trovarlo ma ne vale davvero la pena. Oltre alle reti neurali viene spiegato come utilizzare algoritmi genetici per la selezione dei migliori individui in una popolazione.
__________________
ROVER CINGOLATO ULISSE:
http://forum.roboitalia.com/showthre...ed=1#post37950

ROVER CINGOLATO ULISSE V.2
http://forum.roboitalia.com/showthread.php?t=8196

Tutorial Reti Neurali Artificiali:

Introduzione + Torretta Neurale Robotizzata

Rispondi citando
  #7  
Vecchio 10-07-2016, 19.24.04
L'avatar di greybear
greybear greybear non è collegato
Moderator
 
Data registrazione: 05-05-2003
Residenza: Roma
Et: 60
Messaggi: 1,345
Potenza reputazione: 180
greybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua famagreybear La sua reputazione  oltre la sua fama
Invia un messaggio via Yahoo a greybear
Predefinito

Quel libro si trova in pdf su internet
E' molto simile nella struttura dell'indice a quello di Singh. Il secondo per pi divulgativo, ottimo per uno studente della scuola secondaria. Floreano molto pi specifico, qualche step pi avanti
Rispondi citando
  #8  
Vecchio 12-07-2016, 23.51.18
L'avatar di landyandy
landyandy landyandy non è collegato
Robottaro sostenitore
 
Data registrazione: 07-02-2010
Residenza: Abruzzo - Teramo
Et: 43
Messaggi: 2,330
Potenza reputazione: 327
landyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua famalandyandy La sua reputazione  oltre la sua fama
Predefinito

Argomento di fortissima attualit visto che il futuro saranno proprio le auto a guida autonoma a fare un uso massiccio del deep learning........

Mi sbaglio???

Andy
__________________
------------------------------------------------




-----------------------------------------------
Rispondi citando
  #9  
Vecchio 13-07-2016, 09.59.53
L'avatar di max_robot
max_robot max_robot non è collegato
Robottaro sostenitore
 
Data registrazione: 08-10-2008
Residenza: Roma
Messaggi: 785
Potenza reputazione: 181
max_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua famamax_robot La sua reputazione  oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da landyandy Visualizza messaggio
Argomento di fortissima attualit visto che il futuro saranno proprio le auto a guida autonoma a fare un uso massiccio del deep learning........

Mi sbaglio???

Andy
Tutto corretto. Molti dei sistemi attualmente in sperimentazione fanno uso del Deep Learning per individuare e classificare oggetti e persone che circondano l'automobile. In passato uno dei campi in cui le Reti Neurali sono state ampiamente utilizzate e' quello del riconoscimento dei pedoni. I designer dei sistemi attuali non si accontentano di capire se c'e' un pedone, vogliono classificarne la tipologia. Per esempio, se viene individuato un ciclista ci si puo' aspettare un tipo di comportamento ben definito (procede ad una velocita' media e rimane sul lato della carreggiata), mentre se viene individuato un bambino bisognera' tenerne in conto l'intrinseca imprevedibilita' e prendere le corrette contromisure.

Una nota sull'hardware. Per impiegare questi sistemi in modo sempre piu massiccio e' necessario sviluppare hardware piu' efficiente e di dimensioni piu ridotte. Le attuali GPU non possono essere infilate in uno smartphone. Google, NVIDIA, IBM, tutti i grandi stanno lavorando non solo sul software ma anche sull'hardware. Interessanti applicazioni sono all'orizzonte...
__________________
ROVER CINGOLATO ULISSE:
http://forum.roboitalia.com/showthre...ed=1#post37950

ROVER CINGOLATO ULISSE V.2
http://forum.roboitalia.com/showthread.php?t=8196

Tutorial Reti Neurali Artificiali:

Introduzione + Torretta Neurale Robotizzata

Rispondi citando
  #10  
Vecchio 14-07-2016, 17.11.01
L'avatar di Extar
Extar Extar non è collegato
Robottaro senior
 
Data registrazione: 11-10-2011
Residenza: lucca
Messaggi: 76
Potenza reputazione: 32
Extar E' per ora ancora un mistero
Predefinito

Mi permetto di citare TensorFlow, una libreria , python open source per il deep learning, mantenuta da Google, tanto che AlphaGo, il computer che ha citato Max, si basa proprio su questa libreria.
Inoltre, per chi volesse vedere un semplice (ma neanche tanto) esempio di una rete neurale, QUI ne trovate uno, realizzato per appunto con TensorFlow.
Detta in parole povere l'esempio mostra il training di una rete che deve "prevedere" il colore dei puntini sul piano cartesiano in base alla posizione. Si vedono i 3 layer con i singoli neuroni, ogni neurone ha uno schema basilare con cui classificare i punti, ad esempio il primo (X1) classifica in base alla sola posizione rispetto all'asse Y. La cosa interessante che si vedono anche le connessioni tra i neuroni, il cui spessore proporzionale al peso W di cui parlava Max. Inizialmente i pesi sono casuali, una volta avviato si vede che cambiano in tempo reale e il grafico di output mostra la "previsione" che la rete neurale genera.
A mio parere una cosa interessante, e personalmente mi ha aiutato a capire. Ho passato delle ore a aggiungere e togliere neuroni, cambiare le configurazioni di ingresso (sulla sinistra) e vedere come cambiava l'output

Saluti, Simone.
__________________
Le cronache di un laboratorio tormentato: T.S Labs


Store Tindie
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalit visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code Attivato
Le smilies sono Attivato
[IMG] Attivato
Il codice HTML Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Cosa sono gli Embedded? Crystal_VoiceOfTrue E. Digitale 18 04-01-2010 21.49.22
che programma si usa per le reti neurali? varadero91 Informatica 14 07-07-2009 09.52.44
Reti neurali? Neural planner? eu34228833@tele2.it Sistemi Operativi 0 12-03-2008 18.08.11
Cosa sono le reti neurali? Marcolino Elettronica 6 24-03-2003 13.43.00
Reti neurali MarkNitro Forum generale 4 04-03-2003 19.45.00


Tutti gli orari sono GMT. Adesso sono le: 14.17.41.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB