Adversarial learning: come difendere l’algoritmo!

di

Federica Gaetani

06.03.2024

4

minuti di lettura

La tecnologia ci sta aiutando in questo momento delicato e sta facendo enormi passi avanti, ma con l’aumentare della sua centralità all’interno della nostra vita deve aumentare la sicurezza che accompagna il suo utilizzo.

L'adversarial learning (o apprendimento automatico in ambiente ostile) è un nuovo campo di ricerca che sorge dall'intersezione tra il campo dell'apprendimento automatico e la sicurezza informatica, viene sfruttata la vulnerabilità degli algoritmi di apprendimento per creare input ingannevoli che invalidano l’output degli algoritmi stessi. Il problema è motivato dal fatto che le tecniche di apprendimento automatico non sono state originariamente progettate per competere con avversari adattiviintelligenti; pertanto, in linea di principio, la sicurezza dell'intero sistema potrebbe essere compromessa sfruttando vulnerabilità specifiche di questi algoritmi, attraverso un'attenta manipolazione dei dati che vengono forniti in ingresso. 

Adversarial Learning è l’arte che sfrutta la vulnerabilità degli algoritmi di apprendimento per creare input ingannevoli che invalidano l’output degli algoritmi stessi. Da un lato la ricerca in questo campo ha come scopo lo studio della sicurezza degli algoritmi di apprendimento contro gli attacchi mirati per progettare sistemi più sicuri e sviluppare le contromisure necessarie e preservare l’output.

Dal lato buono la ricerca in questo campo ha come scopo lo studio della sicurezza degli algoritmi di apprendimento contro gli attacchi mirati per progettare sistemi più sicuri e sviluppare le contromisure. Dal lato meno buono Adversarial Learning vuol dire costruire esempi di dati che riescano a “ingannare” algoritmi collaudati come per esempio sistemi anti-spam, sistemi di riconoscimento biometrico, sistemi autonomi basati su visione artificiale e in generale sistemi progettati per il controllo e la sicurezza informatica. Appare evidente quanto sia importante studiare e capire questa tipologia di apprendimento o perturbazione.

Tipologie di Adversarial Attacks

Esistono due diverse tipologie di Adversarial Attacks: naturali e sintetici.

Gli attacchi di tipo naturale non sono generati facendo uso di tecnologia e non necessariamente partono da un intento malevolo.

Adversarial Attack di tipo sintetico

Gli attacchi di tipo sintetico possono essere randomici oppure mirati. Nel primo caso l’intento dell’attaccante è semplicemente quello di far fallire il modello di rete neurale alla base del sistema di Computer vision sotto attacco (fargli produrre qualsiasi risultato diverso da quello più simile al valore reale). Nel secondo caso invece l’intento dell’attaccante è quello di forzare un modello a produrre uno specifico risultato errato.

Questi attacchi sono principalmente di tipo “black box”: l’attaccante non necessita di avere accesso al modello fisico e informazioni sulla sua completa architettura, ma agisce in maniera da comprenderne il comportamento agendo sugli input per lo stesso. 

Adversarial learning, come si generano

Sia nel ML (Machne Learning) sia nel DL ( Deep Learning) si possono creare esempi “adversarial”, costituiti da esempi di input che generano un output scorretto rispetto a quello atteso. I casi più evidenti, intuitivi e con immediato effetto esplicativo si hanno nel riconoscimento di immagini tramite una rete neurale; il risultato è che questa risulta instabile rispetto ad alcune perturbazioni. Il punto critico è che con piccole perturbazioni negli esempi di input si producono grandi perturbazioni sugli output fino a falsare i risultati; un’immagine classificata correttamente se opportunamente perturbata non viene più classificata correttamente e la perturbazione è indistinguibile all’occhio umano.

Normalmente la creazione di adversarial richiede la conoscenza dell’algoritmo utilizzato e di alcune altre sue caratteristiche come la funzione di perdita (loss function) nonché a volte anche informazioni sul dataset di addestramento. Invece le perturbazioni universali non richiedono neanche la conoscenza dei parametri con sufficiente sicurezza introducono un disturbo tale da falsare alte percentuali di risultati.

Cosa fare per irrobustire gli algoritmi

La domanda che si pone è se sia possibile rilevare la presenza di perturbazioni in un esempio in input e nel caso se sia possibile eliminare la perturbazione. 

Rilevare a priori che un input è stato manipolato e alterato per creare una situazione di inganno o confusione di un algoritmo sarebbe la soluzione migliore ma sembra ancora la più lontana da raggiungere per cui ad oggi ci si focalizza in prevalenza sul miglioramento degli algoritmi per renderli più robusti.

Prevenire la contaminazione di un dataset, particolarmente se questo è di tipo pubblico e disponibile per il download da uno o più siti in mirroring, significa garantire la trasparenza e l’immutabilità dei dati originali. Questo compito ad oggi sembra che si possa assolvere con la validazione in blockchain che può garantire l’originalità dello stesso dataset anche se è geograficamente distribuito in su siti mirror.

Per prevenire altri tipi di invalidazioni dei modelli la ricerca è molto attiva La prima cosa che si può pensare di fare in caso di algoritmi supervisionati è “data augmentation” ovvero lavorando sui dati disponibili introdurre delle piccole variazioni per ingrandire il dataset di partenza. Il tipo di variazioni che si introducono dipende dal tipo di dato, per esempio nel caso di una immagine si possono aggiungere diverse rotazioni della stessa immagine, le simmetriche, distorsioni per sfuocare o altre correzioni purché rimanga inalterato il significato; 

La data augmentation è praticata regolarmente nel caso di algoritmi che lavorano su immagini o video e ingenerale non è sufficiente. Si passa quindi a fare data augmentation con esempi di tipo adversarial generati appositamente; si utilizzano le tecniche per generare adversarial example a partire dal dataset originale e dall’algoritmo che si intende ingannare per fornire allo stesso algoritmo anche gli esempi anomali in modo che sia “preparato”. Anche questo a volte non è sufficiente in quanto sicuramente non esaustivo. Una variante più avanzata è la simulazione degli attacchi di tipo adversarial durante il training dei modelli in modo da ottenere da subito un modello più robusto.

Esistono inoltre ricerche e sperimentazioni su un metodo “dinamico” in cui gli esempi adversarial vengono generati non prima ma durante l’addestramento in modo casuale sempre da ogni input. Il risultato è che questo ultimo sistema è stabile e più resistente agli attacchi.

Purtroppo, nonostante siano state individuate da alcuni anni, queste tipologie di rischio non hanno ancora una sufficiente attenzione. 

Per fortuna alcune tecniche efficaci, come quelle descritte in questo articolo per mitigare gli effetti di questo tipo di attacchi sono già disponibili, quindi le aziende con il giusto livello di maturità in termini di cyber sicurezza possono attingere da metodologie e casi d’uso esistenti in modo da accelerare i loro sforzi per rendere i loro modelli di rete neurale più robusti. Un limite delle soluzioni esistenti è rappresentato dal fatto che esse sono specializzate per CNN, architetture di reti neurali basati su layer convoluzionali. 

Continuare la ricerca è importante per tutti gli aspetti applicativi e in particolare in settori che coinvolgono la sicurezza di esseri viventi, come il medicale, l’affiancamento o la sostituzione di attività umane. Nel frattempo l’uso degli algoritmi di apprendimento non si ferma ma è opportuno essere consapevoli dei potenziali errori dovuti sia a situazioni casuali involontarie sia a situazioni appositamente generate per fini malevoli; la documentazione e lo studio di tali errori contribuisce allo sviluppo di sistemi sempre più robusti e affidabili.

Iscriviti alla newsletter

Unisciti alle menti principali della tecnologia legale e ricevi mensilmente le ultime notizie e gli aggiornamenti su legge, tecnologia legale, intelligenza artificiale e molto altro.

Grazie! La tua richiesta è stata ricevuta!
Oops! Something went wrong while submitting the form.