Già 300 immagini con il volto della persona scelta (meglio se ritratto da tutte le possibili prospettive) dovrebbero essere sufficienti per ottenere un risultato accettabile. Nel codice dei deepfake si nasconde una rete neurale, un cosiddetto autoencoder: la rete viene così esercitata a comprimere dati che verranno decompressi successivamente. Durante la compressione l’autoencoder cerca di raggiungere un risultato che sia il più vicino possibile all’originale, imparando a distinguere durante la fase di compressione tra i dati importanti e quelli secondari.
Se all’algoritmo vengono fornite immagini di cani, la rete di neuroni artificiali impara a focalizzarsi soltanto sul cane ignorando lo sfondo (noise). A partire da questi dati l’autoencoder è in grado infine di creare un cane. Lo scambio dei volti nei deepfake funziona allo stesso modo: la rete neurale assimila l’aspetto di una persona ed è in grado di rigenerarla autonomamente, anche in movimento.
Per scambiare i volti in modo efficiente occorre poterne riconoscere due: quello che emerge dal materiale originale e quello che si vuole utilizzare per lo scambio. Per questo si impostano un’entrata (l’encoder) e due uscite (i decoder). L’encoder analizza il materiale, mentre i due decoder generano ognuno un output diverso: volto A e volto B.
L’effetto finale avviene per il fatto che l’algoritmo non inserisce il volto A nel video, ma il volto B, che non gli appartiene. Arriviamo così al cuore della differenza rispetto ai normali fake: mentre in questi ci si limita a sostituire il volto originarle con uno ritagliato da un’altra immagine, e ritoccato se necessario, nel caso dei deepfake si crea materiale del tutto nuovo. Con i deepfake, invece, non ci si limita a copiare un’immagine da un’altra parte, ma si crea del nuovo materiale. Soltanto così anche le mimiche possono ricalcare il volto originale.
Ciò chiarisce anche gli errori che accadono con i deepfake: le reti neurali mostrano i propri limiti specialmente se si tratta di movimenti non ordinari. Se non è disponibile sufficiente materiale dalla prospettiva richiesta, il frame risulta sfuocato. L’algoritmo cerca di generare un’immagine a partire dal poco materiale sorgente, ma fallisce non potendo ricostruire i dettagli.