3
La magia dell’autoencoder
Il cuore della soluzione è un modello di rete neurale chiamato autoencoder, addestrato su un gran numero di immagini. La caratteristica peculiare del metodo è quella per cui durante la fase di allenamento della rete neurale si utilizzano solamente le immagini di prodotti non difettosi, e non vi è alcuna classe di errore. Con questo approccio il modello finale può quindi rilevare qualsiasi tipo di deviazione dal normale aspetto del prodotto: sia i difetti che si sono già verificati sia i nuovi difetti.
Un autoencoder, rappresentato schematicamente nella figura, è un speciale artificial neural network in grado di codificare nel contesto dell’unsupervised learning: fornito un dato all’ autoencoder senza specificarne il significato, l'autoencoder impara da solo quali caratteristiche sono tipiche di quel dato e quali no. Un autoencoder è composto da un encoder e un decoder. L'encoder riceve i dati di input e li trasforma in una rappresentazione interna. Il decoder accetta questa rappresentazione interna e ne costruisce l'output. Il layer contenente la rappresentazione interna è generalmente più piccolo del layer di input e output e viene chiamato bottleneck layer.
Gli autoencoder sono addestrati per produrre dati di output il più possibile simili ai dati di input. Si può pensare ad un'operazione di copia e incolla, con un piccolo segreto intermedio. Il segreto degli autoencoder è nei layer che contengono la rappresentazione interna. Questi layer formano un collo di bottiglia per le informazioni contenute nei dati di addestramento. Poiché i bottleneck layer sono generalmente molto più piccoli dei livelli di input, il codice di autoencoder è obbligato ad acquisire solo le proprietà essenziali dei dati. Questa proprietà può essere utilizzata per rilevare le anomalie: non appena si verifica un'anomalia questa non può essere ricostruita in modo efficace dall'encoder automatico poiché durante il processo di allenamento, nella rete neurale, non si è sviluppata nessuna struttura che potrebbe rappresentare l’anomalia stessa. Se si confronta quindi l’output dell’autoencoder con il suo input e si rileva una grande la differenza si può assumere di essere in presenza di un'anomalia.
L'autoencoder "riparte" automaticamente i difetti dell'immagine, in modo che le diverse posizioni indicano la tipologia di difetto. Queste deviazioni potrebbero fornire informazioni più dettagliate sul tipo di difetto (ad esempio "rottura" vs. "ammaccatura").