Kuru mallar Makine Görebilir 2018 İmaj Yüzleşme Saldırısı Yarışması Deneyimi

AI Technology Review Press : Bu makale, bir Rus veri bilimcisi, makine öğrenimi meraklısı ve bir başlangıç şirketinde bilgisayar görüşü araştırmacısı olan Alexander Aveysov'dan geliyor. 2018 "Makine Görebilir" hasım örnek hücum ve savunma yarışmasına katıldı ve yarışmada ikinci oldu. Bu makale kişisel düşüncelerinin ve bu yarışmanın deneyimlerinin özetidir. AI Technology Review aşağıdaki gibi derlenmiştir.

Tüm rakip saldırılar için basit paradigma

Tam metin özeti

Kısa bir süre önce, "Makine Görebilir 2018" rakip saldırı ve savunma yarışmasına katılma onuruna sahiptim. Aslında yarışmaya girdiğimde çok geç olmuştu (neyse ki yarışma sonunda ikinci bitirdim) Sonunda ekibimiz 4 kişiden oluştu ve ben dahil 3 kişi kazanma kararı verdi Olağanüstü katkılar (hiçbiri olmadan bu tür sonuçlara ulaşamayız).

Bu yarışmanın amacı, yüz görüntüsünü değiştirmektir (SSIM yapısal benzerliğinin alt sınırı 0.95'tir), böylece kara kutu CNN kaynak kişiyi hedef kişiden ayırt edemez.

Kısaca, yarışmanın koşulu, kara kutu modelinin iki yüz görüntüsünü ayırt edemeyeceği şekilde bir yüz görüntüsünü değiştirmektir (en azından "L2 normu / Öklid mesafesi" seviyesinden) .

Bir çatışmada ne rol oynar? Hangi yöntemleri kullandık?

1. Hızlı gradyan gösterim yöntemi (FGSM) gerçekten etkilidir. Sezgisel yöntemler eklemek, performansını biraz artırabilir;

2. Hızlı gradyan değeri yöntemi (FGVM). Sezgisel yöntemler eklemek, performansını büyük ölçüde artırabilir;

3. Gradyan diferansiyel evrim algoritması (burada size algoritma hakkında harika bir makale sunmak için: https://pablormier.github.io/2017/09/05/a-tutorial-on-differential-evolution-with-python /) + piksel seviyesinde saldırı;

4. Model entegrasyonu (6 ResNet-34 gibi en iyi çözümleri istifleyin);

5. Hedef görüntü kombinasyonunun akıllı geçişi;

6. FGVM saldırıları gerçekleştirirken erken durdurma teknolojisinden tam olarak yararlanın.

Bizim için çalışmayan şey şudur:

1. FGVM algoritmasına ivme ekleyin (bu yöntem yalnızca alt sıradaki takımların model performansını iyileştirebilir. Bu nedenle, belki sadece model entegrasyonu + buluşsal yöntemler kullanarak momentumdan daha iyi performans elde edebilir mi?);

2. CW saldırısı (esasen uçtan uca bir saldırı yöntemi, beyaz kutu modelindeki "logitlere" odaklanır (bir olayın oluşumunun olayın gerçekleşmemesine oranının logaritması), https://arxiv.org /abs/1705.07263);

3. "Siyam" bağlantı ağına (UNet'e benzer, ancak RenNet'e dayalı bir mimari) dayalı uçtan uca bir yöntem. Bu yöntem WB için etkilidir, ancak BB için değildir.

Henüz denemediğimiz şeyler (zaman, çaba veya irade eksikliği nedeniyle):

1. Öğrenci ağ öğrenimi için veri geliştirmeyi uygun şekilde test edin (tanımlayıcıyı da değiştirmemiz gerekir);

2. Saldırı sırasında veri geliştirme;

Yarışmaya genel bakış:

1. Yarışma tarafından sağlanan veriler 1000 set 5 + 5 resimden oluşan küçük bir veri setidir (sırasıyla kaynak kişi ve hedef kişi);

2. Öğrenci ağını eğitmek için kullanılan veri seti nispeten büyüktür - 1 milyondan fazla resim;

3. BB, önceden derlenmiş birçok Caffe modeli olarak sağlanır (BB bu ortamda çalıştığı için, elbette bu modeller uygun yazılımın en son sürümünü kullanamaz, bu sorun eninde sonunda ana bilgisayar tarafından çözülecektir). Bu sorun gerçekten biraz acı verici çünkü bu BB görüntülerin toplu olarak işlenmesini kabul etmiyor;

4. Yarışma çok yüksek bir kontrast temeli belirledi (dürüst olmak gerekirse, bu dayanak olmadan hiç kimsenin liderlik tablosunda olmayacağına inanıyorum);

Temel kaynaklar:

1. Modelin son bir kopyasının kod deposu (https://github.com/snakers4/msc-2018-final);

2. Model demomuz (https://drive.google.com/file/d/1P-4AdCqw81nOK79vU_m7IsCVzogdeSNq/view);

3. Tüm kazananların model sunumu (https://drive.google.com/file/d/1aIUSVFBHYabBRdolBRR-1RKhTMg-v-3f/view);

Ayrıntılı açıklama - "Makine Görebilir 2018" yarışmasına genel bakış, nihai sonucu nasıl aldığımı görün

1. Rekabet süreci ve çözümleri

Dürüst olmak gerekirse, bu ilginç yarışmadan etkilendim. Yarışmanın ödülü NVIDIA GTX 1080Ti halka açık grafik kartı ve bence rekabetin rekabet seviyesi nispeten düşük (4000 katılımcıyla Kaggle yarışmasından çok uzaktır + Tüm ODS ekibi eşit düzeydedir.

Yukarıda belirtildiği gibi, yarışmanın amacı BB modelini aldatmaktır, böylece iki farklı kişinin görüntülerini ayırt edemez (L2 normu veya Öklid mesafe ölçüsü kullanarak). Yarışma bir "kara kutu" yarışmasıdır, bu nedenle yarışma tarafından sağlanan verileri öğrenci ağından "ayırmak" (bilgi çıkarmak) için kullanmalıyız ve BB ve WB modellerinin gradyanlarının saldırmak için yeterince benzer olmasını umuyoruz.

Aslında, akademik literatürü (örneğin, bu (https://arxiv.org/abs/1712.07107) ve bunu (https://arxiv.org/abs/1801.00553) tam olarak okursanız, bu makaleler Gerçek yaşam durumunu tartışmadan ve en iyi ekipler tarafından elde edilen bilgileri çıkarmadan, aşağıdaki kalıpları kolayca bulabilirsiniz:

1. En kolay saldırı yöntemi (popüler çerçevelerde), beyaz kutu saldırıları veya bir evrişimli sinir ağının (CNN) iç yapısını (veya yalnızca bir mimarisini) anlamayı içerir;

1.1 Biri benimle sohbet ederken, mimarisini anlamak için kara kutu modelinin zamanını çıkarım için kaydetmemi bile önerdiler, ki bu gerçekten komik!

2. Yeterli veri elde edebiliyorsanız, kara kutu modelini simüle etmek için uygun şekilde eğitilmiş bir beyaz kutu modeli kullanabilirsiniz;

3. Spekülasyona göre şu anda en gelişmiş yöntem:

3.1 Uçtan uca CW saldırısı (burada etki iyi değil);

3.2 Hünerli FGSM algoritma uzantısı (https://arxiv.org/pdf/1710.06081.pdf), örneğin: momentum + model entegrasyonu;

Dürüst olmak gerekirse, bir zamanlar kafamız karışmıştı çünkü ekibimizdeki iki kişi tamamen farklı iki dizi uçtan uca çözüm fark ettiler (ve bunu birbirlerine bilmiyorlardı, bu da iki set tamamladıkları anlamına geliyor) Sistem) ve hiçbiri kara kutu modelini benimsemez. Bu aslında görevimizde model ayarlarımızda bazı gizli faktörleri gözden kaçırdığımız ve bunu fark etmediğimiz anlamına geliyor. Pek çok popüler ve tamamen uçtan-uca bilgisayarla görme uygulamasında olduğu gibi, bunlar size ya çok iyi sonuçlar (örneğin, stil aktarımı, derin havza algoritması (görüntü bölümleme için), görüntü oluşturma, görüntü denoising) ya da temel Çalışmıyor.

Gradyan yöntemi nasıl çalışır?

Aslında, bir beyaz kutu modeli aracılığıyla bir kara kutu modelini simüle etmek için bilgi damıtma tekniğini kullanabilir ve ardından model çıktısına göre giriş görüntüsünün gradyanını hesaplayabilirsiniz. Tüm bunların gizemi sezgisel algoritmada yatmaktadır.

2. Hedef ölçümü

Hedefin ölçüsü, kaynak ve hedef görüntülerin 25 (5 * 5 = 25) kombinasyonunun tamamının ortalama L2 normudur (Öklid mesafesi).

CodaLab'ın (etkinliğin organizatörü) kısıtlamaları nedeniyle, bireysel puanlamanın (ve takım puanlarını birleştirme işleminin) yönetici tarafından manuel olarak yapıldığını düşünüyorum, bu biraz utanç verici.

3. Takım

Sıralamada (AFAIK) diğerlerinden daha iyi öğrenci ağı eğitim sonuçları elde ettiğimde ve Atmyre ile bir tartışmadan sonra (https://github.com/atmyre) (kullanmama yardım etti Doğru derlenmiş kara kutu modeli, çünkü o da böyle bir sorunla karşı karşıya kaldı), mevcut takıma katıldım. Oyunun bitimine 2-3 gün kala, algoritmalarımızı ve kodumuzu paylaşmadan yerel skoru paylaştık:

1. Uçtan uca modelim başarısız oldu (ve onunki de);

2. Öğrenci modelim daha iyi performans gösteriyor;

3. FGVM sezgisel algoritmasının daha iyi varyantlarına sahipler (kodları, taban çizgisine göre değiştirilir);

4. İlk önce gradyan tabanlı modeller üzerinde çalışmaya başladım ve yaklaşık 1,1 yerel puan aldım. Başlangıçta, bazı kişisel nedenlerden dolayı (çok zor olduğunu düşündüm) temel kodu kullanmak istemedim;

5. O sırada yeterli bilgi işlem gücüne sahip değillerdi;

6. Sonunda, bir kumar oynadık ve ilgili stratejilerimizi birleştirdik - devbox iş istasyonuma / evrişimli sinir ağı / model basitleştirme deneyime ve gözlem sonuçlarına katkıda bulundum ve birkaç hafta boyunca revizyonlarına katkıda bulundular. Kod.

Bu sefer mükemmel organizasyon becerileri ve paha biçilmez ekip önerileri için alkışladı! İyi sonuçlar elde ettik.

Ekibin üyeleri şunları içerir:

1. https://github.com/atmyre- Ekibimizin kaptanı (Onun yaptıklarından çıkarım). En çok sunulan versiyonumuza genetik diferansiyel evrim saldırı algoritmasına katkıda bulundu;

2. https://github.com/mortido En iyi FGVM saldırı algoritmasını elde etmek için gelişmiş bir sezgisel algoritma ve temel kodla eğittiği iki model kullandı;

3. https://github.com/snakers4; Bazı model sadeleştirme testlerine ek olarak, önde gelen puanlara, hesaplama gücüne sahip 3 öğrenci modeline katkıda bulundum ve ayrıca model sunumu ve son gönderim aşamasında modeli sürekli iyileştirmem gerekiyor verim;

4. https://github.com/stalkermustang;

Sonunda birbirimizden çok şey öğrendik ve bu konuda kumar oynadığımıza sevindim. Yukarıdaki 3 katkıdan herhangi biri eksikse, kazanmayacağız.

4. Öğrenci evrişimli sinir ağlarının bilgi damıtılması

Temel kod yerine kendi kodumu kullandığım için öğrenci modelini eğitirken en yüksek puanı aldım.

Anahtar noktalar ve katkıda bulunan faktörler:

1. Her mimari için bir lojistik regresyon (LR) modeli sistemi geliştirin;

2. Başlangıçta, eğitim için sadece Adam algoritmasını ve LR zayıflatma teknolojisini kullanmanız gerekir;

3. Ardından, katlama veya / ve döngüsel öğrenme hızı veya ağırlık entegrasyonu gibi diğer daha akıllı uygulamaları kullanın (bunu burada yapmadım);

4. Yetersiz oturtma, fazla oturtma ve model kapasitesini dikkatlice izleyin;

5. Egzersiz ilerlemenizi manuel olarak ayarlayın, tam otomatik programlara güvenmeyin. Normal olarak da çalışabilirler, ancak tüm eğitim ayrıntılarını uygun şekilde ayarlarsanız, eğitim süreniz 2-3 kat kısaltılabilir. Bu, özellikle gradyan sürecini derinlemesine çözen DenseNet gibi modeller için önemlidir;

6. En iyi modeller genellikle çok derindir;

7. Ortalama kare hata kaybı (MSE) yerine L2 kaybının kullanılması da eşit derecede etkilidir, ancak yeterince doğru değildir. Ortalama kare hata kaybıyla eğitilmiş test modelini çalıştırırken, onunla BB modelinin çıkışı arasındaki L2 mesafesinin L2 kaybıyla eğitilen modelden daha küçük olduğu gösterilir. Bunun nedeni, ortalama kare hatası olabilir. Her bir partideki B * 512 örneklerini ayrı ayrı işlemek için yaratıcı yöntemler kullanırsak (daha fazla parametre ayarına ve görüntüler arasında bilgi paylaşımına izin verir), L2 normu ise Her 2 * 512 vektör kombinasyonunu ayrı ayrı işleyin.

İşe yaramayan şey:

1. Başlangıç tabanlı mimari (yüksek alt örnekleme oranı ve daha yüksek çözünürlük gerektiğinden geçerli değildir). Nedense üçüncü sıradaki ekip, başlangıç-v1 mimarisini ve tam çözünürlüklü görüntüleri (yaklaşık 250 * 250) kullanmayı başardı;

2. VGG modeline dayalı mimari (aşırı uyum oluşur);

3. "Hafif" mimari (SqueezeNet / MobileNet-underfitting);

4. Görüntü iyileştirme (tanımlayıcıda değişiklik yapılmadan - üçüncü sıradaki ekip bunu başarmak için çok çalışmasına rağmen);

5. Tam boyutlu resimler kullanın;

6. Ayrıca yarışma organizatörü tarafından sağlanan ağın sonuna bir toplu normalleştirme katmanı da ekledik. Bu takım arkadaşlarıma yardımcı olmadı, kendi kodumu kullandım çünkü bunun neden olduğunu tam olarak anlamıyorum.

7. Belirginlik haritalarının ve tek piksel saldırılarının eşzamanlı kullanımı. Bunun tam boyutlu görüntüler için daha yararlı olduğunu varsayın (sadece 112 * 112 arama alanını ve 299 * 299 arama alanını karşılaştırın);

En iyi modelimiz. Gördüğünüz gibi, en iyi puan 3 * 1e-4'tür (ne kadar düşükse o kadar iyidir). Modelin karmaşıklığına göre BB modelinin bir dereceye kadar ResNet-34 olduğunu tahmin edebilirsiniz Benim testimde ResNet-50 ResNet-34'ten daha kötü performans gösteriyor.

İlk etapta ortalama kare hata kaybının şematik diyagramı

5. Nihai puan ve model basitleştirilmiş analiz

Modelimizin basitleştirilmiş analiz sonucu aşağıdaki şekilde gösterilmektedir:

En iyi çözüm aşağıdaki şekilde gösterilmektedir (evet, bazı insanlar ResNet'i istifleme konusunda şaka yaptılar, ResNet'in bir kara kutu modeli mimarisi olduğunu tahmin ettiler):

Diğer takımlar tarafından sağlanan diğer akıllı ve kullanılmış teknikler:

1. Uyarlanabilir epsilon parametreleri;

2. Veri geliştirme;

3. Eğitim sırasında ivme kullanın;

4. Nesterov momentumu (

5. Görüntüyü çevirmek için aynaya saldırın;

6. Oyunda sağlanan 5000 görüntü kombinasyonundan sadece 1000 benzersiz görüntüyü değiştirin, daha fazla eğitim verisi oluşturabilirsiniz;

Pratik FGVM sezgisel algoritma:

1. Gürültü = eps * kıskaç (grad / grad.std, -2, 2);

2. Gradyan ağırlıklandırma yoluyla birkaç evrişimli sinir ağını (CNN) entegre edin;

3. Değişiklikleri yalnızca modelin ortalama kaybı azaldığında kaydedin;

4. Daha sağlam hedef seçimine ulaşmak için hedef kombinasyonlarını kullanın;

5. Yalnızca ortalama artı standart sapmadan daha büyük gradyanlar kullanın (FGSM algoritması için);

Kısaca özetlemek gerekirse:

1. Birincisi, en "hacker ruhuna sahip çözüm" dür;

2. Ekibimiz en çeşitli çözümlere sahiptir;

3. Üçüncü sıradaki çözüm en "güzel" olandır;

6. Uçtan uca model

Bu yöntem bu yarışmada başarısız olsa da gelecekte denemeye değer. Ayrıntılar için, lütfen yukarıda verilen kod deposuna bakın, ancak kısaca şunu denedik:

1. CW saldırısı;

2. İki amacı olan Siyam bağlantı ağından esinlenen bir model;

Uçtan uca model

Uçtan uca model iş akışı

7. Referanslar ve diğer okuma materyalleri

1. Yarışmanın resmi web sitesi: https://competitions.codalab.org/competitions/19090#participate

2. Kod depomuz: https://github.com/snakers4/msc-2018-final

3. Varyasyonel Otomatik Kodlayıcılar (VAE) hakkında bir dizi makale - bu konuyla çok alakalı görünüyor: https://habr.com/post/331552/

4. Yapısal benzerlikle ilgili bilgiler:

4.1 Wikipedia: https://en.wikipedia.org/wiki/Structural_similarity

4.2 "Kavramı tersine çevirmek için kullanılabilir" in Pytorch uygulaması: https://github.com/Po-Hsun-Su/pytorch-ssim

5. Diferansiyel evrim algoritması hakkında bilgiler:

5.1 Harika blog yayını: https://pablormier.github.io/2017/09/05/a-tutorial-on-differential-evolution-with-python/

5.2 SciPy uygulaması: https://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.optimize.differential_evolution.html

6. Model gösterimi

6.1 Model tanıtımımız: https://drive.google.com/open?id=1P-4AdCqw81nOK79vU_m7IsCVzogdeSNq

6.2 Tüm modellerin demosu: https://drive.google.com/open?id=1aIUSVFBHYabBRdolBRR-1RKhTMg-v-3f

7. En yararlı iki makale:

7.1 https://arxiv.org/pdf/1710.06081.pdf

7.2 https://arxiv.org/abs/1708.03999

8. Çok saygın iki makale:

8.1 https://arxiv.org/abs/1712.07107

8.2 https://arxiv.org/abs/1801.00553

AI Technology Review tarafından derlenen spark-in aracılığıyla. Makalenin sonundaki tıklayın Orijinali okuyun AI etki faktörünü görüntüleyin.

( 0 ) Paylaşmaya hoş geldiniz, yarın görüşürüz!

1980'lerin ve 1990'ların Hong Kong gangster filmleri ve gangster filmlerini aşmak neden zor?
önceki
Egzersiz, tutum gerektirir, yeni nesil Buick Regal GS ile test sürüşü yapın
Sonraki
Xiaomi Pictures'ın tanıtım ve dağıtım departmanı dağıldığını duyurdu ve film ve televizyon endüstrisinin "kapının dışındaki barbarlar" ayrılıyor mu?
Mu Ye'nin klasik "8 Mile" sını hissedin! Eminem x Carhartt ortak projesi yayınlandı!
Tanrıça Gao Leng ile ona sadık komik kız Faye Wong'un birleşimi en güzel görünümü yaşamıştır.
Academia University of Technology Sydney CVPR 2018 Makale: Denetimsiz öğrenme altında gelişmiş yüz anahtar noktası algılayıcı
Yeni nesil Subaru XV satışa çıktı: 20.48-23.48 milyon satıldı
Wang Jing'in 5 kadın yıldızının hepsi tanrıça ve sonuncusu etkileyici!
Yoksulluk hayal gücünü bastırır mı? ! Kim Kardashian bir günde 10 milyon dolar mı alıyor? !
Sabah Okuma | Tayland depremi tsunami tehlikesi altında, Çin Büyükelçiliği acil bir hatırlatma yaptı | Cambridge Üniversitesi, Çin kolejine giriş sınav sonuçlarını tanıdı
Resmi duyuru: Apple HomePod 18 Ocak'ta 2799 yuan fiyatıyla satışa çıkacak
Frankfurt Otomobil Fuarı'nda izlenecek bu 10 şey, sizi arkadaşlarınızın önünde bir yıl geçirebilir
Bin yuan makine değeri başlangıç değeri: Honor Play 8C uygulamalı tur
Kuru ürünler | CNN, görüntüdeki farklı konumlardaki nesneleri nasıl ele alıyor?
To Top