Я новичок в LSTM и глубокое обучение.У меня есть 3000 рецензий, которые я пытаюсь тренировать на модели Gensim с предварительным обучением посредством встраивания слов.У меня есть следующая модель, где max_sequence_size = 564 и размер вокаба 4000.
max_sequence_size = max_features
classes_num = 1
my_model=Sequential()
my_model.add(Embedding(max_sequence_size,300,input_length=trainDataVecs.shape[1],weights=[embedding_matrix]))
my_model.add(Bidirectional(LSTM(100,activation='tanh',recurrent_dropout = 0.2, dropout = 0.2,trainable=True)))
my_model.add(Dense(50,activation='sigmoid'))
my_model.add(Dropout(0.2))
my_model.add(Dense(classes_num, activation='softmax'))
print "Compiling..."
my_model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
print my_model.summary()
Я видел ссылку, в которой он говорит, чтобы изменить оптимизатор, который не помогает.Я также изменил LR на 0,1 и 0,001, но это тоже не помогает.
https://stats.stackexchange.com/questions/201129/training-loss-goes-down-and-up-again-what-is-happening
Кроме того, данные не сбалансированы с меткой 80% как 1
и 20%0
.Точность моей метрики составляет около 80%.Должен ли я изменить свои метрики на f1_score для метки 0?Если да, как я могу это сделать?Я не могу найти прямую документацию.
Должен ли я добавить еще слой, так как это может быть мелко?Есть ли способ, которым я могу напечатать градиенты?