Glossario

Autoencoder

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

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

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 codificatore che mappa i dati di ingresso in uno spazio latente a bassa dimensione e un decodificatore che ricostruisce i dati originali da questa rappresentazione compressa. Questo processo costringe l'autoencoder a catturare le caratteristiche più salienti dei dati di formazione.

Come funzionano gli autocodificatori

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

  1. Codificatore: Questa parte prende i dati in 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 è in genere composto da diversi strati, spesso utilizzando funzioni di attivazione come ReLU o Sigmoid.
  2. Collo di bottiglia: È lo strato 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 livello è un iperparametro critico.
  3. Decodificatore: Questa parte prende la rappresentazione compressa dal collo di bottiglia e cerca di ricostruire i dati originali in ingresso nel modo più accurato possibile. Rispecchia la struttura del codificatore, ma in senso inverso, riportando i dati alle loro dimensioni originali.

L'addestramento prevede l'immissione di dati in ingresso alla rete e il confronto dell'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 input che è stato danneggiato 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, consentendogli di generare nuovi campioni di dati simili a quelli di addestramento. Leggi il documento sui VAE.
  • Autoencoder contraenti: Aggiungi 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 diverse applicazioni di Machine Learning (ML):

  • Rilevamento delle anomalie: Apprendendo gli schemi normali dei dati, gli autoencoder possono identificare i valori anomali o le anomalie. Se l'errore di ricostruzione per uno specifico punto di dati è elevato, significa 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. Esplora 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 in particolare 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. Vedi le soluzioni di imaging medico.
  • Riduzione della dimensionalità: Simile all'analisi delle componenti principali (PCA), l'autoencoder riduce le dimensioni dei dati ma può catturare relazioni complesse e non lineari che la PCA non può cogliere. Questo è utile per la visualizzazione dei dati e come fase di pre-elaborazione per altri modelli ML.
  • Apprendimento delle caratteristiche: La parte del codificatore 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 si limita 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 un modello architettonico (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.

Leggi tutto