Adversarial machine learning: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m fix "più"
Nessun oggetto della modifica
Riga 23:
===Fast Gradient Sign Method (FGSM)===
 
Uno dei primissimi attacchi proposti per la generazione di esempi avversari è stato proposto dai ricercatori di Google Ian J. Goodfellow, Jonathon Shlens e Christian Szegedy.<ref>{{cita webtesto|autore1=Ian J. Goodfellow|autore2=Jonathon Shlens|autore3=Christian Szegedy|data=20 marzo 2015|titolo=Explaining and Harnessing Adversarial Examples|accesso=15 marzo 2025|lingua=en}}</ref> L'attacco è stato chiamato metodo del segno del gradiente veloce e consiste nell'aggiungere all'immagine una quantità lineare di rumore non percepibile e nel far sì che il modello la classifichi in modo errato. Questo rumore viene calcolato moltiplicando il segno del gradiente rispetto all'immagine che si vuole perturbare per una piccola costante epsilon. All'aumentare di epsilon, il modello ha maggiori probabilità di essere ingannato, ma anche le perturbazioni diventano più facili da identificare. Di seguito è riportata l'equazione per generare un esempio avversario in cui <math display="inline">x</math> è l'immagine originale, <math display="inline">\epsilon</math> è un numero molto piccolo, <math display="inline">\Delta_x</math> è la funzione gradiente, <math display="inline">J</math> è la funzione di perdita, <math display="inline">\theta</math> sono i pesi del modello e <math display="inline">y</math> è l'etichetta vera.<ref name=":10">{{Cita web|cognome=Tsui|nome=Ken|data=22 agosto 2018|titolo=Perhaps the Simplest Introduction of Adversarial Examples Ever|url=https://towardsdatascience.com/perhaps-the-simplest-introduction-of-adversarial-examples-ever-c0839a759b8d|accesso=24 ottobre 2021|sito=Medium|lingua=en}}</ref>
 
<math>adv_x = x + \epsilon \cdot sign(\Delta_xJ(\theta, x, y))</math><ref name=":11">{{Cita web|titolo=Adversarial example using FGSM TensorFlow Core|url=https://www.tensorflow.org/tutorials/generative/adversarial_fgsm|accesso=24 ottobre 2021|sito=TensorFlow|lingua=en}}</ref>
Riga 58:
== Difese ==
Sono stati proposti diversi meccanismi di difesa contro gli attacchi di tipo adversarial. Tuttavia, è importante ricordare che, come in tutti gli altri contesti applicativi della sicurezza informatica, anche nell'adversarial machine learning i meccanismi di difesa dovranno essere aggiornati per contrastare i più recenti attacchi sviluppati contro di loro, in quella che in gergo è definita come "arms race" (corsa alle armi).
[[File:Proactive_arms_raceProactive arms race.jpg|miniatura|La "corsa alle armi" fra gli sviluppatori di difese e gli attaccanti.|262x262px]]
Alcune strategie di difesa dipendono dal modello e dal tipo di apprendimento. Ad esempio, nel caso dell'addestramento supervisionato, uno dei metodi maggiormente noti per contrastare attacchi di tipo obfuscation è quello dell'adversarial training<ref>{{Cita pubblicazione|nome=Ian J.|cognome=Goodfellow|nome2=Jonathon|cognome2=Shlens|nome3=Christian|cognome3=Szegedy|data=20 marzo 2015|titolo=Explaining and Harnessing Adversarial Examples|rivista=arXiv:1412.6572 [cs, stat]|accesso=17 giugno 2021|url=http://arxiv.org/abs/1412.6572}}</ref>. Esso consiste nel ri-addestrare il modello includendo alcuni campioni malevoli, a cui è tuttavia associata la loro corretta classe di appartenenza. In questo modo il modello imparerà ad associare il campione alla sua reale classe, nonostante le perturbazioni ad esso applicate. Questa tecnica può risultare efficace in molti casi e non richiede cambiamenti speciali al modello. Tuttavia, è necessario calibrare il quantitativo totale di campioni adversarial, in quanto un numero troppo basso potrebbe risultare in un modello poco resistente agli attacchi, mentre un numero troppo elevato potrebbe causare l'[[overfitting]] del modello su quel dataset specifico<ref>{{Cita pubblicazione|nome=Kathrin|cognome=Grosse|nome2=Nicolas|cognome2=Papernot|nome3=Praveen|cognome3=Manoharan|data=16 giugno 2016|titolo=Adversarial Perturbations Against Deep Neural Networks for Malware Classification|rivista=arXiv:1606.04435 [cs]|accesso=17 giugno 2021|url=http://arxiv.org/abs/1606.04435}}</ref>. Un'altra strategia proposta in letteratura è quella del distillation, una tecnica che in origine era stata sviluppata con lo scopo di generare una [[Apprendimento profondo|rete neurale artificiale profonda]] a partire da una più grande<ref>{{Cita pubblicazione|nome=Geoffrey|cognome=Hinton|nome2=Oriol|cognome2=Vinyals|nome3=Jeff|cognome3=Dean|data=9 marzo 2015|titolo=Distilling the Knowledge in a Neural Network|rivista=arXiv:1503.02531 [cs, stat]|accesso=17 giugno 2021|url=http://arxiv.org/abs/1503.02531}}</ref>. Nel [[Caso d'uso (informatica)|caso d'uso]] originale, questo veniva fatto con lo scopo di ottenere una rete neurale meno dispendiosa, in quanto più piccola. Questa strategia è stata in seguito applicata nel contesto dell'adversarial machine learning. L'intuizione è che, diminuendone la dimensione, la rete neurale ottenuta riesca a generalizzare meglio la conoscenza appresa da quella più grande, e sia pertanto più resistente alle perturbazioni<ref>{{Cita pubblicazione|nome=Nicolas|cognome=Papernot|nome2=Patrick|cognome2=McDaniel|nome3=Xi|cognome3=Wu|data=14 marzo 2016|titolo=Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks|rivista=arXiv:1511.04508 [cs, stat]|accesso=17 giugno 2021|url=http://arxiv.org/abs/1511.04508}}</ref>.
 
Altri metodi noti includono:
 
* sistemi di classificazione che combinano più modelli insieme<ref>{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Giorgio|cognome2=Fumera|nome3=Fabio|cognome3=Roli|data=2010|titolo=Multiple Classifier Systems for Robust Classifier Design in Adversarial Environments|rivista=Journal of Machine Learning and Cybernetics|volume=1|pp=27–41|accesso=17 giugno 2021|url=http://pralab.diee.unica.it/en/node/671|dataarchivio=19 gennaio 2023|urlarchivio=https://web.archive.org/web/20230119094021/http://pralab.diee.unica.it/en/node/671|urlmorto=sì}}</ref><ref>{{Cita libro|titolo=Supervised and Unsupervised Ensemble Methods and Their Applications|url=http://pralab.diee.unica.it/en/node/642|accesso=17 giugno 2021|data=2009|editore=Springer Berlin / Heidelberg|volume=245|dataarchivio=15 gennaio 2015|urlarchivio=https://web.archive.org/web/20150115114531/http://pralab.diee.unica.it/en/node/642|urlmorto=sì}}</ref>;
* algoritmi di apprendimento che permettono di preservare la privacy dei dati usati (attraverso ad esempio l'utilizzo di tecniche di privacy differenziale<ref>{{Cita pubblicazione|nome=Battista|cognome=Biggio|nome2=Igino|cognome2=Corona|nome3=Blaine|cognome3=Nelson|data=29 gennaio 2014|titolo=Security Evaluation of Support Vector Machines in Adversarial Environments|rivista=arXiv:1401.7727 [cs]|accesso=17 giugno 2021|url=http://arxiv.org/abs/1401.7727}}</ref><ref>{{Cita pubblicazione|nome=Benjamin I. P.|cognome=Rubinstein|nome2=Peter L.|cognome2=Bartlett|nome3=Ling|cognome3=Huang|data=30 novembre 2009|titolo=Learning in a Large Function Space: Privacy-Preserving Mechanisms for SVM Learning|rivista=arXiv:0911.5708 [cs]|accesso=17 giugno 2021|url=http://arxiv.org/abs/0911.5708}}</ref>);
* algoritmi di apprendimento intelligenti in grado di anticipare le mosse di un attaccante<ref>{{Cita pubblicazione|nome=Ofer|cognome=Dekel|nome2=Ohad|cognome2=Shamir|nome3=Lin|cognome3=Xiao|data=1º novembre 2010|titolo=Learning to classify with missing and corrupted features|rivista=Machine Learning|volume=81|numero=2|pp=149–178|lingua=en|accesso=17 giugno 2021|doi=10.1007/s10994-009-5124-8|url=https://doi.org/10.1007/s10994-009-5124-8}}</ref>;