Maison > Article > Périphériques technologiques > Méthodes d'apprentissage automatique optimisées et appliquées à l'apprentissage multitâche
L'apprentissage multitâche est un modèle optimisé conjointement pour plusieurs tâches, dans lequel les tâches associées partagent des représentations et améliore les performances du modèle en apprenant de meilleures limites de décision sur les tâches d'origine. Un seul réseau neuronal est souvent utilisé pour résoudre plusieurs tâches simultanément. En plus de réduire le temps d'inférence, la résolution conjointe de groupes de tâches présente d'autres avantages, tels qu'une précision de prédiction améliorée, une efficacité des données améliorée et un temps de formation réduit.
L'apprentissage multitâche signifie qu'un modèle d'apprentissage automatique peut gérer plusieurs tâches différentes en même temps. Cela peut améliorer l'efficacité de l'utilisation des données, accélérer la convergence des modèles et réduire les problèmes de surajustement, car les modèles peuvent partager des représentations.
L'apprentissage multitâche ressemble davantage aux mécanismes d'apprentissage humains, car les humains acquièrent souvent des compétences transférables. Par exemple, après avoir appris à faire du vélo, il devient plus facile d’apprendre à conduire une moto. C’est ce qu’on appelle le transfert inductif de connaissances.
Ce mécanisme de transfert de connaissances permet aux humains d'apprendre de nouveaux concepts avec seulement quelques exemples ou sans exemples, appelés respectivement « apprentissage par petits échantillons » et « apprentissage par échantillon zéro » en apprentissage automatique.
Toutes les tâches ne sont pas liées. Le déséquilibre des ensembles de données, les différences entre les tâches et le transfert négatif des connaissances posent tous des défis à l'apprentissage multitâche. L’optimisation de la tâche est donc aussi importante que le choix de l’architecture appropriée. Nous discutons ensuite des stratégies d'optimisation pour l'apprentissage multitâche.
1. Construction des pertes
Il s'agit de l'un des moyens les plus intuitifs d'effectuer une optimisation multitâche en équilibrant une fonction de perte unique définie pour des tâches individuelles à l'aide de différents schémas de pondération. Le modèle optimise ensuite une fonction de perte globale afin d'apprendre plusieurs tâches à la fois.
Par exemple, utiliser différents mécanismes de pondération des pertes pour aider à résoudre des problèmes multitâches. Les poids spécifiques attribués à chaque fonction de perte sont inversement proportionnels à la taille de l'ensemble d'entraînement de chaque tâche afin d'éviter de laisser les tâches contenant plus de données dominer l'optimisation.
2. Partage de paramètres durs
Dans le partage de paramètres durs, les couches cachées du réseau neuronal sont partagées tout en conservant certaines couches de sortie spécifiques à la tâche. Le partage de la plupart des couches pour des tâches connexes réduit le risque de surajustement.
Plus un modèle partagé apprend simultanément de tâches, plus il est nécessaire de trouver une représentation qui capture toutes les tâches, et moins il est probable que la tâche d'origine soit surajustée.
3. Partage de paramètres doux
Le partage de paramètres dur ne fonctionne bien que lorsque les tâches sont étroitement liées. Par conséquent, l’objectif du partage de paramètres logiciels est d’apprendre les fonctionnalités qui doivent être partagées entre les tâches. Le partage de paramètres souples fait référence à la régularisation de la distance entre les paramètres de chaque modèle et l'objectif global de formation pour encourager l'utilisation de paramètres de modèle similaires entre différentes tâches. Elle est souvent utilisée dans l’apprentissage multi-tâches car cette technique de régularisation est simple à mettre en œuvre.
4. Échantillonnage des données
Les ensembles de données d'apprentissage automatique sont souvent affectés par une distribution déséquilibrée des données, et l'apprentissage multitâche complique encore davantage ce problème. Parce que des ensembles de données de formation multitâches avec différentes tailles et distributions de données sont impliqués. Les modèles multitâches sont plus susceptibles d’échantillonner des points de données provenant de tâches avec des ensembles de données d’entraînement disponibles plus importants, ce qui entraîne un surapprentissage potentiel.
Pour faire face à ce déséquilibre des données, diverses techniques d'échantillonnage de données ont été proposées pour construire correctement des ensembles de données de formation pour des problèmes d'optimisation multitâches.
5. Planification intelligente des tâches
La plupart des modèles d'apprentissage multitâches décident quelles tâches entraîner à une époque de manière très simple, soit en entraînant toutes les tâches à chaque étape, soit en échantillonnant au hasard un sous-ensemble de tâches à entraîner. Cependant, une planification des tâches intelligemment optimisée peut améliorer considérablement les performances globales du modèle pour toutes les tâches.
6. Modulation de gradient
La plupart des méthodes d'apprentissage multitâches supposent que les tâches individuelles d'optimisation conjointe sont étroitement liées. Cependant, chaque tâche n'est pas nécessairement étroitement liée à toutes les tâches disponibles. Dans ce cas, le partage d'informations avec des tâches non liées peut même nuire aux performances, un phénomène connu sous le nom de « transfert négatif ».
Du point de vue de l'optimisation, la migration négative se manifeste par des gradients de tâches contradictoires. Lorsque les vecteurs gradient de deux tâches pointent dans des directions opposées, le gradient de la tâche en cours dégrade les performances de l’autre tâche. Suivre la moyenne des deux gradients signifie qu’aucune des deux tâches ne connaît les mêmes améliorations que le cadre d’entraînement à tâche unique. La modulation des gradients de tâches constitue donc une solution potentielle à ce problème.
Si un modèle multitâche est formé sur un ensemble de tâches connexes, alors idéalement, les gradients de ces tâches devraient pointer dans des directions similaires. Une méthode courante de modulation de gradient consiste à effectuer un entraînement contradictoire. Par exemple, la méthode GREAT (Gradient Adversarial Training) applique explicitement cette condition en incluant un terme de perte contradictoire dans la formation du modèle multitâche, ce qui encourage les gradients provenant de différentes sources à avoir des distributions statistiquement indiscernables.
7. Distillation des connaissances
La distillation des connaissances est un paradigme d'apprentissage automatique dans lequel les connaissances sont transférées d'un modèle coûteux en termes de calcul (le modèle « enseignant ») à un modèle plus petit (le modèle « étudiant ») tout en maintenant les performances.
Dans l'apprentissage multitâche, l'utilisation la plus courante de la distillation des connaissances consiste à extraire les connaissances de plusieurs réseaux « d'enseignants » monotâches distincts dans un réseau « d'étudiants » multitâches. Il est intéressant de noter que les performances des réseaux d’étudiants dépassent celles des réseaux d’enseignants dans certains domaines, ce qui fait de la distillation des connaissances une approche idéale non seulement pour économiser de la mémoire, mais également pour améliorer les performances.
Les chercheurs de tous les domaines de l'intelligence artificielle utilisent des cadres d'apprentissage multitâches pour développer des modèles d'optimisation des ressources. Des modèles multitâches fiables peuvent être utilisés dans plusieurs domaines d'application avec des contraintes de stockage, ci-dessous Jetons un coup d'œil aux dernières applications de ces modèles dans différents domaines de l'intelligence artificielle.
1. Vision par ordinateur
La vision par ordinateur est une branche de l'intelligence artificielle qui traite de questions telles que la classification d'images, la détection d'objets et la récupération de vidéos. La plupart des modèles de vision par ordinateur à tâche unique sont coûteux en termes de calcul, et l'utilisation de réseaux multitâches pour gérer plusieurs tâches peut économiser de l'espace de stockage et faciliter leur déploiement dans des problèmes plus réels. De plus, cela contribue à atténuer le problème des grandes quantités de données étiquetées nécessaires à la formation du modèle.
2. Traitement du langage naturel
Le traitement du langage naturel (NLP) est une branche de l'intelligence artificielle qui traite le texte d'invite du langage humain naturel (n'importe quelle langue), la parole, etc. Il comprend la traduction de phrases, les sous-titres d’images ou de vidéos, la détection d’émotions et bien d’autres applications. L'apprentissage multitâche est largement utilisé dans les problèmes de PNL pour améliorer les performances de la tâche principale grâce à des tâches auxiliaires.
3. Système de recommandation
Les recommandations personnalisées sont devenues la principale technologie pour aider les utilisateurs à gérer un contenu en ligne massif. Pour améliorer l’expérience utilisateur, les modèles de recommandation doivent prédire avec précision les préférences personnelles des utilisateurs en matière d’articles.
Un exemple de système de recommandation multitâche est le modèle CAML, qui améliore la précision et l'interprétabilité des recommandations explicables en couplant étroitement les tâches de recommandation et les tâches d'explication.
4. Apprentissage par renforcement
L'apprentissage par renforcement est un paradigme de l'apprentissage profond, entre l'apprentissage supervisé et l'apprentissage non supervisé. Dans ce schéma d’apprentissage, l’algorithme apprend en prenant des décisions par essais et erreurs, les décisions correctes étant récompensées et les décisions incorrectes étant punies. Il est couramment utilisé dans les applications robotiques.
Étant donné que de nombreux problèmes d'apprentissage par renforcement n'impliquent pas nécessairement une perception complexe, comme l'utilisation de texte ou de pixels, les exigences architecturales de bon nombre de ces problèmes ne sont pas élevées. Par conséquent, de nombreux réseaux profonds utilisés pour l’apprentissage par renforcement sont des architectures simples entièrement connectées, convolutives ou récurrentes. Cependant, dans les situations multitâches, les informations entre les tâches peuvent être exploitées pour créer des architectures améliorées pour l’apprentissage par renforcement.
Comme le modèle CARE, un encodeur hybride est utilisé pour encoder les observations d'entrée dans plusieurs représentations, correspondant à différentes compétences ou objets. L'agent d'apprentissage est ensuite autorisé à utiliser le contexte pour décider quelle représentation il utilise pour une tâche donnée, lui donnant ainsi un contrôle précis sur les informations partagées entre les tâches, atténuant ainsi le problème de transfert négatif.
5. Apprentissage multimodal
Comme son nom l'indique, l'apprentissage multimodal implique la formation de modèles sur plusieurs modalités de données, telles que l'audio, les images, les vidéos, le texte naturel, etc., qui peuvent ou non. sois pertinent. . L'apprentissage multitâche est largement utilisé pour injecter implicitement des fonctionnalités multimodales dans un modèle unique.
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!