Partilhar via


Abandono

Função de abandono.

Dropout (x)

Parâmetros

  • x: a entrada para aplicar a função de abandono

Nota: a taxa de abandono não é um parâmetro para esta função, mas sim especificada na SGD secção.

Devolver Valor

Dropout() devolverá o resultado da operação de abandono aplicado à entrada. O resultado tem as mesmas dimensões do tensor que a entrada.

Description

A Dropout() operação seleciona aleatoriamente elementos da entrada com uma determinada probabilidade chamada taxa de abandono e define-os para 0. Isto tem demonstrado melhorar a generalização dos modelos.

Na implementação do CNTK, os valores restantes que não estão definidos para 0 serão, em vez disso, multiplicados com (1 / (1 - taxa de abandono)). Desta forma, os parâmetros modelo aprendidos com o abandono são diretamente aplicáveis na inferência. (Se isso não fosse feito, o utilizador teria de os escalar manualmente antes da inferência.)

Para ativar o abandono no seu treino, também precisa de adicionar um parâmetro dropoutRate à SGD secção para definir a taxa de abandono. Isto é feito numa SGD secção, em vez de um parâmetro para Dropout() si mesmo, de modo a permitir iniciar um treino sem abandono, e depois capacitá-lo após algumas épocas, o que é um cenário comum. Para isso, o dropoutRate é especificado como um vetor, onde cada valor é para uma época específica.

Ao executar a inferência, a operação passa a Dropout() sua entrada desmodificado (é um não-op).

Exemplo

Segue-se uma simples rede convolucional com uma camada de abandono no final:

features = Input{...}
c = ConvolutionalLayer {32, (5:5), activation=ReLU} (features)
p = MaxPoolingLayer {(3:3), stride = (2:2)} (c)
h = DenseLayer {64, activation = ReLU} (p)
d = Dropout (h)
z = LinearLayer {10} (d)

Além disso, precisa de uma entrada correspondente na SGD secção. O exemplo a seguir define não usar o abandono nas primeiras 3 épocas e, em seguida, continuar com uma taxa de abandono de 50%. Por conveniência, este exemplo utiliza a sintaxe asterisco (*) para denotar a repetição:

SGD = {
    ...
    dropoutRate = 0*3:0.5
    ...
}