Generatore di rete semplice
Consente SimpleNetworkBuilder
di usare tipi di rete standard semplici con poche righe di configurazione. È supportato solo un set limitato di opzioni di configurazione. È possibile definire reti più complesse usando invece.BrainScriptNetworkBuilder
Per usare SimpleNetworkBuilder
, includere un blocco di configurazione dello stesso nome nella configurazione del training. Quando viene omessa un'opzione, viene assunto il valore predefinito. Per prima cosa viene fornito un esempio conciso e si elencano tutti i parametri di controllo e le opzioni seguenti.
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
]
Nell'esempio precedente 'trainingCriterion' e 'layerTypes' potrebbe essere omesso poiché usano i valori predefiniti. Sono disponibili i parametri seguenti:
initValueScale
: valore per il ridimensionamento dell'intervallo dei numeri casuali usati per l'inizializzazione. Il valore predefinito è1
. Se i parametri del modello vengono inizializzati usando la distribuzione uniforme, l'intervallo di numeri casuali verrà modificato in[-0.05 * initValueScale, 0.05 * initValueScale]
. Se i parametri del modello vengono inizializzati usando la distribuzione Gaussian, la deviazione standard verrà modificata in0.2 * initValueScale * fanout^(-1/2)
.layerTypes
: tipo di operazione non lineare in livelli nascosti. I valori validi sonoSigmoid
(impostazione predefinita),Tanh
eRectifiedLinear
.uniformInit
: determina se usare la distribuzione uniforme per inizializzare i parametri del modello. I valori validi sonotrue
(impostazione predefinita) efalse
(usando la distribuzione gaussian per inizializzare i parametri del modello).applyMeanVarNorm
: se applicare la normalizzazione media/varianza nell'input. I valori validi sonotrue
efalse
(impostazione predefinita).addDropoutNodes
: se aggiungere nodi di eliminazione. Il valore predefinito èfalse
. Se specificato intrue
, verrà applicato un nodo a discesa al nodo di input e all'output di ogni livello nascosto.layerSizes
: specifica le dimensioni dei livelli. Ad esempio,layerSizes=128:10:200:4000
descrive una rete neurale con due livelli nascosti. Il primo livello nascosto ha una dimensione pari a 10 e il secondo livello nascosto ha una dimensione pari a 200. I livelli di input e output hanno rispettivamente una dimensione pari a 128 e 4000.trainingCriterion
: criterio utilizzato per la formazione. Il valore predefinito èCrossEntropyWithSoftmax
. Le alternative sonoSquareError
,CrossEntropy
eClassBasedCrossEntropyWithSoftmax
. SiClassBasedCrossEntropyWithSoftmax
tratta di un training basato sulla classe, che sarebbe utile se la dimensione di output è grande e quindi deve essere suddivisa in classi per velocizzare la formazione e la valutazione.evalCriterion
: criterio per la valutazione. La selezione dei valori è uguale a .trainingCriterion
lookupTableOrder
: specifica l'ordine di espansione del contesto nel lookupNode. Il valore predefinito è1
. Impostandolo su un valore come 3 si espanderebbe la dimensione di input in modo dipendente dal contesto in base a un ordine di 3. Ad esempio, se l'osservazione di input ha una dimensione pari a 20, impostare questo valore su 3 imposta la dimensione del nodo di input su 60.
Per le reti neurali ricorrenti (RNN), sono disponibili parametri aggiuntivi.
recurrentLayer
: specifica i livelli che contengono connessioni auto ricorrenti. Per impostazione predefinita, non esiste alcun livello ricorrente. Usare la sintassin1:n2:n3
per specificare che i livelli n1, n2 e n3 hanno connessioni ricorrenti.defaultHiddenActivity
: il valore predefinito dell'attività del livello nascosto utilizzato dal nodo ritardo durante l'accesso ai valori prima della prima osservazione. Il valore predefinito è0.1
.rnnType
: tipo di reti predefinite. I valori validi sono:SIMPLENET
: la rete neurale feed-forward. Si tratta del tipo di rete predefinito.SIMPLERNN
: il RNN semplice, che può essere un RNN profondo in cui diversi livelli hanno cicli ricorrenti.CLASSLM
: RNN semplice basato sulla classe. Usa input sparse, parametro sparse e output sparse. Questa operazione viene spesso usata per le attività di modellazione del linguaggio.LBLM
: la rete neurale log-bilinear.LSTM
: la rete neurale a breve termine di memoria a breve termine.CLASSLSTM
: la rete neurale di memoria a breve termine basata sulla classe. Usa input sparse, parametro sparse e output sparse. Questa operazione viene spesso usata per le attività di modellazione del linguaggio.
Successivamente: definire le proprie reti complesse con BrainScriptNetworkBuilder
.