Você pode usar a camada LeakyRelu , como na classe python, em vez de apenas especificar o nome da string como no seu exemplo. Funciona de maneira semelhante a uma camada normal.
Importar o LeakyReLU e instanciar um modelo
from keras.layers import LeakyReLU
model = Sequential()
# here change your line to leave out an activation
model.add(Dense(90))
# now add a ReLU layer explicitly:
model.add(LeakyReLU(alpha=0.05))
Ser capaz de simplesmente escrever, por exemplo, activation='relu'
é possível devido a aliases simples que são criados no código-fonte.
Para sua segunda pergunta:
Qual é a melhor configuração geral para ajustar os parâmetros do LeakyRelu? E quando seu desempenho é significativamente melhor que o Relu?
Não posso fornecer as configurações ideais para o LeakyReLU, receio - elas dependem do modelo / dados.
A diferença entre o ReLU e o LeakyReLU é a capacidade do último de reter algum grau dos valores negativos que fluem para ele, enquanto o primeiro simplesmente define todos os valores menores que 0 como 0. Em teoria, esse intervalo de saída estendido oferece uma flexibilidade um pouco maior para o modelo que o utiliza. Tenho certeza de que os inventores pensaram que isso era útil e talvez tenha provado ser esse o caso de alguns benchmarks. Na prática, no entanto, as pessoas geralmente aderem ao ReLU, pois os benefícios do LeakyReLU não são consistentes e o ReLU é mais barato de calcular e, portanto, os modelos treinam um pouco mais rápido.