Autocodificatori - MATLAB & Simulink

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.

Architettura di una rete di autoencoder. Un autoencoder crea una rappresentazione latente dell’input. Successivamente, questa rappresentazione viene inviata a un decodificatore.

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).

Un autoencoder rimuove il rumore (r rossa) da un’immagine (sfondo a puntini con r rossa).

Figura 2: rimozione del rumore dalle immagini.

Un autoencoder rileva un’anomalia (r rossa) in un’immagine (sfondo a puntini con r rossa).

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).

Un sonetto di Shakespeare viene usato come testo di input per un autoencoder. Il testo di output è un sonetto generato.

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).

Un autoencoder rileva e rimuove un errore da dati operativi normali (segnale di serie storica) di una macchina industriale.

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).

Un autoencoder rileva un grosso errore in dati operativi anomali (segnale di serie storica) di una macchina industriale.

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