[ad_1]

Un guide rapide sur la façon de créer un modèle de classification PyTorch

la source: https://pytorch.org/

Bonjour, dans cet article, je voudrais montrer comment construire le modèle PyTorch de classification multi-classes simple. PyTorch est le framework d’apprentissage en profondeur qui connaît la croissance la plus rapide avec une communauté très dynamique. Il existe de nombreux tutoriels et sa documentation est assez complète et étendue. Comme nous ferons la tâche de détecter les tentatives d’usurpation d’identité faciale.

Nous utiliserons le jeu de données du Défi anti-usurpation IDRND. Notre objectif est de construire un modèle qui détecte différentes méthodes de fraude à l’identification faciale : les imposteurs présentent des portraits imprimés, le portent au-dessus de leur visage ou rejouent une vidéo à partir d’un autre écran.

la source: https://github.com/datasouls/idrnd-antispoofing-challenge

L’ensemble de données représente des images en direct et falsifiées de 11 500 sujets. Pour chaque sujet, il dispose de 5 images capturées avec un intervalle de 200 ms et une résolution HD 1080P. L’ensemble de données est collecté dans la nature et présente différentes variations de poses et d’arrière-plans. Les attaques peuvent être de trois types :

  • Masque 2D,
  • rejouer,
  • papier imprimé.

Comme métrique, nous utiliserons ce qui suit

minC = min(P(false_alarm) + 19 P(miss)) by threshold
minC = min(FP/(FP+TN) + 19 FN/(FN+TP))) by threshold

P(false_alarm)— la probabilité de faux positif, P(miss) — la probabilité de faux négatif. Le seuil binarise la probabilité d’usurpation. Le facteur 19 est utilisé pour augmenter la pénalité lorsque le modèle ne détecte pas la véritable tentative d’usurpation.

Traitement de l’information

Pour augmenter la capacité de généralisation du modèle, nous utiliserons les augmentations standard de la torchvision bibliothèque:

  • Rogner redimensionné au hasard
  • AléatoireHorizontalFlip
  • ColorJitter
  • RotationAléatoire

Pour les données d’apprentissage, nous appliquerons les transformations aléatoires et pour la validation uniquement les transformations déterministes.

Nous utilisons la torche Jeu de données et chargeur de données pour traiter les mini-lots de données et les mélanger à chaque époque afin de réduire le surajustement du modèle. En utilisant l’ensemble de données, nous pouvons indexer les images chargées et les étiquettes correspondantes. Le Dataloader nous fournit un itérable qui résume la logique de brassage des lots de données.

Les augmentations sont appliquées au moment de la définition des objets Dataset.

Modèle

Comme modèle, nous utiliserons le resnet50 préformés sur le jeu de données ImageNet. Nous débloquerons les 70 premières couches de l’extracteur de fonctionnalités et ajouterons également le bloc entièrement connecté personnalisé.

Formation et validation

Pour former le modèle, nous avons configuré le classique Adam optimiseur et BCEAvecLogitsPerte. A chaque époque de validation nous passons le modèle en mode évaluation et désactivons le calcul des gradients. Nous calculons également des métriques courantes de perte, de précision et notre pondération personnalisée minC et faites-en la moyenne sur l’ensemble de données.

En conséquence, nous avons obtenu les métriques suivantes.

Dans cet article, nous avons vu comment construire le modèle de classification PyTorch. Comme base, nous avons utilisé le pré-entraîné resnet-50 puis affiné sur notre ensemble de données spécifique. Nous avons également vu comment utiliser les lots de données mélangés avec torche Dataset et Dataloader.

Liens

[ad_2]

Télécharger ici

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Instagram

Ce message d’erreur n’est visible que pour les administrateurs de WordPress

Erreur. Aucun flux trouvé.

Veuillez aller sur la page de réglages d‘Instagram Feed pour connecter votre compte.