Maison  >  Article  >  Périphériques technologiques  >  Les grands modèles renvoient avec précision les petits modèles, et la distillation des connaissances contribue à améliorer les performances des algorithmes d’IA.

Les grands modèles renvoient avec précision les petits modèles, et la distillation des connaissances contribue à améliorer les performances des algorithmes d’IA.

WBOY
WBOYavant
2023-04-08 20:01:092153parcourir

01 Contexte de la naissance de la distillation des connaissances

Depuis lors, les réseaux de neurones profonds (DNN) ont connu un grand succès tant dans l'industrie que dans le monde universitaire, notamment dans les tâches de vision par ordinateur. Le succès de l'apprentissage profond est en grande partie dû à son architecture évolutive pour coder des données avec des milliards de paramètres. Son objectif de formation est de modéliser la relation entre les entrées et les sorties sur un ensemble de données de formation existant. Les performances dépendent fortement de la complexité du réseau et. la quantité et la qualité des données de formation étiquetées.

Par rapport aux algorithmes traditionnels dans le domaine de la vision par ordinateur, la plupart des modèles basés sur DNN ont de fortes capacités de généralisation en raison de la sur-paramétrisation. Cette capacité de généralisation se reflète dans toutes les entrées de données pour un certain problème. le modèle peut donner de meilleurs résultats de prédiction, qu'il s'agisse de données d'entraînement, de données de test ou de données inconnues appartenant au problème.

Dans le contexte actuel du deep learning, afin d'améliorer l'effet de prédiction des algorithmes métiers, les ingénieurs algorithmiques ont souvent deux solutions :

Utiliser des réseaux plus complexes et paramétrés. Ce type de réseau a de très fortes capacités d'apprentissage, mais nécessite. une grande quantité nécessite plus de ressources informatiques pour la formation et la vitesse d'inférence est plus lente.

Le modèle Ensemble intègre de nombreux modèles avec des effets plus faibles, incluant généralement l'intégration de paramètres et l'intégration de résultats.

Ces deux solutions peuvent améliorer considérablement les performances des algorithmes existants, mais elles augmentent toutes deux l'échelle du modèle, génèrent une charge de calcul plus importante et nécessitent des ressources de calcul et de stockage importantes.

Au travail, le but ultime de divers modèles d'algorithmes est de servir une certaine application. Tout comme pour acheter et vendre, nous devons contrôler nos revenus et nos dépenses. Dans les applications industrielles, en plus d'exiger que les modèles aient de bonnes prédictions, l'utilisation des ressources informatiques doit également être strictement contrôlée. On ne peut pas seulement considérer les résultats sans considérer l'efficacité. Dans le domaine de la vision par ordinateur où la quantité de données d'entrée codées est élevée, les ressources informatiques sont encore plus limitées et l'occupation des ressources de l'algorithme de contrôle est encore plus importante. De manière générale, les modèles plus grands ont de meilleurs résultats de prédiction, mais les problèmes de long temps de formation et de vitesse d'inférence lente rendent difficile le déploiement du modèle en temps réel. Surtout sur les appareils dotés de ressources informatiques limitées, tels que la vidéosurveillance, les véhicules autonomes et les environnements cloud à haut débit, la vitesse de réponse n'est évidemment pas suffisante. Bien que les modèles plus petits aient une vitesse d'inférence plus rapide, en raison de paramètres insuffisants, l'effet d'inférence et les performances de généralisation peuvent ne pas être aussi bonnes. Comment peser des modèles à grande échelle et des modèles à petite échelle a toujours été un sujet brûlant. La plupart des solutions actuelles consistent à sélectionner un modèle DNN de taille appropriée en fonction des performances du terminal dans l'environnement de déploiement.

Si nous voulons avoir un modèle plus petit capable d'obtenir un effet identique ou proche du grand modèle tout en conservant une vitesse d'inférence rapide, comment pouvons-nous le faire ?

Dans l'apprentissage automatique, nous supposons souvent qu'il existe une relation potentielle de fonction de mappage entre l'entrée et la sortie. L'apprentissage d'un nouveau modèle à partir de zéro est une fonction de mappage approximativement inconnue entre les données d'entrée et l'étiquette correspondante. En partant du principe que les données d'entrée restent inchangées, il est difficile de former un petit modèle à partir de zéro pour aborder l'effet d'un grand modèle d'un point de vue empirique. Afin d'améliorer les performances des algorithmes de petits modèles, le moyen le plus efficace consiste généralement à étiqueter davantage de données d'entrée, c'est-à-dire à fournir plus d'informations de supervision, ce qui peut rendre la fonction de cartographie apprise plus robuste et plus performante. Pour donner deux exemples, dans le domaine de la vision par ordinateur, la tâche de segmentation d'instance peut améliorer l'effet de détection de la boîte englobante cible en fournissant des informations de masque supplémentaires ; la tâche d'apprentissage par transfert peut améliorer considérablement les nouvelles tâches en fournissant un modèle pré-entraîné sur un plus grand ; ensemble de données. Par conséquent,

Fournir davantage d'informations sur la supervision

pourrait être la clé pour réduire l'écart entre les modèles à petite échelle et les modèles à grande échelle.

D'après ce qui a été dit précédemment, obtenir plus d'informations de supervision signifie étiqueter davantage de données de formation, ce qui nécessite souvent des coûts énormes. Existe-t-il donc une méthode peu coûteuse et efficace pour obtenir des informations de supervision ? L'article de 2006 [1] soulignait que le nouveau modèle peut être conçu pour se rapprocher du modèle original (le modèle est une fonction). Étant donné que la fonction du modèle d'origine est connue, davantage d'informations de supervision sont naturellement ajoutées lors de la formation du nouveau modèle, ce qui est évidemment plus réalisable.

En y réfléchissant plus loin, les informations de supervision apportées par le modèle original peuvent contenir différentes dimensions de connaissances. Ces informations uniques peuvent ne pas être capturées par le nouveau modèle lui-même. Dans une certaine mesure, c'est aussi une sorte de problème pour le nouveau modèle. Apprentissage « cross-domaine ».

En 2015, Hinton a suivi l'idée d'approximation dans l'article « Distilling the Knowledge in a Neural Network » [2] et a pris les devants en proposant le concept de « Knowledge Distillation (KD) » : vous pouvez d'abord vous entraîner un modèle grand et fort, puis transférer les connaissances qu'il contient au modèle plus petit, atteignant ainsi l'objectif de « maintenir la vitesse d'inférence plus rapide du petit modèle tout en obtenant un effet équivalent ou proche de celui du grand modèle ». Le grand modèle formé en premier peut être appelé le modèle de l'enseignant, et le petit modèle formé plus tard est appelé le modèle de l'étudiant. L'ensemble du processus de formation peut être comparé de manière frappante à « l'apprentissage enseignant-élève ». Au cours des années suivantes, un grand nombre de travaux de distillation des connaissances et d'apprentissage entre enseignants et étudiants ont vu le jour, offrant à l'industrie davantage de nouvelles solutions. Actuellement, le KD a été largement utilisé dans deux domaines différents : la compression de modèles et le transfert de connaissances [3].

Les grands modèles renvoient avec précision les petits modèles, et la distillation des connaissances contribue à améliorer les performances des algorithmes d’IA.


02 Distillation des connaissances

Introduction

La distillation des connaissances est une méthode de compression de modèles basée sur l'idée de « réseau enseignant-élève ». Elle est largement utilisée dans l'industrie en raison de sa simplicité et de son efficacité. . Son objectif est d'extraire les connaissances contenues dans le grand modèle formé - Distill (Distill) - dans un autre petit modèle. Alors comment transférer les connaissances ou la capacité de généralisation du grand modèle au petit modèle ? L'article KD fournit le vecteur de probabilité de la sortie d'échantillon du grand modèle au petit modèle en tant que cible souple, de sorte que la sortie du petit modèle essaie de s'appuyer sur cette cible souple (à l'origine, elle repose sur un codage à chaud) pour approximer l’apprentissage du comportement des grands modèles.

Dans le processus traditionnel de formation aux étiquettes dures, toutes les étiquettes négatives sont traitées de manière uniforme, mais cette méthode sépare la relation entre les catégories. Par exemple, si vous souhaitez reconnaître des chiffres manuscrits, certaines images portant la même étiquette que « 3 » peuvent ressembler davantage à « 8 », et d'autres peuvent ressembler davantage à « 2 ». Les étiquettes rigides ne peuvent pas distinguer cette information, mais une bonne identification. un grand modèle entraîné peut céder. La sortie de la couche softmax du grand modèle, en plus des exemples positifs, les étiquettes négatives contiennent également de nombreuses informations. Par exemple, la probabilité correspondant à certaines étiquettes négatives est beaucoup plus grande que d'autres étiquettes négatives. Le comportement d'apprentissage approximatif permet à chaque échantillon d'apporter plus d'informations au réseau étudiant que les méthodes de formation traditionnelles.

Par conséquent, l'auteur a modifié la fonction de perte lors de la formation du réseau d'étudiants, de sorte que le petit modèle puisse non seulement s'adapter à l'étiquette de vérité terrain des données de formation, mais également s'adapter à la distribution de probabilité de la sortie du grand modèle. Cette méthode est appelée Knowledge Distillation Training (KD Training). Les échantillons de formation utilisés dans le processus de distillation des connaissances peuvent être les mêmes que ceux utilisés pour former le grand modèle, ou un ensemble de transfert indépendant peut être trouvé.

Les grands modèles renvoient avec précision les petits modèles, et la distillation des connaissances contribue à améliorer les performances des algorithmes d’IA.Explication détaillée de la méthode

Plus précisément, la distillation des connaissances utilise le modèle Enseignant-Étudiant, où l'enseignant est le résultat de la « connaissance » et l'élève est le récepteur de la « connaissance ». Le processus de distillation des connaissances est divisé en 2 étapes :

    Formation modèle enseignant :
  • La formation "Modèle enseignant", appelée Net-T, se caractérise par un modèle relativement complexe, qui peut également être intégré à partir de plusieurs formés séparément. deviennent des modèles. Il n'y a aucune restriction sur l'architecture du modèle, la quantité de paramètres ou l'intégration pour le « modèle enseignant » car le modèle n'a pas besoin d'être déployé. La seule exigence est que pour l'entrée X, il puisse générer Y, où Y est mappé par. softmax et la sortie Les valeurs correspondent aux valeurs de probabilité des catégories correspondantes.
  • Formation du modèle étudiant :
  • Formez le "Modèle étudiant", appelé Net-S, qui est un modèle unique avec un petit nombre de paramètres et une structure de modèle relativement simple. De même, pour l'entrée X, il peut générer Y, et Y peut également générer la valeur de probabilité correspondant à la catégorie correspondante après le mappage softmax.
  • Étant donné que les résultats du réseau utilisant softmax peuvent facilement aller à l'extrême, c'est-à-dire que la confiance d'une certaine classe est extrêmement élevée et la confiance des autres classes est très faible. Le modèle auquel il prête attention peut encore appartenir à une certaine classe. En outre, étant donné que les différentes catégories d’informations négatives ont également une importance relative, il n’est pas bon que tous les scores négatifs soient similaires et ne permet pas d’atteindre l’objectif de distillation des connaissances. Afin de résoudre ce problème, le concept de température (Température) est introduit et une température élevée est utilisée pour distiller les informations portées par de petites valeurs de probabilité. Plus précisément, les logits sont divisés par la température T avant de passer par la fonction softmax.

Pendant la formation, les connaissances acquises par le modèle enseignant sont d'abord distillées dans le petit modèle. Plus précisément, pour l'échantillon X, l'avant-dernière couche du grand modèle est d'abord divisée par une température T, puis une cible souple est prédite via softmax. Le petit modèle également De même, l'avant-dernière couche est divisée par la même température T, puis prédit un résultat via softmax, puis utilise l'entropie croisée de ce résultat et de la cible souple dans le cadre de la perte totale d'entraînement. Ensuite, l'entropie croisée de la sortie normale du petit modèle et de la véritable étiquette de valeur (cible dure) est utilisée comme une autre partie de la perte totale d'entraînement. La perte totale pondère les deux pertes ensemble en tant que perte finale pour l'entraînement du petit modèle.

Lorsque le petit modèle est entraîné et doit être prédit, la température T n'est plus nécessaire et elle peut être sortie directement selon le softmax conventionnel.

03 FitNet

Introduction

Le document FitNet introduit des astuces de niveau intermédiaire lors de la distillation pour guider la formation des modèles étudiants. Utilisez un modèle d'enseignant large et peu profond pour former un modèle d'élève étroit et profond. Lors de l'exécution du guidage d'indices, il est proposé d'utiliser une couche pour faire correspondre les formes de sortie de la couche d'indications et de la couche guidée. Dans les travaux futurs, c'est ce qu'on appelle souvent une couche d'adaptation.

En général, cela équivaut à utiliser non seulement la sortie logit du modèle d'enseignant, mais également la carte des caractéristiques de la couche intermédiaire du modèle d'enseignant comme informations de supervision lors de la distillation des connaissances. Ce que l'on peut imaginer, c'est qu'il est trop difficile pour les petits modèles d'imiter directement les grands modèles en sortie (plus le modèle est profond, plus il est difficile à entraîner, et il est assez fatiguant de transmettre la dernière couche de signaux de supervision à l'avant). Il est préférable d'ajouter des signaux de supervision au milieu, afin que le modèle puisse apprendre des fonctions de cartographie plus difficiles couche par couche pendant la formation, au lieu d'apprendre directement la fonction de cartographie la plus difficile. De plus, le guidage par indices accélère la convergence ; du modèle étudiant. Trouver de meilleurs minima locaux sur un problème non convexe permet au réseau étudiant d'être plus profond et de s'entraîner plus rapidement. Il semble que notre objectif soit de permettre aux étudiants de répondre aux questions de l'examen d'entrée à l'université, nous leur enseignons donc d'abord les questions du premier cycle du secondaire (laissons d'abord le petit modèle utiliser la première moitié du modèle pour apprendre à extraire les caractéristiques sous-jacentes de l'image), puis revenez à l'objectif initial, apprendre les questions de l'examen d'entrée à l'université (utilisez KD pour ajuster tous les paramètres du petit modèle).

Cet article est l'ancêtre de la carte des caractéristiques intermédiaires de distillation proposée. L'algorithme proposé est très simple, mais l'idée est révolutionnaire.

Les grands modèles renvoient avec précision les petits modèles, et la distillation des connaissances contribue à améliorer les performances des algorithmes d’IA.

Explication détaillée de la méthode

La méthode spécifique de FitNets est la suivante :

  • Déterminez le réseau d'enseignants et entraînez-le de manière mature pour extraire l'indice de la couche de fonctionnalités intermédiaire du réseau d'enseignants.
  • Mettre en place le réseau des étudiants Ce réseau est généralement plus étroit et plus profond que le réseau des enseignants. Le réseau d'étudiants est formé de manière à ce que les couches de fonctionnalités intermédiaires du réseau d'étudiants correspondent aux indications du modèle d'enseignant. Étant donné que la couche de fonctionnalités intermédiaire du réseau étudiant et la taille des indices de l'enseignant sont différentes, il est nécessaire d'ajouter un régresseur après la couche de fonctionnalités intermédiaire du réseau étudiant pour que l'amélioration de la dimensionnalité des fonctionnalités corresponde à la taille de la couche d'indices. La fonction de perte qui correspond à la couche d'indices du réseau d'enseignants et à la couche de fonctionnalités intermédiaire du réseau d'étudiants transformée par le régresseur est la fonction de perte d'erreur quadratique moyenne.

Dans la formation réelle, il est souvent utilisé en conjonction avec la formation KD dans la section précédente, en utilisant une méthode de formation en deux étapes : utilisez d'abord la formation par indices pour pré-entraîner les paramètres de la première moitié du petit modèle, puis utilisez KD Training pour entraîner tous les paramètres. Étant donné que davantage d'informations de supervision sont utilisées dans le processus de distillation, la méthode de distillation basée sur la carte des caractéristiques intermédiaires fonctionne mieux que la méthode de distillation basée sur les logits des résultats, mais le temps de formation est plus long.

04 Résumé

La distillation des connaissances est très efficace pour transférer des connaissances d'ensembles ou de grands modèles hautement régularisés vers des modèles plus petits. La distillation fonctionne très bien même lorsque les données d'une ou plusieurs classes sont absentes de l'ensemble de données de migration utilisé pour entraîner le modèle de distillation. Après la proposition des classiques KD et FitNet, diverses méthodes de distillation ont vu le jour. À l’avenir, nous espérons également approfondir nos recherches dans les domaines de la compression de modèles et du transfert de connaissances.

À propos de l'auteur

Ma Jialiang est ingénieur senior en algorithmes de vision par ordinateur chez NetEase Yidun. Il est principalement responsable de la recherche, du développement, de l'optimisation et de l'innovation des algorithmes de vision par ordinateur dans le domaine de la sécurité du contenu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer