Machine Can See 2018 attaque contre le concours d'image expérience Bisai

Note de Lei Feng réseau AI Technology Review: Cet article Des scientifiques de données Russie, les amateurs d'apprentissage automatique, les entreprises en démarrage dans la vision informatique chercheur Alexander Aveysov. Il a pris part à l'offensive et défensive échantillon conflictuel concours de 2018 annuel « Machine Can See » et a remporté la deuxième place dans la course. Cet article est un résumé de ses sentiments personnels et de l'expérience du jeu. Lei Feng réseau AI Technology Review compilé comme suit.

Tous les simples paradigme attaques conflictuelles

synopsis complet

Il n'y a pas longtemps, j'ai eu la chance de participer à la « Machine Can See 2018 » échantillon conflictuel concours offensif et défensif. En fait, quand je course très tard (Heureusement, j'ai gagné la deuxième place à la fin du jeu), notre équipe finale de quatre personnes, dont trois personnes, y compris moi-même, a fait pour la victoire contribution exceptionnelle (pour éliminer l'un d'eux, nous ne parviendrons pas à de tels résultats).

Les objectifs de la concurrence pour modifier les images visage humain (SSIM SSIM limite inférieure de 0,95), de sorte que la boîte noire ne peut pas être la source de CNN Portrait (personne source) et des portraits cibles (personne cible) zones distinctes.

En bref, la condition de jeu est: modifier une image du visage, ce qui rend le modèle de boîte noire ne peut pas être deux zone d'image de visage séparé (au moins du niveau « norme L2 / distance euclidienne » alors) .

Ce qui fonctionne en attaque est contradictoire? Nous utilisons quelle méthode?

1. Symboles méthode de gradient rapide (FGSM) vraiment efficace. méthodes heuristiques peuvent être légèrement ajoutés pour améliorer les performances;

2. méthode de la valeur de gradient rapide (FGVM). Ajouter heuristiques peut grandement améliorer les performances de celui-ci;

3. algorithme d'évolution différentielle gradient (ici fournissent un excellent article sur l'algorithme pour tout le monde: https: //pablormier.github.io/2017/09/05/a-tutorial-on-differential-evolution-with-python /) + attaques de niveau de pixel;

4. L'intégration du modèle (la meilleure solution à empiler, par exemple, six ResNet-34);

La combinaison de l'image d'objet intelligente traversal;

6. faire pleinement usage de la technologie FGVM attaquer au début d'arrêt (arrêt précoce).

Approche ne fonctionne pas pour nous sont les suivants:

1. algorithme de FGVM pour ajouter l'élan (cette méthode ne peut améliorer les performances du modèle des équipes moins bien classées alors peut-être en utilisant seulement heuristiques modèle d'intégration + sera en mesure d'obtenir une meilleure performance que l'élan.?);

2. C & W à l'attaque (fin de la nature de l'attaque, le rapport de l'événement ne se produit pas, il se concentre sur le modèle boîte blanche « logits » (un certain nombre d'événements), https: //arxiv.org /abs/1705.07263);

3. Méthode à base de fin connexion réseau « siamois » (une sorte de unet une architecture similaire, mais est basée sur présure développé à partir) a. Cette méthode est efficace pour la Banque mondiale, mais pas à BB.

Nous avons pas essayé la pratique (en raison du manque de temps, d'effort ou de volonté):

1. Pour les étudiants réseau d'apprentissage correctement amélioration des données de test (Nous avons également besoin de modifier le descripteur);

2. Les données améliorées au moment de l'attaque;

Aperçu du concours:

1. Les données de compétition fournis par le 1000 est un ensemble de 5 + 5 (respectivement pour la personne source et personne cible) de l'ensemble de données d'image consistant en une combinaison de petites;

2. utilisé pour former des étudiants à des ensembles de données de réseau relativement grande taille - plus de 1 M image;

3. BB est (en raison du logiciel BB en cours d'exécution dans cet environnement, ces modèles ne peuvent pas utiliser le bon déroulement de la dernière version, le problème sera finalement résolu hôte) autant de modèle Caffe compilé pré-offre. En effet, cette question quelque peu douloureuse, parce que le BB n'a pas accepté le traitement par lots d'images;

4. Le jeu établit une base de comparaison très élevée (je ne pense pas honnêtement que la base ne en tête de liste des);

Ressources essentielles:

1. Une copie du dépôt définitif de code de modèle (https://github.com/snakers4/msc-2018-final);

2. Notre modèle démontre (https://drive.google.com/file/d/1P-4AdCqw81nOK79vU_m7IsCVzogdeSNq/view);

3. Le modèle montre tous les gagnants (https://drive.google.com/file/d/1aIUSVFBHYabBRdolBRR-1RKhTMg-v-3f/view);

Description détaillée - Présentation du concours « Machine Can See 2018 », voir comment j'obtenir les résultats finaux

1. Le processus de concurrence et solutions

Pour être honnête, j'ai été attiré à ce jeu intéressant, jeu de prix pour la version publique NVIDIA GTX 1080Ti de la carte graphique et je pense que le niveau de la concurrence relativement faible dans le jeu (ce qui est loin et ceux avec 4000 participants jeu Kaggle + ODS entière de pair d'équipe).

Comme décrit ci-dessus, l'objet du jeu est de tromper modèle BB, nous ne pouvons pas différencier entre les différentes image d'une personne (en utilisant la norme L2 ou mesure de distance euclidienne). Le jeu est une « boîte noire » concours, donc nous devons utiliser le jeu disponible pour nos données, « distillation » (Knowledge Extraction), le réseau étudiant et gradient d'espoir modèle BB et WB peuvent être assez semblables à l'attaque.

En fait, si vous lisez la littérature académique complète (par exemple, celui-ci (https://arxiv.org/abs/1712.07107) et celui-ci (https://arxiv.org/abs/1801.00553), bien que ces documents nous n'avons pas discuté comment la situation dans la vie réelle) et extraire que les connaissances acquises équipe de haut, vous pouvez facilement trouver les modes suivants:

1. Les attaques les plus faciles à atteindre (désormais populaire dans le cadre) se rapporte à l'attaque boîte blanche ou réseau de neurones comprennent convolutionnel (CNN) structure interne (ou simplement un cadre);

1.1 Il a même été suggéré que j'enregistre le modèle de boîte noire pour estimer le temps, de sorte que l'inverseur de poussée son architecture, était si drôle au moment de discuter avec moi!

2. Si vous pouvez obtenir suffisamment de données, vous pouvez utiliser un modèle boîte blanche grâce à la formation appropriée du modèle de boîte noire pour simuler;

La spéculation, la méthode la plus avancée est:

3.1 C & W de fin aux attaques de fin (ici l'effet est pas bon);

3.2 FGSM ingénieux étendu algorithme (https://arxiv.org/pdf/1710.06081.pdf), par exemple: + dynamique intégration du modèle;

Pour être honnête, nous avons été une fois pris dans la confusion, parce qu'il ya deux personnes dans notre équipe pour obtenir un des ensembles très différents de fin à des solutions extrêmes (et entre eux, ils ne le savent pas, qui ont été achevés deux ensembles système), mais ils n'ont pas utilisé le modèle de boîte noire. Ce essentiellement signifie que notre tâche, notre cadre de modèle manqué un facteur caché, mais nous ne le remarquent pas. Comme beaucoup maintenant populaire de bout en bout, comme des applications de vision par ordinateur, ils vous offrent soit avec de très bons résultats (par exemple: le style Migrate, l'algorithme du bassin versant de profondeur (pour la segmentation d'images), génération d'image, image de débruitage), ou de base sur cela ne fonctionne pas.

Comment fonctionne la méthode de gradient

En fait, vous pouvez utiliser les connaissances par une technique de distillation modèle de boîte blanche simule un modèle de boîte noire, puis vous la valeur de calcul des gradients d'image sur la sortie du modèle d'entrée. Et le mystère de tout cela est l'algorithme heuristique.

2. Objectif Metrics

Une métrique cible est d'autant 25 (5 * 5 = 25) image source et l'image cible combinaison de norme moyenne L2 (distance euclidienne).

En raison des restrictions CodaLab (Les organisateurs de l'événement), et je pense que les scores individuels (ainsi que les scores équipe processus de fusion) est effectué manuellement par un administrateur, qui un peu gêné.

3. équipe

Quand je l'ai fait une meilleure formation des étudiants dans le réseau que d'autres sur la liste (AFAIK), et et Atmyre (https://github.com/atmyre) eu une discussion (elle me aider modèle de boîte noire compilé correctement, car elle fait aussi face à ce problème), je me suis joint à l'équipe maintenant. 2-3 jours avant la fin du jeu, nous avons partagé les scores locaux dans le cas de ne pas partager nos algorithmes et du code:

1. modèle My-end a échoué (elle est);

2. Mes élèves de performance meilleur modèle;

3. Ils ont une meilleure variante heuristique FGVM (en fonction de leur code est modifié par rapport au départ);

4. Dans un premier temps, je pris le modèle à base de gradient, et obtenir le score local d'environ 1,1. Au début, certains de mes raisons personnelles (penser qu'il n'y a pas défi aussi) Je ne veux pas utiliser le code de base;

5. ne pas avoir assez de puissance de calcul;

6. Enfin, nous avons pris un pari, les moissonneuses-batteuses politiques respectives - Je contribuais mon devbox poste de travail / convolution neuronale expériences modèles réseau / simplifiées et observations, ils ont apporté leurs modifications pendant plusieurs semaines code.

Cette fois-ci, elle a suggéré acclamait pour ses propres excellentes compétences organisationnelles et une équipe n'a pas de prix! Nous avons obtenu de bons résultats.

les membres de l'équipe comprennent:

1. https://github.com/atmyre-- Elle est notre capitaine de l'équipe (je déduis de ce qu'elle a fait dans). Sa version américaine soumise à la contribution la plus au différentiel de gène attaque algorithme d'évolution;

2. https://github.com/mortido-- ses deux bons modèles pour un algorithme FGVM optimal d'attaque avec des algorithmes heuristiques sophistiqués, et il a utilisé la formation de base de code;

3. https://github.com/snakers4, sauf pour certains tests effectués par les modèles, j'ai aussi contribué trois grands scores des élèves de modèle, la puissance de calcul, et j'ai besoin aussi des présentations de modèles et soumettre étape finale du modèle d'amélioration continue la performance;

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

En fin de compte, nous avons beaucoup appris les uns des autres, je suis heureux que nous ayons mis ce pari. Si vous manquez l'une de ces trois contributions en un, nous ne gagnerons pas.

4. Les élèves convolution réseau de neurones de la connaissance distillée

J'ai reçu le score le plus élevé dans la formation du modèle étudiant, parce que j'utilisé mon propre code au lieu du code de base.

Points clés et facteurs:

1. Chaque schéma développé séparément un système de modèle de régression logistique (LR);

2. Adam d'abord seulement besoin d'utiliser l'algorithme et la formation de la technologie d'atténuation LR;

3. Ensuite, en utilisant le pliage et / ou d'autres encore plus subtile, comme le vélo ou le poids apprentissage pratique d'intégration tarifaire (je ne le faisais pas ici);

4. Surveiller attentivement underfitting, modèle surajustement et de la capacité;

5. manuellement ajuster votre programme de formation, ne comptez pas sur des solutions automatisées. Ils peuvent aussi travailler, mais si vous ajustez correctement tous les détails de la formation, votre temps de formation peut être raccourcie 2-3 fois. Surtout pour un profond processus de résolution modèle gradient DenseNet, ce qui est très importante;

6. Les meilleurs modèles sont souvent très profondes;

7. la perte de la perte L2 au lieu de l'erreur quadratique moyenne (MSE) est tout aussi efficace, mais cela ne suffisait pas précis. Lors de l'exécution de l'essai en utilisant la perte de formation de modèle d'erreur quadratique moyenne, montrant la distance L2 entre le modèle et sa sortie est plus petite que la formation du modèle d'affaiblissement L2 BB. Cela peut être parce que l'erreur quadratique moyenne, si l'on utilise le procédé de l'invention, de traiter chaque lot d'échantillons B * 512 (qui permet plus de paramètres de réglage, et le partage d'informations entre les images) et la norme L2 traiter séparément chaque vecteur en combinaison de 2 * 512.

Ne fonctionne pas est:

1. création architecture (en raison de la haute résolution et un taux d'échantillonnage supérieur doit pas applicable). Je ne sais pas pourquoi, troisième équipe de lieu d'essayer d'utiliser l'architecture création-v1 et images pleine résolution (environ 250 * 250);

2. Modèle d'architecture VGG (équipée passé);

3. architecture "légère" (SqueezeNet / MobileNet-- underfitting);

4. Amélioration de l'image (non descripteurs modifiés - bien que troisième équipe de personnes travaillent dur pour atteindre ce point);

5. Utilisation de l'image en taille réelle;

6. De plus, nous sommes enfin dans un des organisateurs de la compétition de réseau fournis rejoint par une couche de normalisation par lots. Il n'a pas joué pour aider mes coéquipiers, je me suis retrouvé en utilisant leur propre code, parce que je ne comprends pas pourquoi cela se produit. ;

7. La carte utilisation de saillance (cartes de saillance) et une attaque à pixel unique. On suppose que plus utile pour l'image en taille réelle (l'espace de recherche est seulement 112 * 112 * 299 et 299 de l'espace de recherche);

Notre meilleur modèle. Peut être vu, le meilleur score était de 3 * 1E-4 (plus le meilleur). En fonction de la complexité du modèle, vous pouvez deviner d'une manière que le modèle BB est ResNet-34. Dans mes tests, la performance de ResNet-50 est pire que ResNet-34.

MSE schématique première perte

L'analyse finale de score et simplification modèle

Notre analyse du modèle simplifié Les résultats présentés ci-dessous:

La meilleure solution, comme indiqué ci-dessous (oui, il y a des gens blague que vous voulez ResNet empilés, ils devinent ResNet est l'architecture du modèle de boîte noire):

D'autres équipes ont offert une autre utilisation intelligente de la technologie:

1. epsilon paramètres adaptatifs;

2. L'amélioration des données;

3. Utilisez l'élan au cours de la formation;

4. Nesterov dynamique (

L'attaque d'image en miroir inversé;

6. Modifier les données - le jeu offre seulement 1000 images uniques 5000 combinaisons d'images, vous pouvez générer plus de données de formation;

heuristiques FGVM pratiques:

1. Noise = * eps serrage (grad / grad.std, -2, 2);

2. plusieurs réseau neuronal convolutif (CNN) en intégrant gradient pondéré;

3. La seule modification au stockage diminue le modèle de la perte moyenne;

4 pour réaliser la sélection des cibles plus robuste en utilisant la composition cible;

La seule différence plus grande que la moyenne, plus le gradient standard (pour FGSM Algorithmiquement);

Un aperçu rapide:

1. Le premier est le plus « solutions esprit hacker »;

2. Notre équipe a les solutions les plus diverses;

3. La troisième solution est la plus « belle » dans;

modèle 6.-end

En dépit de cette concurrence, cette approche a échoué, mais il était encore la peine d'essayer à l'avenir. Pour plus de détails, s'il vous plaît se référer au référentiel de code fourni ci-dessus, cependant, en quelques mots, nous avons essayé:

1. attaque C & W;

2. Il y a deux objectifs par modèle connexion réseau d'inspiration siamois;

Modèle de fin

modèle de fin du flux de travail

7. Références et lectures

1. Le site officiel de la concurrence: https: //competitions.codalab.org/competitions/19090#participate

2. Notre référentiel de code: https: //github.com/snakers4/msc-2018-final

3. En ce qui concerne la variation de codeurs série (VAE) - le look et le thème est très pertinent: https: //habr.com/post/331552/

4. Informations sur les similitudes structurelles:

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

4.2 « concept peut être utilisé pour l'inversion de poussée » de réalisation Pytorch: https: //github.com/Po-Hsun-Su/pytorch-ssim

5. Informations sur l'algorithme d'évolution différentielle:

5.1 merveilleux Bowen: https: //pablormier.github.io/2017/09/05/a-tutorial-on-differential-evolution-with-python/

5.2 réalisation SciPy: https: //docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.optimize.differential_evolution.html

6. Modèle de démonstration

6.1 Notre modèle démontre: https //Drive.google.com/open id = :? 1P-4AdCqw81nOK79vU_m7IsCVzogdeSNq

6.2 Tous les modèles montrent: https: //drive.google.com/open id = 1aIUSVFBHYabBRdolBRR-1RKhTMg-v-3F?

7. Les deux plus d'articles utiles:

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

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

8. Les deux très respecté papier:

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

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

par étincelle dans, Lei Feng réseau compilé AI Technology Review

édition spéciale Nuts Pro2 tranquillement étagères, rentable pour que les Amis « marteau » difficile de choisir!
Précédent
2018 finale Chaoying pour le film, Marvel Comics Spider-Man: univers parallèle « vous donner une nouvelle surprise!
Prochain
Shu manger des boulettes de riz glutineux Fête des Lanternes, des énigmes et des jeux, regarder flash ... « Dream Inn » pour les touristes étrangers ne sont pas seuls
2018 sélection de dispositif portable annuel qui occupait votre poignet
J'ai entendu adidas chaussures des années 80 SUPERSTAR nouvelles même « tête shell » sont devenus le cuir? !
Froid? Feng Timo a été nommé CCTV! Profitez traitement mosaïque grand-père Lu!
C'est le plus confortable je me suis assis dans la voiture, pas un!
Dans Yi peut sentir les réseaux intelligents 5G Gigabit apporter une nouvelle expérience!
1 seconde à vendre au moins 150000! L'écran enfant de Nokia X6 vendu seulement 10 secondes!
Roadstar.ai significative Joe Tong: construire avec les solutions de caractéristiques chinoises faire des fournisseurs de services futurs Voyage | CCF-GAIR 2018
Première île de Hainan Festival international du film a organisé une promotion de premier "partenaire chinois 2"
A 5 SUV, mais a un chiffre sept, qui invincible espace!
Lumia, au revoir!
rumeur LPL leader Jeux asiatiques: les scores de Look sont faux! Nous prévoyons d'annoncer les résultats!