Wrogie uczenie maszynowe: jak atakować i bronić modeli ML

Opublikowany: 2022-03-11

Obecnie modele uczenia maszynowego w wizji komputerowej są wykorzystywane w wielu rzeczywistych zastosowaniach, takich jak autonomiczne samochody, rozpoznawanie twarzy, diagnostyka raka, a nawet w sklepach nowej generacji w celu śledzenia, które produkty klienci zdejmują z półki, aby uzyskać ich kredyt. kartę można doładować przy wyjeździe.

Rosnąca dokładność tych systemów uczenia maszynowego jest dość imponująca, więc w naturalny sposób doprowadziła do istnego zalewu aplikacji, które z nich korzystają. Chociaż podstawy matematyczne za nimi badano już kilkadziesiąt lat temu, stosunkowo niedawne pojawienie się potężnych procesorów graficznych dało naukowcom moc obliczeniową niezbędną do eksperymentowania i budowania złożonych systemów uczenia maszynowego. Obecnie najnowocześniejsze modele komputerowego widzenia oparte są na głębokich sieciach neuronowych o kilku milionach parametrów i na sprzęcie, który nie był dostępny jeszcze dekadę temu.

W 2012 roku Alex Krizhevsky et altri jako pierwszy pokazał, jak wdrożyć głęboką sieć konwolucyjną, która w tamtym czasie stała się najnowocześniejszym modelem w klasyfikacji obiektów. Od tego czasu opublikowano wiele ulepszeń ich oryginalnego modelu, z których każde zwiększa dokładność (VGG, ResNet, Incepcja itp.). Ostatnio modele uczenia maszynowego zdołały osiągnąć ludzką, a nawet ponadludzką dokładność w wielu zadaniach związanych z widzeniem komputerowym.

Kilka lat temu przyjmowanie błędnych prognoz z modelu uczenia maszynowego było normą. Obecnie stało się to wyjątkiem i oczekujemy od nich bezbłędnego działania, zwłaszcza gdy są wdrażane w rzeczywistych aplikacjach.

Do niedawna modele uczenia maszynowego były zwykle trenowane i testowane w środowisku laboratoryjnym , takim jak konkursy uczenia maszynowego i artykuły naukowe. W dzisiejszych czasach, gdy są one wdrażane w rzeczywistych scenariuszach, luki w zabezpieczeniach wynikające z błędów modeli stały się prawdziwym problemem.

Ideą tego artykułu jest wyjaśnienie i zademonstrowanie, w jaki sposób najnowocześniejsze głębokie sieci neuronowe wykorzystywane w rozpoznawaniu obrazów mogą zostać łatwo oszukane przez złośliwego aktora i w ten sposób zmusić do generowania błędnych prognoz. Gdy zapoznamy się ze zwykłymi strategiami ataku, omówimy, jak bronić naszych modeli przed nimi.

Przykłady kontradyktoryjnego uczenia maszynowego

Zacznijmy od podstawowego pytania: jakie są przykłady kontradyktoryjnego uczenia maszynowego?

Przykłady kontradyktoryjności to złośliwe dane wejściowe zaprojektowane specjalnie w celu oszukania modelu uczenia maszynowego.

W tym artykule ograniczymy naszą uwagę do modeli uczenia maszynowego, które dokonują klasyfikacji obrazów. W związku z tym, kontradyktoryjnymi przykładami będą obrazy wejściowe stworzone przez atakującego, których model nie jest w stanie poprawnie sklasyfikować.

Jako przykład weźmy GoogLeNet przeszkolony w ImageNet, aby przeprowadzić klasyfikację obrazów jako nasz model uczenia maszynowego. Poniżej masz dwa obrazy pandy, które są nie do odróżnienia dla ludzkiego oka. Obraz po lewej to jeden z czystych obrazów w zestawie danych ImageNet, używany do uczenia modelu GoogLeNet. Ten po prawej jest niewielką modyfikacją pierwszego, stworzoną przez dodanie wektora szumu na środkowym obrazie. Zgodnie z oczekiwaniami model przewiduje, że pierwszy obraz to panda. Przewiduje się, że drugi (z bardzo dużą pewnością) będzie gibonem.

Dwa obok siebie obrazy pandy. Drugi obraz wygląda identycznie jak pierwszy, ale jest oznaczony jako inne zwierzę. Pomiędzy nimi znajduje się trzeci obraz, który wydaje się być losowym statycznym obrazem, pokazując warstwę, która została dodana do drugiego obrazu pandy, aby zmylić model.

Szum dodany do pierwszego obrazu nie jest losowy, ale jest wynikiem starannej optymalizacji przez atakującego.

Jako drugi przykład możemy przyjrzeć się, jak zsyntetyzować przykłady przeciwników 3D za pomocą drukarki 3D. Poniższy obrazek pokazuje różne widoki żółwia 3D, które wydrukowali autorzy, oraz błędną klasyfikację w modelu Google Inception v3.

Obraz przedstawiający siatkę obrazów żółwi, z których niektóre są poprawnie sklasyfikowane jako żółwie, niektóre są sklasyfikowane jako karabiny, a kilka z nich jest sklasyfikowanych jako inne

Jak najnowocześniejsze modele, które mają ponadludzką dokładność klasyfikacji, mogą popełniać tak pozornie głupie błędy?

Zanim zagłębimy się w słabości, które mają zwykle modele sieci neuronowych, pamiętajmy, że my, ludzie, mamy własny zestaw przeciwstawnych przykładów. Spójrz na poniższy obrazek. Co widzisz? Spirala czy seria koncentrycznych okręgów?

Obraz przedstawiający złudzenie optyczne.

Te różne przykłady pokazują również, że modele uczenia maszynowego i ludzkie widzenie muszą używać zupełnie innych wewnętrznych reprezentacji, aby zrozumieć, co znajduje się na obrazie.

W następnej sekcji zbadamy strategie generowania przykładów przeciwników.

Jak generować przykłady kontradyktoryjności

Zacznijmy od prostego pytania: Jaki jest przykład kontradyktoryjny?

Przykłady kontradyktoryjności są generowane przez zrobienie czystego obrazu, który model prawidłowo sklasyfikował, i znalezienie niewielkich zakłóceń, które powodują błędną klasyfikację nowego obrazu przez model ML.

Załóżmy, że atakujący ma pełne informacje o modelu, który chce zaatakować. Zasadniczo oznacza to, że atakujący może obliczyć funkcję straty modelu $J(\theta, X, y)$ , gdzie $X$ to obraz wejściowy, $y$ to klasa wyjściowa, a $\theta$ to wewnętrzna parametry modelu. Ta funkcja straty jest zazwyczaj ujemnym prawdopodobieństwem straty dla metod klasyfikacji.

W tym scenariuszu białoskrzynkowym istnieje kilka strategii ataku, z których każda reprezentuje różne kompromisy między kosztem obliczeniowym ich wytworzenia a wskaźnikiem sukcesu. Wszystkie te metody zasadniczo starają się zmaksymalizować zmianę funkcji strat modelu przy jednoczesnym utrzymaniu niewielkich zaburzeń obrazu wejściowego. Im wyższy wymiar przestrzeni obrazu wejściowego, tym łatwiej jest wygenerować przykłady kontradyktoryjności, które są nie do odróżnienia od czystych obrazów dla ludzkiego oka.

Metoda L-BFGS

Znaleźliśmy kontradyktoryjny przykład ${x}'$ , rozwiązując następujący problem z optymalizacją ograniczoną ramką:

$$ \begin{macierz} \text{minimalizuj } c \cdot \left \| x - {x}' \right \|^2_2 + \text{strata}_{f,1} {x}' \\ \text{takie, że } {x}' \epsilon \left [0, 1 \right ]^n \end{macierz} $$

gdzie $c > 0$ to parametr, który również wymaga rozwiązania. Intuicyjnie szukamy przeciwstawnych obrazów ${x}'$ takich, że ważona suma zniekształceń w odniesieniu do czystego obrazu ( $\left | x - {x}' \right |$ ) i straty w odniesieniu do zła klasa to minimum.

W przypadku modeli złożonych, takich jak głębokie sieci neuronowe, problem optymalizacji nie ma rozwiązania w postaci zamkniętej, dlatego należy stosować iteracyjne metody numeryczne. Z tego powodu ta metoda L-BFGS jest powolna. Jednak jego wskaźnik sukcesu jest wysoki.

Szybki znak gradientu (FGS)

Za pomocą metody szybkiego znaku gradientu (FGS) dokonujemy liniowego przybliżenia funkcji straty wokół punktu początkowego, określonego przez czysty wektor obrazu $X$ i prawdziwą klasę $y$ .

Przy tym założeniu gradient funkcji straty wskazuje kierunek, w którym musimy zmienić wektor wejściowy, aby uzyskać maksymalną zmianę straty. Aby utrzymać niewielki rozmiar perturbacji, wyodrębniamy tylko znak gradientu, a nie jego rzeczywistą normę, i skalujemy go przez mały współczynnik epsilon.

W ten sposób zapewniamy, że różnica w pikselach między obrazem początkowym a zmodyfikowanym jest zawsze mniejsza niż epsilon (ta różnica jest normą L_infinity).

$$ X^{adv} = X + \epsilon \text{ znak} \left( \bigtriangledown_x J \left( X, y_{true} \right) \right) $$

Gradient można efektywnie obliczyć za pomocą wstecznej propagacji. Ta metoda jest jedną z najszybszych i najtańszych obliczeniowo do wdrożenia. Jednak jego wskaźnik sukcesu jest niższy niż droższych metod, takich jak L-BFGS.

Autorzy Adversarial Machine Learning at Scale stwierdzili, że wskaźnik sukcesu wynosi od 63% do 69% w predykcji top-1 dla zestawu danych ImageNet, z wartością epsilon od 2 do 32. W przypadku modeli liniowych, takich jak regresja logistyczna, metoda szybkiego znaku gradientu jest dokładny. W tym przypadku autorzy innego artykułu badawczego na przykładach kontradyktoryjnych podają wskaźnik sukcesu na poziomie 99%.

Znak szybkiego gradientu iteracyjnego

Oczywistym rozszerzeniem poprzedniej metody jest kilkakrotne zastosowanie go z mniejszym rozmiarem kroku alfa i przycięcie całkowitej długości kroku, aby upewnić się, że zniekształcenie między czystym a wrogim obrazem jest mniejsze niż epsilon.

$$ X^{przys.}_0 = X, X^{przysł.}_{N + 1} = Clip_{X, \epsilon} \left\{ X^{przysł.}_{N} + znak \alpha \text{ } \left( \bigtriangledown_X J \left( X^{adv}_N, y_{true} \right) \right) \right\} $$

Inne techniki, takie jak te zaproponowane w artykule Nicholasa Carliniego, to ulepszenia w stosunku do L-BFGS. Są również drogie w obliczeniach, ale mają wysoki wskaźnik sukcesu.

Jednak w większości rzeczywistych sytuacji atakujący nie zna funkcji straty docelowego modelu. W takim przypadku atakujący musi zastosować strategię czarnej skrzynki.

Atak czarnoskrzynkowy

Naukowcy wielokrotnie zaobserwowali, że przykłady kontradyktoryjności dość dobrze przenoszą się między modelami, co oznacza, że ​​można je zaprojektować dla modelu docelowego A, ale w efekcie są skuteczne w porównaniu z dowolnym innym modelem wytrenowanym na podobnym zbiorze danych.

Jest to tak zwana przenośność przykładów kontradyktoryjnych, którą atakujący mogą wykorzystać na swoją korzyść, gdy nie mają dostępu do pełnych informacji o modelu. Atakujący może wygenerować kontradyktoryjne przykłady, wykonując następujące kroki:

  1. Zapytaj model docelowy z danymi wejściowymi $X_i$ dla $i=1…n$ i zapisz wyniki $y_i$ .
  2. Z danych uczących $(X_i, y_i)$ zbuduj kolejny model, zwany modelem zastępczym.
  3. Użyj dowolnego z algorytmów białoskrzynkowych przedstawionych powyżej, aby wygenerować przykłady kontradyktoryjności dla modelu zastępczego. Wiele z nich przeniesie się z powodzeniem i stanie się również kontradyktoryjnymi przykładami dla modelu docelowego.

Pomyślne zastosowanie tej strategii w komercyjnym modelu uczenia maszynowego przedstawiono w niniejszym artykule Computer Vision Foundation.

Obrona przed wrogimi przykładami

Atakujący tworzy atak, wykorzystując wszystkie posiadane informacje o modelu. Oczywiście, im mniej informacji wygeneruje model w czasie przewidywania, tym trudniej atakującemu wykonać udany atak.

Pierwszym łatwym środkiem ochrony modelu klasyfikacji w środowisku produkcyjnym jest unikanie pokazywania wyników ufności dla każdej przewidywanej klasy. Zamiast tego model powinien dostarczać tylko najbardziej prawdopodobnych klas $N$ (np. 5). Gdy użytkownikowi końcowemu zostaną udostępnione oceny ufności, złośliwy atakujący może ich użyć do liczbowego oszacowania gradientu funkcji straty. W ten sposób napastnicy mogą tworzyć ataki białoskrzynkowe, na przykład przy użyciu metody szybkiego znakowania gradientem. W cytowanym wcześniej artykule Computer Vision Foundation autorzy pokazują, jak to zrobić w porównaniu z komercyjnym modelem uczenia maszynowego.

Przyjrzyjmy się dwóm obronom, które zostały zaproponowane w literaturze.

Destylacja obronna

Ta metoda próbuje wygenerować nowy model, którego gradienty są znacznie mniejsze niż w oryginalnym modelu niebronionym. Jeśli gradienty są bardzo małe, techniki takie jak FGS lub Iterative FGS nie są już przydatne, ponieważ atakujący potrzebowałby dużych zniekształceń obrazu wejściowego, aby osiągnąć wystarczającą zmianę funkcji straty.

Destylacja obronna wprowadza nowy parametr $T$ , zwany temperaturą, do ostatniej warstwy softmax sieci:

$$ \text{softmax} \left( x, T \right)_i = \frac{e^{x_i/T}}{\Sigma_j e^{x_j/T}} $$

Zauważ, że dla T=1, mamy zwykłą funkcję softmax. Im wyższa wartość $T$ , tym mniejszy gradient straty w stosunku do obrazów wejściowych.

Destylacja obronna przebiega w następujący sposób:

  1. Trenuj sieć, zwaną siecią nauczyciela, z temperaturą $T » 1$ .
  2. Użyj sieci przeszkolonych nauczycieli, aby wygenerować miękkie etykiety dla każdego obrazu w zestawie szkoleniowym. Miękka etykieta obrazu to zestaw prawdopodobieństw, które model przypisuje każdej klasie. Na przykład, jeśli obrazem wyjściowym jest papuga, model nauczyciela może wyświetlać miękkie etykiety, takie jak (90% papuga, 10% papagayo).
  3. Wytrenuj drugą sieć, sieć destylowaną , na miękkich etykietach, używając ponownie temperatury $T$ . Szkolenie z miękkimi etykietami to technika, która zmniejsza przeuczenie i poprawia dokładność sieci destylowanej poza próbką.
  4. Na koniec, w czasie przewidywania, uruchom sieć destylowaną z temperaturą $T=1$ .

Destylacja obronna skutecznie chroni sieć przed zestawem ataków podejmowanych w trybie Destylacja jako obrona przed wrogimi perturbacjami przed głębokimi sieciami neuronowymi .

Obraz tabeli przedstawiający wskaźnik sukcesu na podstawie temperatury destylacji. Ogólnie rzecz biorąc, im wyższa temperatura, tym niższy wskaźnik powodzenia, zarówno dla próbek przeciwstawnych MNIST, jak i CIFAR10.

Niestety, późniejsza praca naukowców z Uniwersytetu Kalifornijskiego w Berkeley przedstawiła nowy zestaw metod ataku, które pokonują destylacji obronnej. Ataki te są ulepszeniami w stosunku do metody L-BFGS, które udowadniają, że destylacji obronnej nie jest ogólne rozwiązanie przeciwko wrogim przykładom.

Trening kontradyktoryjny

W dzisiejszych czasach trening kontradyktoryjny jest najskuteczniejszą strategią obrony. Przykłady kontradyktoryjności są generowane i używane podczas uczenia modelu. Intuicyjnie, jeśli model widzi przeciwstawne przykłady podczas uczenia, jego wydajność w czasie przewidywania będzie lepsza w przypadku przeciwstawnych przykładów wygenerowanych w ten sam sposób.

Idealnie, chcielibyśmy wykorzystać dowolną znaną metodę ataku do generowania przykładów przeciwnika podczas treningu. Jednak w przypadku dużego zestawu danych o wysokiej wymiarowości (takiego jak ImageNet) niezawodne metody ataku, takie jak L-BFGS i ulepszenia opisane w artykule Berkeley, są zbyt kosztowne obliczeniowo. W praktyce możemy sobie pozwolić tylko na szybką metodę, taką jak FGS lub można zastosować iteracyjny FGS.

Trening kontradyktoryjny wykorzystuje zmodyfikowaną funkcję straty, która jest sumą ważoną zwykłej funkcji straty z czystych przykładów i funkcji straty z przykładów kontradyktoryjnych.

$$ Strata = \frac{1}{\left( m - k \right)} \left( \sum_{i \epsilon CLEAN} {L \left( X_i | y_i \right) + \lambda} \sum_{i \epsilon ADV} {L \left( X*{adv}_i | y_i \right)} \right) $$

Podczas szkolenia dla każdej partii $m$ czystych obrazów generujemy $k$ obrazy przeciwstawne, wykorzystując aktualny stan sieci. Przekazujemy sieć zarówno dla czystych, jak i wrogich przykładów i obliczamy stratę za pomocą powyższego wzoru.

Udoskonalenie tego algorytmu przedstawione w tym artykule konferencyjnym nazywa się zespołowym treningiem kontradyktoryjnym. Zamiast wykorzystywać obecną sieć do generowania przykładów kontradyktoryjnych, do generowania przykładów kontradyktoryjnych stosuje się kilka wstępnie wytrenowanych modeli. W ImageNet metoda ta zwiększa odporność sieci na ataki typu blackbox. Ta obrona została zwycięzcą pierwszej rundy w konkursie NIPS 2017 na obronę przed atakami kontradyktoryjnymi .

Wnioski i dalsze kroki

Na dzień dzisiejszy atakowanie modelu uczenia maszynowego jest łatwiejsze niż jego obrona. Najnowocześniejsze modele wdrożone w rzeczywistych aplikacjach są łatwo oszukane przez wrogie przykłady, jeśli nie zostanie zastosowana żadna strategia obrony, co otwiera drzwi do potencjalnie krytycznych problemów związanych z bezpieczeństwem. Najbardziej niezawodną strategią obrony jest trening kontradyktoryjny, w którym przykłady kontradyktoryjności są generowane i dodawane do czystych przykładów w czasie treningu.

Jeśli chcesz ocenić odporność swoich modeli klasyfikacji obrazów na różne ataki, polecam skorzystać z biblioteki open-source Pythona intelligenthans. W modelu można przetestować wiele metod ataku, w tym te wymienione w tym artykule. Możesz również użyć tej biblioteki do przeprowadzenia treningu kontradyktoryjnego modelu i zwiększenia jego odporności na przykłady kontradyktoryjności.

Odnajdywanie nowych ataków i lepszych strategii obrony to aktywny obszar badań. Aby modele uczenia maszynowego były bardziej niezawodne i bezpieczne w rzeczywistych zastosowaniach, potrzeba zarówno więcej prac teoretycznych, jak i empirycznych.

Zachęcam czytelnika do eksperymentowania z tymi technikami i publikowania nowych ciekawych wyników. Co więcej, wszelkie uwagi dotyczące niniejszego artykułu są przez autora bardzo mile widziane.

Związane z:
  • Modele logiki dźwiękowej i monotonicznej sztucznej inteligencji
  • Wiele zastosowań opadania gradientu w TensorFlow