03 contre des exemples d'attaques

Contre des exemples d'attaques

Github: https: //github.com/Gary11111/03-GAN

Contexte de la recherche

Bien que l'apprentissage en profondeur ait bien fonctionné dans de nombreuses tâches dans le domaine de la vision par ordinateur, Szegedy a d'abord découvert que les réseaux de neurones profonds présentaient des faiblesses intéressantes dans le domaine de la classification d'images. Ils prouvent que malgré la grande précision, les réseaux profonds modernes sont très vulnérables aux attaques contre les échantillons. Ces échantillons contradictoires n'ont qu'une légère perturbation, de sorte que le système visuel humain ne peut pas détecter cette perturbation (l'image est presque la même). Une telle attaque amènerait le réseau neuronal à changer complètement sa classification des images. De plus, la même perturbation d'image peut tromper de nombreux classificateurs de réseau.

Critères d'évaluation impliqués dans les échantillons de confrontation

Utilisez un exemple spécifique pour illustrer les trois indicateurs

Si une classe a 80 garçons et 20 filles, un total de 100. L' objectif est de trouver toutes les filles. Maintenant, quelqu'un sélectionne 50 personnes, dont 20 filles, et choisit par erreur 30 garçons comme filles. En tant qu'évaluateur, vous devez évaluer son travail

  • Précision

    Pour un ensemble de données d'arbre de stratégie donné, le classificateur classe correctement le rapport des échantillons au nombre total d'échantillons. Dans la scène de début, cette personne a correctement classé 20 filles et 50 garçons.

    une c c = ( 20 + 50 ) / 100 = 70 acc = (20 + 50) / 100 = 70%

    Si vous vous concentrez uniquement sur le taux de précision, il y aura un problème: supposons que je traite toutes les personnes comme des garçons, de sorte que mon taux de précision puisse atteindre 80%, mais cet algorithme est évidemment déraisonnable, il doit donc conduire au rappel et à la précision.

  • TP, FN, FP, TN

    Catégorie positive associée Classe négative non pertinente
    Récupéré TP: catégorie positive jugée positive (20 filles sur 50) PF: La catégorie négative est jugée positive (30 garçons sur 50 sélectionnés)
    Non récupéré FN: La catégorie positive est jugée négative (en supposant qu'une fille n'est pas échantillonnée, elle est considérée comme un garçon) TN catégorie négative jugée comme catégorie négative (50 garçons non échantillonnés)
  • Taux de rappel (rappel)

    R = T P T P + F N R = \ frac {TP} {TP + FN} Le calcul est le suivant: tous les résultats corrects récupérés représentent la proportion de toutes les catégories positives.

  • Précision

    P = T P T P + F P P = \ frac {TP} {TP + FP} Le calcul est le suivant: les résultats corrects récupérés représentent la proportion de tous les résultats récupérés.

Façons de combattre les attaques

Les deux méthodes de classification décrites ci-dessous sont les modes d'attaque les plus couramment utilisés pour tester l'efficacité des modèles de défense en utilisation pratique. Selon que l'attaquant peut maîtriser l'algorithme d'apprentissage automatique, il est divisé en attaques en boîte blanche et en boîte noire. Selon la cible d'attaque (par rapport au classement final), elle est divisée en attaque ciblée et attaque non cible. Parmi eux, les concepts d'attaque de boîte noire et d'attaque de boîte blanche seront mentionnés à plusieurs reprises dans l'article sur les algorithmes de défense. Généralement, les nouveaux algorithmes proposés sont sujets à l'attaque de la boîte noire et à l'attaque de la boîte blanche.

  • Attaque de boîte blanche: l'attaquant peut apprendre l'algorithme utilisé par l'apprentissage automatique et les paramètres utilisés par l'algorithme. Les attaquants peuvent interagir avec les systèmes d'apprentissage automatique dans le processus de génération de données d'attaques contradictoires.
  • Attaque de boîte noire: l'attaquant ne connaît pas l'algorithme et les paramètres utilisés par l'apprentissage automatique, mais il peut toujours interagir avec le système d'apprentissage automatique. Par exemple, il peut observer la sortie et juger la sortie en passant n'importe quelle entrée.
  • Attaque ciblée: pour une image, un échantillon contradictoire est généré, de sorte que l'étiquetage sur le système d'étiquetage n'a rien à voir avec l'étiquette d'origine, c'est-à-dire que tant que l'attaque est réussie, il n'y a pas de limite à quelle catégorie appartient l'échantillon accusatoire.
  • Attaque sans cible: pour une image et une phrase d'étiquetage cible, générez un échantillon contradictoire, de sorte que l'étiquetage sur le système d'étiquetage soit exactement le même que l'étiquette cible, c'est-à-dire que non seulement l'attaque est nécessaire pour réussir, mais également que l'échantillon accusatoire généré appartient à une classe spécifique.

Défense conflictuelle

  • Formation contradictoire: La formation contradictoire vise à former un modèle robuste à partir de poids initialisés aléatoirement. Son ensemble de formation se compose d'un ensemble de données réelles et d'un ensemble de données ajoutées avec anti-perturbation, c'est ce qu'on appelle la formation contradictoire.

  • Masque de dégradé: Étant donné que de nombreuses méthodes de génération anti-échantillon actuelles sont basées sur la génération de gradient, si le gradient d'origine du modèle est masqué, il peut avoir pour effet de résister à l'attaque anti-échantillon.

  • Randomisation: introduction de couches aléatoires ou de variables aléatoires dans le modèle d'origine. Faites en sorte que le modèle présente un certain caractère aléatoire, améliorez globalement la robustesse du modèle et augmentez sa tolérance au bruit.

  • Débruitage: Avant de juger le modèle d'entrée, l'échantillon contradictoire actuel est débruité et les informations qui provoquent des perturbations sont supprimées pour l'empêcher d'attaquer le modèle.

Tâche

  • Produit untargetcontre des échantillons

    Objectif de la mission: générer des échantillons adversaires non ciblés et calculer le taux de réussite. La méthode d'attaque non ciblée consiste à faire une classification erronée du modèle en entrée, donc la meilleure façon est de rendre le gradient de l'entropie croisée aussi grand que possible par rapport aux échantillons, à tf L'implémentation peut inverser la perte et utiliser l'optimisation SGD. De nombreuses expériences ont montré que le taux de réussite de la non-cible est fondamentalement supérieur à 95% Les figures 3.1 et 3.2 montrent l'effet après l'attaque. On peut voir que vgg16 est trompé à condition que l'image ne puisse pas être distinguée à l'œil nu et que la confiance du modèle atteigne une valeur plus élevée.

    Faites que VGGNET tourne mal

    Les étiquettes des images originales sont les suivantes:

    Insérez la description de l'image ici

    Après avoir utilisé l'attaque DeepFool:

    Insérez la description de l'image ici

  • Rejoignez la régularisation

    • Pour utilisertotal variation

      Insérez la description de l'image ici

      Success rate of this attack is 0.9333333333333333
      Noise norm of this attack is 25.494400024414062
      
    • Utilisez pour l2calculer la perte par rapport à l'échantillon et à l'échantillon d'origine

      Insérez la description de l'image ici

      Success rate of this attack is 1.0
      Noise norm of this attack is 23.5655111137727132
      
  • L'augmentation de l'amélioration de l'image à la défense

    transformation affine, ajout de bruit de sel et de poivre, estompage

    Vérifiez si les échantillons contradictoires peuvent toujours prendre effet après l'ajout de ces méthodes.

    • Transformation affine

      def affineTrans(img):
          pts1 = np.float32([[10, 10], [20, 5], [5, 20]])
          pts2 = np.float32([[10, 8], [18, 5], [5, 20]])
          M = cv2.getAffineTransform(pts1, pts2)
          return cv2.warpAffine(img, M, (32, 32))
      
      • Le taux de réussite de cette attaque est de 0,99
      • La norme de bruit de cette attaque est de 15,59846019744873

Insérez la description de l'image ici

  • Bruit de sel et de poivre

    Insérez la description de l'image ici

    def noise(img, SNR=0.7):
        img_ = img.transpose(2, 1, 0)
        c, h, w = img_.shape
        mask = np.random.choice((0, 1, 2), size=(1, h, w), p=[SNR, (1 - SNR) / 2., (1 - SNR) / 2.])
        mask = np.repeat(mask, c, axis=0)  # 按channel 复制到 与img具有相同的shape
        img_[mask == 1] = 255  # pepper
        img_[mask == 2] = 0  # white
        return img_.transpose(2, 1, 0)
    
    • Le taux de réussite de cette attaque est de 0,98
    • La norme de bruit de cette attaque est de 20,688474655151367
  • Flou

    Utilisez la fonction de flou fournie avec cv2

    img = cv2.blur(img, kernel = (1, 1)) # kernel越大图像越模糊
    

    Insérez la description de l'image ici

    • Le taux de réussite de cette attaque est de 1,0
    • La norme de bruit de cette attaque est 12.38012695312
  • Superposition de trois effets

    Insérez la description de l'image ici

  • Générer des échantillons contradictoires cibles

    Attribuez aléatoirement une classe afin que l'échantillon soit déterminé par le classificateur comme cette classe (la fonction de perte peut devoir être modifiée).

    Cette expérience a sélectionné la catégorie de camion comme cible, dans l'espoir de convertir tous les échantillons dans la catégorie de camion. Mais dans l'expérience, il a été constaté que la probabilité de réussite de l'expérience n'était que d'environ 0,3, mais tous les échantillons ont dévié de l'étiquette d'origine, c'est-à-dire trompé avec succès le réseau neuronal. Dans l'expérience, j'ai utilisé deux ensembles de schémas pour comparer les résultats:

    lr0.01 + epoch500

    Insérez la description de l'image ici

    lr0.005 + epoch2000

    Pardonnez-moi de ne pas vouloir réexécuter l'image

    L'effet expérimental est le suivant: Un phénomène magique a été trouvé dans l'expérience. Bien que le taux de réussite de l'échantillon d'attaque cible soit d'environ 50%, il y a encore près de 48% des échantillons contradictoires qui seront classés par vgg16 comme une autre étiquette. Les résultats spécifiques peuvent être vus sur la figure 3.10. En prenant une attaque comme exemple, la cible de l'attaque que j'ai spécifiée est la catégorie 9, camion. Mais après l'attaque, 40% + sont distribués dans des automobiles de type 2. L'auteur soupçonne que ce résultat peut être dû au fait qu'après l'ajout de bruit, certaines caractéristiques de l'image rendent le réseau VGG instable et indiscernable, et le camion et l'automobile sont également deux catégories très similaires, nous pouvons donc tirer cette hypothèse: cible L'attaque a réussi, mais comme la perturbation de l'échantillon était trop importante, le vgg a oscillé entre deux étiquettes similaires, automobile et camion, pendant la classification, et la distribution de probabilité était à peu près la même.

    Insérez la description de l'image ici

On peut conclure que l'attaque cible est réussie, mais parce que la perturbation de l'échantillon est trop importante, elle fait osciller vgg entre les deux étiquettes similaires, automobile et camion, et la distribution de probabilité est à peu près Le même phénomène.

Publié 6 articles originaux · reçu 1 · vues 390

Je suppose que tu aimes

Origine blog.csdn.net/gky_1111/article/details/105393284
conseillé
Classement