Construtor de Rede Simples
O SimpleNetworkBuilder
permite usar tipos de rede padrão simples com poucas linhas de configuração. Há suporte apenas para um conjunto limitado de opções de configuração. Redes mais complexas podem ser definidas usando o BrainScriptNetworkBuilder
em vez disso.
Para usar SimpleNetworkBuilder
, inclua um bloco de configuração com o mesmo nome em sua configuração de treinamento. Quando uma opção é omitida, o valor padrão é assumido. Primeiro, fornecemos um exemplo conciso e listamos todos os parâmetros e opções de controle abaixo.
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
]
No exemplo acima, 'trainingCriterion' e 'layerTypes' podem ser omitidos, pois estão usando os valores padrão. Os seguintes parâmetros estão disponíveis:
initValueScale
: o valor para dimensionar o intervalo dos números aleatórios usados para inicialização. O padrão é1
. Se os parâmetros de modelo forem inicializados usando a distribuição uniforme, o intervalo de números aleatórios será ajustado para[-0.05 * initValueScale, 0.05 * initValueScale]
. Se os parâmetros de modelo forem inicializados usando a distribuição gaussiana, o desvio padrão será ajustado para0.2 * initValueScale * fanout^(-1/2)
.layerTypes
: o tipo de operação não linear em camadas ocultas. Os valores válidos sãoSigmoid
(padrão),Tanh
eRectifiedLinear
.uniformInit
: determina se a distribuição uniforme deve ser usada para inicializar parâmetros de modelo. Os valores válidos sãotrue
(padrão) efalse
(usando a distribuição gaussiana para inicializar parâmetros de modelo).applyMeanVarNorm
: se a normalização média/variação deve ser aplicada na entrada. Os valores válidos sãotrue
efalse
(padrão).addDropoutNodes
: se você deve adicionar nós de desistência. O padrão éfalse
. Se especificado,true
um nó de desistência será aplicado ao nó de entrada e à saída de cada camada oculta.layerSizes
: especifica as dimensões das camadas. Por exemplo,layerSizes=128:10:200:4000
descreve uma rede neural com duas camadas ocultas. A primeira camada oculta tem uma dimensão de 10 e a segunda camada oculta tem uma dimensão de 200. As camadas de entrada e saída têm uma dimensão de 128 e 4000, respectivamente.trainingCriterion
: o critério usado para treinamento. O padrão éCrossEntropyWithSoftmax
. As alternativas sãoSquareError
,CrossEntropy
eClassBasedCrossEntropyWithSoftmax
. AClassBasedCrossEntropyWithSoftmax
opção é o treinamento baseado em classe, o que seria útil se a dimensão de saída fosse grande e, portanto, precisasse ser dividida em classes para acelerar o treinamento e a avaliação.evalCriterion
: o critério de avaliação. A seleção de valores é igual à .trainingCriterion
lookupTableOrder
: especifica a ordem de expansão de contexto no lookupNode. O valor padrão é1
. Defini-la como um valor como 3 expandiria a dimensão de entrada de forma dependente de contexto por uma ordem de 3. Por exemplo, se a observação de entrada tiver uma dimensão de 20, definir esse valor como 3 definirá a dimensão do nó de entrada como 60.
Para RNNs (redes neurais recorrentes), há parâmetros adicionais.
recurrentLayer
: especifica as camadas que contêm conexões auto-recorrentes. Por padrão, não há camada recorrente. Use a sintaxen1:n2:n3
para especificar que as camadas n1, n2 e n3 têm conexões recorrentes.defaultHiddenActivity
: o valor de atividade de camada oculta padrão usado pelo nó de atraso ao acessar valores antes da primeira observação. O valor padrão é0.1
.rnnType
: o tipo de redes predefinidas. Os valores válidos são:SIMPLENET
: a rede neural feed-forward. Esse é o tipo de rede padrão.SIMPLERNN
: o RNN simples, que pode ser um RNN profundo no qual várias camadas têm loops recorrentes.CLASSLM
: o RNN simples baseado em classe. Ele usa entrada esparsa, parâmetro esparso e saída esparsa. Isso geralmente é usado para tarefas de modelagem de idioma.LBLM
: a rede neural log-bilinear.LSTM
: a rede neural de memória de longo prazo.CLASSLSTM
: a rede neural de memória de curto prazo baseada em classe. Ele usa entrada esparsa, parâmetro esparso e saída esparsa. Isso geralmente é usado para tarefas de modelagem de idioma.
Em seguida: defina suas próprias redes complexas com BrainScriptNetworkBuilder
.