Qu'est-ce que l'apprentissage auto-supervisé dans l'apprentissage automatique?

Réponses:

31

L'apprentissage auto-supervisé (ou auto-supervision) est une technique d'apprentissage relativement récente (en machine learning) où les données de formation sont étiquetées de manière autonome (ou automatique). Il s'agit toujours d'un apprentissage supervisé, mais les ensembles de données n'ont pas besoin d'être étiquetés manuellement par un humain, mais ils peuvent par exemple être étiquetés en trouvant et en exploitant les relations (ou corrélations) entre les différents signaux d'entrée (c'est-à-dire les entrées provenant de différentes modalités de capteur). ).

Un avantage et une conséquence naturels de l'apprentissage auto-supervisé est qu'il peut plus facilement (en ce qui concerne, par exemple, l'apprentissage supervisé) être effectué en ligne (étant donné que les données peuvent être collectées et étiquetées sans intervention humaine), où les modèles peuvent être mis à jour ou formé complètement à partir de zéro. Par conséquent, l'apprentissage auto-supervisé devrait également être bien adapté à l'évolution des environnements, des données et, en général, des situations.

Par exemple, considérons un robot équipé d'un capteur de proximité (qui est un capteur à courte portée capable de détecter des objets devant le robot à de courtes distances) et une caméra (qui est un capteur à longue portée , mais qui ne fournit pas un moyen direct de détecter des objets). Vous pouvez également supposer que ce robot est capable d'effectuer une odométrie . Un exemple d'un tel robot est Mighty Thymio .

Considérez maintenant la tâche de détecter des objets devant le robot à des portées plus longues que la portée permise par le capteur de proximité. En général, nous pourrions former un CNN pour y parvenir. Cependant, pour former un tel CNN, en apprentissage supervisé, nous aurions d'abord besoin d'un ensemble de données étiqueté, qui contient des images (ou vidéos) étiquetées, où les étiquettes pourraient par exemple être "objet dans l'image" ou "aucun objet dans l'image". Dans l'apprentissage supervisé, cet ensemble de données devrait être étiqueté manuellement par un humain, ce qui nécessiterait clairement beaucoup de travail.

Pour surmonter ce problème, nous pouvons utiliser une approche d'apprentissage auto-supervisé. Dans cet exemple, l'idée de base est d'associer la sortie des capteurs de proximité à un pas de temps à la sortie de la caméra au pas de temps (un pas de temps plus petit que ).t>ttt

Plus précisément, supposons que le robot soit initialement aux coordonnées (dans le plan), au pas de temps . À ce stade, nous n'avons toujours pas assez d'informations pour étiqueter la sortie de la caméra (en même temps, étape ). Supposons maintenant que, au temps , le robot soit en position . Au pas de temps , la sortie du capteur de proximité sera par exemple "objet devant le robot" ou "pas d'objet devant le robot". Sans perte de généralité, supposons que la sortie du capteur de proximité à soit "pas d'objet devant le robot",(X,y)ttt(X,y)tt>tt sera "aucun objet devant le robot".

Pour plus de détails sur cet exemple spécifique, jetez un œil à l'article Apprendre la perception à long terme en utilisant l'autosurveillance à partir de capteurs à courte portée et de l'odométrie par Mirko Nava, Jérôme Guzzi, R. Omar Chavez-Garcia, Luca M. Gambardella et Alessandro Giusti.

Il est à noter que l'apprentissage auto-supervisé est défini légèrement différemment selon le contexte ou le domaine, qui peut, par exemple, être la robotique, l'apprentissage par renforcement ou l'apprentissage par représentation (ou fonctionnalité). Plus précisément, la définition donnée ci-dessus est utilisée en robotique. Voir, par exemple, également cet article Apprentissage visuel auto-supervisé multi-tâches . Pour une définition légèrement différente de l'apprentissage auto-supervisé, voir, par exemple, l'article Digging Into Self-Supervised Monocular Depth Estimation .

Pour une autre introduction à l'apprentissage auto-supervisé, consultez cet article Web: https://hackernoon.com/self-supervised-learning-gets-us-closer-to-autonomous-learning-be77e6c86b5a . Dans cet article, l'auteur compare également l'apprentissage auto-supervisé à l'apprentissage non supervisé, l'apprentissage semi-supervisé et l'apprentissage par renforcement.

En outre, si vous souhaitez connaître les méthodes actuellement utilisées pour l'apprentissage auto-supervisé, consultez cet article: https://amitness.com/2020/02/illustrated-self-supervised-learning . Dans cet article, l'auteur résume les idées clés des méthodes auto-supervisées existantes avec des diagrammes et une visualisation.

Il existe également une liste organisée de liens vers des articles où cette approche d'apprentissage est utilisée à l'URL suivante: https://github.com/jason718/awesome-self-supervised-learning .

nbro
la source
Je ne suis pas d'accord pour dire que l'apprentissage auto-supervisé signifie que les données sont étiquetées, de sorte que la couche de sortie devrait idéalement égaler les couches. Prenez ceci et ce travail par exemple, ils disent tous les deux qu'ils utilisent un apprentissage auto-supervisé, mais aucun n'utilise d'étiquettes. Au lieu de cela, la perte est calculée en déformant une image dans la vidéo en fonction de la sortie du réseau et en comparant l'image déformée avec une autre image.
HelloGoodbye
@HelloGoodbye Il existe en effet différentes définitions de l'apprentissage auto-supervisé. Je devrais mettre à jour cette réponse. La définition que j'ai utilisée est la plus courante et utilisée en robotique. Tous les autres sont peu liés à l'apprentissage supervisé, leur utilisation est donc un peu inappropriée ou trompeuse. Cette utilisation de l'apprentissage auto-supervisé, en robotique, est la plus appropriée, compte tenu de sa relation avec l'apprentissage supervisé.
nbro
2
Merci d'avoir lié mon post le midi au pirate
Dickey Singh
6

L'apprentissage auto-supervisé consiste à utiliser certaines parties des échantillons comme étiquettes pour une tâche qui nécessite un bon degré de compréhension. Je vais souligner ces deux points clés, avant de donner un exemple:

  • Les étiquettes sont extraites de l'échantillon , de sorte qu'elles peuvent être générées automatiquement, avec un algorithme très simple (peut-être juste une sélection aléatoire).

  • La tâche nécessite de la compréhension . Cela signifie que, pour prédire la sortie, le modèle doit extraire de bons modèles des données, générant sur le processus une bonne représentation.

Un cas très courant d'apprentissage semi-supervisé a lieu dans le traitement du langage naturel, lorsque vous devez résoudre une tâche mais que vous avez peu de données étiquetées. Dans de tels cas, vous devez apprendre une bonne représentation ou un bon modèle de langage, vous devez donc prendre des phrases et confier à votre réseau des tâches d'autosurveillance comme celles-ci:

  • Demandez au réseau de prédire le mot suivant dans une phrase (que vous connaissez parce que vous l'avez retiré).

  • Masquez un mot et demandez au réseau de prédire quel mot y va (ce que vous savez parce que vous avez dû le masquer).

  • Changez le mot pour un mot aléatoire (cela n'a probablement pas de sens) et demandez au réseau quel mot est incorrect.

Comme vous pouvez le voir, ces tâches sont assez simples à formuler et les étiquettes font partie du même échantillon, mais elles nécessitent une certaine compréhension du contexte à résoudre.

Et c'est toujours comme ça: modifiez vos données d'une manière ou d'une autre, générez l'étiquette dans le processus, et demandez au modèle quelque chose lié à cette transformation. Si la tâche nécessite une compréhension suffisante des données, vous réussirez.

David
la source
2

La reconnaissance visuelle auto-supervisée est souvent appliquée à l'apprentissage de la représentation. Ici, nous apprenons d'abord les fonctionnalités sur les données non étiquetées (apprentissage de la représentation), puis nous apprenons le vrai modèle sur les fonctionnalités extraites des données étiquetées. Cela est particulièrement logique lorsque nous avons beaucoup de données non étiquetées et peu de données étiquetées.

Les fonctionnalités peuvent être apprises en résolvant des tâches dites de prétexte . Des exemples de tâches de prétexte consistent à prédire la rotation d'une image gigue, à reconnaître les instances à gigue d'une même image ou à prédire la relation spatiale des patchs d'image.

Un bel aperçu et des résultats intéressants peuvent être trouvés dans ce récent article.

ssegvic
la source