Ajuster l’algorithme de Machine Learning

La clause algorithm permet aux utilisateurs avancés d’expérimenter le changement des algorithmes de Machine Learning et des paramètres d’ajustement utilisés par le moteur d’entraînement. Toutefois, le moteur considère les instructions algorithm comme des indications, et non comme des ordres. Le moteur peut ignorer l’instruction s’il détermine que l’algorithme ou les paramètres demandés sont inappropriés ou obsolètes. Quand des indications sont utilisées, elles s’appliquent uniquement au concept pour lequel elles sont spécifiées.

Identificateurs d’algorithme pris en charge

par jeton Nom Utilisé pour
APEX Distributed Deep Q Network Espaces d’actions nominales
PPO Proximal Policy Optimization Espaces d’actions ordinales continues et discrètes
SAC Soft Actor Critic Espaces d’actions ordinales continues et discrètes

Exemple

graph (input: GameState): Action {
  concept balance(input): Action {
    curriculum {
      source MySimulator

      algorithm {
        Algorithm: "APEX",
        HiddenLayers: [
          {
            Size: 64,
            Activation: "tanh"
          },
          {
            Size: 64,
            Activation: "tanh"
          }
        ]
      }
    }
  }
}

Configuration du mode mémoire

Utilisez le MemoryMode paramètre pour configurer si l’action du concept peut apprendre à dépendre d’états ou d’actions passés. Valeurs prises en charge :

Valeur Description
default Le moteur d’entraînement choisit automatiquement le mode state and action mémoire. Il s’agit du comportement par défaut s’il MemoryMode n’est pas spécifié.
none Pas de mémoire. Les actions apprises peuvent dépendre uniquement de l’état actuel.
state Mémoire des états passés. Peut apprendre des actions qui dépendent de l’état actuel ainsi que des états précédents dans l’épisode.
state and action Mémoire des états passés et des actions passées. Les actions apprises peuvent dépendre des états et des actions précédents dans l’épisode.

MemoryMode peut être défini sans spécifier d’algorithme. Par exemple :

algorithm {
    MemoryMode: "state"
}

Spécification de couche

Plusieurs algorithmes autorisent la configuration de couches masquées du ou des réseaux neuronaux. Les couches masquées sont définies sous la forme d’un tableau de structures qui définissent la taille et (éventuellement) la fonction d’activation pour chaque couche masquée. Les tailles doivent être des entiers positifs et les fonctions d’activation doivent avoir l’une des valeurs suivantes : linear, tanh, relu, logistic, softmax, elu ou default. Par exemple :

HiddenLayers: [
  {
    Size: 400,
    Activation: "relu"
  },
  {
    Size: 300,
    Activation: "tanh"
  }
]

Paramètres d’APEX-DQN

APEX-DQN prend en charge les paramètres suivants.

Paramètre Type Description Exemple
QLearningRate nombre Taux d’apprentissage pour l’entraînement du réseau Q QLearningRate: 0.0001
HiddenLayers LayerSpec[] Tableau de spécifications de couche Consultez Spécification de couche.

Configuration par défaut pour APEX-DQN :

algorithm {
    Algorithm: "APEX",
    QLearningRate: 5e-4,
    HiddenLayers: [
        {
            Size: 256,
            Activation: "tanh"
        },
        {
            Size: 256,
            Activation: "tanh"
        }
    ]
}

Paramètres de PPO

PPO prend en charge les paramètres suivants.

Paramètre Type Description Exemple
BatchSize Number.UInt32 Taille de lot (1 000 à 2 000 000) pour l’agrégation des données d’évaluation BatchSize: 8000
PolicyLearningRate nombre Taux d’apprentissage pour l’entraînement du réseau de stratégie PolicyLearningRate: 0.0001
HiddenLayers LayerSpec[] Tableau de spécifications de couche Consultez Spécification de couche.

PPO (Proximal Policy Optimization) rassemble un grand nombre de trajectoires complètes et les analyse en agrégat afin d’obtenir une métrique de confiance de la probabilité qu’une modification donnée de la stratégie améliore les performances. Avec une taille de lot suffisamment grande, PPO engendre une amélioration monotone de la stratégie. À mesure que l’algorithme apporte des modifications, sa confiance entraîne des améliorations réelles basées sur de grandes quantités de données. Le paramètre BatchSize détermine la quantité de données à agréger pour prendre cette décision.

Les lots plus petits entraînent une convergence plus rapide, car les mises à jour sont calculées plus fréquemment. Toutefois, les petites mises à jour par lot sont moins fiables et la stratégie peut devenir instable si la taille du lot est trop petite.

Configuration par défaut pour PPO :

algorithm {
    Algorithm: "PPO",
    BatchSize: 6000,
    PolicyLearningRate: 5e-5,
    HiddenLayers: [
        {
            Size: 256,
            Activation: "tanh"
        },
        {
            Size: 256,
            Activation: "tanh"
        }
    ]
}

Paramètres de SAC

SAC prend en charge les paramètres suivants.

Paramètre Type Description Exemple
QHiddenLayers LayerSpec[] Tableau de spécifications de couche pour le réseau de valeurs Q Consultez Spécification de couche.
PolicyHiddenLayers LayerSpec[] Tableau de spécifications de couche pour le réseau de stratégies Consultez Spécification de couche.

Configuration par défaut pour SAC :

algorithm {
    Algorithm: "SAC",
    QHiddenLayers: [
        {
            Size: 256,
            Activation: "relu"
        },
        {
            Size: 256,
            Activation: "relu"
        }
    ],
    PolicyHiddenLayers: [
        {
            Size: 256,
            Activation: "relu"
        },
        {
            Size: 256,
            Activation: "relu"
        }
    ],
}