Construtor de rede simples
Permite SimpleNetworkBuilder
utilizar tipos de rede padrão simples com poucas linhas de configuração. Apenas um conjunto limitado de opções de configuração é suportado. Redes mais complexas podem ser definidas usando a em BrainScriptNetworkBuilder
vez disso.
Para utilizar SimpleNetworkBuilder
, inclua um bloco de configuração com o mesmo nome na sua configuração de treino. Quando uma opção é omitida, o valor predefinido é assumido. Primeiro fornecemos um exemplo conciso e listamos todos os parâmetros de controlo e opções 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, a "treinamentocrição" e "camadasTypes" poderiam ser omitidas uma vez que estão a utilizar os valores predefinidos. Estão disponíveis os seguintes parâmetros:
initValueScale
: o valor para escalonar a gama dos números aleatórios utilizados para a inicialização. A predefinição é1
. Se os parâmetros modelo forem inicializados utilizando a distribuição uniforme, a gama de números aleatórios será ajustada para[-0.05 * initValueScale, 0.05 * initValueScale]
. Se os parâmetros modelo forem inicializados utilizando a distribuição gaussiana, o desvio padrão será ajustado a0.2 * initValueScale * fanout^(-1/2)
.layerTypes
: o tipo de operação não linear em camadas ocultas. Valores válidos sãoSigmoid
(padrão),Tanh
eRectifiedLinear
.uniformInit
: determina se deve utilizar uma distribuição uniforme para inicializar modelo parâmetros. Valores válidos sãotrue
(padrão) efalse
(usando a distribuição gaussiana para inicializar modelo parâmetros).applyMeanVarNorm
: se aplicar normalização média/variação na entrada. Valores válidos sãotrue
efalse
(predefinição).addDropoutNodes
: se adicionar nós de abandono. A predefinição éfalse
. Se especificado paratrue
, um nó de abandono será aplicado no nó de entrada e na saída de cada camada escondida.layerSizes
: especifica as dimensões das camadas. Por exemplo,layerSizes=128:10:200:4000
descreve uma rede neural com duas camadas escondidas. A primeira camada escondida tem uma dimensão de 10, e a segunda camada escondida 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 utilizado para o treino. A predefinição éCrossEntropyWithSoftmax
. Alternativas sãoSquareError
,CrossEntropy
eClassBasedCrossEntropyWithSoftmax
. Trata-seClassBasedCrossEntropyWithSoftmax
de formação em classe, o que seria útil se a dimensão da saída fosse grande e, por conseguinte, precisasse de ser dividida em aulas para acelerar a formação e a avaliação.evalCriterion
: o critério de avaliação. A seleção de valores é a mesma que atrainingCriterion
.lookupTableOrder
: especifica a ordem de contexto que se expande no exame Node. O valor predefinido é1
. Defini-lo para um valor como 3 expandiria a dimensão de entrada de uma forma dependente do contexto por uma ordem de 3. Por exemplo, se a observação de entrada tiver uma dimensão de 20, definir este valor para 3 definiria a dimensão do nó de entrada para 60.
Para redes neuronais recorrentes (RNNs), existem parâmetros adicionais.
recurrentLayer
: especifica as camadas que contêm ligações auto-recorrentes. Por predefinição, não existe uma camada recorrente. Utilize a sintaxen1:n2:n3
para especificar que as camadas n1, n2 e n3 têm ligações recorrentes.defaultHiddenActivity
: o valor padrão da atividade da camada oculta utilizado pelo nó de atraso ao aceder aos valores antes da primeira observação. O valor predefinido é0.1
.rnnType
: o tipo de redes predefinidas. Os valores válidos são:SIMPLENET
: a rede neural de ração para a frente. Este é o tipo de rede padrão.SIMPLERNN
: o RNN simples, que pode ser um RNN profundo em que várias camadas têm laços recorrentes.CLASSLM
: o RNN simples baseado em classe. Utiliza entrada escassa, parâmetro escasso e saída escassa. Isto é frequentemente usado para tarefas de modelação de linguagem.LBLM
: a rede neural log-bilinear.LSTM
: a rede neural de memória de longo prazo.CLASSLSTM
: a rede neural de memória de longo prazo baseada em classe. Utiliza entrada escassa, parâmetro escasso e saída escassa. Isto é frequentemente usado para tarefas de modelação de linguagem.
Seguinte: Defina as suas próprias redes complexas com BrainScriptNetworkBuilder
.