Una panoramica completa delle reti neurali artificiali (ANN)
Pubblicato: 2020-07-17Anche se non lavori nello spazio della scienza dei dati o dell'ingegneria del software, è difficile evitare di affrontare il termine reti neurali artificiali.
Le reti neurali artificiali (ANN) sono onnipresenti. Sono utilizzati in chatbot, imaging medico, pianificazione dei media e un sacco di altre aree. Ma ci siamo chiesti con un senso di profonda curiosità: cos'è una rete neurale artificiale e cosa può davvero ottenere?
Ci siamo tutti imbattuti nella definizione comune che le reti neurali artificiali replicano il funzionamento del sistema neurale umano. Questo spiega il principio di funzionamento, ma la maggior parte di noi ancora non sa cosa renda una RNA così speciale o per quali problemi sia l'ideale. Per schiarirti l'aria, ecco la guida più completa e tuttavia accessibile che troverai sulle reti neurali artificiali.
Che cos'è una rete neurale artificiale?
Quando una dozzina di termini come intelligenza artificiale, machine learning, deep learning e reti neurali, è facile confondersi. L'effettiva biforcazione tra queste verticali non è così complicata.
L'IA è l'insieme universale che è l'argomento in questione. È lo studio sistematico di come funzionano e sono fatti i programmi intelligenti. L'apprendimento automatico è un sottoinsieme dell'IA che si concentra su come le macchine possono apprendere da sole. Il deep learning è un ulteriore sottoinsieme di ML che si concentra su come i livelli delle reti neurali possono essere utilizzati per generare output. Puoi utilizzare questa visualizzazione per navigare nella gerarchia:

Allora, cos'è una rete neurale artificiale? La risposta è esattamente come la pubblicizzano i media popolari. È un sistema di elaborazione dati e generazione di output che replica il sistema neurale per svelare relazioni non lineari in un ampio set di dati. I dati potrebbero provenire da percorsi sensoriali e potrebbero essere sotto forma di testo, immagini o audio.
Il modo migliore per capire come funziona una rete neurale artificiale è capire come funziona una rete neurale naturale all'interno del cervello e tracciare un parallelo tra di loro. I neuroni sono la componente fondamentale del cervello umano e sono responsabili dell'apprendimento e della conservazione delle conoscenze e delle informazioni così come le conosciamo. Puoi considerarli l'unità di elaborazione nel cervello. Prendono i dati sensoriali come input, li elaborano e forniscono i dati di output utilizzati da altri neuroni. Le informazioni vengono elaborate e trasmesse fino al raggiungimento di un risultato decisivo.
La rete neurale di base nel cervello è collegata da sinapsi. Puoi visualizzarli come i nodi finali di un ponte che collega due neuroni. Quindi, la sinapsi è il punto di incontro di due neuroni. Le sinapsi sono una parte importante di questo sistema perché la forza di una sinapsi determinerebbe la profondità della comprensione e la conservazione delle informazioni.
Quando pratichi un'attività, rafforzi queste relazioni sinaptiche. Ecco come visualizzare la rete neurale nel cervello:
Tutti i dati sensoriali che il tuo cervello sta raccogliendo in tempo reale vengono elaborati attraverso queste reti neurali. Hanno un punto di origine nel sistema. E mentre vengono elaborati dai neuroni iniziali, la forma elaborata di un segnale elettrico che esce da un neurone diventa l'input per un altro neurone. Questa elaborazione di micro-informazioni in ogni strato di neuroni è ciò che rende questa rete efficace ed efficiente. Replicando questo tema ricorrente dell'elaborazione dei dati attraverso la rete neurale, le ANN sono in grado di produrre output superiori.
In una RNA, tutto è progettato per replicare proprio questo processo. Non preoccuparti dell'equazione matematica. Questa non è l'idea chiave da comprendere in questo momento. Tutti i dati che entrano con l'etichetta 'X' nel sistema hanno un peso di 'W' per generare un segnale pesato. Questo replica il ruolo della forza di un segnale sinaptico nel cervello. La variabile bias è collegata per controllare i risultati dell'output della funzione.
Quindi, tutti questi dati vengono elaborati nella funzione e si finisce con un output. Ecco come sarebbe una rete neurale a uno strato o un perceptron. L'idea di una rete neurale artificiale ruota attorno al collegamento di diverse combinazioni di tali neuroni artificiali per ottenere output più potenti. Ecco perché la struttura concettuale tipica della rete neurale artificiale è molto simile a questa:
Definiremo presto lo strato nascosto, mentre approfondiamo il funzionamento di una rete neurale artificiale. Ma per quanto riguarda una comprensione rudimentale di una rete neurale artificiale, ora conosci i primi principi.
Questo meccanismo viene utilizzato per decifrare set di dati di grandi dimensioni. L'output tende generalmente ad essere una determinazione di causalità tra le variabili inserite come input che possono essere utilizzate per la previsione. Ora che conosci il processo, puoi apprezzare appieno la definizione tecnica qui:
"Una rete modellata sul cervello umano creando un sistema neurale artificiale tramite un algoritmo informatico che riconosce i modelli che apprende, interpreta e classifica i dati sensoriali".
Come funzionano e imparano le reti neurali artificiali?
Preparati, le cose stanno per diventare interessanti qui. E non preoccuparti: non devi fare un sacco di calcoli in questo momento.
La magia avviene prima alla funzione di attivazione. La funzione di attivazione esegue l'elaborazione iniziale per determinare se il neurone verrà attivato o meno. Se il neurone non è attivato, il suo output sarà lo stesso del suo input. Non succede niente allora. Questo è fondamentale da avere nella rete neurale, altrimenti il sistema sarà costretto a elaborare un sacco di informazioni che non hanno alcun impatto sull'output. Vedete, il cervello ha una capacità limitata ma è stato ottimizzato per usarlo al meglio.
Una proprietà centrale comune a tutte le reti neurali artificiali è il concetto di non linearità. La maggior parte delle variabili studiate possiedono una relazione non lineare nella vita reale.
Prendi ad esempio il prezzo del cioccolato e il numero di cioccolatini. Supponiamo che un cioccolato costi $ 1. Quanto costerebbero 100 cioccolatini? Probabilmente $ 100. Quanto costerebbero 10.000 cioccolatini? Non $ 10.000; perché o il venditore aggiungerà il costo dell'utilizzo di imballaggi extra per mettere insieme tutti i cioccolatini o ridurrà il costo poiché stai spostando così tanto del suo inventario dalle sue mani in una volta sola. Questo è il concetto di non linearità.
Una funzione di attivazione utilizzerà i principi matematici di base per determinare se le informazioni devono essere elaborate o meno. Le forme più comuni di funzioni di attivazione sono la funzione passo binario, la funzione logistica, la funzione tangente iperbolica e le unità lineari rettificate. Ecco la definizione di base di ciascuno di questi:
- Funzione passo binario: questa funzione attiva un neurone sulla base di una soglia. Se la funzione ha il risultato finale che è al di sopra o al di sotto di un valore di riferimento, il neurone viene attivato.
- Funzione logistica: questa funzione ha un risultato finale matematico a forma di curva a "S" e viene utilizzata quando le probabilità sono i criteri chiave per determinare se il neurone deve essere attivato. Quindi, in qualsiasi punto, puoi calcolare la pendenza di questa curva. Il valore di questa funzione è compreso tra 0 e 1.
La pendenza viene calcolata utilizzando una funzione differenziale. Il concetto viene utilizzato quando due variabili non hanno una relazione lineare. La pendenza è il valore di una tangente che tocca la curva nel punto esatto in cui si verifica la non linearità. Il problema con la funzione logistica è che non va bene per elaborare informazioni con valori negativi. - Funzione iperbolica tangente: è abbastanza simile alla funzione logistica, tranne per il fatto che i suoi valori sono compresi tra -1 e +1. Quindi, il problema di un valore negativo non elaborato nella rete scompare.
- Unità lineari rettificate (ReLu): i valori di questa funzione sono compresi tra 0 e infinito positivo. ReLu semplifica alcune cose: se l'input è positivo, darà il valore di 'x'. Per tutti gli altri input, il valore sarebbe '0'. Puoi usare un Leaky ReLu che ha valori compresi tra infinito negativo e infinito positivo. Viene utilizzato quando la relazione tra le variabili in elaborazione è molto debole e potrebbe essere omessa del tutto dalla funzione di attivazione.
Ora puoi fare riferimento agli stessi due diagrammi di un perceptron e di una rete neurale. Qual è la differenza, a parte il numero di neuroni? La differenza fondamentale è il livello nascosto. Uno strato nascosto si trova proprio tra il livello di input e il livello di output in una rete neurale. Il compito del livello nascosto consiste nel perfezionare l'elaborazione ed eliminare le variabili che non avranno un forte impatto sull'output.
Se il numero di istanze in un set di dati in cui l'impatto della modifica del valore di una variabile di input è evidente sulla variabile di output, il livello nascosto mostrerà tale relazione. Lo strato nascosto rende facile per l'ANN inviare segnali più forti al livello successivo di elaborazione.
Anche dopo aver fatto tutta questa matematica e capito come funziona il livello nascosto, potresti chiederti come fa effettivamente una rete neurale artificiale ad apprendere? Cominciamo con la domanda di base di cosa sta imparando. L'apprendimento, in parole povere, è stabilire la causalità tra due cose (attività, processi, variabili, ecc.). Quando "impari" a lanciare una palla curva, stai stabilendo la causalità tra l'azione fisica di lanciare la palla in un certo modo e far curvare la traiettoria della palla in un certo modo.
Ora, questa causalità è molto difficile da stabilire. Ricordi il detto che la correlazione non è uguale alla causalità? È abbastanza facile determinare quando due variabili si stanno muovendo nella stessa direzione. È molto difficile dire con assoluta certezza quale variabile sta causando il movimento in quale variabile. Ovviamente, siamo spesso in grado di stabilirlo intuitivamente; ma come si fa a far capire a un algoritmo l'intuizione?

Usi una funzione di costo. Matematicamente, è la differenza al quadrato tra il valore effettivo del set di dati e il valore di output del set di dati. Puoi anche considerare il grado di errore. Facciamo il quadrato perché a volte la differenza può essere negativa.
È possibile contrassegnare ogni ciclo di elaborazione da input a output con la funzione di costo. Il tuo compito e quello dell'ANN è ridurre al minimo la funzione di costo al valore più basso possibile. Lo ottieni regolando i pesi nell'ANN. (Ricordate le relazioni sinaptiche, alias i pesi? È di questo che stiamo parlando). Esistono diversi modi per farlo, ma per quanto ne capisci il principio, useresti semplicemente strumenti diversi per eseguirlo.
Con ogni ciclo, miriamo a ridurre al minimo la funzione di costo. Il processo di passaggio dall'input all'output è chiamato propagazione in avanti. E il processo di utilizzo dei dati di output per ridurre al minimo la funzione di costo regolando il peso in ordine inverso dall'ultimo livello nascosto al livello di input è chiamato propagazione all'indietro.
Puoi continuare a regolare questi pesi usando il metodo Brute Force, che rende inefficiente quando il set di dati è troppo grande, o Batch-Gradient Descent, che è un algoritmo di ottimizzazione. Ora hai una comprensione intuitiva di come apprende una rete neurale artificiale.
Reti neurali ricorrenti (RNN) vs. reti neurali convoluzionali (CNN)
Comprendere queste due forme di reti neurali può anche essere la tua introduzione a due diversi aspetti dell'applicazione dell'IA: visione artificiale ed elaborazione del linguaggio naturale. Nella forma più semplice, questi due rami dell'IA aiutano una macchina a identificare visivamente gli oggetti e comprendere il contesto dei dati linguistici. Come puoi immaginare, ci sono già applicazioni utilizzate di questi rami in auto a guida autonoma e assistenti virtuali come Siri.
Ora, ognuno di questi rami ha la propria rete neurale consolidata. La PNL dipende fortemente dalle reti neurali ricorrenti. La differenza tra un RNN e un ANN è che in un ANN, ogni segnale di ingresso è considerato indipendente dal successivo segnale di ingresso. Quindi, i dati di input che esistono tra due nodi, in sé e per sé, non hanno alcuna relazione.
In realtà non è così. Quando comunichiamo, ogni parola apre la strada contestuale alla parola successiva. Quindi, la natura fondamentale del linguaggio è che crea interdipendenze tra le informazioni immesse in precedenza e le informazioni immesse in seguito. Gli RNN sono sensibili a questo eseguendo una memoria parallela che stabilisce la relazione tra questi input per cancellare il contesto.
Le reti neurali convoluzionali sono idealmente utilizzate per la visione artificiale. Oltre alle funzioni di attivazione generalmente utilizzate, aggiungono una funzione di pooling e una funzione di convoluzione. Una funzione di convoluzione, in termini più semplici, mostrerebbe come l'input di un'immagine e l'input di una seconda immagine (un filtro) risulteranno in una terza immagine (il risultato). Puoi immaginarlo visualizzandolo come un'immagine filtrata (un nuovo insieme di valori di pixel) che si trova sopra l'immagine di input (insieme originale di valori di pixel) per ottenere un'immagine risultante (valori di pixel modificati).
Una funzione di raggruppamento prenderà il valore massimo o minimo, a seconda della funzione aggiunta, per facilitare l'elaborazione di questo insieme di informazioni. Ecco come visualizzarli:


Funzione di raggruppamento
5 applicazioni delle reti neurali artificiali
Quello di cui abbiamo parlato finora stava succedendo tutto sotto il cofano. Ora possiamo rimpicciolire e vedere queste ANN in azione per apprezzare appieno il loro legame con il nostro mondo in evoluzione:
1. Personalizza i consigli sulle piattaforme di e-commerce
Una delle prime applicazioni delle ANN è stata la personalizzazione delle esperienze della piattaforma di eCommerce per ciascun utente. Ricordi i consigli davvero efficaci su Netflix? O i giusti suggerimenti sui prodotti Amazon? Sono un risultato dell'ANN.
Ci sono un sacco di dati utilizzati qui: i tuoi acquisti passati, i dati demografici, i dati geografici e i dati che mostrano cosa hanno acquistato successivamente le persone che acquistavano lo stesso prodotto. Tutti questi servono come input per determinare cosa potrebbe funzionare per te. Allo stesso tempo, ciò che acquisti realmente aiuta l'algoritmo a essere ottimizzato. Con ogni acquisto, stai arricchendo l'azienda e l'algoritmo che potenzia l'ANN. Allo stesso tempo, ogni nuovo acquisto effettuato sulla piattaforma migliorerà anche la capacità dell'algoritmo di consigliarti i prodotti giusti.
2. Sfruttare l'elaborazione del linguaggio naturale per i chatbot conversazionali
Non molto tempo fa, le chatbox avevano iniziato a prendere piede sui siti web. Un agente si siederebbe da un lato e ti aiuterà con le tue domande digitate nella casella. Quindi, un fenomeno chiamato elaborazione del linguaggio naturale (NLP) è stato introdotto nei chatbot e tutto è cambiato.
La NLP generalmente utilizza regole statistiche per replicare le capacità del linguaggio umano e, come altre applicazioni ANN, migliora con il tempo. La tua punteggiatura, intonazione ed enunciazione, scelte grammaticali, scelte sintattiche, ordine di parole e frasi e persino la lingua scelta possono servire come input per addestrare l'algoritmo NLP.
Il chatbot diventa conversazionale utilizzando questi input sia per comprendere il contesto delle tue domande sia per formulare risposte nel modo più adatto al tuo stile. Lo stesso PNL viene utilizzato anche per l'editing audio nella musica e per scopi di verifica della sicurezza.
3. Prevedere i risultati di un evento di alto profilo
La maggior parte di noi segue le previsioni sui risultati fatte da algoritmi basati sull'intelligenza artificiale durante le elezioni presidenziali e la Coppa del Mondo FIFA. Poiché entrambi gli eventi sono in fasi, aiuta l'algoritmo a comprenderne rapidamente l'efficacia e a ridurre al minimo la funzione di costo in quanto team e candidati vengono eliminati. La vera sfida in tali situazioni è il grado delle variabili di input. Dai candidati alle statistiche dei giocatori, dai dati demografici alle capacità anatomiche: tutto deve essere incorporato.
Nei mercati azionari, gli algoritmi predittivi che utilizzano le ANN sono in circolazione da un po' di tempo. Gli aggiornamenti delle notizie e le metriche finanziarie sono le variabili di input chiave utilizzate. Grazie a ciò, la maggior parte delle borse e delle banche è facilmente in grado di negoziare asset nell'ambito di iniziative di trading ad alta frequenza a velocità che superano di gran lunga le capacità umane.
Il problema con i mercati azionari è che i dati sono sempre rumorosi. La casualità è molto alta a causa del grado di giudizio soggettivo che può influire sul prezzo di un titolo è molto alto. Tuttavia, le ANN vengono utilizzate in attività di market-making da tutte le principali banche in questi giorni.
4. Sanzioni creditizie
Le tabelle attuariali erano già utilizzate per determinare i fattori di rischio associati a ciascun richiedente assicurativo. Le ANN hanno preso tutti quei dati un livello più alto.
Tutti gli istituti di credito possono scorrere i decenni di dati in loro possesso con i pesi fortemente stabiliti nel sistema e utilizzare le tue informazioni come input per determinare il profilo di rischio appropriato associato alla tua richiesta di prestito. La tua età, sesso, città di residenza, scuola di laurea, un settore di impegno, stipendio e rapporto di risparmio sono tutti utilizzati come input per determinare i tuoi punteggi di rischio di credito.
Ciò che prima dipendeva fortemente dal tuo punteggio di credito individuale è ora diventato un meccanismo molto più completo. Questo è il motivo per cui diversi player fintech privati sono entrati nello spazio dei prestiti personali per gestire le stesse reti ANN e prestare a persone i cui profili sono considerati troppo rischiosi dalle banche.
5. Auto a guida autonoma
Tesla, Waymo e Uber hanno utilizzato ANN simili. Gli input e l'ingegneria del prodotto potevano essere diversi, ma stavano implementando un sofisticato visual computing per rendere le auto a guida autonoma una realtà.
Gran parte della guida autonoma ha a che fare con l'elaborazione di informazioni che provengono dal mondo reale sotto forma di veicoli nelle vicinanze, segnali stradali, luci naturali e artificiali, pedoni, edifici e così via. Ovviamente, le reti neurali che alimentano queste auto a guida autonoma sono più complicate di quelle di cui abbiamo discusso qui, ma funzionano secondo gli stessi principi che abbiamo esposto.
Conclusione
Le ANN stanno diventando ogni giorno sempre più sofisticate. Le NLP stanno ora aiutando nella diagnosi precoce dei problemi di salute mentale, la visione artificiale viene utilizzata nell'imaging medico e le ANN stanno alimentando la consegna dei droni. Man mano che le RNA diventano più complesse e stratificate, la necessità dell'intelligenza umana in questo sistema diminuirà. Anche aree come il design hanno iniziato a implementare soluzioni di intelligenza artificiale con il design generativo.
L'eventuale evoluzione di tutte le ANN messe insieme sarebbe General Intelligence, una forma di intelligenza così sofisticata da poter apprendere e percepire tutte le informazioni conosciute e sconosciute all'umanità. Sebbene sia una realtà molto lontana, se possibile, è diventata un concetto concepibile grazie all'ampia adozione di ANN.