Обучение и проверка работоспособны в течение 2 эпох, но после 2-3 эпох Val_loss продолжает увеличиваться, в то время как Val_acc продолжает увеличиваться.
Я пытаюсь обучить модель CNN, чтобы классифицировать данный отзыв как отдельный.класс 1-5.Поэтому я считал это мультиклассовой классификацией.Я разделил набор данных на 3 набора - 70% обучения, 20% тестирования и 10% проверки.
Распределение данных обучения для 5 классов следующим образом.
1 - 31613, 2 -32527, 3 - 61044, 4 - 140005, 5 - 173023.
Поэтому я добавил веса классов следующим образом.
{1: 5.47, 2: 5.32, 3: 2.83, 4: 1.26, 5: 1}
Структура модели выглядит следующим образом.
input_layer = Input(shape=(max_length, ), dtype='int32')
embedding = Embedding(vocab_size, 200, input_length=max_length)(input_layer)
channel1 = Conv1D(filters=100, kernel_size=2, padding='valid', activation='relu', strides=1)(embedding)
channel1 = GlobalMaxPooling1D()(channel1)
channel2 = Conv1D(filters=100, kernel_size=3, padding='valid', activation='relu', strides=1)(embedding)
channel2 = GlobalMaxPooling1D()(channel2)
channel3 = Conv1D(filters=100, kernel_size=4, padding='valid', activation='relu', strides=1)(embedding)
channel3 = GlobalMaxPooling1D()(channel3)
merged = concatenate([channel1, channel2, channel3], axis=1)
merged = Dense(256, activation='relu')(merged)
merged = Dropout(0.6)(merged)
merged = Dense(5)(merged)
output = Activation('softmax')(merged)
model = Model(inputs=[input_layer], outputs=[output])
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['categorical_accuracy'])
model.fit(final_X_train, final_Y_train, epochs=5, batch_size=512, validation_data=(final_X_val, final_Y_val), callbacks=callback, class_weight=class_weights)
1/5 - потеря: 1.8733 - категориальная_точность: 0.5892 - val_loss: 0.7749 - val_categorical_accuracy: 0.6558
2/5 - потеря: 1,3908 - категориальная точность: 0,6917 - val_loss: 0,7421 - val_categorical_acraracy: 0,6784
3/5 - потеря: 0,9587 - категориальная_точность: 0,7734 - val_loss: 0,7595 * 0,67 * 0,67 * 0,67
4/5 - потеря: 0,6402 - категориальная точность: 0,8370 - допустимая потеря: 0,7921 - val_categorical_accuracy: 0,7216
5/5 - потеря: 0,4520 - категорическая точность: 0,8814 - val_loss: 0,8556 - 0,724 * оценка: 0,65
Окончательная точность = 0,7328754744261703
Кажется, что это чрезмерное поведение, но я попытался добавить выпадающие слои, которые не помогли.Я также пытался увеличить данные, что сделало результаты еще хуже.
Я совершенно новичок в области глубокого обучения, если у кого-то есть предложения по улучшению, пожалуйста, дайте мне знать.