Apprentissage actif

  • Mise à jour le 25 septembre 2024
  • 1 min. à lire

L'apprentissage actif est une approche en intelligence artificielle et en apprentissage automatique où le modèle participe activement à son propre processus d'apprentissage. Dans cette méthode, l'algorithme identifie et sélectionne les données les plus informatives ou incertaines pour les soumettre à l'étiquetage par un expert humain.

Cette technique est particulièrement utile lorsque l'étiquetage des données est coûteux ou chronophage. Au lieu d'utiliser un large ensemble de données étiquetées, l'apprentissage actif permet d'obtenir des performances similaires avec moins de données, en se concentrant sur les exemples les plus pertinents.

En programmation, l'apprentissage actif est souvent implémenté dans des scénarios tels que :

  1. La classification de textes : l'algorithme sélectionne les documents les plus ambigus pour l'étiquetage humain.
  2. La reconnaissance d'images : le modèle demande l'identification des objets qu'il a du mal à reconnaître.
  3. Le traitement du langage naturel : l'apprentissage actif aide à améliorer la compréhension des nuances linguistiques.

Exemple pratique en Python utilisant la bibliothèque scikit-learn :

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from modAL.models import ActiveLearner

# Chargement des données et préparation
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)

# Initialisation du modèle d'apprentissage actif
learner = ActiveLearner(
    estimator=SVC(gamma='auto'),
    X_training=X_train[:10], y_training=y_train[:10]
)

# Boucle d'apprentissage actif
n_queries = 100
for idx in range(n_queries):
    query_idx, query_instance = learner.query(X_train)
    learner.teach(X_train[query_idx].reshape(1, -1), y_train[query_idx].reshape(1, ))
    X_train = np.delete(X_train, query_idx, axis=0)
    y_train = np.delete(y_train, query_idx)

# Évaluation du modèle final
accuracy = learner.score(X_test, y_test)
print(f"Précision finale : {accuracy:.2f}")

L'apprentissage actif est lié à d'autres concepts en apprentissage automatique tels que l'apprentissage semi-supervisé et l'apprentissage par renforcement. Il peut être utilisé dans divers domaines comme la vision par ordinateur, la robotique, ou l'analyse de sentiments, où l'acquisition de données étiquetées est un défi.

tracking-thumb