Keras: переоснащение Conv2D - PullRequest
       12

Keras: переоснащение Conv2D

2 голосов
/ 17 октября 2019

Я пытаюсь построить сверточную модель. Я обучил две разные структуры следующим образом. Как вы видите, для одного слоя не наблюдается никаких явных изменений в количестве эпох. Двухслойный Conv2D представляет улучшение в точности и потерях для набора данных поезда, но характеристики проверки будут трагедией. В связи с тем, что я не могу увеличить свой набор данных, что мне следует сделать, чтобы улучшить характеристики проверки? Я изучил регуляризатор L1 и L2, но они не повлияли на мою модель. Figures SpatialDropout2D

Ответы [ 3 ]

2 голосов
/ 17 октября 2019

1) Вы можете использовать адаптивную скорость обучения (для вас может сработать экспоненциальный спад или ступенчатая зависимость). Кроме того, вы можете попробовать очень высокие скорости обучения, когда ваша модель переходит на локальный минимум.

2) Если вы тренируетесь с изображениями, вы можете перевернуть, повернуть или выполнить другие действия, чтобы увеличить размер набора данных, и, возможно, для вашего случая подойдут другие методы дополнения.

3) Попробуйте изменить модель на более глубокую, мелкую, широкую, узкую.

4) Если вы используете классификационную модель, убедитесь, что вы не используете sigmoid как функция активации в конце, если вы не выполняете бинарную классификацию.

5) Всегда проверяйте ситуацию с набором данных перед тренировкой.

  • Ваше разделение теста на поезд может не подходить для вашего случая.
  • В ваших данных могут быть сильные шумы.
  • Некоторое количество ваших данных может быть повреждено.

Примечание: Я буду обновлять их всякий раз, когда мне в голову приходит новая идея. Кроме того, я не хотел повторять комментарии и другие ответы, у них обоих есть ценная информация для вашего случая.

1 голос
/ 17 октября 2019

Проверка становится трагедией, потому что модель переоснащается на тренировочных данных, которые вы можете попробовать, если что-то из этого работает,

1) Нормализация партии была бы хорошим вариантом. 2) Попробуйте уменьшить размер партии.

0 голосов
/ 18 октября 2019

Я испробовал множество моделей, которые хорошо работают с небольшими наборами данных, но, как я и подозревал, и, как и мой окончательный вердикт - , это безнадежное дело .

У вас недостаточно данных для обучения хорошей модели DL или даже модели ML, такой как SVM, - что усугубляется наличием восьми отдельных классов;Ваш набор данных будет иметь некоторый шанс с SVM для бинарной классификации, но не для 8-класса. В крайнем случае, вы можете попробовать XGBoost, но я бы не стал на это ставить.

Что вы можете сделать? Получить больше данных. Там нет никакого способа обойти это. У меня нет точного числа, но для 8-классовой классификации я бы сказал, что вам нужно где-то в 50-200 раз больше ваших текущих данных, чтобы получить разумные результаты. Помните также, что ваша производительность валидации должна быть намного хуже при большем наборе валидации, указанном в этом номере.


Для читателей OP поделился со мной своим набором данных;формы: X = (1152, 1024, 1), y = (1152, 8)

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