Mot clé : but
Les buts sont une spécification générale de ce que vous souhaitez que l’intelligence artificielle apprenne. Utilisez des buts pour permettre au moteur d’apprentissage de déterminer automatiquement les fonctions et conditions de récompense appropriées pour une résiliation précoce.
Un programme basé sur des objectifs permet Bonsai de rendre compte des progrès de la formation en fonction des objectifs concrets que vous spécifiez plutôt que des scores de récompense abstraits.
Important
Vous ne pouvez pas utiliser des objectifs et définir des fonctions de récompense et de terminal.
Usage
Pour utiliser des objectifs, incluez l’espace Goal
de noms au début de votre fichier Inkling et incluez la goal
définition avec un ou plusieurs objectifs dans votre définition de programme.
using Goal
...
curriculum {
...
goal (State: SimState, ConceptAction: Action) {
`Don't Fall`:
avoid Math.Abs(State.Angle)
in Goal.RangeAbove(MaxAngle)
SmallAngle:
drive Math.Abs(State.Angle)
in Goal.Range(0, MaxAngle/6)
StayCentered:
drive Math.Abs(State.Position)
in Goal.Range(0, MaxPosition/10)
SaveEnergy:
minimize ConceptAction.Force**2
in Goal.RangeBelow(TargetMeanSquaredForce)
}
training {
EpisodeIterationLimit: MaxIterationCount
}
}
Dans l’exemple goal
de définition ci-dessus :
State
est obligatoire et fait référence aux informations d’état fournies par l’environnement d’entraînement.ConceptAction
est facultatif et fait référence à l’action entreprise pour satisfaire le concept qui a déplacé l’environnement vers l’état actuel.
L’ordre dans lequel vous spécifiez vos objectifs n’a pas d’importance. Par défaut, le moteur d’entraînement tente de satisfaire les critères de réussite pour tous.
Vous pouvez également spécifier une expression d’objectif qui décrit la façon dont les objectifs doivent être combinés, à l’aide d’une do
instruction avec and
les opérateurs et until
.
Par exemple,
goal (State: SimState, ConceptAction: Action) {
`Don't Fall`:
avoid Math.Abs(State.Angle)
in Goal.RangeAbove(MaxAngle)
SmallAngle:
drive Math.Abs(State.Angle)
in Goal.Range(0, MaxAngle/6)
StayCentered:
drive Math.Abs(State.Position)
in Goal.Range(0, MaxPosition/10)
SaveEnergy:
minimize ConceptAction.Force**2
in Goal.RangeBelow(TargetMeanSquaredForce)
# Goal expression that describes how to combine objectives
do
(`Don't Fall` and SmallAngle and StayCentered and SaveEnergy) until State.Time > 120
}
Remarque
Bonsai traite le EpisodeIterationLimit
paramètre comme une sous-clause implicite à la fin de l’instruction do
: until CurrentIteration > EpisodeIterationLimit
.
Pour plus d’informations sur la construction d’expressions d’objectifs complexes, consultez la référence sur les expressions d’objectifs.
Réussite et échec
À mesure que Bonsai s’exécute chaque épisode d’entraînement, il effectue le suivi de l’état de réussite de chaque objectif et de la sous-clause dans l’instruction do
:
- indécis: l’objectif ou la sous-clause est toujours en cours d’évaluation.
- réussite : le cerveau a atteint l’objectif ou la sous-clause.
- échec: le cerveau n’a pas pu atteindre l’objectif ou la sous-clause.
Par la suite, chaque objectif et sous-clause indécis seront résolus à la réussite ou à l’échec, selon les règles applicables.
Important
Arrêt précoce de l’épisode : dès que l’état de réussite de l’expression globale passe de l’indécis à la réussite ou à l’échec, Bonsai arrête l’épisode d’entraînement.
Résolution des objectifs
Tous les objectifs commencent indécis. La façon dont l’objectif est résolu est spécifique à la signification de l’objectif.
Conditions de réussite :
avoid
: la valeur de test évite la région cible aussi longtemps que nécessaire.reach
: la valeur de test entre dans la région cible à un moment donné pendant l’épisode d’entraînement.drive
: la valeur de test se trouve dans la région cible lorsque l’objectif est résolu.minimize
: la valeur moyenne de la valeur de test se trouve dans la région cible sur toutes les itérations jusqu’à la résolution de l’objectif.maximize
: la valeur moyenne de la valeur de test se trouve dans la région cible sur toutes les itérations jusqu’à la résolution de l’objectif.
Conditions d’échec :
avoid
: la valeur de test entre dans la région cible à tout moment pendant l’entraînement.reach
: la valeur de test n’atteint pas la région cible avant la résolution de l’objectif.drive
:- l’objectif ne comprend pas une
within k
clause et la valeur de test est en dehors de la région cible pour plus de itérationsk
. - l’objectif n’inclut PAS de
within k
clause et la valeur de test ne se trouve pas dans la région cible lorsque l’objectif est résolu.
- l’objectif ne comprend pas une
minimize
: la valeur moyenne de la valeur de test ne se trouve pas dans la région cible sur toutes les itérations terminées lorsque l’objectif est résolu.maximize
: la valeur moyenne de la valeur de test ne se trouve pas dans la région cible sur toutes les itérations terminées lorsque l’objectif est résolu.
Métriques d’objectif
Bonsai calcule et signale des métriques pour l’instruction d’objectif globale et pour les objectifs individuels. Chaque métrique est moyenne entre les épisodes de test d’une évaluation.
Métriques universelles
- Taux de réussite : fraction d’épisodes où l’IA atteint l’objectif.
- Taux de satisfaction de l’objectif : progression moyenne vers la satisfaction de l’objectif. Un taux d’atteinte de 100 % signifie que l’intelligence artificielle a atteint l’objectif.
- Robustesse de l’objectif : mesure de la robustesse de la politique apprise en matière de bruit et de perturbation. La robustesse est négative si l’objectif échoue.
Métriques spécifiques à l’objectif
Objectif | Métrique | Description |
---|---|---|
drive |
Pourcentage d’itérations dans la région cible | Pourcentage d’itérations où la valeur de test se trouvait à l’intérieur de la région cible après avoir atteint la région cible pour la première fois. Le pourcentage total est moyené sur une évaluation. |
drive |
Distance maximale vers la région cible | Distance maximale entre la valeur de test et la région cible, exprimée en moyenne sur une évaluation. |
reach |
Distance finale vers la région cible | Distance finale moyenne de la région cible lorsque l’objectif est résolu. |
reach |
Nombre maximal d’itérations pour atteindre la cible | Nombre le plus long d’itérations consécutives en dehors de la région cible, moyené au cours d’une évaluation. |
minimize |
Valeur moyenne | Moyenne de la valeur de test pendant l’épisode. |
maximize |
Valeur moyenne | Moyenne de la valeur de test pendant l’épisode. |
Paramètres d’entraînement liés aux objectifs
Vous pouvez ajuster les paramètres d’apprentissage suivants pour le but avec la clause training
:
Paramètre | Valeurs | Default | Description |
---|---|---|---|
EpisodeIterationLimit |
Number.UInt32 |
1 000 | Nombre total d’itérations autorisées par épisode de formation. |
Par exemple :
concept MyConcept(Input: SimState): ConceptAction {
curriculum {
training {
EpisodeIterationLimit: 250
LessonSuccessThreshold: 0.7,
}
}
}
EpisodeIterationLimit
Le moteur d’apprentissage met fin à l’épisode d’apprentissage et en commence un nouveau après EpisodeIterationLimit
itérations si aucune condition terminale n’a été atteinte.
Exemples
Conservez la température entre MinTemp et MaxTemp. Si la température est en dehors de cette région, elle doit revenir dans la région en 10 itérations. Si ce n’est pas le cas, l’épisode d’entraînement se termine et est marqué comme un échec.
TemperatureInRange: drive S.Temperature in Goal.Range(MinTemp, MaxTemp) within 10
Réduisez la température dans l’épisode ci-dessous au maximum MaxTemp. Cela va essayer d’obtenir la température, moyenne sur toutes les itérations de l’épisode, aussi bas que possible.
MinimizeAverageTemperature: minimize S.Temperature in Goal.RangeBelow(MaxTemp)
Pilotez la température dans l’épisode sous MaxTemp. Cela tentera d’obtenir la température inférieure à MaxTemp aussi rapidement que possible et d’obtenir la température de l’itération finale dans l’épisode aussi bas que possible.
MinimizeFinalTemperature: drive S.Temperature in Goal.RangeBelow(MaxTemp)
Conseil
Vous trouverez d’autres exemples d’objectifs dans le livre de recettes Inkling.