Valider votre simulation pour le Machine Teaching

Le moteur d’apprentissage utilise l’apprentissage de renforcement (RL) pour structurer l' Bonsai apprentissage des machines pour les cerveaux. Les simulations prennent en charge l’apprentissage par renforcement avec des données et un environnement interactif pour l’entraînement itératif. Toutefois, toutes les simulations ne sont pas compatibles avec le Machine Teaching. La vérification de la disponibilité de votre simulation est essentielle pour la formation d’un cerveau avec Bonsai .

Important

Les étapes ci-dessous représentent les bonnes pratiques de base pour la validation des simulations. Le développement d’un processus de validation complet et pertinent pour le domaine passe nécessairement par une expérimentation propre à la situation et par des comparaisons avec des données réelles. L’objectif de tout plan de validation doit être d’identifier et de résoudre les écarts importants entre votre environnement simulé et le véritable environnement dans lequel le cerveau est appelé à être déployé.

Avant de commencer

  • Vérifiez que vous pouvez interagir avec votre simulation programmatiquement. Vous pouvez utiliser le langage de programmation de votre choix.
  • Assurez-vous que Bonsai prend en charge votre plateforme de simulation (ou la langue).

Étape 1 : Vérifier votre fonction d’exécution pas à pas

Pour prendre en charge l’apprentissage par renforcement, votre simulateur doit réagir aux modifications d’informations itératives. Pour gérer les modifications itératives, votre simulation doit inclure une fonction d’exécution pas à pas. Cette fonction accepte des variables d’entrée (action) et retourne des valeurs de sortie (état) sauf si une condition de fin se produit.

  • Les variables d’entrée représentent les actions effectuées par votre Bonsai cerveau lors de l’itération précédente .
  • Les variables de sortie fournissent des informations de résultat que le cerveau utilise pendant l’itération actuelle.

Par exemple, considérez une simulation de chauffage, ventilation et climatisation (HVAC) pour rucher qui contrôle la température en manipulant des évents d’aération. Le nombre et la position des évents ouverts sont les variables d’entrée. La température interne du rucher est l’état de sortie. Pour utiliser le Machine Teaching, la simulation doit autoriser des modifications itératives de la position et du nombre d’évents ouverts et retourner la nouvelle température à chaque itération.

Pour vérifier votre fonction d’exécution pas à pas :

  1. Vérifiez que le jeu d’actions de contrôle d’entrée attendu correspond au jeu d’actions avec lequel le cerveau doit effectuer son entraînement ou qu’il est un sur-ensemble de ce jeu d’actions.
  2. Vérifiez que votre fonction d’exécution pas à pas est déterministe. En d’autres termes, toutes les entrées possibles ont un état de sortie ou une condition de fin correspondante.
  3. Vérifiez que les informations d’état de sortie utilisent des unités correctes. Par exemple, si le cerveau attend une température en degrés Celsius, vérifiez que votre simulation n’envoie pas d’informations de température en degrés Kelvins.

Étape 2 : Vérifier les conditions de fin et la fonction de réinitialisation

Dans le cadre d’une simulation itérative, il est important de savoir quand arrêter et réinitialiser le processus. Les conditions de fin permettent à la simulation de savoir quand le cerveau a atteint un point auquel la récupération n’est plus possible. Par exemple, la température à l’intérieur d’un rucher a atteint un point auquel les abeilles sont mortes.

Quand une condition de fin se produit, votre fonction de réinitialisation doit rétablir l’environnement dans votre simulation à l’état de démarrage attendu afin que le cerveau puisse renouveler l’opération.

Pour vérifier les conditions de fin et la fonction de réinitialisation :

  1. Vérifiez que les conditions de fin peuvent réellement se produire dans le cadre de la sortie de la simulation. Par exemple, si la simulation du rucher est définie dans un environnement tropical et qu’elle ne prend fin que quand la température chute en dessous de zéro, elle ne se termine jamais.
  2. Confirmez que votre fonction de réinitialisation est exposée aux utilisateurs pour qu’elle puisse être appelée par la Bonsai plateforme.
  3. Vérifiez que vous gérez correctement les cas ambigus. Par exemple, s’il est possible que les températures changent de plus d’un degré dans une itération, recherchez l’existence de valeurs supérieures à une valeur limite, plutôt qu’une égalité.

Étape 3 : Vérifier les variables de configuration

Votre simulateur doit prendre en charge l’initialisation des variables d’environnement, ce qui permet à votre Bonsai cerveau de former un grand nombre de scénarios. Par exemple, une simulation HVAC pour rucher doit prendre en charge toute température de départ raisonnable.

Pour vérifier les variables de configuration :

  1. Vérifiez que l’ensemble des variables de configuration disponibles couvre toutes les informations d’état de départ pertinentes.
  2. Vérifiez que les variables de configuration peuvent être définies par votre fonction de réinitialisation.
  3. Vérifiez que les unités de la simulation et celles du cerveau correspondent ou sont converties correctement.

Étape 4 : Concevoir un protocole de test de base

Un protocole de test de base établit un cas simple (base) et exécute les étapes de la simulation dans une boucle pour ce cas, un nombre prédéfini d’itérations. Utilisez les données de sortie générées pour effectuer une analyse plus approfondie afin de vérifier que votre simulateur se comporte comme prévu.

Votre protocole de test de base dépend de deux métriques :

  • Fréquence de contrôle : fréquence à laquelle le cerveau entreprend des actions pour contrôler l’environnement simulé, représentée sous la forme d’une mesure d’événements par métrique, généralement notée en Hertz (Hz). La métrique de la fenêtre de contrôle doit refléter la mesure réelle (temps, distance) que le cerveau entraîné est censé utiliser quand il évalue l’environnement réel et entreprend une action pour le contrôler.
  • Temps de simulation : quantité de temps d’horloge réel nécessaire pour simuler la fenêtre de contrôle souhaitée. Le temps de simulation pour une itération donnée varie en fonction de la complexité de la simulation.

Pour déterminer une fréquence de contrôle appropriée, calculez le nombre d’événements de contrôle que le cerveau doit gérer dans une unité significative de votre métrique de contrôle. Les systèmes de contrôle basés sur le temps calculent généralement la fréquence de contrôle en événements par seconde, tandis que les systèmes de contrôle basés sur la distance la calculent généralement en événements par compteur.

Par exemple, supposons que vous souhaitiez que le cerveau HVAC pour rucher évalue l’état du rucher et prenne une mesure toutes les 100 ms quand il est déployé. Pour imiter efficacement votre environnement de production, chaque itération d’entraînement doit simuler une fenêtre de 100 ms avec une action de contrôle par itération.

1 événement tous les 100 ms → 1 événement / 100 ms

1000 ms par seconde → (1 événement / 100 ms) × (1000 ms / 1 seconde) → fréquence cible est de 10 événements de contrôle par seconde

Par définition :

1 Hz = 1 événement par seconde

Ainsi, pour vérifier que votre simulation réplique l’environnement de manière appropriée, votre protocole de test de base doit utiliser une fréquence de contrôle de 10 Hz.

Notes

La définition de la fréquence de contrôle en Hertz est classique, mais pas obligatoire. Au bout du compte, vous devez déterminer le nombre d’événements de contrôle souhaités pour une mesure donnée. Une fois que vous connaissez la fréquence à laquelle vos événements de contrôle doivent se produire, vous pouvez déterminer le reste des variables de test.

Après avoir calculé la fréquence de contrôle, vous pouvez utiliser les étapes suivantes pour concevoir un protocole de base général que vous pouvez adapter aux spécificités de votre simulation :

  1. Exécutez votre simulation avec une configuration par défaut pour générer un fichier journal standard.
  2. En fonction de votre fréquence de contrôle et du fichier journal, déterminez le nombre maximal d’itérations que vous souhaitez autoriser pour les épisodes d’entraînement.
  3. Assurez-vous que vous pouvez calculer et journaliser les informations suivantes pour chaque itération du test :
    1. Tous les états de sortie fournis par le simulateur
    2. La valeur de fréquence de contrôle réelle obtenue par la simulation
    3. La valeur de temps de simulation obtenue pour l’itération
  4. Analysez la relation entre les entrées et les sorties de votre fichier journal pour identifier un scénario de configuration simple (test).
  5. Définissez au moins un scénario de test fixe. Sélectionnez une configuration de démarrage appropriée et déterminez les actions de contrôle attendues (réponses de stratégie) pour chaque itération du scénario de test.
  6. Définissez au moins un scénario de test aléatoire. Pour une configuration de démarrage arbitraire, écrivez un code de test qui sélectionne de manière aléatoire l’une des actions de contrôle disponibles pour chaque itération du scénario de test.
  7. Écrivez un code de test pour appeler la fonction d’exécution pas à pas avec l’entrée souhaitée (fixe ou aléatoire) pour chaque itération et répétez le processus jusqu’à ce qu’il atteigne une condition de fin ou le nombre maximal d’itérations que vous avez déterminé.

Étape 5 : Exécuter un protocole de test de base

La validation de la simulation est un processus itératif. En règle générale, vous devez exécuter votre protocole de test plusieurs fois avec des configurations de démarrage différentes et réexécuter le protocole à mesure que vous apportez des ajustements à la simulation.

Conseil

Pour obtenir les meilleurs résultats, vous devez avoir plusieurs configurations définies pour vos stratégies fixe et aléatoire.

Pour chaque série de tests :

  1. Définissez le simulateur avec l’état initial de votre scénario de test.
  2. Exécutez la simulation avec des entrées différentes pour le scénario de test fixe.
  3. Exécutez la simulation avec des entrées différentes pour le scénario de test aléatoire.
  4. Exécutez la simulation pour un grand nombre d’itérations afin qu’une réinitialisation puisse se produire.
  5. Exécutez la simulation et forcez une réinitialisation à un point aléatoire.
  6. Exécutez la simulation avec une configuration initiale qui force une réinitialisation.

Étape 6 : Analyser les résultats de votre test

Il n’existe aucun moyen idéal d’analyser les résultats d’un test de simulation. Certaines bonnes pratiques sont indiquées ci-dessous, mais vous devez également vous en remettre à votre créativité et à votre expertise pour évaluer le comportement de votre simulation. Le traçage de vos résultats sous la forme d’entrées et de sorties peut faciliter l’analyse du comportement du simulateur et la communication des résultats à d’autres utilisateurs.

Évaluer la fiabilité

La fiabilité de votre simulation est directement liée à la relation entrée-sortie (action-état) dans votre protocole de base. L’exécution du même scénario avec une stratégie de contrôle fixe et une stratégie de contrôle aléatoire rend la fiabilité plus facile à déterminer :

  • La stratégie fixe doit aboutir à un résultat bien compris.
  • La stratégie aléatoire génère des conditions inattendues dans le simulateur.

La stratégie fixe vous aide à vérifier le bon comportement, alors que la stratégie aléatoire aide à identifier les cas ambigus où la simulation est lente, bloquée ou est confrontée à d’autres problèmes.

Par exemple, dans la simulation HVAC pour rucher, l’ouverture d’un évent doit réduire la température dans le rucher. Si, au contraire, la température augmente, c’est le signe que la simulation est défectueuse.

Évaluer la flexibilité

La flexibilité de votre simulation est directement liée à la façon dont elle gère différentes configurations. Examinez les journaux de vos stratégies de contrôle fixe et aléatoire. Pour chacune des configurations de démarrage, déterminez si les modifications correspondantes dans l’environnement simulé sont logiques.

Par exemple, la modification de la taille et du nombre d’évents d’aération dans le rucher doit se refléter dans la vitesse à laquelle la température change quand les évents sont ouverts.

Évaluer la récupération

Une composante essentielle du Machine Teaching est la possibilité de réinitialiser l’environnement d’entraînement en cas de besoin. Recherchez dans les journaux de test tous les endroits auxquels une condition de fin s’est produite et auxquels l’environnement a été réinitialisé. Notez l’état du simulateur, les actions résultantes quand la réinitialisation s’est produite et si le comportement est pertinent dans ce contexte.

Important

Si vous remarquez une condition de fin représentant un faux positif ou un faux négatif, cela signifie que votre simulation est défectueuse.

Par exemple, le dispositif HVAC pour rucher s’est-il réinitialisé quand la température interne a atteint un point auquel toutes les plantes de l’environnement se seraient desséchées et auraient fané ? La nouvelle température interne après la réinitialisation était-elle logique comme température de départ ?

Évaluer la fréquence de contrôle simulée

Si vous envisagez de déployer le cerveau sur un support matériel plutôt que de l’installer en tant que logiciel, la fréquence de contrôle simulée doit être égale à la fréquence de contrôle réelle que vous vous attendez à voir en production ou à un facteur de cette fréquence. De cette façon, votre exécution pas à pas peut être répétée autant de fois que nécessaire pour que la fréquence de contrôle de la simulation soit alignée sur la fréquence de contrôle matérielle attendue.

Par exemple, si le matériel du cerveau a une fréquence de contrôle de 100 Hz, votre simulation doit autoriser des entrées toutes les 10 ms de simulation réelle.

1 Hz = 1 événement par seconde → 100 Hz = 100 événements par seconde

1000 ms par seconde → 1000 ms / 100 événements = 10 ms par événement

Les contrôles de simulation à 1 ms, 2 ms et 5 ms fonctionnent également. Dans chaque cas, le simulateur peut parcourir la fonction d’exécution pas à pas de nouvelles fois pour atteindre la fréquence de contrôle souhaitée.

Fenêtre de contrôle simulée Boucles requises Fréquence de contrôle simulée
1 ms 10 1 000 Hz
2 ms 5 500 Hz
5 ms 2 200 Hz

Évaluer le temps de simulation

Calculez la valeur de temps de simulation moyenne pour toutes les itérations, sur toutes les séries de tests. Pour travailler de manière fiable avec l’apprentissage de l’ordinateur et, la moyenne ST pour votre simulation doit être inférieure ou Bonsai égale à 20 secondes.

Si votre temps de simulation moyen est supérieur au seuil pris en charge, le simulateur est considéré comme lent et le cerveau ne peut pas bénéficier d’un modèle réaliste pour l’entraînement.

Étapes suivantes

Une fois que vous avez validé votre simulateur, essayez de l’exécuter localement sur un fichier INKLING de base pour commencer à l’intégrer Bonsai à.