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.