O que o padrão de saída de modelo Keras significa? O que é época e perda de Keras?

votos
23

Acabo de construí o meu primeiro modelo usando Keras e esta é a saída. Parece que a saída padrão que você começa após a construção de qualquer rede neural artificial Keras. Mesmo depois de olhar na documentação, eu não entender completamente o que a época é eo que a perda é que é impresso na saída.

O que é época e perda de Keras?

(Eu sei que é provavelmente uma questão extremamente básico, mas eu não conseguia localizar a resposta on-line, e se a resposta é realmente difícil de recolher a partir da documentação pensei outros teriam a mesma pergunta e, portanto, decidiu publicá-la aqui .)

Epoch 1/20
1213/1213 [==============================] - 0s - loss: 0.1760     
Epoch 2/20
1213/1213 [==============================] - 0s - loss: 0.1840     
Epoch 3/20
1213/1213 [==============================] - 0s - loss: 0.1816     
Epoch 4/20
1213/1213 [==============================] - 0s - loss: 0.1915     
Epoch 5/20
1213/1213 [==============================] - 0s - loss: 0.1928     
Epoch 6/20
1213/1213 [==============================] - 0s - loss: 0.1964     
Epoch 7/20
1213/1213 [==============================] - 0s - loss: 0.1948     
Epoch 8/20
1213/1213 [==============================] - 0s - loss: 0.1971     
Epoch 9/20
1213/1213 [==============================] - 0s - loss: 0.1899     
Epoch 10/20
1213/1213 [==============================] - 0s - loss: 0.1957     
Epoch 11/20
1213/1213 [==============================] - 0s - loss: 0.1923     
Epoch 12/20
1213/1213 [==============================] - 0s - loss: 0.1910     
Epoch 13/20
1213/1213 [==============================] - 0s - loss: 0.2104     
Epoch 14/20
1213/1213 [==============================] - 0s - loss: 0.1976     
Epoch 15/20
1213/1213 [==============================] - 0s - loss: 0.1979     
Epoch 16/20
1213/1213 [==============================] - 0s - loss: 0.2036     
Epoch 17/20
1213/1213 [==============================] - 0s - loss: 0.2019     
Epoch 18/20
1213/1213 [==============================] - 0s - loss: 0.1978     
Epoch 19/20
1213/1213 [==============================] - 0s - loss: 0.1954     
Epoch 20/20
1213/1213 [==============================] - 0s - loss: 0.1949
Publicado 08/01/2016 em 07:22
fonte usuário
Em outras línguas...                            


2 respostas

votos
9

Uma época termina quando o seu modelo tinha executar os dados através de todos os nós na sua rede e pronto para atualizar os pesos para alcançar valor da perda optimal. Isto é, menor é melhor. No seu caso, como há dezenas de perda mais elevadas em maior época, ele "parece" o modelo é melhor na primeira época.

Eu disse "parece" uma vez que não pode realmente dizer com certeza ainda como o modelo não foi testado usando o método de validação cruzada adequada ou seja, ele é avaliado apenas contra os seus dados de treinamento.

Maneiras de melhorar o seu modelo:

  • Use validação cruzada em seu modelo Keras, a fim de descobrir como o modelo realmente executar, não é generalizar bem quando prevendo novos dados que ele nunca viu antes?
  • Ajuste a sua taxa de aprendizagem, estrutura do modelo de rede neural, número de unidades / camadas, o init, otimizador e parâmetros ativador ocultos utilizados em seu modelo entre uma miríade de outras coisas.

Combinando GridSearchCV de sklearn com Keras pode automatizar esse processo.

Respondeu 16/06/2016 em 16:01
fonte usuário

votos
20

Só para responder às perguntas mais especificamente, aqui está uma definição da época e perda:

Epoch : A passagem completa sobre todos os seus treinamento de dados.

Por exemplo, na sua opinião acima, você tem 1213 observações. Então uma época conclui quando ele tiver terminado um passe formação sobre todo 1213 de suas observações.

Perda : Um valor escalar que tentamos minimizar durante a nossa formação do modelo. Quanto menor for a perda, quanto mais perto as nossas previsões são as verdadeiras etiquetas.

Isto é geralmente média do erro quadrático (MSE) como David Maust disse acima, ou muitas vezes em Keras, Categóricos Cruz Entropia


O que você esperaria ver a execução de ajuste no seu modelo Keras, é uma diminuição na perda de mais de n número de épocas. Seu funcionamento do treinamento é bastante anormal, como a sua perda está realmente aumentando. Isto poderia ser devido a uma taxa de aprendizagem que é muito grande, o que está causando a superação optima.

Como jaycode mencionado, você vai querer olhar para o desempenho do seu modelo em dados invisíveis, como este é o caso de uso geral de Machine Learning.

Como tal, você deve incluir uma lista de métricas em seu método de compilação, que poderia ser semelhante a:

model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])

Bem como executar o seu modelo de validação durante o método de ajuste, tais como:

model.fit(data, labels, validation_split=0.2)

Há muito mais para explicar, mas espero que isto é uma introdução.

Respondeu 22/06/2016 em 22:10
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more