Dela via


Simple Network Builder

SimpleNetworkBuilder gör det möjligt att använda enkla standardnätverkstyper med få konfigurationsrader. Endast en begränsad uppsättning konfigurationsalternativ stöds. Mer komplexa nätverk kan definieras med hjälp av BrainScriptNetworkBuilder i stället.

Om du vill använda SimpleNetworkBuildertar du med ett konfigurationsblock med samma namn i träningskonfigurationen. När ett alternativ utelämnas antas standardvärdet. Först ger vi ett kortfattat exempel och listar alla kontrollparametrar och alternativ nedan.

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
]

I exemplet ovan kan "trainingCriterion" och "layerTypes" utelämnas eftersom de använder standardvärdena. Följande parametrar är tillgängliga:

  • initValueScale: värdet för att skala intervallet för de slumpmässiga tal som används för initiering. Standardvärdet är 1. Om modellparametrarna initieras med den enhetliga fördelningen justeras slumptalsintervallet till [-0.05 * initValueScale, 0.05 * initValueScale]. Om modellparametrarna initieras med gaussiska fördelningen justeras standardavvikelsen till 0.2 * initValueScale * fanout^(-1/2).

  • layerTypes: typen av icke-linjär åtgärd i dolda lager. Giltiga värden är Sigmoid (standard), Tanhoch RectifiedLinear.

  • uniformInit: avgör om du vill använda enhetlig distribution för att initiera modellparametrar. Giltiga värden är true (standard) och false (med gaussisk distribution för att initiera modellparametrar).

  • applyMeanVarNorm: om medelvärde/variansnormalisering ska tillämpas på indata. Giltiga värden är true och false (standard).

  • addDropoutNodes: om du vill lägga till listrutenoder. Standardvärdet är false. Om den anges till truetillämpas en listrutenod på indatanoden och utdata för varje dolt lager.

  • layerSizes: anger dimensionerna för lager. Beskriver till exempel layerSizes=128:10:200:4000 ett neuralt nätverk med två dolda lager. Det första dolda lagret har en dimension på 10 och det andra dolda lagret har en dimension på 200. Indata- och utdataskikten har en dimension på 128 respektive 4 000.

  • trainingCriterion: det kriterium som används för träning. Standardvärdet är CrossEntropyWithSoftmax. Alternativen är SquareError, CrossEntropyoch ClassBasedCrossEntropyWithSoftmax. ClassBasedCrossEntropyWithSoftmax är för klassbaserad träning, vilket skulle vara användbart om utdatadimensionen är stor och därför måste delas upp i klasser för att påskynda träningen och utvärderingen.

  • evalCriterion: kriteriet för utvärdering. Valet av värden är samma som trainingCriterion.

  • lookupTableOrder: anger ordningen för kontexten som expanderas i uppslagsnoden. Standardvärdet är 1. Om du ställer in det på ett värde som 3 skulle indatadimensionen expanderas på ett kontextberoende sätt med en ordningsföljd på 3. Om indataobservationen till exempel har en dimension på 20 skulle indatanoddimensionen anges till 60 om det här värdet anges till 3.

För återkommande neurala nätverk (RNN) finns det ytterligare parametrar.

  • recurrentLayer: anger de lager som innehåller självrekursuella anslutningar. Som standard finns det inget återkommande lager. Använd syntaxen n1:n2:n3 för att ange att lager n1, n2 och n3 har återkommande anslutningar.

  • defaultHiddenActivity: standardvärdet för dold lageraktivitet som används av fördröjningsnoden vid åtkomst till värden före den första observationen. Standardvärdet är 0.1.

  • rnnType: typen av fördefinierade nätverk. Giltiga värden är:

    • SIMPLENET: det neurala nätverket för feed-forward. Det här är standardnätverkstypen.
    • SIMPLERNN: det enkla RNN, som kan vara ett djupt RNN där flera lager har återkommande loopar.
    • CLASSLM: klassbaserad enkel RNN. Den använder glesa indata, glesa parametrar och glesa utdata. Detta används ofta för språkmodelleringsuppgifter.
    • LBLM: det neurala nätverket log-bilinear.
    • LSTM: det långsiktiga neurala minnesnätverket.
    • CLASSLSTM: det klassbaserade neurala nätverket för långtidsminne. Den använder glesa indata, glesa parametrar och glesa utdata. Detta används ofta för språkmodelleringsuppgifter.

Nästa: Definiera dina egna komplexa nätverk med BrainScriptNetworkBuilder.