a perda de mse ser sempre 0 quando keras para tema prever

votos
4

a minha entrada é um vetor de 200 escurece, que é gerado pela média da word2vector de todas as palavras de um artigo, a minha saída é um vetor 50 escurece, que é gerado pelos resultados LDA de um artigo que eu quero usar mse como a função de perda , mas o valor da perda sempre ser 0 meu código da seguinte forma:

<pre>model = Sequential()
model.add(Dense(cols*footsize, 400,init = glorot_uniform))
# model.add(LeakyReLU(alpha = 0.3))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(400, 400,init = glorot_uniform))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(400, 50,init = glorot_uniform))
model.add(Activation('softmax'))
model.compile(loss='mse', optimizer='rmsprop')</pre>

a saída da tela como se segue: digite

quem pode me dizer por que, graças!

Publicado 24/08/2015 em 09:24
fonte usuário
Em outras línguas...                            


1 respostas

votos
5

Em primeiro lugar, é a sua saída um vetor de um quente de aulas previstas? IE: uma classe é [1, 0, 0, ...] e classe dois é [0, 1, 0, 0, ...].

Se assim for, em seguida, usando a ativação softmax na camada de saída é aceitável e que está fazendo um problema de classificação. Se você estiver fazendo um problema de classificação (saída one-quente) você não pode usar MSE como a perda, use categórica cross-entropia.

Softmax escala a saída de modo que o número determinado é uma probabilidade prevista de uma certa classe. Wikipedia aqui: https://en.wikipedia.org/wiki/Softmax_function

Se você está esperando o vetor de saída a ser números reais, então você precisa usar a ativação linear em seus neurônios de saída.

Respondeu 28/08/2015 em 12:21
fonte usuário

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