Entrainer un réseaux de neurones convolutif grace au ses propre données de sorties

a marqué ce sujet comme résolu.

Bonjour,

Un petit question sur les CNN. Il s’agit de segmentation sémantique (labelliser les pixels d’une image par exemple). Ma difficulté est d’obtenir des données d’entraînement correctes (ici il s’agit de données difficile à segmenter à la main, et donc difficile de quantifier la qualité du résultat par rapport à une référence). Est-ce que ça se fait de réutiliser les données de sortie pour créer un nouveau modèle, sur ce type de CNN ?

Pour les modèles génératifs, ce que j’ai lu se résume plutôt à « shit in, shit out ! ». Mais dans le cas des techniques d’apprentissage par renforcement (alphago par exemple), c’est le contraire. Quid de la segmentation sémantique ?

D’abord, je dois signaler que je ne suis pas expert du domaine, je sais juste ce qu’est un produit de convolution.

Les réseaux de neurones sont très bons pour trouver des corrélations. Le problème ça va être les corrélations fallacieuses (spurious). Dans le cas d’une IA générative, si elle détecte que les images de magiciens sont corrélées avec des G et des K dans les textes, elle va avoir tendance à générer des G et des K quand on lui demande des magiciens (l’exemple n’a aucun sens, à dessein). Peut être pas très souvent, si la corrélation était faible, mais un peu plus souvent que la moyenne. Si tu utilises la sortie comme donnée d’entraînement, la corrélation fallacieuse de ton jeu de données d’origine va devenir une vraie corrélation de ton nouveau jeu de données. Tu vas amplifier les artefacts du premier jeu de données et du premier entraînement.

Dans le cas d’Alphago, il y a un système de vérification externe, les règles du jeu de go, qui disent formellement si tu as gagné ou pas. Si tu dessines un magicien avec un G36K (un fusil d’assaut moderne), et que tu as un système qui permet de dire "les fusils d’assaut ne sont pas autorisés aux magiciens", tu as une opportunité de gommer la corrélation qui existait dans ton jeu de données initial.

Si tu as un moyen de dire ce qui est correct ou non dans les données de sortie de ton premier CNN, tu peux avoir des données utiles à l’entraînement. Dans ton cas, ça semble nécessiter de vérifier manuellement toutes les segmentations. Ça semble pénible, mais peut être que ça l’est moins que de les faire. Dans le cas des IA génératives, c’est pire: les contenus générés peuvent avoir des défauts qui ne seront pas vus par un humain (par exemple un usage un peu trop fréquent des allitérations), mais fausseront des entraînements faits sur ces données générées.

En bref, si tu n’as pas moyen de détecter exhaustivement toutes les erreurs de ton premier CNN, il ne pourra qu’empoisonner les entraînements suivants avec ses propres biais.

Merci pour cette réponse. C’est plutôt clair.

Et dans le cas ou les données d’entrées ne peuvent être parfaites ? Par exemple dans mon cas, effectivement il est difficile de dire ce qui est correcte ou non dans les données de sortie. Mais en fait c’est en partie le cas des données d’entrée et il est certain que même des données segmentées manuellement auront un « taux d’erreur » pas si faible. Mon espoir était qu’en mixant le type de données d’entrée (segmentées manuellement, images de synthèses, segmentées par diverses astuces…), on puisse avoir des biais différents empêchant leur apprentissage systématique par le réseau, et donc des données de sortie meilleurs que chaque données d’entrée individuellement.

Et je pose la question juste au cas où : est-ce que cet empoisonnement serait aussi systématique si l’on s’amuse a utiliser la sortie d’un autre réseaux de neurone avec une autre architecture ?

Dans le cas favorable, les humains font des erreurs aléatoires, qui ne se corrèlent pas bien avec quoi que ce soit. Si les humains font une erreur systématique dans la labellisation des données, tu vas retrouver la même dans ton résultat d’entraînement.

Si on travaille sur la sortie d’un réseau de neurone avec une autre architecture, là encore je ne travaille pas dans le domaine, mais si les réseaux poursuivent le même but, même avec des architectures différentes, il me semble douteux de parier sur le fait que l’un sera orthogonal aux biais de l’autre. Cela étant, je n’ai aucune source pour appuyer cette intuition.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte