Reti Neurali? Proviamo a fare un semplice esempio :-) 13


Molti, moltissimi mi chiedono “Ma cosa cavolo sono queste reti neurali?”, se ne sente parlare così tanto ormai e soprattutto l’Autopilot della nostra tanto amata Teslina che nella versione 3 avrà degli Acceleratori NN (dove NN è l’acronimo di Neural Networks in inglese).

Bene, quindi proverò (speriamo di cavarci un ragno dal buco!) a fare un esempio pratico di una NN applicata a cose a noi famigliari.

Ora facciamo una statistica “virtuale” di cosa porta all’acquisto di una Tesla e scegliendo delle condizioni quindi una tabellina scaturita da un potenziale sondaggio.

Come detto metto delle condizioni a caso 🙂 e simulo un sondaggio.

Nel nostro caso è: Si riesce a convincere un interessato ad una Tesla in base alle sue esperienze e sopratutto lo convinco all’acquisto o al Noleggio a Lungo Termine?

 

Dal vivo in Store Facebook Forum Teslari Acquisto Noleggio L.T. Riesco a convincerlo
No Si No Si No No
Si No Si No No
Si No No Si No Si
Si No No Si Si No
No No Si No Si No
Si Si No Si No No
No No No Si Si Si

Questa tabella è quello che viene definito un “dataset”, ovvero una serie di situazioni reali dalle quali ci si aspetta che la nostra NN sia in grado di “imparare” per prevedere un risultato.

Distinguiamo le prime 5 colonne come variabili e l’ultima (riesco a convincerlo) come “risposta”.

Ora mettiamo il caso che vorremmo tipo indovinare se per le condizioni seguenti il soggetto potremmo convincerlo a noleggiare l’auto una volta vista in store e letto il nostro forum?

Dal Vivo in Store Facebook Forum Teslari Acquisto NLT
Si No Si No Si

Bene … per poter farci qualcosa con queste informazioni tradurremo i “Si” in 1 ed i “No” in 0.

Ma non è sufficiente 🙂 diciamo che dobbiamo affidarci a quello che è un “Neurone Artificiale”.

 

!AIUTO!

 

Quello che vedete in immagine è la rappresentazione di uno dei vari miliardi di neuroni che compongono il nostro cervello, le connessioni in “entrata” (dendriti) e quelle in “uscita” (assoni terminali o bottoni sinaptici) ed il nucleo … ma qua siam molto oltre la “roba da nerd”.

Ora si dovrebbe rappresentare il nostro “neurone d’acquisto tesla” così semplificato:

 

A sinistra abbiamo gli input dati alla macchina (vedi tabella) che equivalgono ai dendriti.

Le frecce invece indicano le “connessioni” e “collegano” appunto i nostri input al corpo principale, più queste connessioni son forti e più le variabili relazionate diventano importanti.

Il corpo centrale si assimila al nucleo che alla fine non fa che sommare le componenti moltiplicate e ridimensionate con i pesi relativi.

L’output (assone) nel nostro caso sarà una funzione di tipo “sigmoide” e restituirà la nostra risposta.

Bene ora quello che va fatto è “dare in pasto” i dati collezionati al nostro neurone in modo che impari …

!AIUTO!

Se ti fa paura la matematica salta pure questo passaggio 🙂 ma comunque “sarò breve”.

 

Il Sigmoide qui sopra rappresentato che corrisponde alla funzione qui sotto lavora su valori compresi tra 0 e 1.

Bene ora van ponderati quelli che sono i pesi e quindi

Il dataset va quindi messo in una matrice nel nostro caso di 7 x 5 mentre il vettore delle risposte (riesco a convincerlo) di 7 x 1.

Ora la nostra NN procederà quindi a ponderare casualmente i pesi cercando di imparare a dare le risposte corrette in base ai dati già inseriti (variabili + risposte).

Lo farà provando a dare delle risposte ad ogni situazione e confrontando i dati reali raccolti, poi calcolerà l’errore (differenza) rimandando l’output nella derivata della sigmoide (backpropagation), in base a quanto avrà sbagliato e a quanto sia importante l’errore, aggiusterà di conseguenza i pesi per poi riprendere il processo di nuovo.

In realtà c’è un dettaglino in quanto invece della derivata della sigmoide possiamo usare anche una approssimazione

x (1-x)

Ma non voglio tediarvi troppo con le cose matematiche…

Però è importante dire che il nostro “neuroncino” dovrà fare i compitini a casa e quindi “ripassare” il tutto almeno un migliaio di volte (non è mai abbastanza 🙂  ).

Bene fatto questo con 2 righe di codice maldestro che magari più avanti condividerò, ecco i “pesi” che escono fuori in base ai dati:

Dal Vivo in Store:  –  3.685983

Facebook:              -12.278145

Forum Teslari:            5.732072

Acquisto:                    9.594078

Noleggio LT:            -7.888415

Quindi potremmo dire che tendendenzialmente Facebook non aiuta ma il nostro forum dei Teslari si e sarà più facile convincere all’acquisto che al noleggio.

Quindi alla domanda iniziale dove si diceva:

Riusciremo a convincere il soggetto se ha visitato il nostro forum e visto l’auto in store?

Risposta: 0.002889887 –> molto vicino allo zero e quindi –> No!

La cosa andrebbe in modo molto diverso se si fosse invece voluto convincere all’acquisto 🙂

Lo so che il tema è poco “user friendly” ma consideriamolo come un primo approccio di spiegazione tentando di essere il più semplici possibile su un tema che semplice non è ma se ne parla veramente tantissimo ed è parte del “cuore” del sistema Autopilot del futuro.

In realtà il numero di variabili ad esempio per l’autopilot è molto più di 5 e si passa per le immagini e non solo valori tipo si e no (0 e 1).

Dove se lo schema del nostro neurone teslaro sarebbe qualcosa di simile…

Uno po’ più complesso potrebbe essere per esempio

Mentre questo è solo una parte di quanto si è potuto fare di reverse engineer sul nuovo AP3 di Tesla

Questo invece ad esempio rappresenta una NN per studiare e prevenire terremoti…


Rispondi

13 commenti su “Reti Neurali? Proviamo a fare un semplice esempio :-)

  • Devix

    Wow!!! Pazzesco.
    Non ho avuto problemi a seguire il regolamento, complimenti per la chiarezza di esposizione.
    Da profano ti chiedo: che differenza c’è tra una rete neurale e un algoritmo (sistema di algoritmi)?

    • DiV@h L'autore dell'articolo
      Postato da: Devix

      Wow!!! Pazzesco.
      Non ho avuto problemi a seguire il regolamento, complimenti per la chiarezza di esposizione.
      Da profano ti chiedo: che differenza c’è tra una rete neurale e un algoritmo (sistema di algoritmi)?

      Ci provo…

      Algoritmo è una serie di operazioni semplici eseguite in sequenza

      Rete Neurale è un sistema che auto apprende in base ad una serie di dati che gli vengono “dati in pasto"

    • DiV@h L'autore dell'articolo
      Postato da: Devix

      Immaginavo, il primo passo verso Skynet???

      Si va OT ed il rischio di parlare di coivolgimenti militari e politica è moooooolto elevato … let’s keep a low profile! 🙂

  • TheDream

    Leggere questo la mattina presto quando i miei 4 neuroni sono ancora mezzi addormentati, ognuno nel suo angolo del cervello, é come.. che dire.. ricordate la Mafalda dei fumetti? Ecco!Prometto di rileggerlo perché è molto interessante e sebbene mi sia sempre interessato il tema non ho mai avuto modo di avere una spiegazione e/o di approfondire le mie conoscenze in questo campo.Grazie DiV@h, come sempre hai una marcia in più (si può ancora dire, ora che sulle elettriche non abbiamo più il cambio?)  ? 

  • scanred_x

    Che dire se non: SEI GRANDE DIVAH !Argomento interessantissimo, sviluppo fantastico, schemi e schemini a gogo, esempi comprensibili – anche a me :)Tra l’altro il tuo post è stato anche ampiamente apprezzato da mio figlio (il grande, non che il piccolo sia piccolo 🙂 ) che si occupa di cosette simili (e LUI le capisce a pieno, non io, sob) e forse si iscriverà anche al nostro forum dopo questa lettura, per risponderti e continuare il dialogo… bene, benissimo… (vado un attimo OT: sono curiosissimo di sapere SE e QUANDO si iscriverà qui, che Nick userà e se rivelerà, al mondo e a me, che è il … figliolo di Scan… una soddisfazione però me l’ha già data: sia per la mia compagna sia per i miei due figlioli, sulla loro rubrica del cellulare quando li chiamo HO VISTO CON I MIEI OCCHI che risulta il nome di … Scan !!! ohhhh una soddisfazione :-9 )torno in tema:forse, preciso secondo me, la colonna più a destra (il “Riesco a convincerlo") nel database la dovevi “coprire" (ossia non sapere il risultato dopo i dati iniziali) e appunto la Rete Neurale avrebbe lavorato al meglio per giungere ad una risposta caso per caso, che non si conosce in partenza e non era un dato ma una soluzione da scoprire. Ah, commento di mio figlio a questa osservazione, sintetico: “Ah Scan, si vede troppo che non hai capito ‘namazza di Reti Neurali"… e vabbeh, la dico uguale… :)Scan

    • DiV@h L'autore dell'articolo
      Postato da: scanred_x

      forse, preciso secondo me, la colonna più a destra (il “Riesco a convincerlo") nel database la dovevi “coprire" (ossia non sapere il risultato dopo i dati iniziali) e appunto la Rete Neurale avrebbe lavorato al meglio per giungere ad una risposta caso per caso, che non si conosce in partenza e non era un dato ma una soluzione da scoprire. Ah, commento di mio figlio a questa osservazione, sintetico: “Ah Scan, si vede troppo che non hai capito ‘namazza di Reti Neurali"… e vabbeh, la dico uguale… 🙂

      Scan

      ????

      E mi spieghi come farebbe ad “imparare” se non gli dai una serie di condizioni conosciute e quindi con risultato?

      Guarda che una NN non è di certo un frate indovino :-))))

      Secondo me il figliolo spakka di brutto!!! ?

  • Whitestar

    Grazie DiV@h, ogni tanto ci dai in pasto un pò di saggezza e conoscenza, c’è sempre da imparare qualcosa qui, anche se poi a noi alla fine ci interessa il risultato: guidare e godere delle nostre auto con i neuroni  

  • Man

    sta roba delle reti neurali è più inquietante del calcolatore quantistico perchè mi pare avvicini molto una macchina al concetto di evoluzione.skynet mi pare la giusta associazione, speriamo che non finisca allo stesso modo.aggiungendo blockchain, i lacci naurali (neuralink bidirezionale) spero non si arrivi presto ad una coscienza artificiale distribuita capaci di superare i propri limiti fisici con velocità superiore a quanto il genere umano possa sostenere (film: Transcendence)