Tutorial sul deep learning per principianti: nozioni di base sulla rete neurale

โšก Riepilogo intelligente

Il Deep Learning รจ una branca dell'apprendimento automatico basata su reti neurali artificiali che sovrappongono molti strati nascosti, in modo che ogni strato apprenda caratteristiche piรน ricche dei dati rispetto allo strato precedente.

  • ๐Ÿ”˜ Architettura a strati: Una rete neurale profonda รจ composta da un livello di input, due o piรน livelli nascosti e un livello di output.
  • โ˜‘๏ธ Signal forza: Peso, bias e funzione di attivazione determinano cosa ogni neurone trasmette allo strato successivo.
  • โœ… Circuito bifase: Una trasformazione non lineare produce un modello, quindi un metodo basato sulle derivate lo migliora, ripetendo il processo finchรฉ la precisione non รจ accettabile.
  • ๐Ÿงช Quattro architetture: Reti feed-forward, reti ricorrenti, reti convoluzionali e agenti di apprendimento per rinforzo.
  • ๏ธ Dove conviene: Valutazione del merito creditizio in finanza, selezione dei candidati nelle risorse umane, analisi del sentiment nei call center nel marketing.
  • โš™๏ธ I veri limiti: I costi di etichettatura, la necessitร  di enormi insiemi di dati e i modelli che resistono a spiegazioni in linguaggio semplice.

Tutorial sul deep learning per principianti: nozioni di base sulla rete neurale

Cos'รจ l'apprendimento profondo?

Il Deep Learning รจ un software informatico che imita la rete di neuroni nel cervello. รˆ un sottoinsieme di machine learning basato su reti neurali artificiali con apprendimento di rappresentazione. Si chiama apprendimento profondo perchรฉ utilizza reti neurali profonde. Questo apprendimento puรฒ essere supervisionato, semi-supervisionato o senza sorveglianza.

Gli algoritmi di deep learning sono costruiti con strati interconnessi, come mostrato nel diagramma sottostante.

  • Il primo livello รจ chiamato Livello di input
  • L'ultimo livello รจ chiamato Livello di output
  • Tutti gli strati intermedi sono chiamati strati nascosti. Il termine "profondo" indica che la rete collega i neuroni attraverso piรน di due strati.
Diagramma di una rete neurale profonda che mostra un livello di input, due livelli nascosti di neuroni e un livello di output.
Strato di input, strati nascosti e strato di output, con connessioni che collegano i singoli neuroni.

Ogni strato nascosto รจ composto da neuroni. I neuroni sono interconnessi. Un neurone elabora il segnale in ingresso che riceve e poi propaga il risultato allo strato superiore. L'intensitร  del segnale trasmesso a un neurone nello strato successivo dipende dal peso, dal bias e dalla funzione di attivazione.

La rete elabora grandi quantitร  di dati in ingresso e li elabora attraverso piรน livelli, in modo da poter apprendere caratteristiche sempre piรน complesse dei dati a ogni livello.

Processo di apprendimento profondo

Una rete neurale profonda offre una precisione all'avanguardia in molti compiti, dal rilevamento di oggetti al riconoscimento vocale. Tali reti possono apprendere automaticamente, senza conoscenze predefinite esplicitamente codificate dai programmatori. In pratica, un progetto di deep learning si articola in cinque fasi:

  • Capire il problema
  • Identificare i dati
  • Seleziona un algoritmo di apprendimento profondo
  • Allena il modello
  • Prova il modello
Processo di apprendimento profondo in cinque fasi, dalla comprensione del problema alla verifica del modello.

Le cinque fasi di un progetto di deep learning, dalla definizione del problema al test.

Per comprendere il concetto di apprendimento profondo, immaginiamo una famiglia con un neonato e i suoi genitori. Il bambino indica gli oggetti con il mignolo e dice sempre la parola "gatto". Poichรฉ i genitori sono preoccupati per la sua educazione, continuano a dirgli "Sรฌ, quello รจ un gatto" o "No, quello non รจ un gatto". Il bambino continua a indicare gli oggetti, ma diventa piรน preciso nell'identificare i gatti. In fondo, il piccolo non sa perchรฉ puรฒ dire che un oggetto รจ un gatto o no. Ha semplicemente imparato a organizzare le caratteristiche che compongono un gatto in una gerarchia, osservando l'animale nel suo complesso e poi concentrandosi sui dettagli come la coda o il naso prima di farsi un'opinione.

Una rete neurale funziona in modo molto simile. Ogni strato rappresenta un livello di conoscenza piรน profondo, ovvero una gerarchia di conoscenze. Una rete neurale con quattro strati apprenderร  caratteristiche piรน complesse rispetto a una con due strati.

Lโ€™apprendimento avviene in due fasi:

  • Prima fase: applicando una trasformazione non lineare all'input e creando un modello statistico come output.
  • Seconda fase: migliorare il modello con un metodo matematico basato sulle derivate, che รจ il modo in cui retropropagazione regola i pesi.

La rete neurale ripete queste due fasi da centinaia a migliaia di volte finchรฉ non raggiunge un livello di precisione accettabile. Ogni ripetizione delle due fasi รจ chiamata iterazione.

Per fare un esempio di apprendimento profondo, guarda l'animazione qui sotto, in cui il modello sta cercando di imparare a ballare. Dopo 10 minuti di addestramento, il modello non sa ballare e il suo output sembra uno scarabocchio.

Figura animata che si muove in modo irregolare dopo dieci minuti di addestramento con il deep learning.

Dopo 48 ore di apprendimento, il computer padroneggia l'arte della danza, come mostra la seconda animazione.

Figura animata che danza fluidamente dopo quarantotto ore di addestramento con il deep learning.

Classificazione delle reti neurali

Le reti vengono innanzitutto raggruppate in base al numero di strati nascosti.

Rete neurale superficiale: La rete neurale superficiale ha un solo strato nascosto tra l'input e l'output.

Rete neurale profonda: Le reti neurali profonde hanno piรน di uno strato nascosto. Ad esempio, il modello GoogLeNet per il riconoscimento delle immagini conta 22 strati.

Oggi, il deep learning appare nelle auto senza conducente, nei telefoni cellulari, Google motore di ricerca, rilevamento delle frodi e televisione.

Tipi di reti di deep learning

Diverse architetture sono diventate standard, ognuna plasmata dal tipo di dati che gestisce. Il grafico sottostante, pubblicato dall'Istituto Asimov, illustra l'insieme di queste architetture.

Schema delle architetture di reti neurali, tra cui percettrone, feed-forward, RBF, RNN, LSTM, GRU e autoencoder.

Una tabella delle architetture di reti neurali, dal singolo percettrone alle varianti LSTM, GRU e autoencoder.

Reti neurali feed-forward

Questo รจ il tipo piรน semplice di rete neurale artificiale. Con questo tipo di architettura, le informazioni fluiscono in una sola direzione, in avanti. Ciรฒ significa che il flusso di informazioni inizia nello strato di input, passa attraverso gli strati "nascosti" e termina nello strato di output. La rete non presenta cicli e le informazioni si arrestano nello strato di output.

Reti neurali ricorrenti (RNN)

An RNN Una rete neurale ricorrente (RNN) รจ una rete neurale multistrato in grado di memorizzare informazioni in nodi di contesto, consentendole di apprendere sequenze di dati e di produrre in output un numero o un'altra sequenza. In parole semplici, si tratta di una rete neurale artificiale le cui connessioni tra i neuroni includono cicli. Le RNN sono particolarmente adatte all'elaborazione di sequenze di input, poichรฉ l'output viene reimmesso nella rete come memoria.

Diagramma a blocchi di una rete neurale ricorrente con l'output reimmesso nella rete come memoria

Una rete neurale ricorrente (RNN) invia il suo output a se stessa, ed รจ questo che conferisce memoria alla rete.

Ad esempio, se il compito รจ prevedere la parola successiva nella frase "Vuoi un...?", la rete procede in questo modo:

  • I neuroni RNN ricevono un segnale che indica l'inizio della frase.
  • La rete riceve la parola "Do" come input e produce un vettore di numeri. Questo vettore viene retroalimentato al neurone per fornire una memoria alla rete. Questa fase aiuta la rete a ricordare di aver ricevuto "Do" e che lo ha ricevuto in prima posizione.
  • La rete procede in modo simile con le parole successive. Prende la parola "tu" e poi "volere". Lo stato dei neuroni viene aggiornato alla ricezione di ciascuna parola.
  • La fase finale si verifica dopo aver ricevuto la parola "a". La rete neurale fornisce una probabilitร  per ogni parola inglese che potrebbe completare la frase. Una RNN ben addestrata probabilmente assegna un'alta probabilitร  a "cafรฉ", "drink", "burger" e parole simili.

Usi comuni di RNN

  • Aiuta i trader di titoli a generare report analitici
  • Individuare anomalie nei bilanci
  • Individuare transazioni fraudolente con carte di credito
  • Fornire una didascalia per le immagini
  • Potenza chatbots
  • Gli utilizzi standard delle reti neurali ricorrenti (RNN) si verificano quando i professionisti lavorano con dati o sequenze temporali, ad esempio registrazioni audio o testi.

Reti neurali convoluzionali (CNN)

A CNN รจ una rete neurale multistrato con un'architettura unica progettata pertracLe reti neurali convoluzionali (CNN) elaborano caratteristiche dei dati sempre piรน complesse a ogni livello per determinare l'output. Sono particolarmente adatte ai compiti percettivi.

Architettura CNN con fasi di apprendimento delle caratteristiche convoluzionali, ReLU e di pooling, seguite da flatten, classificazione completamente connessa e softmax.

Apprendimento delle caratteristiche tramite convoluzione, ReLU e pooling; classificazione tramite flatten, fully connected e softmax.

Le CNN vengono utilizzate principalmente quando รจ presente un set di dati non strutturato, come le immagini, e i professionisti hanno bisogno di...tract informazioni da esso.

Ad esempio, se l'attivitร  รจ prevedere la didascalia di un'immagine:

  • La CNN riceve un'immagine, diciamo, di un gatto. In termini informatici, quest'immagine รจ una raccolta di pixel, generalmente un singolo strato per un'immagine in scala di grigi e tre strati per un'immagine a colori.
  • Durante la fase di apprendimento delle caratteristiche, ovvero negli strati nascosti, la rete identifica caratteristiche uniche, ad esempio la coda del gatto o l'orecchio.
  • Una volta che la rete ha imparato a riconoscere un'immagine in modo approfondito, puรฒ fornire una probabilitร  per ogni classe di immagine che conosce. L'etichetta con la probabilitร  piรน alta diventa la previsione della rete.

Insegnamento rafforzativo

Insegnamento rafforzativo รˆ un sottocampo dell'apprendimento automatico in cui i sistemi vengono addestrati ricevendo "ricompense" o "punizioni" virtuali, imparando essenzialmente per tentativi ed errori. Si tratta di un paradigma di apprendimento piuttosto che di una struttura di rete, ma i suoi algoritmi moderni sono basati su reti neurali profonde. GoogleDeepMind ha utilizzato l'apprendimento per rinforzo per battere un campione umano di Go. L'apprendimento per rinforzo viene utilizzato anche nei videogiochi per migliorare l'esperienza di gioco fornendo bot piรน intelligenti.

Alcuni degli algoritmi piรน famosi sono:

  • Q-apprendimento
  • Rete Q profonda
  • Stato-Azione-Ricompensa-Stato-Azione (SARSA)
  • Gradiente politico deterministico profondo (DDPG)

La tabella seguente riassume quando ciascuna architettura รจ adatta.

Architettura Dati adatti Caratteristica distintiva Compito tipico
Avanti Input tabellare a lunghezza fissa Nessun ciclo; le informazioni si muovono solo in avanti Punteggio e classificazione semplice
Reti neurali ricorrenti (RNN) Sequenze e serie temporali I nodi di contesto gli danno memoria Previsione del testo, audio, previsioni
Convoluzionale (CNN) Dati non strutturati a griglia Convoluzione e pooling extraccaratteristiche Classificazione e didascalia delle immagini
Insegnamento rafforzativo Un ambiente, non un insieme di dati. Impara attraverso premi e punizioni Agenti di gioco, robotica, controllo

Esempi di applicazioni del Deep Learning

Queste architetture sono giร  in produzione in settori molto diversi tra loro:

L'intelligenza artificiale nella finanza

Il settore della tecnologia finanziaria ha giร  iniziato a utilizzare l'intelligenza artificiale per risparmiare tempo, ridurre i costi e creare valore aggiunto. Il deep learning sta trasformando il settore del credito grazie a sistemi di valutazione del credito piรน robusti. Chi prende decisioni in materia di credito puรฒ utilizzare l'IA per le richieste di prestito al fine di ottenere una valutazione del rischio piรน rapida e accurata, sfruttando l'intelligenza artificiale per tenere conto del profilo e della capacitร  di rimborso dei richiedenti.

Underwrite รจ una societร  fintech che fornisce una soluzione basata sull'intelligenza artificiale per chi prende decisioni in materia di credito. underwrite.ai utilizza l'IA per individuare i richiedenti con maggiori probabilitร  di rimborsare un prestito, un approccio che, secondo l'azienda, risulta piรน efficace dei tradizionali sistemi di valutazione del credito.

IA nelle risorse umane

Under Armour, un'azienda di abbigliamento sportivo, revolutUnder Armour ha snellito il processo di assunzione e modernizzato l'esperienza dei candidati grazie all'intelligenza artificiale. Nel 2012, Under Armour ha registrato un'impennata di interesse, ricevendo in media oltre 30,000 candidature al mese. La lettura di tutte queste candidature e l'avvio del processo di selezione e colloquio richiedevano troppo tempo. Questa lunga procedura di assunzione e inserimento del personale incideva sulla capacitร  di Under Armour di avere i propri negozi al dettaglio pienamente operativi e con personale a disposizione.

A quel tempo, Under Armour aveva a disposizione tutta la tecnologia HR "indispensabile", come soluzioni transazionali per l'approvvigionamento, l'applicazione, tracUnder Armour aveva giร  implementato strumenti di intelligenza artificiale per l'inserimento e la gestione delle risorse umane, ma questi strumenti da soli non erano sufficienti. L'azienda ha quindi scelto HireVue, un fornitore di soluzioni HR basato sull'intelligenza artificiale, sia per i colloqui on-demand che per quelli in diretta. I risultati sono stati sorprendenti: l'azienda ha registrato una riduzione del 35% dei tempi di assunzione, migliorando al contempo la qualitร  del personale selezionato.

AI nel marketing

L'intelligenza artificiale รจ uno strumento prezioso per la gestione del servizio clienti e per le sfide legate alla personalizzazione. Il miglioramento del riconoscimento vocale nella gestione dei call center e nell'instradamento delle chiamate, grazie all'applicazione di tecniche di intelligenza artificiale, consente un'esperienza piรน fluida per i clienti.

Ad esempio, l'analisi audio tramite deep learning consente ai sistemi di valutare il tono emotivo di un cliente. Se il cliente reagisce negativamente al chatbot basato sull'intelligenza artificiale, il sistema puรฒ reindirizzare la conversazione a un operatore umano che si occuperร  del problema.

Oltre ai tre esempi di deep learning sopra citati, l'intelligenza artificiale รจ ampiamente utilizzata in altri settori e industrie.

Perchรฉ รจ importante il deep learning?

Il deep learning รจ uno strumento potente per trasformare le previsioni in risultati concreti. Il deep learning eccelle nell'individuazione di modelli e nella previsione basata sulla conoscenza. Big dati รจ il carburante per il deep learning. Quando entrambi vengono combinati, un'organizzazione puรฒ ottenere risultati in termini di produttivitร , vendite, gestione e innovazione che prima erano irraggiungibili.

Il deep learning puรฒ anche superare le prestazioni dei metodi tradizionali. In particolare, nei problemi di percezione, le reti neurali profonde sono da anni le piรน performanti: classificazione delle immagini, riconoscimento vocale e riconoscimento facciale sono tutti ambiti dominati da architetture profonde, con modelli di riconoscimento facciale che raggiungono quasi il 99% di accuratezza sui benchmark pubblici standard. Il vantaggio deriva dal fatto che la rete apprende le proprie caratteristiche anzichรฉ affidarsi a caratteristiche progettate manualmente.

Limiti dell'apprendimento profondo

Questi risultati comportano costi reali.

Etichettatura dei dati

La maggior parte dei modelli di IA attuali viene addestrata tramite apprendimento supervisionato. Ciรฒ significa che gli esseri umani devono etichettare e categorizzare i dati sottostanti, il che puรฒ essere un compito considerevole e soggetto a errori. Ad esempio, le aziende sviluppanoping Le tecnologie per le auto a guida autonoma assumono centinaia di persone per annotare manualmente ore di filmati video provenienti da veicoli prototipo, al fine di addestrare questi sistemi.

Ottieni enormi set di dati di addestramento

รˆ stato dimostrato che le tecniche di apprendimento profondo, come le reti neurali convoluzionali (CNN), possono, in alcuni casi, imitare le conoscenze di esperti in medicina e in altri campi. Questa ondata di apprendimento automatico, tuttavia, richiede set di dati di addestramento che non siano solo etichettati, ma anche sufficientemente ampi e universali.

I metodi di deep learning richiedono migliaia di osservazioni affinchรฉ i modelli diventino relativamente efficaci nei compiti di classificazione e, in alcuni casi, milioni affinchรฉ raggiungano il livello di prestazione umana. Non sorprende che il deep learning sia piรน diffuso nelle grandi aziende tecnologiche, che utilizzano i big data per accumulare petabyte di esempi. Questa scala consente loro di creare modelli di deep learning impressionanti e altamente accurati.

Spiega un problema

I modelli grandi e complessi possono essere difficili da spiegare in termini umani, ad esempio perchรฉ รจ stata presa una determinata decisione. Questo รจ uno dei motivi per cui l'accettazione di alcuni intelligenza artificiale Lo strumento รจ lento nelle aree applicative in cui l'interpretabilitร  รจ utile o addirittura necessaria.

Inoltre, con lโ€™espansione dellโ€™applicazione dellโ€™intelligenza artificiale, i requisiti normativi potrebbero anche guidare la necessitร  di modelli di intelligenza artificiale piรน spiegabili.

DOMANDE FREQUENTI

Classico machine learning Richiede caratteristiche progettate manualmente e funziona bene su piccoli set di dati tabellari. Il deep learning apprende le caratteristiche autonomamente dai dati grezzi non strutturati, ma richiede molti piรน esempi e una maggiore potenza di calcolo.

Introduce la non linearitร , consentendo ai livelli sovrapposti di modellare confini decisionali curvi invece di collassare in un unico passo lineare. ReLU รจ solitamente l'impostazione predefinita nei livelli nascosti; sigmoide e softmax modellano l'output.

La retropropagazione misura quanto ciascun peso ha contribuito all'errore, quindi risale il gradiente a ritroso attraverso i livelli in modo che ogni peso venga spostato nella direzione che riduce la perdita. Questa รจ la seconda fase in atto.

Un'epoca corrisponde a un passaggio completo sui dati di addestramento. La dimensione del batch indica quanti campioni la rete elabora prima di aggiornare i pesi. Il tasso di apprendimento controlla la dimensione di ciascuno di questi aggiornamenti dei pesi.

I Transformer, introdotti nel 2017, sostituiscono la ricorrenza con l'attenzione, consentendo a ogni token di esaminare simultaneamente ogni altro token. Poichรฉ questo processo avviene in parallelo, scalano molto meglio delle reti neurali ricorrenti (RNN) e ora dominano il settore dell'elaborazione del linguaggio naturale e della visione artificiale.

L'addestramento consiste principalmente in moltiplicazioni di matrici di grandi dimensioni, che le GPU eseguono in parallelo con una larghezza di banda di memoria molto elevata. Spostare una CNN o un transformer dalla CPU a una singola GPU di addestramento in genere produce un aumento di velocitร  di diverse volte.

Gli strumenti di ricerca di architetture neurali e AutoML testano il numero di strati, la larghezza e gli iperparametri, per poi conservare il candidato che si dimostra piรน valido. Riducono drasticamente il lavoro manuale, sebbene una persona debba comunque definire l'obiettivo e il budget di calcolo.

Copilota GitHub bozze TensorFlow e pipTorCicli di addestramento ch da un breve prompt. Controlla tu stesso le forme di input, la funzione di perdita e il seed, perchรฉ il codice boilerplate generato spesso li sbaglia.

Riassumi questo post con: