Home Machine Learning Coding Games Linux Informatica quantistica Melody Craft Farm in Mind
I prodotti cognitiva sono usati da Scuola_Sisini come tecnologia base per la formazione aziendale e individuale

Cognitiva: impara ad addestrare le reti neurali

Reti neurali supervisionate

Intelligenza artificiale e ANN

Negli esseri viventi, le connessioni tra i neuroni, dette connessioni sinaptiche, si modificano in base all'esperienza e sono responsabili delle capacità cognitive

I neuroni del cervello si eccitano a causa degli stimoli percepiti dai cinque sensi, come ad esempio la vista, e trasmettono tale eccitazione sotto forma di segnale nervoso agli altri neuroni a cui sono connessi

Una rete neurale artificiale (ANN) simula lo scambio di messaggi elettrochimici che avviene nel cervello attraverso un programma software eseguito da un computer ed è in grado di apprendere in modo analogo ad un essere vivente
Al termine dell'apprendimento, l'ANN presenta capacità cognitive, paragonabili a quelle dei viventi

Già dalla fine degli anni '40, i ricercatori hanno iniziato a simulare l'intelligenza per mezzo di reti neurali artificiali
La metodica era ed è la seguente:

  • Si creano i neuroni artificiali
  • Si creano le connessioni tra essi (ANN)
  • Si prepara un insime di dati da mostrare alla ANN
  • Si addestra la rete mostrandole uno ad uno i dati di interesse. La rete tenta di riconoscerli, e viene corretta se sbaglia. Ad ogni ciclo, le connessioni tra i neuroni vegono modificate
  • Si testano le performance della rete usando un insieme di dati vergine, non usato durante l'addestramento
Sembra complicato? In effetti non è semplice, ma operativamente basta un terminale Linux e sapere battere sui tasti! Non serve neanche il mouse
Per chi è curioso, questi concetti sono approfonditi sul libro Introduzione alle reti neurali

Un successo delle ANN

Un settore in cui le ANN hanno avuto un buon successo è quello del riconoscimento delle immagini, delle lettere e dei numeri scritti a mano

Un addestramento delicato

Oggi, il compito più difficile non è quello di progettare una rete neurale, ma di addestrarla in modo di ottenere da lei le migliori prestazioni possibili

Impara ad addestrare una ANN

In questo pacchetto trovi tutto il necessario per provare l'esperienza di addestrare una ANN e verificare il suo apprendimento
Contiene tre programmi da eseguire al terminale per configurare, testare e provare una rete neurale progettata per riconoscere le cifre scritte a mano da 0 a 9, un compito tutt'altro che sempice per un computer!

Fase 1: prepara l'ambiente

Cognitiva versione 1.0 (reti neurali supervisionate)
Scarica GitHubCodice su GitHib

Fase 2: addestra la rete

Nella directory esempi trovi i due file necessari per addestrare la rete

(Puoi aprire questi file con LibreOffice Calc per visionarne il contenuto, ogni riga è una cifra di 28x28 pixel digitalizzata)

Ora viene il bello: dalla directory cognitiva lancia l'eseguibile ./cognitiva_apms

il risultato è il seguente
Il sistema ci sta informando che per eseguire l'addestramento ha bisogno di alcune informazioni obbligatorie: e alcune opzionali Scegliere opportunamente questi valori significa addestrare una rete. Se diventerete bravi a farlo, sicuramente farete milioni!
Per ora provate con i valori proposti qui sotto:
dopo pochi secondi il sistema ha finito l'addestramento e mostra quanto segue:
A questo punto la rete è addestrata e dentro la directory sono presenti due nuovi file: layer1.w e layer2.w dove sono memorizzati i pesi delle connessioni neurali: in pratica il cervello della ANN

Adesso proviamo le performance della rete usando il secondo eseguibile cognitiva_bpms

lanceremo il programma specificando di usare il file di test che si trova in esempi e i due file layer1.w e layer2.w appena creati:

Il risultato è piuttosto deludente.... in pratica sono state riconosciute solo il 10% delle immagini... perché?

Facciamo un esperimento, invece di usare i due file appena creati ne usiamo due che si trovano sempre nella cartella esempi e che sono stati creari in precedenza

Il risultato è nettamente migliorato!

L'addestramento è una questione molto delicata. Provate a raggiungere il livello proposto qui nell'esempio, ma sappiate che si può andare anche oltre!

Licenza e responsabilità

The games are Open Source code distributed under GNU-GPL license. The games are developed in the Scuola Sisini using GNU-gcc and GNU-Emacs editor only. Please, visit the Free Software Foundation and GNU project for more information about that.