Установка скорости обучения для Faster R-CNN - PullRequest
0 голосов
/ 07 марта 2019

Я обучил Faster R-CNN (ResNet101, предварительно обученный на MS COCO) для шагов 50K с 5K пользовательских изображений. Я использовал SGD с импульсом (0,9). Скорость обучения составляла 0,0003 для шагов 10К, затем я уменьшил ее до 0,00003 для шагов 20К и, наконец, установил ее на 0,00003 для последних шагов 20К. Он приблизился, однако потери не упали ниже 0,2.

Теперь я добавляю еще 17К изображений в тренировочный набор, чтобы тренировать еще 50К шагов, и продолжаю тренировать ту же модель. По мере того, как я буду вводить больше данных, я хочу увеличить скорость обучения, а затем снова уменьшиться, потому что модель должна изучить вновь введенные данные.

Тем не менее, после увеличения скорости обучения потеря увеличивается (как и ожидалось), и, хотя я уменьшаю скорость обучения, она никогда не снижается. Она становится плоской, но не уменьшается ... Между тем, увеличивается MAP или она стабильна.

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

Я пытался:

  1. init LR: 0,0003 для шагов 10K, 0,00003 для шагов 20K, 0,000003 для 20 тыс. Шагов
  2. init LR: 0,0001 для шагов 10K, 0,00003 для шагов 20K, 0,000003 для шагов 20К
  3. init LR: 0,0001 для шагов 5К, 0,00003 для шагов 25К, 0,000003 для шагов 20К
  4. init LR: 0,0001 для 2500 шагов, 0,00003 для 27500 шагов, 0,000003 для 20K шагов
  5. init LR: 0,0003 для шагов 30К, 0,00003 для шагов 10К, 0,000003 для шагов 20К

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

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