Как предотвратить переоснащение в последовательной модели Keras? - PullRequest
0 голосов
/ 15 ноября 2018

Я уже добавляю регуляризацию отсева. Я пытаюсь построить многоуровневую текстовую классификацию многослойной модели персептрона. Моя модель:

model = Sequential([
                Dropout(rate=0.2, input_shape=features),
                Dense(units=64, activation='relu'),
                Dropout(rate=0.2),
                Dense(units=64, activation='relu'),
                Dropout(rate=0.2),
                Dense(units=16, activation='softmax')])

Моя модель. Сумма ():

_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
dropout_1 (Dropout)          (None, 20000)             0
_________________________________________________________________
dense_1 (Dense)              (None, 64)                1280064
_________________________________________________________________
dropout_2 (Dropout)          (None, 64)                0
_________________________________________________________________
dense_2 (Dense)              (None, 64)                4160
_________________________________________________________________
dropout_3 (Dropout)          (None, 64)                0
_________________________________________________________________
dense_3 (Dense)              (None, 16)                1040
=================================================================
Total params: 1,285,264
Trainable params: 1,285,264
Non-trainable params: 0
_________________________________________________________________
None
Train on 6940 samples, validate on 1735 samples

Я получаю:

Epoch 16/1000
 - 4s - loss: 0.4926 - acc: 0.8719 - val_loss: 1.2640 - val_acc: 0.6640
Validation accuracy: 0.6639769498140736, loss: 1.2639631692545559

Точность проверки на ~ 20% меньше точности, а потеря при проверке намного выше потери при обучении.

Я уже использую регуляризацию отсева и использую эпохи = 1000, размер партии = 512 и раннюю остановку на val_loss.

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...