Я собирался попросить больше примеров ваших данных и вашей сети, но это на самом деле не имело бы значения.
Как улучшить обобщение регрессионной нейронной сети?
Вы можете использовать те же вещи, что и для классификации нейронной сети.Единственное отличие состоит в том, что он делает с числами, которые выводятся из предпоследнего слоя!
Я добавил 10% пустых выборок в обучении, что позволило уменьшить ошибки вдвое,
Я не совсем понял, что это значит (поэтому мне все равно было бы интересно, если бы вы расширили свой вопрос некоторыми более конкретными деталями), но это немного похоже на использование отсева.В Keras вы добавляете слой Dropout()
между вашими другими слоями:
...
model.append(Dense(...))
model.append(Dropout(0.2))
model.append(Dense(...))
...
0.2 означает выпадение 20%, что является хорошей отправной точкой: вы можете поэкспериментировать со значениями до 0,5.Вы могли бы прочитать оригинальную статью или , эта статья , кажется, является хорошим введением с примерами keras.
Другой общий метод заключается в добавлении некоторого L1 и / или L2регуляризация, здесь ручной ввод .
Я обычно использую поиск по сетке, чтобы экспериментировать с каждым из них, например, пробуя каждый из 0, 1e-6, 1e-5 для каждого из L1и L2, и каждый из 0, 0,2, 0,4 (обычно используют одно и то же значение для всех слоев, для простоты) для отсева.(Если 1e-5 лучше, я мог бы также поэкспериментировать с 5e-4 и 1e-4.)
Но помните, что даже лучше, чем выше, больше тренировочных данных.Также рассмотрите возможность использования знаний предметной области для добавления дополнительных данных или дополнительных функций.