Blog.

Ecco un neurone artificiale | Machine Learning & Python


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
Guide

artificial_intelligence_neuron_python_github_neurone_artificiale_guida

In questa breve ‘guida’, imparerai a creare un piccolo neurone artificiale, realizzando uno script Python che costituisce una intelligenza artificiale.

Uso come riferimento una video guida si Siraj Raval, un articolo su Medium e una guida di iamtrask

L’intelligenza del neurone

Il piccolo neurone che andrai a creare troverà autonomamente la correlazione tra i dati in input e quelli in output, realizzando un modello.

Questo sarà poi usato per fare una previsione, ipotizzando l’output a partire da un input non presente nel dataset di training.

Il dataset

Dataset di training 

[ input ] [Out]
[1, 1, 0] [ 1 ]
[1, 0, 1] [ 1 ]
[1, 1, 1] [ 1 ]
[0, 1, 1] [ 0 ]
[0, 0, 0] [ 0 ]

Dataset di testing

[ input ] [Out]
[0, 1, 0] [ ? ]

La relazione tra i dati è la seguente: dato un vettore in input di tre elementi, con i due soli valori ammessi 0 e 1, l’output è rappresentato dal primo valore del vettore.

Il valore atteso sarà dunque pari a 0.

Il codice

Servono appena 9 righe di codice:

Che eseguito, fornisce un risultato pari a: 

Valore esatto : 0 | Valore predetto : 0.07741712

Considerazioni

E’ la prima volta che mi trovo davanti ad un esempio così banale e lampante di intelligenza artificiale. E’ vero, l’unico neurone di cui è dotata e l’attività semplice a cui è stata allenata la rendono praticamete inutile.

E’ però interessante capirne ed apprezzarne il funzionamento perché costituisce il principio su cui si basano sistemi più complessi.

Nel campo delle AI, i programmatori adottano un approcio completamente diverso dalle tecniche di programmazione tradizionali. Come puoi vedere in questo banale script, è il computer che apprende da solo un modo per predirre il risultato finale

Il programmatore si limita a costuire la struttura e fornire i giusti dati mentre è il computer a trovare in modo “intelligente” la strada migliore e più corretta che leghi gli input e gli output.

Tutto questo sarebbe però impossibile senza l’ausilio della matematica, i cui potenti strumenti sono fondamentali per realizzare il modello più corretto. 

Sigmoid Function o Logistic Function

Questo è il grafico della funzione:

Si tratta di una particolare funzione matematica con un andamento a ‘S’, che appartine ad una classe di funzioni chiamate sigmoidi. La formula rappresenta un caso particolare ed è spesso chiamata funzione logistica.

I matematici apprezzano l’andamento che cresce in modo esponenziale, divenendo rapidamente quasi lineare ed infine si stabilizza con andamento asintotico.

In ogni caso, è soprattuto merito di questa funzione se il codice produce i risultato desiderato.

E’ sufficiente cambaire la relazione del dataset di training, ad esempio facendo in modo che l’ouput corrisponda all’ultimo valore del vettore per scoprire come si comporta l’intelligenza.

Per maggiori dettagli circa il processo du funzionamento ti invito a dare una lettura alle fonti originali.

Alla prossima!

Un caldo abbraccio, Andrea.


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum