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
...
}