Il deep learning è un sottoinsieme del machine learning guidato da reti neurali multistrato il cui design è ispirato alla struttura del cervello umano. I modelli di deep learning sono alla base della maggior parte dell'intelligenza artificiale (IA) più avanzata attualmente disponibile, dalla computer vision e dall'AI generativa alle auto a guida autonoma, fino alla robotica.
A differenza della logica matematica definita in modo esplicito del machine learning tradizionale, le reti neurali artificiali dei modelli di deep learning comprendono molti strati di "neuroni" interconnessi che eseguono ciascuno un'operazione matematica. Utilizzando il machine learning per regolare la forza delle connessioni tra singoli neuroni in livelli adiacenti (in altre parole, i diversi pesi e bias del modello), la rete può essere ottimizzata per produrre output più accurati. Sebbene le reti neurali e il deep learning siano diventati indissolubilmente associati tra loro, non sono strettamente sinonimi: "deep learning" si riferisce all'addestramento di modelli con almeno 4 livelli (anche se le moderne architetture delle reti neurali sono spesso molto più "profonde" di così).
È questa struttura distribuita, altamente flessibile e regolabile che spiega l'incredibile potenza e versatilità del deep learning. Immagina di addestrare i dati come punti dati sparsi su un grafico bidimensionale, e che l'obiettivo dell'addestramento dei modelli sia trovare una linea che attraversi tutti quei punti dati. Sostanzialmente, il machine learning tradizionale mira a raggiungere questo obiettivo utilizzando un'unica funzione matematica che produce una singola linea (o curva). Il deep learning, invece, può mettere insieme un numero arbitrario di linee più piccole e individualmente regolabili per creare la forma desiderata. Le reti neurali sono approssimatori universali: è stato dimostrato a livello teorico che per qualsiasi funzione esiste una disposizione di reti neurali in grado di riprodurla.1
I modelli di deep learning vengono solitamente addestrati tramite apprendimento supervisionato su dati etichettati per eseguire attività di regressione e classificazione . Ma poiché le reti neurali su larga scala di solito richiedono una quantità enorme di dati di addestramento per raggiungere prestazioni ottimali, il costo e la manodopera per l'acquisizione di set di dati sufficientemente grandi di esempi di addestramento annotati possono essere proibitivi. Ciò ha portato allo sviluppo di tecniche per replicare le attività di apprendimento supervisionato utilizzando dati non etichettati. Il termine apprendimento auto-supervisionato è stato coniato da Yann LeCun alla fine degli anni 2010 per distinguere questi metodi dal tradizionale apprendimento non supervisionato. Da allora l'apprendimento autosupervisionato è emerso come una modalità importante di addestramento delle reti neurali, in particolare per i foundation model dell'AI generativa.
Sebbene le reti neurali (o concetti analoghi) siano state introdotte dai data scientist all'inizio della storia del machine learning, la loro svolta non è iniziata sul serio fino alla fine degli anni 2000 e all'inizio del 2010. L'avvento delle reti di deep learning nella maggior parte dei sottoinsiemi del machine learning è stato reso possibile in parte dai progressi nelle unità di elaborazione grafica (GPU) ad alte prestazioni che hanno consentito l'elaborazione parallela di enormi quantità di passaggi computazionali. Poiché il deep learning richiede un'enorme potenza di calcolo sia per l'addestramento che per l'inferenza, questi progressi hardware hanno aumentato notevolmente la velocità e la praticità dell'implementazione di modelli di deep learning su larga scala.
Le reti neurali in generale sono ispirate al funzionamento dei circuiti neurali del cervello umano, il cui funzionamento è guidato dalla complessa trasmissione di segnali chimici ed elettrici attraverso reti distribuite di cellule nervose (neuroni). Nel deep learning, i "segnali" analoghi sono gli output ponderati di molte operazioni annidate, ciascuna eseguita da un "neurone" (o nodo) artificiale, che costituiscono collettivamente la rete neurale.
In breve, un modello di deep learning può essere inteso come una serie complessa di equazioni annidate che associa un input a un output. La regolazione dell'influenza relativa delle singole equazioni all'interno di quella rete utilizzando processi di apprendimento automatico specializzati può, a sua volta, alterare il modo in cui la rete mappa gli input agli output.
Sebbene quel framework sia molto potente e versatile, va a scapito dell'interpretabilità.Spesso ci sono poche o nessuna spiegazione intuitiva, oltre alla pura matematica, di come i valori dei singoli parametri del modello appresi dalle reti neurali riflettano le caratteristiche dei dati del mondo reale. Per questo motivo, i modelli di deep learning vengono spesso definiti come "scatole nere", soprattutto se confrontati con i tipi tradizionali di modelli di machine learning basati sull'ingegneria manuale delle funzionalità.
Rispetto alle classiche tecniche di machine learning, il deep learning richiede una quantità estremamente elevata di dati e risorse computazionali per la formazione. Dati i costi e la complessità dell'hardware di livello aziendale necessario per sviluppare e implementare sofisticate applicazioni di deep learning, i servizi di cloud computing sono diventati parte sempre più integrante dell'ecosistema di deep learning.
Le reti neurali artificiali comprendono strati interconnessi di "neuroni" artificiali (o nodi), ognuno dei quali esegue una propria operazione matematica (chiamata funzione di attivazione). Esistono molte funzioni di attivazione diverse. Una rete neurale spesso incorpora più funzioni di attivazione all'interno della sua struttura, ma in genere tutti i neuroni di un determinato livello sono impostati per svolgere la stessa attivazione. Nella maggior parte delle reti neurali, ogni neurone del livello di input è connesso a ciascuno dei neuroni dello strato successivo, che sono a loro volta connessi ciascuno ai neuroni del livello successivo, e così via.
L'output della funzione di attivazione di ogni nodo contribuisce in parte all'input fornito a ciascuno dei nodi del livello successivo. Fondamentalmente, le funzioni di attivazione eseguite in ciascun nodo non sono lineari e consentono alle reti neurali di modellare schemi e dipendenze complessi. È l'uso di funzioni di attivazione non lineari a distinguere una rete neurale profonda da un modello di regressione lineare (molto complesso).
Sebbene alcune architetture di reti neurali specializzate, come una combinazione di modelli esperti o reti neurali convoluzionali, comportino variazioni, aggiunte o eccezioni a questa disposizione, tutte le reti neurali utilizzano una versione di questa struttura centrale. Il numero specifico di livelli, il numero di nodi all'interno di ogni livello e le funzioni di attivazione scelte per i nodi di ciascuno sono iperparametri da determinare manualmente prima dell'addestramento.
Ognuna di queste miriadi di connessioni da neurone a neurone viene moltiplicata per un peso unico, il che amplifica (o riduce) l'influenza di ciascuna connessione. L'input fornito alla funzione di attivazione di ciascun neurone può essere inteso come la somma ponderata degli output di ciascun neurone nel livello precedente. Di solito viene aggiunto anche un termine di bias univoco a ciascuna funzione di attivazione, che funziona in modo simile al termine di bias di una funzione di regressione comune.
Durante l'allenamento, la rete neurale "impara" attraverso aggiustamenti a ciascuno di questi pesi e termini di distorsione che producono output più accurati. Questi sono i parametridel modello: quando, ad esempio, leggi di un modello linguistico di grandi dimensioni (LLM) con 8 miliardi di "parametri", quel numero riflette ogni singola connessione ponderata da neurone a neurone e ogni bias specifico del neurone nella rete neurale del modello.
I livelli intermedi, chiamati livelli nascosti della rete, sono quelli in cui avviene la maggior parte dell'apprendimento. È l'inclusione di più livelli nascosti a distinguere un modello di deep learning da una rete neurale "non profonda", come una macchina Boltzmann limitata (RBN) o una rete a percettore multistrato (MLP). La presenza di più livelli nascosti consente a un modello di deep learning di apprendere caratteristiche gerarchiche complesse dei dati, con i livelli precedenti che identificano modelli più ampi e i livelli più profondi che identificano modelli più granulari.
Per eseguire l'inferenza, la rete completa un passaggio in avanti: il livello di input riceve i dati di input, solitamente sotto forma di embedding, dove ogni neurone di input che elabora una singola caratteristica del vettore di input. Ad esempio, un modello che funziona con immagini in scala di grigi da 10x10 pixel avrà in genere 100 neuroni nel suo strato di input, con ogni neurone di input corrispondente a un singolo pixel. Solitamente, le reti neurali richiedono quindi che i vettori di input siano fissati a una certa dimensione, sebbene le tecniche di pre-elaborazione come il pooling o la normalizzazione possano fornire una certa flessibilità per quanto riguarda la dimensione dei dati di input originali stessi.
I dati vengono progressivamente trasformati e passati ai nodi di ogni livello successivo fino a quello finale. Le funzioni di attivazione dei neuroni nel livello di output calcolano la previsione finale dell'output di rete. Ad esempio, ogni nodo di output di un modello di classificazione profonda può eseguire una funzione softmax che, sostanzialmente, prende un input numerico e lo scala in una probabilità, compresa tra 0 e 1, che l'input appartenga a una potenziale categoria di classificazione. Il modello genererebbe quindi la categoria corrispondente al nodo che ha prodotto l'output più elevato.
Sebbene il potenziale teorico delle reti neurali sia sempre stato sempre evidente, inizialmente non si sapeva come addestrarle in modo efficiente. L'obiettivo dell'ottimizzazione dei parametri del modello attraverso l'addestramento è ridurre l'errore degli output finali della rete, ma isolare e calcolare separatamente in che modo ciascuno delle migliaia, se non milioni o miliardi, di pesi interconnessi di una rete neurale ha contribuito all'errore complessivo è del tutto impraticabile.
Questo ostacolo è stato superato con l'introduzione di due algoritmi essenziali: la retropropagazione e la discesa del gradiente.
La retropropagazione, abbreviazione di "retropropagazione dell'errore", è un metodo elegante per calcolare in che modo le modifiche a qualsiasi peso o distorsione individuale in una rete neurale influiranno sull'accuratezza delle previsioni del modello.
Ricorderai che una rete neurale artificiale è, sostanzialmente, una serie di funzioni matematiche annidate: gli output dei neuroni di un livello fungono da input per i neuroni del livello successivo e così via. Durante l'allenamento, queste equazioni interconnesse sono annidate in un'altra funzione: una funzione di perdita che misura la differenza media (o "perdita") tra l'output desiderato (o "ground truth") per un dato input e l'output effettivo della rete neurale per ogni passaggio in avanti.
Una volta determinati gli iperpametri iniziali del modello, l'addestramento in genere inizia con un'inizializzazione casuale dei parametri del modello. Il modello esegue stime su un batch di esempi dal set di dati di addestramento e la funzione di perdita tiene traccia dell'errore di ogni previsione. L'obiettivo dell'addestramento è quello di ottimizzare iterativamente i parametri fino a quando la perdita media non viene ridotta al di sotto di una certa soglia accettabile.
La retropropagazione comporta un singolo passaggio all'indietro end-to-end attraverso la rete, a partire dall'output della funzione di perdita e risalendo fino al livello di input. Utilizzando la regola del calcolo a catena, la retropropagazione calcola il "gradiente" della funzione di perdita: un vettore di derivate parziali della funzione di perdita rispetto a ciascuna variabile in ogni equazione che alla fine si annida nel calcolo della funzione di perdita. In altre parole, descrive come l'aumento o la diminuzione dell'output della funzione di attivazione di un singolo neurone influenzerà la perdita complessiva, che, per estensione, descrive come qualsiasi modifica ai pesi per cui tali output vengono moltiplicati (o ai termini di distorsione aggiunti a tali output) aumenterà o diminuirà la perdita.
Il gradiente calcolato durante la retropropagazione funge quindi da input per un algoritmo di discesa del gradiente .
Spostandosi verso il basso, cioè decrescendo, il gradiente della funzione di perdita diminuirà la perdita (e quindi aumenterà la precisione). Poiché il gradiente calcolato durante la retropropagazione contiene le derivate parziali della funzione di perdita rispetto a ogni parametro del modello, sappiamo in quale direzione "spostare" il valore di ciascun parametro per ridurre la perdita.
Ogni fase comporta un aggiornamento dei parametri del modello e riflette l'"apprendimento" del modello dai suoi dati di addestramento. Il nostro obiettivo è aggiornare i pesi in modo iterativo fino a raggiungere il gradiente minimo. Lo scopo degli algoritmi di discesa del gradiente è trovare le regolazioni specifiche dei parametri che ci faranno "scendere" nel gradiente nel modo più efficiente.
Esistono numerosi framework open source per lo sviluppo di modelli di deep learning, sia per addestrare un modello da zero sia per perfezionare un modello pre-addestrato. Queste librerie di machine learning offrono una varietà di moduli e workflow preconfigurati per creare, addestrare e valutare le reti neurali, semplificando e razionalizzando il processo di sviluppo
Tra i framework open source più popolari per lavorare con algoritmi di deep learning ci sono PyTorch, TensorFlow e, in particolare per gli LLM, la libreria Hugging Face Transformers. Consigliamo di imparare Python prima di lavorare con questi framework.
Nonostante la loro potenza e il loro potenziale intrinseci, le prestazioni adeguate in determinate attività rimangono impossibili o poco pratiche per le reti neurali convenzionali ("vanilla"). Gli ultimi decenni hanno visto diverse innovazioni nell'architettura di reti neurali standard, ognuna finalizzata a migliorare le prestazioni su particolari attività e tipi di dati.
Vale la pena notare che un determinato tipo di rete neurale potrebbe prestarsi a diversi tipi di modelli di deep learning e viceversa. Ad esempio, un modello di autoencoder utilizzato per attività di immagine può utilizzare un'architettura basata su reti neurali convoluzionali, mentre i modelli di diffusione possono utilizzare architetture basate su CNN o su transformer.
Le reti neurali convoluzionali (CNN) sono principalmente (ma non solo) associate ad attività di computer vision come il rilevamento degli oggetti, il riconoscimento delle immagini, la classificazione delle immagini e la segmentazione delle immagini, poiché eccellono nel riconoscimento di pattern "locali" (come le relazioni tra pixel adiacenti in un'immagine).
L'intuizione alla base dello sviluppo delle CNN era che per determinati compiti e modalità di dati, come la classificazione di immagini ad alta risoluzione con centinaia o migliaia di pixel, reti neurali di dimensioni sufficienti che comprendevano solo livelli standard completamente connessi avrebbero avuto troppi parametri per generalizzare bene rispetto ai nuovi dati post-addestramento. In altre parole, si sarebbero rivelate sarebbero inefficienti dal punto di vista computazionale e inclini a sovra-adattare i dati di formazione piuttosto che ad pattern modelli realmente utili nel mondo reale.
In teoria, una rete neurale in grado di rilevare forme distinte e altre caratteristiche potrebbe risparmiare potenza estraendo caratteristiche dall'immagine grezza per l'ulteriore elaborazione (e scartando informazioni sulle regioni dell'immagine senza caratteristiche). Un modo per farlo sarebbe usare i filtri, piccoli array di numeri bidimensionali i cui valori corrispondono alla forma delle caratteristiche utili. Ad esempio, i valori di un filtro che esegue la scansione dei pixel di un'immagine alla ricerca di angoli in alto a sinistra potrebbero essere simili ai seguenti:
Ora immaginiamo che il filtro 5x5 venga moltiplicato per una griglia di 5x5 pixel in un'immagine di input. In gergo matematico, si chiama convoluzione, un'operazione matematica in cui una funzione modifica (o convolve) una seconda funzione. Se i valori dei pixel sono simili a quelli del filtro, il prodotto di quella moltiplicazione (il dot product) sarà grande e la caratteristica rappresentata da quei pixel verrà catturata. In caso contrario, il dot product sarà piccolo e i pixel verranno ignorati.
Le CNN aggiungono livelli di convoluzione contenenti un numero di nodi molto inferiore rispetto ai livelli standard completamente connessi che agiscono come filtri. Anziché richiedere un nodo univoco (con un peso univoco) corrispondente a ogni singolo pixel dell'immagine, il filtro di un livello di convoluzione percorre l'intera immagine, elaborando una griglia di pixel di dimensioni corrispondenti alla volta. Questo non solo estrae informazioni utili, ma riduce anche notevolmente il numero di parametri univoci del modello necessari per elaborare l'intera immagine.
Le CNN sono in genere molto "più profonde" (in termini di numero di livelli) rispetto alle reti neurali standard, ma poiché gli strati di convoluzione contengono relativamente pochi neuroni, sono comunque efficienti in termini di numero totale di parametri. Man mano che i dati attraversano la CNN, ogni strato convoluzionale estrae caratteristiche progressivamente più granulari, assemblando una "mappa delle caratteristiche" finale che viene infine passata a un livello standard completamente connesso che esegue le previsioni finali. Durante l'addestramento, il modello apprende naturalmente i pesi per gli strati di convoluzione, il che fa sì che i filtri acquisiscano caratteristiche che favoriscono risultati finali accurati.
Le reti neurali ricorrenti (RNN) sono utilizzate per attività che coinvolgono dati sequenziali, come la previsione di serie temporali, il riconoscimento vocale o l'elaborazione del linguaggio naturale (NLP).
Mentre le reti neurali mappano un singolo input su un singolo output, gli RNN mappano una sequenza di input su un output operando in un loop ricorrente in cui l'output per un determinato passaggio della sequenza di input funge da input per il calcolo per il passaggio successivo. Questo crea una "memoria" interna degli input passati, chiamata stato nascosto il quale, aggiornato dopo ogni fase temporale, consente a un RNN di mantenere una comprensione del contesto e dell'ordine.
Sebbene la nozione di un singolo livello "rolled up" sia utile per comprendere il concetto, questa ricorrenza può anche essere intesa come dati che attraversano una serie di più livelli che condividono pesi identici.
Questo porta ad alcune carenze fondamentali degli RNN convenzionali, in particolare per quanto riguarda la formazione. Come ricorderai, la retropropagazione calcola il gradiente della funzione di perdita, che determina come aumentare o diminuire ogni singolo parametro del modello. Quando questi aggiornamenti dei parametri vengono ripetuti su troppi livelli ricorrenti "identici", scalano in modo esponenziale: l'ingrandimento dei parametri può portare all'esplosione del gradiente e la loro riduzione al minimo può portare alla scomparsa dei gradienti. Entrambi i problemi possono introdurre instabilità o lentezza nell'addestramento, o addirittura interromperlo del tutto. Le RNN standard si limitano quindi all'elaborazione di sequenze relativamente brevi.
Vari miglioramenti all'architettura RNN di base, come le reti LSTM (Long Short-Term Memory) o le unità ricorrenti gate (GRU), mitigano questi problemi e aumentano la capacità del modello di modellare le dipendenze a lungo raggio.
Gli autoencoder sono progettati per comprimere (o codificare) i dati di input, quindi ricostruire (decodificare) l'input originale utilizzando questa rappresentazione compressa. Durante l'addestramento, sono ottimizzati per ridurre al minimo la perdita di ricostruzione, cioè la divergenza tra il punto dati ricostruito e i dati di input originali. Sebbene questo tipo di deep learning utilizzi dati non etichettati e dati non strutturati, gli autoencoder sono generalmente considerati un esempio archetipico di apprendimento auto-supervisionato.
In sostanza, il modello viene spinto ad apprendere i pesi che fanno sì che la rappresentazione compressa conservi solo il sottoinsieme più essenziale e significativo delle caratteristiche dei dati di input. Nel linguaggio del machine learning, gli autoencoder modellano lo spazio latente.
Gli autoencoder hanno diversi casi d'uso, come la compressione dei dati, la riduzione della dimensionalità, l'estrazione delle caratteristiche, la rimozione del rumore dai dati danneggiati e il rilevamento delle frodi.
Nella maggior parte dei casi, la rete di decoder serve solo ad addestrare l'encoder e viene scartata dopo l'addestramento. Negli autoencoder variazionali (VAE), un tipo di modello generativo, il decoder viene mantenuto e utilizzato per generare nuovi punti dati aggiungendo rumore casuale alle rappresentazioni latenti apprese dall'encoder prima della ricostruzione.
L'avvento dei modelli trasformativi, introdotti per la prima volta in un importante articolo del 2017 di Google DeepMind intitolato "Attention is all you need" (PDF), è stato uno spartiacque nel deep learning che ha portato direttamente all'attuale era dell'AI generativa.
Come le RNN, i transformer sono intrinsecamente progettati per funzionare con dati sequenziali. La caratteristica fondamentale dei modelli trasformativi è il loro meccanismo di auto-attenzione, da cui i modelli di trasformatori derivano la loro incredibile capacità di rilevare le relazioni (o dipendenze) tra ogni parte di una sequenza di input. E, cosa ancora più importante, questo meccanismo di attenzione consente ai transformer di concentrarsi selettivamente (o "occuparsi") delle parti di una sequenza di input che sono più rilevanti in un determinato momento.
I meccanismi di attenzione sono stati introdotti per la prima volta nei contesti degli RNN utilizzati per la traduzione automatica. Ma, a differenza delle RNN, i transformer non utilizzano livelli ricorrenti: un'architettura trasformativa utilizza solo livelli di attenzione e livelli feedforward standard, sfruttando una nuova struttura ispirata alla logica dei database relazionali.
I transformer sono più comunemente associati a modelli linguistici di grandi dimensioni (LLM) e, per associazione, a casi d'uso della PNL come generazione di testo, chatbot e analisi del sentiment. Tuttavia, sono modelli estremamente versatili in grado di elaborare qualsiasi modalità di dati sequenziali, inclusi dati audio o di serie temporali. Anche le modalità di dati come quelli delle immagini possono essere elaborate dai trasformatori di visione (ViT) attraverso soluzioni intelligenti per rappresentarle come una sequenza.
Sebbene i modelli trasformativi abbiano prodotto risultati all'avanguardia in quasi tutti i domini del deep learning, non sono necessariamente la scelta ottimale per tutti i casi d'uso. Ad esempio, mentre i ViTs hanno raggiunto i massimi livelli di prestazioni nei benchmark per le attività di computer vision, le CNN sono significativamente più veloci e più efficienti dal punto di vista computazionale. Per attività come il rilevamento di oggetti o la segmentazione di immagini, la scelta tra un trasformatore o una CNN spesso si riduce al fatto che una determinata applicazione di deep learning debba dare priorità alla massima precisione o al feedback in tempo reale.
Introdotti per la prima volta nel 2023, i modelli Mamba sono una nuova architettura di deep learning per dati sequenziali. Derivato da una variante di modelli spaziali statali (SSM), Mamba ha interessanti connessioni teoriche con RNN, CNN e modelli trasformativi. Soprattutto, Mamba condivide la capacità di dare priorità (o scartare) in modo selettivo alle informazioni passate in base alla loro rilevanza in un dato momento, anche se con un meccanismo completamente unico per farlo.
Ad oggi, Mamba è forse l'unica architettura in grado di competere in modo significativo con i trasformatori nel dominio degli LLM, offrendo prestazioni comparabili con un'efficienza computazionale molto maggiore grazie al suo algoritmo che richiede meno memoria.
Come i VAE, le reti generative avversarial (GAN) sono reti neurali utilizzate per creare nuovi dati simili a quelli di addestramento originali. Le GAN sono un'architettura congiunta che combina due reti di deep learning addestrate in modo contrario, a somma zero.
Le GAN sono in grado di imparare a produrre esempi incredibilmente accurati, ma la natura contraddittoria del processo rende la formazione intrinsecamente difficile e instabile.
I modelli di diffusione sono tra le architetture di reti neurali più importanti nell'AI generativa. Sono sia pratici che performanti, offrono la stabilità di addestramento dei VAE e la fedeltà di output dei GAN. Solitamente, vengono usati per la generazione di immagini, ma sono anche in grado di generare dati di testo, video e audio.
Come gli autoencoder, i modelli di diffusione sono essenzialmente addestrati a distruggere un'immagine e quindi ricostruirla accuratamente, anche se in un modo completamente diverso. Durante l'addestramento, i modelli di diffusione imparano a diffondere gradualmente un punto dati passo dopo passo con il rumore gaussiano, quindi invertire tale processo per ricostruire l'input originale. In tal modo, acquisiscono la capacità di generare nuovi campioni (simili ai dati di addestramento originali) "eliminando" un campione di rumore casuale.
I modelli a diffusione latente sono sostanzialmente un ibrido tra VAE e modelli di diffusione: prima comprimono (codificano) i dati di input fino allo spazio latente, quindi eseguono il processo di diffusione e inviano il risultato a un decoder che esegue l'upsampling su di essi fino alla dimensione dell'immagine desiderata.
Sebbene i modelli di diffusione utilizzino in genere un'architettura basata sulla CNN, in particolare l'architettura U-net utilizzata principalmente per la segmentazione nell'imaging medico, alcuni sfruttano invece un'architettura basata su transformer.
Le reti neurali a grafo (GNN) sono progettate per attività che richiedono la modellazione di relazioni più complesse tra entità diverse rispetto a quelle tipiche della maggior parte delle modalità di dati.
Consideriamo i dati dell'immagine, in cui i pixel di un'immagine sono disposti in una griglia bidimensionale: ogni pixel è direttamente collegato al massimo a 8 pixel adiacenti. Una CNN standard è adatta a modellare tali relazioni. Tuttavia, questa capacità si estende poco alla modellazione delle relazioni all'interno, ad esempio, di una rete di social media in cui un determinato utente può essere connesso direttamente a migliaia di altri utenti e indirettamente a molte altre migliaia.
La struttura delle reti neurali a grafo consente rappresentazioni dei dati più complesse e irregolari di quelle possibili nel flusso unidirezionale di dati inerente ad altre architetture di reti neurali.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.
1 Leshno, M., Lin, V.Y., Pinkus, A., Schocken, S. “Multilayer feedforward networks with a nonpolynomial activation function can approximate any function” (PDF). New York University, marzo 1992.