Glossario

Autoencoder

Scoprite come gli autoencoder comprimono i dati, riducono il rumore e consentono il rilevamento di anomalie, l'estrazione di caratteristiche e altro ancora con tecniche avanzate di intelligenza artificiale.

L'autoencoder è un tipo di rete neurale artificiale (NN) utilizzata principalmente per compiti di apprendimento non supervisionato, in particolare per la riduzione della dimensionalità e l'estrazione di caratteristiche. Il suo obiettivo fondamentale è quello di apprendere una rappresentazione compressa (codifica) dei dati di ingresso, in genere addestrando la rete a ricostruire i propri input. Si compone di due parti principali: un encoder che mappa i dati di ingresso in uno spazio latente a bassa dimensione e un decoder che ricostruisce i dati originali da questa rappresentazione compressa. Questo processo costringe l'autoencoder a catturare le caratteristiche più salienti dei dati di addestramento.

Come funzionano gli autocodificatori

Il funzionamento di un autoencoder prevede due fasi: la codifica e la decodifica.

  1. Codificatore: Questa parte prende i dati di ingresso (ad esempio, un'immagine o un vettore) e li comprime in una rappresentazione a bassa dimensione chiamata spazio latente o collo di bottiglia. Questa compressione costringe la rete ad apprendere modelli significativi e a scartare il rumore o la ridondanza. Il codificatore è tipicamente composto da diversi strati, spesso utilizzando funzioni di attivazione come ReLU o Sigmoid.
  2. Collo di bottiglia: È il livello centrale dell'autoencoder, dove risiede la rappresentazione compressa e a bassa dimensione dei dati di ingresso. È il "codice" che cattura le informazioni essenziali. La dimensionalità di questo strato è un iperparametro critico.
  3. Decodificatore: Questa parte prende la rappresentazione compressa dal collo di bottiglia e cerca di ricostruire i dati di ingresso originali nel modo più accurato possibile. Rispecchia la struttura del codificatore, ma in senso inverso, riportando i dati alle loro dimensioni originali.

L'addestramento consiste nell'alimentare la rete con i dati in ingresso e nel confrontare l'output (dati ricostruiti) con l'input originale utilizzando una funzione di perdita, come l'errore quadratico medio (MSE) per i dati continui o l'entropia incrociata binaria per i dati binari. I pesi della rete vengono regolati utilizzando la retropropagazione e un algoritmo di ottimizzazione come Adam o SGD per minimizzare l'errore di ricostruzione.

Tipi di autocodificatori

Esistono diverse varianti dell'architettura di base dell'autoencoder, ciascuna progettata per compiti specifici:

  • Autoencoder di denoising: Addestrati a ricostruire una versione pulita di un ingresso corrotto dal rumore. Questo li rende robusti per compiti come il denoising delle immagini. Per saperne di più sugli autoencoder di denoising.
  • Autoencoder sparsi: Introducono una penalità di sparsità (una forma di regolarizzazione) sullo strato del collo di bottiglia, costringendo la rete ad apprendere rappresentazioni in cui solo pochi nodi sono attivi alla volta.
  • Autoencoder variazionali (VAE): Un modello generativo di intelligenza artificiale che apprende una mappatura probabilistica dello spazio latente, consentendo di generare nuovi campioni di dati simili a quelli di addestramento. Leggi il documento sui VAE.
  • Autoencoder contraenti: Aggiungere un termine di penalità alla funzione di perdita per incoraggiare il codificatore ad apprendere rappresentazioni robuste a piccoli cambiamenti nell'input.

Applicazioni del mondo reale

Gli autoencoder sono strumenti versatili utilizzati in varie applicazioni di Machine Learning (ML):

  • Rilevamento di anomalie: Apprendendo gli schemi normali dei dati, gli autoencoder sono in grado di identificare gli outlier o le anomalie. Se l'errore di ricostruzione per uno specifico punto di dati è elevato, suggerisce che l'input è significativamente diverso dai dati di addestramento, indicando potenzialmente un'anomalia come le transazioni fraudolente nella finanza o le attrezzature difettose nella produzione. Esplorate ulteriormente il rilevamento delle anomalie.
  • Compressione e denoising delle immagini: Gli autoencoder possono apprendere rappresentazioni compatte delle immagini, eseguendo efficacemente la compressione. Gli autoencoder di denoising sono utilizzati specificamente per rimuovere il rumore dalle immagini, un'operazione preziosa per l'analisi delle immagini mediche (ad esempio, per migliorare le scansioni MRI o CT) o per il restauro di vecchie fotografie. Vedere le soluzioni di imaging medico.
  • Riduzione della dimensionalità: Simili all'analisi delle componenti principali (PCA), gli autoencoder riducono le dimensioni dei dati, ma possono catturare relazioni complesse e non lineari che la PCA non può cogliere. È utile per la visualizzazione dei dati e come fase di pre-elaborazione per altri modelli ML.
  • Apprendimento delle caratteristiche: La parte dell'encoder può essere utilizzata come estrattore di caratteristiche per attività a valle come la classificazione delle immagini o il rilevamento di oggetti, spesso fornendo caratteristiche più robuste rispetto ai dati grezzi. Mentre modelli come Ultralytics YOLO utilizzano backbone specializzati, i principi dell'autoencoder informano l'apprendimento della rappresentazione.

Autoencoder e concetti correlati

  • PCA: sebbene entrambi riducano la dimensionalità, la PCA è limitata alle trasformazioni lineari. Gli autoencoder, essendo reti neurali, possono apprendere complesse mappature non lineari, che spesso portano a rappresentazioni migliori per insiemi di dati complessi.
  • GAN: Le reti avversarie generative (GAN) sono progettate principalmente per generare nuovi dati altamente realistici. Anche le VAE (un tipo di autoencoder) possono generare dati, ma spesso si concentrano sull'apprendimento di uno spazio latente ben strutturato, mentre le GAN eccellono nella fedeltà dell'output, a volte a scapito dell'interpretabilità dello spazio latente.
  • CNN e trasformatori: Gli autoencoder definiscono uno schema architetturale (encoder-decoder). Spesso utilizzano altri tipi di rete, come le reti neurali convoluzionali (CNN) per i dati di immagine o i trasformatori per i dati sequenziali, come blocchi di costruzione all'interno del codificatore e del decodificatore.

Strumenti e implementazione

Gli autoencoder possono essere implementati utilizzando i più diffusi framework di deep learning (DL):

Piattaforme come Ultralytics HUB facilitano il flusso di lavoro complessivo del ML, compresa la gestione dei dati e l'addestramento dei modelli, anche se sono principalmente incentrate su attività supervisionate come il rilevamento e la segmentazione piuttosto che sull'addestramento di autoencoder non supervisionati.

Unitevi alla comunità di Ultralytics

Entrate a far parte del futuro dell'IA. Connettetevi, collaborate e crescete con gli innovatori globali.

Iscriviti ora
Link copiato negli appunti