Partilhar via


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 a 0.2 * initValueScale * fanout^(-1/2).

  • layerTypes: o tipo de operação não linear em camadas ocultas. Valores válidos são Sigmoid (padrão), Tanhe RectifiedLinear.

  • uniformInit: determina se deve utilizar uma distribuição uniforme para inicializar modelo parâmetros. Valores válidos são true (padrão) e false (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ão true e false (predefinição).

  • addDropoutNodes: se adicionar nós de abandono. A predefinição é false. Se especificado para true, 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ão SquareError, CrossEntropye ClassBasedCrossEntropyWithSoftmax. Trata-se ClassBasedCrossEntropyWithSoftmax 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 a trainingCriterion.

  • 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 sintaxe n1: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.