Machine Learning: perceptron, XOR e rete neurale

In questo articolo ho mostrato come simulare il funzionamento di un neurone con python. Questo tipo di applicazione del machine learning è in grado di imparare a dividere i risultati nel piano con una linea retta. Questo non è sufficiente per risolvere problemi appena più complessi di una funzione logica di base. Ad esempio il perceptron descritto non è in grado di prevedere correttamente il funzionamento di una funzione XOR.

Il perchè è davvero semplice da spiegare. Questa è la tabella XOR:

Questo invece è il grafico della stessa funzione logica:

 

Da questa immagine è evidente che è impossibile dividere i risultati utilizzando un’unica retta quindi il nostro perceptron non è in grado di arrivare al risultato corretto dopo la solita elaborazione. Soluzioni? Te ne viene in mente qualcuna?

C’è n’è una molto intuitiva che è anche la più interessante: perché non utilizzare diversi perceptron per elaborare i dati? Con una rete di perceptron possiamo essere in grado di disegnare due linee e dividere l’area in tre porzioni.

Questo è il concetto alla base di una rete neurale. Nel prossimo articolo ne implementeremo una in Python e la testeremo con la funzione XOR.