Autocodificatori

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

Vedere anche: che cos’è il Deep Learning, reti long short-term memory, che cos’è una rete neurale convoluzionale?, rilevamento di anomalie