Partager via


Générateur de réseau simple

Il SimpleNetworkBuilder permet d’utiliser des types de réseau standard simples avec quelques lignes de configuration. Seul un ensemble limité d’options de configuration est pris en charge. Des réseaux plus complexes peuvent être définis à l’aide de la BrainScriptNetworkBuilder place.

Pour utiliser SimpleNetworkBuilder, incluez un bloc de configuration du même nom dans votre configuration d’entraînement. Lorsqu’une option est omise, la valeur par défaut est supposée. Nous fournissons d’abord un exemple concis et répertoriez tous les paramètres et options de contrôle ci-dessous.

SimpleNetworkBuilder = [
    # 2 inputs, 2 hidden layers with 50 element nodes each, 2 outputs
    layerSizes        = 2:50*2:2
    trainingCriterion = "CrossEntropyWithSoftmax"
    evalCriterion     = "ErrorPrediction"
    layerTypes        = "Sigmoid"
    applyMeanVarNorm  = true
]

Dans l’exemple ci-dessus , « trainingCriterion » et « layerTypes » peuvent être omis, car ils utilisent les valeurs par défaut. Les paramètres suivants sont disponibles :

  • initValueScale: valeur de mise à l’échelle de la plage des nombres aléatoires utilisés pour l’initialisation. La valeur par défaut est 1. Si les paramètres du modèle sont initialisés à l’aide de la distribution uniforme, la plage de nombres aléatoires est ajustée à [-0.05 * initValueScale, 0.05 * initValueScale]. Si les paramètres du modèle sont initialisés à l’aide de la distribution gaussienne, l’écart type est ajusté à 0.2 * initValueScale * fanout^(-1/2).

  • layerTypes: type d’opération non linéaire dans les couches masquées. Les valeurs valides sont Sigmoid (valeur par défaut), Tanh et RectifiedLinear.

  • uniformInit: détermine s’il faut utiliser une distribution uniforme pour initialiser les paramètres du modèle. Les valeurs valides sont true (par défaut) et false (à l’aide de la distribution gaussienne pour initialiser les paramètres du modèle).

  • applyMeanVarNorm: s’il faut appliquer la normalisation moyenne/variance sur l’entrée. Les valeurs valides sont true et false (valeur par défaut).

  • addDropoutNodes: indique s’il faut ajouter des nœuds de liste déroulante. Par défaut, il s’agit de false. Si elle est spécifiée, trueun nœud de liste déroulante est appliqué au nœud d’entrée et à la sortie de chaque couche masquée.

  • layerSizes: spécifie les dimensions des couches. Par exemple, layerSizes=128:10:200:4000 décrit un réseau neuronal avec deux couches masquées. La première couche masquée a une dimension de 10, et la deuxième couche masquée a une dimension de 200. Les couches d’entrée et de sortie ont respectivement une dimension de 128 et 4000.

  • trainingCriterion: critère utilisé pour l’entraînement. Par défaut, il s’agit de CrossEntropyWithSoftmax. Les alternatives sont SquareError, CrossEntropyet ClassBasedCrossEntropyWithSoftmax. Il ClassBasedCrossEntropyWithSoftmax s’agit d’une formation basée sur des classes, qui serait utile si la dimension de sortie est volumineuse et doit donc être divisée en classes pour accélérer la formation et l’évaluation.

  • evalCriterion: critère d’évaluation. La sélection de valeurs est identique à celle du trainingCriterion.

  • lookupTableOrder: spécifie l’ordre du contexte qui s’étend dans le lookupNode. La valeur par défaut est 1. La définition d’une valeur telle que 3 développerait la dimension d’entrée d’une manière dépendante du contexte par un ordre de 3. Par exemple, si l’observation d’entrée a une dimension de 20, la définition de cette valeur sur 3 définit la dimension de nœud d’entrée sur 60.

Pour les réseaux neuronaux récurrents (RNN), il existe des paramètres supplémentaires.

  • recurrentLayer: spécifie les couches qui contiennent des connexions auto-récurrentes. Par défaut, il n’existe aucune couche récurrente. Utilisez la syntaxe n1:n2:n3 pour spécifier que les couches n1, n2 et n3 ont des connexions récurrentes.

  • defaultHiddenActivity: valeur d’activité de couche masquée par défaut utilisée par le nœud de retard lors de l’accès aux valeurs avant la première observation. La valeur par défaut est 0.1.

  • rnnType: type de réseaux prédéfinis. Les valeurs autorisées sont :

    • SIMPLENET: le réseau neuronal de transfert d’flux. Il s’agit du type de réseau par défaut.
    • SIMPLERNN: le RNN simple, qui peut être un RNN profond dans lequel plusieurs couches ont des boucles récurrentes.
    • CLASSLM: le RNN simple basé sur la classe. Il utilise une entrée éparse, un paramètre éparse et une sortie éparse. Ceci est souvent utilisé pour les tâches de modélisation de langage.
    • LBLM: le réseau neuronal biligne journal.
    • LSTM: réseau neuronal de mémoire à court terme.
    • CLASSLSTM: réseau neuronal de mémoire à court terme basé sur la classe. Il utilise une entrée éparse, un paramètre éparse et une sortie éparse. Ceci est souvent utilisé pour les tâches de modélisation de langage.

Ensuite : Définissez vos propres réseaux complexes avec BrainScriptNetworkBuilder.