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 est1
. 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 sontSigmoid
(valeur par défaut),Tanh
etRectifiedLinear
.uniformInit
: détermine s’il faut utiliser une distribution uniforme pour initialiser les paramètres du modèle. Les valeurs valides sonttrue
(par défaut) etfalse
(à 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 sonttrue
etfalse
(valeur par défaut).addDropoutNodes
: indique s’il faut ajouter des nœuds de liste déroulante. Par défaut, il s’agit defalse
. Si elle est spécifiée,true
un 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 deCrossEntropyWithSoftmax
. Les alternatives sontSquareError
,CrossEntropy
etClassBasedCrossEntropyWithSoftmax
. IlClassBasedCrossEntropyWithSoftmax
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 dutrainingCriterion
.lookupTableOrder
: spécifie l’ordre du contexte qui s’étend dans le lookupNode. La valeur par défaut est1
. 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 syntaxen1: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 est0.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
.