Descrivi il concetto di un Autoencoder.
Un autoencoder è una rete neurale artificiale utilizzata per l'apprendimento non supervisionato in cui l'input è lo stesso dell'output. Viene utilizzato per la compressione dei dati e la riduzione della dimensionalità apprendendo una rappresentazione compressa dei dati in uno spazio a dimensioni inferiori. L'input viene mappato in una rappresentazione a dimensioni inferiori chiamata codifica da strati di reti neurali, e poi ricostruito nell'input originale dalla rete. La rete apprende la codifica ottimale dai dati di addestramento.