keras dando mesma perda em todas as épocas

votos
3

Eu sou novato para keras.

Corri-lo em um conjunto de dados em que o meu objectivo era reduzir o logloss. Para cada época ele está me dando o mesmo valor da perda. Estou confuso se estou no caminho certo ou não.

Por exemplo:

Epoch 1/5
91456/91456 [==============================] - 142s - loss: 3.8019 - val_loss: 3.8278
Epoch 2/5
91456/91456 [==============================] - 139s - loss: 3.8019 - val_loss: 3.8278
Epoch 3/5
91456/91456 [==============================] - 143s - loss: 3.8019 - val_loss: 3.8278
Epoch 4/5
91456/91456 [==============================] - 142s - loss: 3.8019 - val_loss: 3.8278
Epoch 5/5
91456/91456 [==============================] - 142s - loss: 3.8019 - val_loss: 3.8278

Aqui 3,8019 é o mesmo em todas as épocas. É suposto ser menos.

Publicado 21/02/2016 em 16:39
fonte usuário
Em outras línguas...                            


3 respostas

votos
0

Normalmente, esse problema ocorre quando o modelo estiver a formação não tem capacidade suficiente (ou a função de custo não é o caso). Ou, em alguns casos, acontece que por engano os dados que estão a alimentar o modelo não está preparado corretamente e, portanto, os rótulos para cada amostra pode não ser correto, o que torna o modelo impotente e não será capaz de diminuir a perda.

Respondeu 02/12/2017 em 23:49
fonte usuário

votos
1

Corri para este problema também. Depois de muita discussão, eu descobri que era minha função de activação na minha camada de saída .

Eu tive esse modelo para prever um resultado binário:

model = Sequential()
model.add(Dense(16,input_shape=(8,),activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(1, activation='softmax'))

e eu precisava disso para a entropia cruzada binário

model = Sequential()
model.add(Dense(16,input_shape=(8,),activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(32,activation='relu'))
model.add(Dense(1, activation='sigmoid'))

Gostaria de olhar para o problema que você está tentando resolver ea saída necessária para garantir que as suas funções de ativação são o que eles precisam ser.

Respondeu 01/04/2018 em 20:36
fonte usuário

votos
0

Tente diminuir a sua taxa de aprendizagem para 0,0001 e usar Adam. Qual é a sua taxa de aprendizagem?

Na verdade não é claro, para ver se o seu problema de taxa ou a complexidade do modelo de aprendizagem, você poderia explicar um pouco mais com estas instruções:

  1. Qual é o seu tamanho de dados, o que é isso?
  2. Qual é a complexidade do seu modelo? Podemos comparar a sua complexidade de analisar seus dados. Se os seus dados é muito grande, você precisa de modelo mais complexo.
  3. Você normalizar suas saídas? Para entradas, não poderia ser um grande negócio desde não-normalização dá resultados, mas se suas saídas são alguns números maiores que 1, você precisa para normalizar seus dados. Se você verificar a função de ativação sua última camada de modelo, eles são geralmente sigmóide, softmax, tanh que freqüentemente aperta a sua saída para 0-1 e -1 - 1. Você precisa normalizar seus dados de acordo com sua função de ativação passado, e depois inverter multiplicando-os para obter resultado na vida real.

Desde que você é novo para o aprendizado profundo, estes conselhos são suficientes para verificar se há um problema em seu modelo. Você pode por favor verificá-las e responder?

Respondeu 01/04/2018 em 21:19
fonte usuário

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