Che cos’è un autoencoder?
Un autocodificatore è un tipo di rete di Deep Learning che viene addestrata per replicare i suoi dati di input. Gli autocodificatori hanno superato le tecniche ingegneristiche tradizionali in termini di precisione e prestazioni in numerose applicazioni, tra cui il rilevamento di anomalie, la generazione di testo, la generazione di immagini, la riduzione del rumore delle immagini e le comunicazioni digitali.
È possibile utilizzare MATLAB Deep Learning Toolbox™ per una serie di esempi di applicazione degli autocodificatori, come quelli riportati in fondo alla pagina.
Come funzionano gli autocodificatori?
Gli autocodificatori producono una ricostruzione dell’input. Un autocodificatore è composto da due reti più piccole: un codificatore e un decodificatore. Durante l’addestramento, il codificatore apprende un insieme di feature (rappresentazione latente) dai dati di input. Nel contempo, il decodificatore viene addestrato per ricostruire i dati sulla base di queste feature. In seguito, l’autocodificatore può essere applicato per prevedere input mai visti in precedenza. Gli autocodificatori sono molto generalizzabili e possono essere utilizzati su diversi tipi di dati, tra cui immagini, serie storiche e testo.
Figura 1: un autocodificatore è composto da un codificatore e un decodificatore.
Quali applicazioni impiegano gli autocodificatori?
Gli autocodificatori ignorano naturalmente qualsiasi rumore di input durante l’addestramento del codificatore. Questa feature è ideale per rimuovere il rumore o rilevare anomalie quando si confrontano input e output (vedi le Figure 2 e 3).
Figura 2: rimozione del rumore dalle immagini.
Figura 3: rilevamento di anomalie basato su immagini.
La rappresentazione latente può anche essere utilizzata per generare dati sintetici. Ad esempio, è possibile creare automaticamente una grafia dall’aspetto realistico o frasi di testo (Figura 4).
Figura 4: generazione di frasi di nuovo testo da un testo esistente.
Gli autocodificatori basati su serie storiche possono anche essere utilizzati per rilevare anomalie nei dati di segnali. Ad esempio, nella manutenzione predittiva, è possibile addestrare un autocodificatore sui dati di normale funzionamento provenienti da una macchina industriale (Figura 5).
Figura 5: addestramento su dati di normale funzionamento per la manutenzione predittiva.
L’autocodificatore addestrato viene poi testato su nuovi dati in ingresso. Una grande variazione rispetto all’output dell’autocodificatore indica un funzionamento anomalo, il che potrebbe richiedere un’analisi (Figura 6).
Figura 6: un errore notevole che indica anomalie nei dati di input, il che può indicare la necessità di effettuare una manutenzione.
Punti chiave
- Gli autocodificatori non richiedono dati di input etichettati per l’addestramento: non sono supervisionati
- Esistono vari tipi di autocodificatori costruiti per diverse attività di ingegneria, tra cui:
- Autocodificatori convoluzionali – L’output del decodificatore cerca di rispecchiare l’input del codificatore, il che è utile per la riduzione del rumore
- Autocodificatori variazionali – Creano un modello generativo, utile per il rilevamento di anomalie
- Autocodificatori LSTM – Creano un modello generativo per applicazioni di serie storiche
Esempi e consigli pratici
Riferimenti software
FAQ sugli autocodificatori
Un autocodificatore è un tipo di rete di Deep Learning addestrata a riprodurre i propri dati di input. È composto da un codificatore che apprende le caratteristiche dei dati e da un decodificatore che li ricostruisce.
Un autocodificatore è costituito da due sottoreti: un codificatore e un decodificatore. Durante l'addestramento, il codificatore apprende una rappresentazione latente dei dati di input, mentre il decodificatore ricostruisce i dati a partire da tale rappresentazione. Questo approccio consente all'autocodificatore di generalizzare a nuovi dati non osservati in precedenza.
Gli autocodificatori vengono utilizzati per il rilevamento di anomalie, la generazione di testo, la generazione di immagini, il denoising delle immagini, le comunicazioni digitali e la manutenzione predittiva.
Gli autocodificatori sono tecniche di apprendimento non supervisionato e non richiedono dati etichettati per l'addestramento.
Un codificatore è un componente di un autocodificatore che crea una rappresentazione latente dei dati di input, mentre un autocodificatore è la rete completa composta sia da un codificatore sia da un decodificatore.
Tra i tipi più comuni figurano gli autocodificatori convoluzionali per il denoising, gli autocodificatori variazionali per la modellazione generativa e il rilevamento di anomalie e gli autocodificatori LSTM per applicazioni basate su serie temporali.
Gli autocodificatori apprendono naturalmente a ignorare il rumore presente nei dati di input durante l'addestramento. Per questo motivo risultano particolarmente efficaci nelle attività di denoising, confrontando i dati di input con quelli ricostruiti in uscita.
Sì. Gli autocodificatori basati su serie temporali possono rilevare anomalie nei dati di segnale dopo essere stati addestrati su dati di funzionamento normale. Deviazioni significative nei nuovi dati possono indicare condizioni operative anomale.
Sì. È possibile utilizzare Deep Learning Toolbox per sviluppare applicazioni basate sugli autocodificatori, tra cui il rilevamento di anomalie, la generazione di testo e il denoising delle immagini.
Vedere anche: che cos’è il Deep Learning, reti long short-term memory, che cos’è una rete neurale convoluzionale?, rilevamento di anomalie