Eenvoudige netwerkbouwer
Hiermee SimpleNetworkBuilder
kunt u eenvoudige standaardnetwerktypen met enkele configuratieregels gebruiken. Er wordt slechts een beperkte set configuratieopties ondersteund. Complexere netwerken kunnen worden gedefinieerd met behulp van in BrainScriptNetworkBuilder
plaats daarvan.
Als u wilt gebruiken SimpleNetworkBuilder
, moet u een configuratieblok met dezelfde naam opnemen in uw trainingsconfiguratie. Wanneer een optie wordt weggelaten, wordt uitgegaan van de standaardwaarde. We geven eerst een beknopt voorbeeld en vermelden hieronder alle besturingsparameters en opties.
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
]
In het bovenstaande voorbeeld kunnen 'trainingCriterion' en 'layerTypes' worden weggelaten omdat ze de standaardwaarden gebruiken. De volgende parameters zijn beschikbaar:
initValueScale
: de waarde voor het schalen van het bereik van de willekeurige getallen die worden gebruikt voor initialisatie. De standaardinstelling is1
. Als de modelparameters worden geïnitialiseerd met behulp van de uniforme verdeling, wordt het willekeurige getalbereik aangepast aan[-0.05 * initValueScale, 0.05 * initValueScale]
. Als de modelparameters worden geïnitialiseerd met behulp van de Gaussiaanse verdeling, wordt de standaarddeviatie aangepast aan0.2 * initValueScale * fanout^(-1/2)
.layerTypes
: het type niet-lineaire bewerking in verborgen lagen. Geldige waarden zijnSigmoid
(standaard),Tanh
enRectifiedLinear
.uniformInit
: bepaalt of een uniforme distributie moet worden gebruikt om modelparameters te initialiseren. Geldige waarden zijntrue
(standaard) enfalse
(met gaussiische distributie om modelparameters te initialiseren).applyMeanVarNorm
: of de gemiddelde/variantienormalisatie op de invoer moet worden toegepast. Geldige waarden zijntrue
enfalse
(standaard).addDropoutNodes
: of er vervolgkeuzelijsten moeten worden toegevoegd. De standaardwaarde isfalse
. Als dit is opgegeventrue
, wordt een vervolgkeuzelijst toegepast op het invoerknooppunt en de uitvoer van elke verborgen laag.layerSizes
: geeft de dimensies van lagen op. Beschrijft bijvoorbeeldlayerSizes=128:10:200:4000
een neuraal netwerk met twee verborgen lagen. De eerste verborgen laag heeft een dimensie van 10 en de tweede verborgen laag heeft een dimensie van 200. De invoer- en uitvoerlagen hebben respectievelijk een dimensie van 128 en 4000.trainingCriterion
: het criterium dat wordt gebruikt voor training. De standaardwaarde isCrossEntropyWithSoftmax
. Alternatieven zijnSquareError
,CrossEntropy
enClassBasedCrossEntropyWithSoftmax
. HetClassBasedCrossEntropyWithSoftmax
is bedoeld voor op klassen gebaseerde training, wat nuttig zou zijn als de uitvoerdimensie groot is en daarom moet worden opgesplitst in klassen om de training en evaluatie te versnellen.evalCriterion
: het criterium voor evaluatie. De selectie van waarden is hetzelfde als detrainingCriterion
.lookupTableOrder
: hiermee geeft u de volgorde op van de context die wordt uitgebreid in de lookupNode. De standaardwaarde is1
. Als u deze instelt op een waarde zoals 3, wordt de invoerdimensie op een contextafhankelijke manier uitgebreid met een volgorde van 3. Als de invoerobservatie bijvoorbeeld een dimensie van 20 heeft, stelt u deze waarde in op 3 om de dimensie van het invoerknooppunt in te stellen op 60.
Voor terugkerende neurale netwerken (RNN's) zijn er aanvullende parameters.
recurrentLayer
: hiermee geeft u de lagen op die zelf terugkerende verbindingen bevatten. Standaard is er geen terugkerende laag. Gebruik de syntaxisn1:n2:n3
om op te geven dat lagen n1, n2 en n3 terugkerende verbindingen hebben.defaultHiddenActivity
: de standaardwaarde voor verborgen laagactiviteit die wordt gebruikt door het vertragingsknooppunt bij het openen van waarden vóór de eerste observatie. De standaardwaarde is0.1
.rnnType
: het type vooraf gedefinieerde netwerken. Geldige waarden zijn:SIMPLENET
: het neurale netwerk van de feed-forward. Dit is het standaardnetwerktype.SIMPLERNN
: de eenvoudige RNN, die een diepe RNN kan zijn waarin verschillende lagen terugkerende lussen hebben.CLASSLM
: de op klassen gebaseerde eenvoudige RNN. Er wordt gebruikgemaakt van sparse-invoer, sparseparameter en sparse-uitvoer. Dit wordt vaak gebruikt voor taalmodelleringstaken.LBLM
: het log-bilineaire neurale netwerk.LSTM
: het neurale netwerk voor langetermijngeheugen op korte termijn.CLASSLSTM
: het op klassen gebaseerde neurale netwerk voor langetermijngeheugen op korte termijn. Er wordt gebruikgemaakt van sparse-invoer, sparseparameter en sparse-uitvoer. Dit wordt vaak gebruikt voor taalmodelleringstaken.
Volgende: Definieer uw eigen complexe netwerken met BrainScriptNetworkBuilder
.