Я реализовал нейронную сеть этой статьи, с некоторыми отличиями (ниже), для классификации ЭЭГ; train_on_batch
производительность отличная, с очень низкими потерями - но test_on_batch
производительность, хотя для тех же данных , плохая: сеть, кажется, всегда предсказывает '1', большую часть времени:
TRAIN (loss,acc) VAL (loss,acc)
'0' -- (0.06269842,1) (3.7652588,0)
'1' -- (0.04473557,1) (0.3251827,1)
Данные подаются в виде 30-секундных сегментов (12000 временных шагов) (10 минут на набор данных) из 32 (= batch_size) наборов данных одновременно (img ниже)
Любое средство?
Попытка устранения неисправности :
- Отключение отсева
- Отключение всех регуляризаторов (кроме пакетной нормы)
- Случайно, val_acc ('0', '1') = (~ .90, ~ .12) - затем обратно к (0,1)
Дополнительные сведения :
- Keras 2.2.4 (бэкэнд TensorFlow), Python 3.6, Spyder 3.3.4 через Anaconda
- CuDNN LSTM с состоянием
- CNNs предварительно подготовлены, LSTM добавлены впоследствии (и оба обучены)
BatchNormalization
после каждого слоя CNN & LSTM
reset_states()
применяется между различными наборами данных
- squeeze_excite_block вставляется после каждого, кроме последнего блока CNN
UPDATE :
Прогресс был достигнут;
batch_normalization
и
dropout
являются главными виновниками. Основные изменения:
- Удалены блоки LSTM, GaussianNoise, SqueezeExcite (ниже)
- Реализовано batch_norm патч
- Добавлено
sample_weights
для отражения дисбаланса класса - варьируется от 0,75 до 2.
- Обучен различным схемам разминки для выпадений MaxPool и Input
Наблюдалось значительное улучшение, но не почти полное. Поведение по сравнению с потерей в валидации действительно странно - переключение предсказаний классов и бомбардировка тех же самых наборов данных, которые он только что обучил :
Кроме того, BatchNormalization
выходы во время тренировки и тестирования значительно различаются (рис. Ниже)
ОБНОВЛЕНИЕ 2: Все другие подозрения были исключены:
Нормализация партии является виновником. Использование самонормализующихся сетей (SNN) с SELU и AlphaDropout вместо BatchNormalization дает стабильные и согласованные результаты.