10.4 Kötü Amaçlı Örnekler (Adversarial Examples)
Last updated
Last updated
Adversarial bir örnek, bir makine öğrenimi modelinin yanlış bir tahminde bulunmasına neden olan küçük, kasıtlı özellik pertürbasyonlarına sahip bir örnektir. Kavramsal Karşıt Açıklamalar (Counterfactual Explanations) ile çok benzer kavramlar olduğundan, önce bu bölümdeki bölümü okumanızı öneririm. Adversarial örnekler, modeli yorumlamak değil, kandırmak amacıyla oluşturulan karşıt örneklerdir.
Neden Adversarial Örneklerle İlgileniyoruz? Adversarial örnekler, pratik bir önemi olmayan makine öğrenimi modellerinin merak uyandıran yan ürünleri değildir. Cevap net bir “hayır”. Adversarial örnekler, makine öğrenimi modellerini aşağıdaki senaryolarda olduğu gibi saldırılara karşı savunmasız hale getirir.
Bir otonom araç, dur işaretini görmezden geldiği için başka bir araca çarpar. Birisi, insanlara biraz kirli gibi görünen dur işaretinin üzerine yerleştirdiği bir resim koymuştur, ancak bu resim aracın işaret tanıma yazılımı için park yasağı işareti gibi tasarlanmıştır.
Bir spam dedektörü, bir e-postayı spam olarak sınıflandırmayı başaramaz. Spam posta, normal bir e-postaya benzer şekilde tasarlanmıştır, ancak alıcıyı kandırmak amacıyla yapılmıştır.
Makine öğrenimi destekli bir tarayıcı, havaalanında bavullarında silah olup olmadığını tarar. Bir bıçak, sistemin şemsiyeyi algıladığını düşünmesini sağlayacak şekilde geliştirilmiştir.
10.4.1 Yöntemler ve Örnekler
Adversarial örnekler oluşturmak için birçok teknik bulunmaktadır. Çoğu yaklaşım, adversarial örnek ile manipüle edilecek örnek arasındaki mesafeyi minimize etmeyi, aynı zamanda tahmini istenen (adversarial) sonuca kaydırmayı önerir. Bazı yöntemler, elbette sadece sinir ağları gibi gradyan tabanlı modellerle çalışan modelin gradyanlarına erişim gerektirirken, diğer yöntemler sadece tahmin fonksiyonuna erişim gerektirir ve bu da bu yöntemleri modelden bağımsız (model-agnostic) yapar. Bu bölümdeki yöntemler, bu alanda çok fazla araştırma yapıldığı ve adversarial görüntülerin görselleştirilmesinin çok öğretici olduğu için derin sinir ağlarına sahip görüntü sınıflandırıcılarına odaklanmaktadır. Görüntüler için adversarial örnekler, uygulama zamanında modeli kandırma amacıyla kasıtlı olarak pertüre edilmiş piksellere sahip görüntülerdir. Örnekler, nesne tanıma için derin sinir ağlarının, insanlara zararsız görünen görüntülerle ne kadar kolayca kandırılabileceğini etkileyici bir şekilde göstermektedir. Bu örnekleri henüz görmediyseniz, insan gözlemcisi için tahmin değişikliklerinin anlaşılmaz olması nedeniyle şaşırabilirsiniz. Adversarial örnekler, makineler için optik illüzyonlar gibidir.
Something is Wrong With My Dog
Szegedy ve ark. (2013), derin sinir ağları için adversarial örnekler bulmak amacıyla çalışmalarında “Intriguing Properties of Neural Networks” adlı çalışmasında gradyan tabanlı bir optimizasyon yaklaşımı kullanmıştır
Bu adversarial örnekler, aşağıdaki fonksiyonun r'ye göre minimize edilmesiyle oluşturulmuştur:
Bu formülde, x bir görüntüdür (piksel vektörü olarak temsil edilir), r piksellerdeki değişikliklerdir ve adversarial bir görüntü oluşturmak için kullanılır (x+r yeni bir görüntü üretir), l istenen sonuç sınıfıdır ve c parametresi, görüntüler arasındaki mesafe ile tahminler arasındaki mesafe arasında denge kurmak için kullanılır. İlk terim, adversarial örneğin tahmin edilen sonucu ile istenen sınıf l arasındaki mesafeyi, ikinci terim ise adversarial örnek ile orijinal görüntü arasındaki mesafeyi ölçer. Bu formülasyon, karşıt açıklamalar (counterfactual explanations) oluşturmak için kullanılan kayıp fonksiyonuna neredeyse aynıdır. Piksellerin değerlerinin 0 ile 1 arasında kalmasını sağlamak için r için ek kısıtlamalar vardır. Yazarlar, bu optimizasyon problemini gradyanlarla çalışan bir optimizasyon algoritması olan kutu kısıtlamalı L-BFGS ile çözmeyi önermektedirler.
Disturbed panda: Fast Gradient Sign Method
Goodfellow ve ark. (2014)97, adversarial görüntüler oluşturmak için hızlı gradyan işaret yöntemi (fast gradient sign method) icat etmiştir. Gradyan işaret yöntemi, temel modelin gradyanını kullanarak adversarial örnekler bulur. Orijinal görüntü x, her piksele küçük bir hata ϵ eklenerek veya çıkarılarak manipüle edilir. ϵ ekleyip çıkarmamız, bir pikselin gradyan işaretinin pozitif mi yoksa negatif mi olduğuna bağlıdır. Gradyanın yönünde hatalar eklemek, model sınıflandırmasının başarısız olmasını sağlamak için görüntünün kasıtlı olarak değiştirilmesi anlamına gelir.
Aşağıdaki formül, hızlı gradyan işaret yönteminin çekirdeğini tanımlar:
Burada modelin kayıp fonksiyonunun orijinal giriş piksel vektörü x'e göre gradyanıdır, y x'in gerçek etiket vektörüdür ve model parametre vektörüdür. Gradyan vektöründen (giriş pikselleri vektörü kadar uzunlukta olan) sadece işarete ihtiyacımız var: Gradyanın işareti, piksel yoğunluğunda bir artış kaybı (modelin yaptığı hata) artırıyorsa pozitif (+1) olur ve piksel yoğunluğunda bir azalma kaybı artırıyorsa negatif (-1) olur. Bu kırılganlık, bir sinir ağı giriş piksel yoğunluğu ile sınıf skoru arasındaki ilişkiyi doğrusal olarak ele aldığında ortaya çıkar. Özellikle, LSTM'ler, maxout ağları, ReLU aktivasyon birimlerine sahip ağlar veya lojistik regresyon gibi diğer doğrusal makine öğrenimi algoritmaları gibi doğrusalılığı tercih eden sinir ağı mimarileri, gradyan işaret yöntemine karşı savunmasızdır. Saldırı, ekstrapolasyon yoluyla gerçekleştirilir. Giriş piksel yoğunluğu ile sınıf skorları arasındaki doğrusal ilişki, veri dağılımının dışındaki alanlara piksel değerlerini taşıyarak modelin sapkınlara karşı savunmasız olmasına yol açar. Bu adversarial örneklerin belirli bir sinir ağı mimarisine oldukça özgü olmasını beklemiştim. Ancak, adversarial örnekleri, aynı görev için eğitilmiş farklı mimarilere sahip ağları kandırmak için yeniden kullanabileceğiniz ortaya çıktı.
Goodfellow ve ark. (2014) sağlam modeller öğrenmek için adversarial örnekleri eğitim verilerine eklemeyi önermiştir.
Goodfellow ve arkadaşlarının (2014) sunduğu yaklaşım, sadece biraz değişiklikle birçok pikselin değiştirilmesini gerektirir. Ama sadece bir pikseli değiştirebilirseniz ne olur? Bir makine öğrenimi modelini kandırabilir misiniz? Su ve ark. (2019), aslında tek bir pikseli değiştirerek görüntü sınıflandırıcılarını kandırmanın mümkün olduğunu göstermiştir.
Karşıt olgulara benzer şekilde, 1-piksel saldırısı, orijinal görüntü 𝑥'e yakın gelen ancak tahmini adversarial bir sonuca değiştiren değiştirilmiş bir örnek 𝑥 ’ arar. Ancak, yakınlık tanımı farklıdır: Sadece tek bir piksel değişebilir. 1-piksel saldırısı, hangi pikselin değiştirileceğini ve nasıl değiştirileceğini bulmak için diferansiyel evrimi kullanır. Diferansiyel evrim, türlerin biyolojik evriminden gevşekçe esinlenmiştir. Aday çözümler olarak adlandırılan bireylerden oluşan bir popülasyon, bir çözüm bulunana kadar nesilden nesile yeniden kombine olur. Her bir aday çözüm, bir piksel değişikliğini kodlar ve beş öğeden oluşan bir vektörle temsil edilir: 𝑥 ve 𝑦 koordinatları ile kırmızı, yeşil ve mavi (RGB) değerler. Arama, örneğin 400 aday çözümle (= piksel değişiklik önerileri) başlar ve aşağıdaki formülü kullanarak ebeveyn popülasyonundan yeni bir aday çözüm nesli (çocuklar) oluşturur:
burada her bir aday çözümün bir elemanıdır (ya x-koordinatı, ya y-koordinatı, kırmızı, yeşil veya mavi), g mevcut nesildir, F bir ölçekleme parametresidir (0.5 olarak ayarlanmıştır) ve farklı rastgele sayılardır. Her yeni çocuk aday çözüm ise konum ve renk için beş özelliğe sahip bir piksel olup, bu özelliklerin her biri üç rastgele ebeveyn pikselin bir karışımıdır.
Çocukların yaratılması, aday çözümlerden biri adversarial bir örnek olduğunda, yani yanlış bir sınıf olarak sınıflandırıldığında veya kullanıcı tarafından belirtilen maksimum iterasyon sayısına ulaşıldığında durdurulur.
En sevdiğim yöntemlerden biri, adversarial örnekleri fiziksel gerçekliğe taşır. Brown ve ark. (2017), bir görüntü sınıflandırıcı için nesnelere yapıştırılabilecek, onları tost makineleri gibi gösterebilen yazdırılabilir bir etiket tasarlamıştır. Harika bir çalışma!
Bu yöntem, adversarial örnekler için şimdiye kadar sunulan yöntemlerden farklıdır, çünkü adversarial görüntünün orijinal görüntüye çok yakın olması gerekliliği kaldırılmıştır. Bunun yerine, yöntem görüntünün bir bölümünü herhangi bir şekil alabilen bir yama ile tamamen değiştirir. Yamanın görüntüsü, farklı arka plan görüntüleri üzerinde optimize edilir, yamaların görüntüler üzerindeki farklı pozisyonlarıyla, bazen hareket ettirilmiş, bazen daha büyük veya daha küçük ve döndürülmüş olarak, böylece yama birçok durumda çalışır. Sonunda, bu optimize edilmiş görüntü yazdırılabilir ve vahşi doğada görüntü sınıflandırıcılarını kandırmak için kullanılabilir.
Bir sonraki yöntem, tost makinesine başka bir boyut eklemek gibidir: Athalye ve ark. (2017), derin sinir ağlarına karşı neredeyse tüm olası açılardan tüfek gibi görünen 3D baskılı bir kaplumbağa tasarlamıştır. Evet, doğru okudunuz. İnsanlara kaplumbağa gibi görünen fiziksel bir nesne, bilgisayara tüfek gibi görünür!
Yazarlar, neredeyse tüm olası dönüşümler (kaplumbağanın döndürülmesi, yakınlaştırılması gibi) karşısında adversarial olan 2D sınıflandırıcı için 3D adversarial örnekler oluşturmanın bir yolunu bulmuşlardır. Hızlı gradyan yöntemi gibi diğer yaklaşımlar, görüntü döndürüldüğünde veya görüş açısı değiştiğinde artık çalışmaz. Athalye ve ark. (2017) EOT (Expectation Over Transformation) algoritmasını önermişlerdir, bu algoritma, görüntü dönüştürüldüğünde bile çalışabilen adversarial örnekler oluşturmak için bir yöntemdir. EOT'nun temel fikri, birçok olası dönüşüm boyunca adversarial örnekleri optimize etmektir. Adversarial örnek ile orijinal görüntü arasındaki mesafeyi minimize etmek yerine, EOT, seçilen dönüşüm dağılımı verildiğinde, ikisi arasındaki beklenen mesafeyi belirli bir eşik değerinin altında tutar. Dönüşüm altındaki beklenen mesafe şu şekilde yazılabilir:
x orijinal görüntü, t(x) dönüştürülmüş görüntü (örneğin döndürülmüş), x’ ise adversarial örnek ve t(x’) onun dönüştürülmüş versiyonudur. Dönüşüm dağılımı ile çalışmanın dışında, EOT yöntemi, adversarial örnek arayışını bir optimizasyon problemi olarak çerçeveleme konusunda tanıdık deseni takip eder. Seçilen sınıf y t örneğin “tüfek” için olasılığı, olası dönüşümlerin dağılımı T boyunca maksimize eden bir adversarial örnek x’ bulmaya çalışıyoruz:
Adversarial örnek x’ ile orijinal görüntü x arasındaki tüm olası dönüşümler üzerindeki beklenen mesafenin belirli bir eşik değerin altında kalması şartıyla:
Bu yöntemin sağladığı imkanlar konusunda endişelenmemiz gerektiğini düşünüyorum. Diğer yöntemler dijital görüntülerin manipülasyonuna dayanıyor. Ancak, bu 3D baskılı, sağlam adversarial örnekler herhangi bir gerçek sahneye yerleştirilebilir ve bir bilgisayarı yanlış sınıflandırmak için yanıltabilir. Bunu tersine çevirelim: Ya biri bir kaplumbağa gibi görünen bir tüfek yaratırsa?
Kör düşman: Black box saldırısı
Aşağıdaki senaryoyu hayal edin: Size Web API aracılığıyla harika görüntü sınıflayıcımın erişimini veriyorum. Modelden tahminler alabilirsiniz, ancak model parametrelerine erişiminiz yok. Kanepe konforundan verileri gönderebilir ve hizmetim karşılık gelen sınıflandırmalarla yanıt verir. Çoğu adversarial saldırı bu senaryoda çalışmak için tasarlanmamıştır çünkü adversarial örnekleri bulmak için altında yatan derin sinir ağının gradyanına erişim gerektirir. Papernot ve meslektaşları (2017)101, iç model bilgisi olmadan ve eğitim verilerine erişim olmadan adversarial örnekler oluşturmanın mümkün olduğunu gösterdiler. Bu tür (neredeyse) sıfır bilgi saldırısına black box saldırısı denir.
Nasıl çalışır:
Saldırıya uğrayacak sınıflayıcı bir rakam sınıflayıcı ise, rakam görüntüleri kullanın gibi, eğitim verileriyle aynı alandan gelen birkaç görüntüyle başlayın. Alan bilgisisine ihtiyaç vardır, ancak eğitim verilerine erişim gerekmez.
Black box’tan mevcut görüntü seti için tahminler alın.
Mevcut görüntü seti üzerinde bir vekil model eğitin (örneğin bir sinir ağı).
Model çıktısının daha fazla varyans göstermesi için pikselleri hangi yönde manipüle edileceğini inceleyen bir sezgi kullanarak yeni bir sentetik görüntü seti oluşturun.
Belirli sayıda epoch için adımlar 2 ila 4'ü tekrarlayın.
Vekil model için hızlı gradyan yöntemi (veya benzeri) kullanarak adversarial örnekler oluşturun.
Orijinal modele adversarial örneklerle saldırın.
Vekil modelin amacı, black box modelinin karar sınırlarını yaklaşık olarak belirlemek, ancak mutlaka aynı doğruluğa ulaşmak değildir.
Yazarlar, bu yaklaşımı çeşitli bulut makine öğrenimi hizmetlerinde eğitilmiş görüntü sınıflayıcılara saldırarak test ettiler. Bu hizmetler, kullanıcı tarafından yüklenen görüntüler ve etiketler üzerinde görüntü sınıflayıcılar eğitir. Yazılım modeli otomatik olarak eğitir – bazen kullanıcı tarafından bilinmeyen bir algoritma ile – ve dağıtır. Sınıflayıcı daha sonra yüklenen görüntüler için tahminler verir, ancak model kendisi incelenemez veya indirilemez. Yazarlar, çeşitli sağlayıcılar için adversarial örnekler bulmayı başardılar ve adversarial örneklerin %84’üne kadar yanlış sınıflandırıldılar.
Bu yöntem, yanıltılması gereken black box modeli sinir ağı değilse bile çalışır. Bu, karar ağaçları gibi gradyanları olmayan makine öğrenimi modellerini içerir.
10.4.2 Siber Güvenlik Perspektifi
Makine öğrenimi, bilinen bilinmezlerle uğraşır: bilinen bir dağılımdan bilinmeyen veri noktalarını tahmin etmek. Saldırılara karşı savunma, bilinmeyen bilinmezlerle uğraşır: adversarial girdilerin bilinmeyen bir dağılımından bilinmeyen veri noktalarını sağlam bir şekilde tahmin etmek. Makine öğrenimi, otonom araçlar veya tıbbi cihazlar gibi giderek daha fazla sisteme entegre edildikçe, aynı zamanda saldırılar için giriş noktaları haline geliyorlar. Bir makine öğrenimi modelinin test veri seti üzerindeki tahminleri %100 doğru olsa bile, modeli yanıltmak için adversarial örnekler bulunabilir. Makine öğrenimi modellerinin siber saldırılara karşı savunulması, siber güvenlik alanının yeni bir parçasıdır.
Biggio ve ark. (2018)102, bu bölümün dayandığı adversarial makine öğrenimi üzerine on yıllık bir araştırmanın güzel bir incelemesini sunar. Siber güvenlik, saldırganların ve savunucuların birbirini defalarca alt ettiği bir silah yarışı gibidir.
Siber güvenlikte üç altın kural vardır: 1) Düşmanınızı tanıyın 2) Proaktif olun ve 3) Kendinizi koruyun.
Farklı uygulamaların farklı düşmanları vardır. İnsanların e-posta yoluyla diğer insanları dolandırmaya çalışmaları, kullanıcıların ve e-posta hizmeti sağlayıcılarının düşman ajanlarıdır. Sağlayıcılar kullanıcılarını korumak ister, böylece kullanıcılar posta programlarını kullanmaya devam edebilir, saldırganlar ise insanların onlara para vermesini istemektedir. Düşmanlarınızı tanımak, onların hedeflerini bilmeyi gerektirir. Bu spam göndericilerin varlığını bilmediğinizi ve e-posta hizmetinin tek kötüye kullanımı müzik korsan kopyaları göndermekse, savunma farklı olurdu (örneğin, metni spam göstergeleri için analiz etmek yerine eklerde telif hakkıyla korunan materyali taramak).
Proaktif olmak, sistemin zayıf noktalarını aktif olarak test etmek ve belirlemek anlamına gelir. Modeli adversarial örneklerle aktif olarak yanıltmaya çalıştığınızda ve ardından onlara karşı savunma yaptığınızda proaktifsiniz. Hangi özelliklerin önemli olduğunu ve özelliklerin tahmini nasıl etkilediğini anlamak için yorumlama yöntemlerini kullanmak, makine öğrenimi modelinin zayıf yönlerini anlamada da proaktif bir adımdır. Veri bilimci olarak, test veri seti üzerindeki tahmin gücünün ötesine hiç bakmadan bu tehlikeli dünyada modelinize güveniyor musunuz? Modelin farklı senaryolarda nasıl davrandığını analiz ettiniz mi, en önemli girdileri belirlediniz mi, bazı örnekler için tahmin açıklamalarını kontrol ettiniz mi? Adversarial girdiler bulmaya çalıştınız mı? Makine öğrenimi modellerinin yorumlanabilirliği, siber güvenlikte büyük bir rol oynar. Proaktif olmanın tersi olan reaktif olmak, sistemin saldırıya uğramasını beklemek ve ancak o zaman problemi anlamak ve bazı savunma önlemleri almak anlamına gelir.
Makine öğrenimi sistemlerimizi adversarial örneklere karşı nasıl koruyabiliriz? Proaktif bir yaklaşım, adversarial örneklerle sınıflayıcıyı yinelemeli olarak yeniden eğitmektir, buna adversarial eğitim de denir. Diğer yaklaşımlar, özelliklerin invariant dönüşümlerini öğrenmek veya sağlam optimizasyon (düzenleme) gibi oyun teorisine dayanır. Önerilen başka bir yöntem, sadece bir tane yerine birden fazla sınıflayıcı kullanmak ve tahmini oylamaktır (ansambl), ancak bu yöntem, hepsinin benzer adversarial örneklerden muzdarip olabileceği için çalışacağına dair bir garanti vermez. Başarılı olmayan bir diğer yaklaşım ise gradyan maskelemedir; orijinal model yerine en yakın komşu sınıflayıcı kullanarak yararlı gradyanları olmayan bir model oluşturur.
Saldırı türlerini, saldırganın sistem hakkında ne kadar bilgi sahibi olduğuna göre ayırt edebiliriz. Saldırganlar mükemmel bilgiye (white box saldırısı) sahip olabilirler, yani modelin türü, parametreleri ve eğitim verileri gibi her şeyi bilirler; saldırganlar kısmi bilgiye (gray box saldırısı) sahip olabilirler, yani sadece kullanılan özellik temsili ve model türünü bilirler, ancak eğitim verilerine veya parametrelere erişimleri yoktur; saldırganlar sıfır bilgiye (black box saldırısı) sahip olabilirler, yani modeli sadece black box şeklinde sorgulayabilirler ancak eğitim verilerine veya model parametreleri hakkında bilgiye erişimleri yoktur. Bilgi seviyesine bağlı olarak, saldırganlar modeli saldırmak için farklı teknikler kullanabilirler. Örneklerde gördüğümüz gibi, black box durumunda bile adversarial örnekler oluşturulabilir, bu nedenle veri ve model hakkında bilgiyi gizlemek saldırılara karşı korumak için yeterli değildir.
Saldırganlar ve savunucular arasındaki kedi-fare oyununun doğası göz önüne alındığında, bu alanda çok fazla gelişme ve yenilik göreceğiz. Sürekli evrilen birçok farklı türde spam e-postayı düşünün. Makine öğrenimi modellerine karşı yeni saldırı yöntemleri icat edilir ve bu yeni saldırılara karşı yeni savunma önlemleri önerilir. En son savunmalardan kaçınmak için daha güçlü saldırılar geliştirilir ve bu şekilde sonsuza dek devam eder. Bu bölümle, adversarial örnekler sorununa karşı duyarlılığınızı artırmayı ve sadece makine öğrenimi modellerini proaktif olarak inceleyerek zayıf noktaları keşfedip düzeltmeyi umuyorum.
Szegedy, Christian, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, and Rob Fergus. “Intriguing properties of neural networks.” arXiv preprint arXiv:1312.6199 (2013).↩︎
Goodfellow, Ian J., Jonathon Shlens, and Christian Szegedy. “Explaining and harnessing adversarial examples.” arXiv preprint arXiv:1412.6572 (2014).↩︎
Su, Jiawei, Danilo Vasconcellos Vargas, and Kouichi Sakurai. “One pixel attack for fooling deep neural networks.” IEEE Transactions on Evolutionary Computation (2019).↩︎
Brown, Tom B., Dandelion Mané, Aurko Roy, Martín Abadi, and Justin Gilmer. “Adversarial patch.” arXiv preprint arXiv:1712.09665 (2017).↩︎
Athalye, Anish, and Ilya Sutskever. “Synthesizing robust adversarial examples.” arXiv preprint arXiv:1707.07397 (2017).↩︎
Papernot, Nicolas, et al. “Practical black-box attacks against machine learning.” Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security. ACM (2017).↩︎
Biggio, Battista, and Fabio Roli. “Wild Patterns: Ten years after the rise of adversarial machine learning.” Pattern Recognition 84 (2018): 317-331.↩︎