AI 101
Cos'è l'apprendimento profondo?
Il deep learning è uno dei campi più influenti e in più rapida crescita dell'intelligenza artificiale. Tuttavia, comprendere intuitivamente il deep learning può essere difficile, perché il termine "deep learning" comprende una varietà di algoritmi e tecniche diverse. Il deep learning è anche una sottodisciplina del machine learning in generale, quindi è importante capire cos'è il machine learning per comprenderlo.
Cos'è l'apprendimento automatico?
Apprendimento approfondito è un'estensione di alcuni dei concetti originati dall'apprendimento automatico, quindi, per questo motivo, dedichiamo un minuto a spiegare cos'è l'apprendimento automatico.
In parole povere, l'apprendimento automatico è un metodo per consentire ai computer di eseguire attività specifiche senza codificare esplicitamente ogni riga degli algoritmi utilizzati per eseguire tali attività. Esistono molti algoritmi di apprendimento automatico diversi, ma uno degli algoritmi più comunemente utilizzati è a perceptron multistrato. Un percettrone multistrato viene anche chiamato rete neurale ed è composto da una serie di nodi/neuroni collegati tra loro. Ci sono tre livelli diversi in un percettrone multistrato: il livello di input, il livello nascosto e il livello di output.
Il livello di input porta i dati nella rete, dove vengono manipolati dai nodi nel livello intermedio/nascosto. I nodi nel livello nascosto sono funzioni matematiche che possono manipolare i dati provenienti dal livello di input, estraendo modelli rilevanti dai dati di input. È così che la rete neurale “impara”. Le reti neurali prendono il nome dal fatto che si ispirano alla struttura e alla funzione del cervello umano.
Le connessioni tra i nodi della rete hanno valori chiamati pesi. Questi valori sono essenzialmente ipotesi su come i dati in un livello sono correlati ai dati nel livello successivo. Man mano che la rete si allena, i pesi vengono adattati e l'obiettivo è che i pesi/le ipotesi sui dati alla fine convergeranno su valori che rappresentano accuratamente i modelli significativi all'interno dei dati.
Le funzioni di attivazione sono presenti nei nodi della rete e queste funzioni di attivazione trasformano i dati in modo non lineare, consentendo alla rete di apprendere rappresentazioni complesse dei dati. Le funzioni di attivazione moltiplicano i valori di input per i valori di peso e aggiungono un termine di polarizzazione.
Cos'è l'apprendimento profondo?
Deep learning è il termine dato alle architetture di apprendimento automatico che uniscono molti perceptron multistrato insieme, in modo che non ci sia solo uno strato nascosto ma molti strati nascosti. Più "profonda" è la rete neurale profonda, più modelli sofisticati la rete può apprendere.
Le reti di strati profondi composte da neuroni sono talvolta indicate come reti completamente connesse o strati completamente connessi, in riferimento al fatto che un dato neurone mantiene una connessione con tutti i neuroni che lo circondano. Le reti completamente connesse possono essere combinate con altre funzioni di machine learning per creare diverse architetture di deep learning.
Diversi tipi di apprendimento profondo
Esistono diverse architetture di deep learning utilizzate da ricercatori e ingegneri e ciascuna delle diverse architetture ha il proprio caso d'uso specializzato.
Reti neurali involutive
Reti neurali convoluzionali, o CNN, sono l'architettura di rete neurale comunemente utilizzata nella creazione di sistemi di visione artificiale. La struttura delle reti neurali convoluzionali consente loro di interpretare i dati delle immagini, convertendoli in numeri che una rete completamente connessa può interpretare. Una CNN ha quattro componenti principali:
- Strati convoluzionali
- Livelli di sottocampionamento/raggruppamento
- Funzioni di attivazione
- Strati completamente connessi
Gli strati convoluzionali sono ciò che prende le immagini come input nella rete, analizzando le immagini e ottenendo i valori dei pixel. Il sottocampionamento o raggruppamento è il punto in cui i valori dell'immagine vengono convertiti/ridotti per semplificare la rappresentazione delle immagini e ridurre la sensibilità dei filtri dell'immagine al rumore. Le funzioni di attivazione controllano il modo in cui i dati fluiscono da un livello al livello successivo e i livelli completamente connessi sono ciò che analizza i valori che rappresentano l'immagine e apprende i modelli contenuti in tali valori.
RNN/LSTM
Reti neurali ricorrenti, o RNN, sono popolari per attività in cui l'ordine dei dati è importante e in cui la rete deve apprendere una sequenza di dati. Gli RNN vengono comunemente applicati a problemi come l'elaborazione del linguaggio naturale, poiché l'ordine delle parole è importante quando si decodifica il significato di una frase. La parte “ricorrente” del termine Rete Neurale Ricorrente deriva dal fatto che l'output per un dato elemento in una sequenza dipende dal calcolo precedente e dal calcolo corrente. A differenza di altre forme di reti neurali profonde, le RNN hanno “memorie” e le informazioni calcolate nei diversi passaggi temporali della sequenza vengono utilizzate per calcolare i valori finali.
Esistono diversi tipi di RNN, inclusi RNN bidirezionali, che tengono conto degli elementi futuri nella sequenza, oltre agli elementi precedenti, quando si calcola il valore di un elemento. Un altro tipo di RNN è a Memoria a lungo termine o LSTM, rete. Gli LSTM sono tipi di RNN in grado di gestire lunghe catene di dati. Gli RNN regolari possono cadere vittime di qualcosa chiamato "problema del gradiente esplosivo". Questo problema si verifica quando la catena di dati di input diventa estremamente lunga, ma gli LSTM dispongono di tecniche per combattere questo problema.
Autoencoder
La maggior parte delle architetture di deep learning menzionate finora vengono applicate a problemi di apprendimento supervisionato, piuttosto che a compiti di apprendimento non supervisionato. Gli autocodificatori sono in grado di trasformare i dati non supervisionati in un formato supervisionato, consentendo l'utilizzo delle reti neurali sul problema.
Gli autoencoder sono usati frequentemente per rilevare anomalie nei set di dati, un esempio di apprendimento non supervisionato poiché la natura dell'anomalia non è nota. Tali esempi di rilevamento delle anomalie includono il rilevamento delle frodi per gli istituti finanziari. In questo contesto, lo scopo di un autoencoder è determinare una baseline di modelli regolari nei dati e identificare anomalie o valori anomali.
La struttura di un codificatore automatico è spesso simmetrica, con livelli nascosti disposti in modo tale che l'output della rete assomigli all'input. I quattro tipi di codificatori automatici che vedono un uso frequente sono:
- Codificatori automatici normali/semplici
- Codificatori multistrato
- Encoder convoluzionali
- Encoder regolarizzati
Gli autoencoder regolari/semplici sono solo reti neurali con un singolo livello nascosto, mentre gli autoencoder multistrato sono reti profonde con più di un livello nascosto. I codificatori automatici convoluzionali utilizzano livelli convoluzionali anziché o in aggiunta a livelli completamente connessi. Gli autocodificatori regolarizzati utilizzano un tipo specifico di funzione di perdita che consente alla rete neurale di eseguire funzioni più complesse, funzioni diverse dalla semplice copia degli input negli output.
Reti del contraddittorio generativo
Le reti generative avversarie (GAN) sono in realtà più reti neurali profonde anziché una sola rete. Due modelli di deep learning vengono addestrati contemporaneamente e i loro output vengono inviati all'altra rete. Le reti sono in competizione tra loro e, poiché hanno accesso ai dati di output dell'altra, entrambe imparano da questi dati e migliorano. Le due reti giocano essenzialmente a un gioco di contraffazione e rilevamento, in cui il modello generativo cerca di creare nuove istanze che ingannino il modello investigativo/discriminatore. Le GAN sono diventate popolari nel campo della visione artificiale.
Riepilogo dell'apprendimento approfondito
Il deep learning estende i principi delle reti neurali per creare modelli sofisticati in grado di apprendere modelli complessi e generalizzare tali modelli a set di dati futuri. Le reti neurali convoluzionali vengono utilizzate per interpretare le immagini, mentre gli RNN/LSTM vengono utilizzati per interpretare i dati sequenziali. Gli autoencoder possono trasformare attività di apprendimento non supervisionate in attività di apprendimento supervisionate. Infine, i GAN sono più reti messe l'una contro l'altra che sono particolarmente utili per le attività di visione artificiale.












