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

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.

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
où 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