• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
AI

Deep neural network Verification

Deep neural network Verification

Perché è necessaria l’AI Verification?

Bene. Dobbiamo metterci comodi e rilassarci.

Stiamo per iniziare un affascinante, seppur complesso, viaggio.

Si parte.

AI Verification

Creare software complessi è difficile.

Così abbiamo iniziato a usare sistemi di machine learning, deep neural network, per risolvere questo problema.

Questi sistemi sono però opachi, delle black box: non sappiamo cosa avvenga al loro interno.

Fintantoché rimangano attive all’interno di laboratori di ricerca, questa particolarità è una questione secondaria. Quando però i contesti di applicazioni riguardano più direttamente noi essere umani entrano in gioco diversi fattori: etica, sicurezza, privacy, affidabilità.

L’AI Verification nasce allora come sistema di certificazione circa il corretto comportamento di reti neurali profonde, e più in generale per i sistemi d’intelligenza artificiale.

Questo è il secondo modulo di una serie di articoli introduttivi a una vasta area di studi che ho deciso di organizzare attorno a 5 aree tematiche:

  • Trust AI (il concetto di fairness in primo luogo)
  • Verification
  • Security
  • Privacy
  • Adversarial

Ti esorto a leggere il primo modulo, qualora non lo avessi ancora fatto. Ti accorgerai che molti concetti si incastrano tra loro in una big picture generale ben più ampia.

Qualcosa di pazzesco!

Per il momento, concentriamoci sul tema del post.

Dove eravamo? Ah si… AI Verification

Neural Networks Attacks

Un modello di Linear Regression è semplice: ha poco senso attaccare un sistema simile per modificarne l’output.

Per una rete neurale profonda la situazione cambia. Ecco gli adversarial example

Adversarial Example

Un adversarial example è un’istanza con una piccola e intenzionale perturbazione, tale da renderla indistinguibile dall’originale all’occhio umano, che causa una falsa previsione da parte di un modello di machine learning, come un deep neural network.

Adversarial example sono quindi counterfactual example (esempi controfattuale) con l’obiettivo d’ingannare il modello.

Adversarial example rendono un modello di machine learning vulnerabile ad attacchi, come nei seguenti scenari:

  • Scontro tra auto a guida autonoma causato da una mancata considerazione del segnale di STOP. Qualcuno ha piazzato delle immagini sopra il cartello stradale, che appare leggermente sporco a un essere umano, progettate per far riconoscere il segnale come un DIVIETO DI SOSTA.
  • Uno spam detector fallisce a classificare un’email come spam. L’email è stata progettata per bypassare i sistemi di controllo del modello raggiungendo il destinatario.
  • Uno scanner aeroportuale a raggi x, controllato da un modello di machine learning, lascia passare un coltello con piccole modifiche tali da evitarne il riconoscimento: appare come un ombrello.

Qualora volessi approfondire l’argomento ti rimando a un interessante libro di Christoph Molnar: Interpretable Machine Learning

Tornando a noi…

Perturbando alcune immagini di input in un classificatore è possibile influenzarne drasticamente il funzionamento.

In una pubblicazione datata 2015, EXPLAINING AND HARNESSING ADVERSARIAL EXAMPLES tre dipendenti di Google Ian J. Goodfellow, Jonathon Shlens e Christian Szegedy hanno approfondito questo concetto.

Nel loro caso è stato necessario modificare una moltitudine di pixel nelle immagini fornite al sistema.

Qual è dunque il minor numero di pixel che è necessario perturbare affinché venga compiuto un simile attacco?

Jiawei Su, Danilo Vargas e Kouichi Sakurai (so che non hai letto il nome: per loro rispetto torna indietro e leggi 🙂 hanno dimostrato come sia possibile modificare un singolo pixel per produrre risultati sconvolgenti!

Il problema dunque può quindi essere più grave di quanto si possa credere.

Qualora volessi approfondire il tema degli adversarial example ti rimando ad un post su IAML.

Zero Day Attacks

Un sistema grezzo per allenare le reti a resistere agli attacchi generici è quello di usare gli stessi Adversarial Example nella fase di training.

Esistono comunque attacchi denominati Zero-day, un simpatico nome per indicare i nuovi attacchi per la quale una rete neurale non era stata preparata.

Sono particolarmente pericolosi e danneggianti: ecco perché è fondamentale sviluppare delle metodologie per valutare la resistenza delle reti nonché aiutare gli sviluppatori a comprendere la confidenza nelle previsioni del modello e la loro affidabilità nel mondo reale.

Qui entrano in gioco le tecniche di Formal Verification (verificazione formale) che hanno appunto l’obiettivo di valutare la robustness di una rete neurale artificiale a eventuali attacchi, come quello di Zero-day Attack. Questo problema non si limita solo alle performance di un deep neural network ma si estende anche al livello di riservatezza e privacy.

Alcuni ricercatori hanno identificato nella verifica delle proprietà della rete neurale profonda un metodo promettente per difendersi agli adversarial examples, poiché tali sistemi sarebbero in grado d’identificare anche nuovi attacchi.

Uno di questi sistemi è Reluplex

Neural Network Verification (Reluplex)

In una rete neurale un sistema di Network Verification controllerebbe continuamente le proprietà di una rete neurale assicurandosi che uno specifico input violi o soddisfi tali proprietà.

Uno di questi metodi è chiamato Reluplex e impiegherebbe una ReLU Activation Function. Per verificare la rete neurale verrebbe anche usato un risolutore denominato Satisfiability Modulo Theory (SMT).

Nel campo del Neural Network Verification siamo ancora in fase di ricerca, con alcune sporadiche implementazioni di sistemi ben lontani dalle applicazioni in contesti di produzione.

A complicare ulteriormente la faccenda il problema ricade in una classe di problemi che, nella teoria della complessità computazionale, sono definita NP-Completi: tradotto in soldoni quanto più una rete risulti complessa e larga tanto più tempo è necessario per applicare la verifica.

ACAS Xu System: 45 deep neural networks

Reluplex è stato applicato con successo su un sistema denominato Airbone Collision-Avoidance Systems (ACAS) per droni svilupato dalla US Federal Aviation Administration (FAA).

L’ACAS Xu è compsoto da 45 reti neurali profonde. È cruciale che il loro comportamento rispecchi le specifiche di progettazione per evitare potenziali collisioni a mezz’aria.

Attraverso l’AI Verification è stato possibile provare formalmente il corretto comportamento della rete, per una lista di proprietà definite, identificando persino un bug.

Robustness to Adverarial Example

Un altro campo di applicazione è quello di verificare il comportamento della rete in presenza di Adversarial Example, dove è stato possibile dimostrare che piccole perturbazioni non erano in grado di ostacolare il normale funzionamento della rete.

AI Verification | GitHub Code

Ok direi che di teoria ne abbiamo fatta fin troppa.

A livello pratico?

Ripeto che la maggior parte del lavoro svolto è attualmente in fase di ricerca.

È comunque possibile trovare del codice online facente riferimento alle numerose pubblicazioni in merito.

Niente paura, ho fatto il lavoro al posto tuo.

Reluplex

Reluplex | Paper code implementation

A questo link possiamo trovare la documentazione e il codice (che andrebbe testato) per applicare le ricerche compiute. Possiamo usare Reluplex per testare 10 proprietà della rete ACAS Xu.

DiffAI

GitHub DiffAI v3 | Training DNN to be provably robust

DiffAI è un sistema per allenare le reti neurali artificiali (artificial neural networks) a essere validamente robuste e provare che effettivamente lo siano.

Persone da seguire:

Krishnamurthy Dvijotham | Reserach Scientist at DeepMind

Per approfondire:

Facebook AI | Neural Network Verification

Fonti:

Adversarial Examples: Attacks and Defenses for Deep Learning

Written by Andrea Provino - Gennaio 15, 2020
Tags | AI, ai fairness, deep learning, machine learning, neural network, trusting ai, verification

You Might Also Like

optimization-algoritmh-adam-optimizer-deep-learning-neural-network-data-science-machine-learning-guida-italiano-tutorial-blog

Cosa sono Optimization algorithm e Optimizer | Neural Network & Deep Learning

Ottobre 27, 2019
aws-lambda-rnn-tensroflow-model-data-science-machine-learning-trading-deep-learning

AWS Lambda e RNN Tensorflow Model | Log Italiano

Aprile 14, 2020

Deep Photo Style Transfer | Computer Vision | Log 8

Dicembre 18, 2018
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino