Co-training, Co-training, Co-training, Co-training, Co-training, Co-training
Le co-training est une technique d’apprentissage semi-supervisé introduite par Blum et Mitchell en 1998. Cette méthode exploite simultanément plusieurs vues indépendantes d’un même ensemble de données pour améliorer la qualité de la classification, même avec un nombre limité d’exemples étiquetés.
Contexte et problématique
En apprentissage automatique classique, la performance des modèles dépend fortement de la quantité de données étiquetées disponibles. Dans de nombreux domaines, obtenir ces annotations est coûteux ou laborieux. Le co-training vise à tirer parti des données non étiquetées pour améliorer l’apprentissage sans nécessiter de labels supplémentaires.
Principe du co-training
Le co-training repose sur l’hypothèse que les données disposent de deux (ou plusieurs) vues indépendantes et complémentaires. Par exemple, dans un problème de classification d’emails, une vue peut être le texte du message, l’autre la liste des expéditeurs.
Étapes clés du co-training
- Séparation des vues
Les données sont divisées en deux représentations distinctes, chacune suffisamment riche pour apprendre. - Apprentissage initial
Deux classificateurs sont entraînés séparément sur les données étiquetées pour chaque vue. - Auto-labeling sur les données non étiquetées
Chaque classificateur prédit les labels des données non étiquetées. Les prédictions les plus confiantes sont ajoutées à l’ensemble d’entraînement de l’autre classificateur. - Itération
Cette procédure se répète plusieurs fois, chaque modèle renforçant l’autre grâce à ses prédictions fiables.
Conditions nécessaires
Condition | Importance |
---|---|
Indépendance conditionnelle | Les vues doivent être suffisamment indépendantes conditionnellement à la classe. |
Suffisamment informative | Chaque vue doit être capable d’apprendre la tâche seule. |
Illustration schématique
luaCopierModifierVue 1 (texte) ------> Classificateur 1
↘ ↗
Données non étiquetées
↗ ↘
Vue 2 (métadonnées) ---> Classificateur 2
Avantages du co-training
- Utilise efficacement les données non étiquetées.
- Réduit la dépendance aux données étiquetées coûteuses.
- Améliore la robustesse en combinant plusieurs sources d’information.
- Méthode simple à mettre en œuvre.
Limites et précautions
- Hypothèse des vues indépendantes parfois difficile à satisfaire.
- Mauvaises prédictions initiales peuvent s’amplifier (propagation d’erreurs).
- Nécessite une bonne confiance dans les prédictions pour éviter la contamination.
- Complexité accrue si plus de deux vues sont utilisées.
Applications typiques
- Filtrage de spam.
- Classification de documents.
- Analyse d’images avec différentes caractéristiques.
- Bioinformatique (combinaison de données génomiques et cliniques).
Exemple simple en Python (pseudocode)
pythonCopierModifier# Initialisation
classifieur1.train(data_labellee_vue1)
classifieur2.train(data_labellee_vue2)
for iteration in range(max_iter):
pred1 = classifieur1.predict(data_non_labellee_vue1)
conf1 = classifieur1.confidences(data_non_labellee_vue1)
pred2 = classifieur2.predict(data_non_labellee_vue2)
conf2 = classifieur2.confidences(data_non_labellee_vue2)
# Sélection des exemples les plus confiants
confident_examples1 = select_confident(pred1, conf1)
confident_examples2 = select_confident(pred2, conf2)
# Mise à jour des jeux de données étiquetées
data_labellee_vue2 += confident_examples1
data_labellee_vue1 += confident_examples2
# Réentraînement
classifieur1.train(data_labellee_vue1)
classifieur2.train(data_labellee_vue2)
Variantes et évolutions
- Tri-training : extension avec trois classificateurs.
- Co-regularization : ajout de contraintes de régularisation entre vues.
- Multi-view learning : généralisation à plusieurs vues.
Conclusion
Le co-training est une méthode efficace d’apprentissage semi-supervisé qui permet d’exploiter des données non étiquetées grâce à la collaboration de plusieurs classificateurs sur différentes vues. Si les hypothèses sont respectées, elle améliore significativement les performances avec peu de données annotées.