Il più grande ostacolo con l'IA

Ripensa a una sfida nella tua vita che una volta sembrava impossibile; forse, essere promosso nella posizione che hai sempre desiderato al lavoro o attenersi a una nuova routine di allenamento ogni giorno. Cosa ci vuole per iniziare a esplorare qualcosa di nuovo, anche se all'inizio potrebbe essere scoraggiante? Come ho appreso di recente iniziando a lavorare con l'Intelligenza Artificiale, la parte più difficile del superamento di sfide come queste è convincerti a iniziare.

L'intelligenza artificiale non è solo per scienziati pazzi

L'intelligenza artificiale ha avuto molta attenzione nei media negli ultimi anni. Sembra che ogni giorno scienziati altamente qualificati stiano scoprendo un modo per applicarlo in un altro settore. Il pensiero che la gente comune possa anche scoprire gli usi di questa tecnologia può sembrare ridicolo, specialmente date le conoscenze tecniche richieste. Di recente, tuttavia, ho scoperto che questo era più che possibile creando la mia prima rete neurale per identificare le cifre scritte a mano (se non hai familiarità con le reti neurali, dai un'occhiata alla mia introduzione sull'argomento sul mezzo).

Cosa comporta esattamente l'identificazione delle cifre scritte a mano? Fondamentalmente, la rete neurale guarda immagini [molto sfocate, grazie per il governo degli Stati Uniti di dati] con numeri come questo:

E poi decide quale sia il numero che sta vedendo. Questo può sembrare un compito semplice e diretto. Perché qualcuno dovrebbe aver bisogno di qualcosa di così complesso come l'intelligenza artificiale per farlo? In realtà, può essere molto difficile riconoscere cifre scritte a mano. Ad esempio, prova a identificare questi:

Probabilmente concorderesti che questo non è un compito facile, ma le reti neurali possono raggiungere un'accuratezza quasi perfetta in questo (la mia rete neurale di base ha raggiunto un'accuratezza del 94% circa, mentre le versioni ottimizzate professionalmente hanno ottenuto un'accuratezza del 99,79%) . Il riconoscimento visivo come questo viene utilizzato in molte app, come Google Translate e Search, ma ha anche usi più impliciti; considera come le auto a guida autonoma elaborano i segnali di velocità intorno a loro, per esempio. Dati questi usi importanti e prevalenti delle reti neurali classificatrici, ho pensato che la mia prima avventura nella tecnologia sarebbe stata ben posizionata in questo campo.

Apprendimento richiesto? Sì. L'apprendimento è possibile? Decisamente

Ho dovuto imparare nuove informazioni sugli aspetti tecnici dell'intelligenza artificiale per farlo, ma era abbastanza gestibile e ci sono voluti solo pochi giorni. Le lezioni chiave che ho dovuto imparare erano in realtà capire perché gli algoritmi alla base delle reti neurali funzionavano, non solo i tecnicismi della loro codifica. Questi dettagli includevano:

  1. Come vengono utilizzati i dati nelle reti neurali;
  2. Come sono stati adattati i pesi e le inclinazioni dei neuroni (le impostazioni);
  3. In che modo pesi e distorsioni (le impostazioni) influenzano il risultato;
  4. E come ridurre al minimo gli errori e rendere la rete più accurata.

Il primo punto, soprattutto, è sensibile alla scarsa pianificazione ed esecuzione. Se i tuoi dati non sono adeguati, l'intero sistema non funziona. Il governo degli Stati Uniti ha appreso questo costoso errore quando ha tentato di fornire un aiuto alla rete neurale per i carri armati, ma è finito in modo divertente con un rilevatore meteorologico multimilionario a causa di problemi di dati (leggi di più qui).

Naturalmente, ci sono stati momenti in cui gli aspetti tecnici degli algoritmi erano abbastanza complicati da comprendere. Ad esempio, le reti neurali hanno molti algoritmi basati sul calcolo, con equazioni e notazioni adorabili come:

Comprendere il motivo per cui gli algoritmi alla base di queste equazioni ha funzionato, tuttavia, mi ha permesso di superare questa difficoltà sapendo ancora cosa stava facendo la rete in ogni fase.

E se volessi provare?

Quindi ora potresti chiederti: "Beh, se è davvero così facile, posso farlo da solo?" Sì! Il prerequisito principale necessario è conoscere un linguaggio di programmazione comune come Python. Questi linguaggi di programmazione hanno molte scorciatoie, come librerie esterne in Python, che ti permettono di superare la difficoltà di equazioni complicate come quelle sopra. Inoltre, le immagini di cifre scritte a mano sono disponibili gratuitamente dal database MNIST del governo degli Stati Uniti e ci sono molti tutorial online che spiegano come e perché funzionano le reti neurali, anziché fornire solo dettagli tecnici.

Nel complesso, l'intelligenza artificiale può sembrare frustrantemente fuori dalla portata della persona media, ma la parte più difficile è in realtà solo iniziare. In effetti, alcuni dettagli sembrano provenire da un altro pianeta, ma capire ciò che la rete sta facendo elude tutto ciò. Dopotutto, come ha detto Nelson Mandela, "Sembra sempre impossibile fino a quando non è fatto".

Se vuoi vedere come funziona la mia rete neurale, puoi trovarla sul mio repository Github. Se sei interessato a saperne di più su come funzionano le reti neurali, dai un'occhiata a queste risorse:

https://www.youtube.com/watch?v=aircAruvnKk&t=1000s

http://neuralnetworksanddeeplearning.com/chap1.html