Est-il possible de pré-entraîner un CNN de manière auto-supervisée afin qu'il puisse être utilisé ultérieurement pour résoudre une tâche de segmentation d'instance?
Je voudrais utiliser l'apprentissage auto-supervisé (SSL) pour apprendre les fonctionnalités des images (l'ensemble de données se compose d'images similaires avec de petites différences), puis utiliser le modèle entraîné résultant pour amorcer une tâche de segmentation d'instance.
Je pense à utiliser Faster R-CNN, Mask R-CNN ou ResNet pour la tâche de segmentation d'instance, qui est pré-entraînée de manière SSL en résolvant une tâche prétexte, dans le but que cela conduise à une plus grande précision et aussi enseigner aux CNN avec moins d'exemples pendant la tâche en aval.
Est-il possible d'utiliser SSL pour pré-entraîner par exemple un R-CNN plus rapide sur une tâche prétexte (par exemple, la rotation), puis utiliser ce modèle pré-entraîné pour la segmentation par exemple dans le but d'obtenir une meilleure précision?
Réponses
Est-il possible d'utiliser SSL pour pré-entraîner par exemple un R-CNN plus rapide sur une tâche prétexte (par exemple, la rotation), puis utiliser ce modèle pré-entraîné pour la segmentation par exemple dans le but d'obtenir une meilleure précision?
Oui, c'est possible et cela a déjà été fait. Je ne connais pas les détails (parce que je n'ai pas encore lu ces articles), mais je vais vous fournir quelques liens vers des articles potentiellement utiles (basés sur leurs titres et résumés) et le code associé.
- Segmentation d'instance d'apprentissage par interaction ( code , 2018)
- Apprentissage de transfert auto-supervisé pour la segmentation d'instance par interaction physique ( code , 2019)
- Segmentation du domaine de la matière blanche avec apprentissage auto-supervisé ( code , 2020)
- Estimation de la profondeur auto-supervisée pour régulariser la segmentation sémantique en arthroscopie du genou ( code , 2020)
- Simulation de la résection cérébrale pour la segmentation de la cavité à l'aide de l'apprentissage auto-supervisé et semi-supervisé ( code , 2020)
Vous pouvez probablement trouver des articles plus pertinents ici , où j'ai également trouvé certains des articles qui viennent d'être cités.
Les tâches de pré-texte conçues dans ces documents pourraient être utiles dans votre cas, mais il se peut également que vous deviez développer d'autres tâches de pré-texte ou en combiner plusieurs.
Peut-être que vous pouvez partir d'un R-CNN pré-entraîné plus rapide ou d'un modèle approprié pour la segmentation par exemple (que vous pouvez trouver sur le Web, par exemple, ici ), qui a été pré-entraîné sur certaines données d'imagerie similaires au vôtre (soit avec SSL ou par d'autres moyens), puis essayez d'affiner ce modèle avec votre ensemble de données étiqueté pour la segmentation d'instance, et voyez si vous obtenez de meilleurs résultats que de simplement entraîner un R-CNN plus rapide à partir de zéro. Finalement, si ce modèle pré-entraîné ne conduit pas à des performances plus élevées, vous pouvez le pré-entraîner vous-même avec une technique SSL que vous pouvez mettre au point ou qui est décrite dans la littérature. Bien sûr, vous devriez probablement utiliser un modèle pré-entraîné qui a été pré-formé avec des données pertinentes pour votre tâche en aval (c'est-à-dire la tâche de segmentation d'instance). Vous n'avez pas décrit les détails de vos données non étiquetées et étiquetées, donc je ne peux pas être plus précis (et je ne pourrais pas actuellement, en tout cas, parce que je n'ai pas complètement lu ces articles, et mon expérience avec SSL techniques est principalement théorique).
Pour plus d'informations sur SSL, jetez un œil à ceci et cela répond.