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"
          }
        ]
      }
    }
  }
}

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.

Pour que l’estimation des performances de la stratégie soit facilitée, nous vous recommandons d’utiliser une taille de lot suffisamment grande pour contenir une fraction significative d’un épisode complet à partir de chacune de vos simulations. Par exemple, si vos épisodes comportent jusqu’à 100 étapes chacun et que vous avez 100 simulateurs, essayez une valeur comprise entre 5 000 et 10 000.

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"
        }
    ],
}