2015-11-30 1 views
1

Я реализовал NN для OCR. Моя программа имела неплохой процент успешных признаний, но недавно (два месяца назад) производительность снизилась на ~ 23%. После анализа данных я заметил, что появились некоторые новые нарушения в изображениях (дополнительные завихрения, шум). Другими словами, мне нужно было изучить некоторые новые данные, но также необходимо было убедиться, что он не забудет старые данные. Чтобы достичь этого, я обучил NN смешению старых и новых данных, и очень сложная функция, которую я пробовал, мешала тяжелым изменениям (изначально я ограничивал изменения не более чем на 3%, но позже принимал 15%). Что еще можно сделать, чтобы помочь NN «забыть» старые данные?Как предотвратить NN от забывания старых данных

ответ

1

Это большой вопрос, который в настоящее время активно исследуется.

Это звучит для меня так, как если бы ваша первоначальная реализация была переучена из первоначального набора данных, что не позволяет эффективно обобщать новые данные. Существует множество методов для предотвращения этого:

  1. Убедитесь, что ваша сеть является наименьшим размером, который все еще может решить проблему.
  2. Используйте некоторую форму методики регуляризации. Одним из моих фаворитов (и нынешнего фаворита исследователей) является техника отсева. В основном каждый раз, когда вы кормите вперед, каждый нейрон имеет процентный шанс вернуть 0 вместо обычной активации. Другие распространенные методы включают L1, L2 и распад массы.
  3. Играйте с постоянной учебой. Возможно, ваша постоянная слишком высокая.
  4. Наконец-то продолжайте обучение так, как вы описали. Создайте буфер всех datapoints (новый и старый) и подготовьте произвольно выбранные точки в случайном порядке. Это поможет убедиться, что ваша сеть не попадает в локальный минимум.

Лично я хотел бы попробовать эти методы, прежде чем пытаться ограничить, как нейрон может учиться на каждой итерации. Если вы используете активацию Sigmoid или Tanh, тогда значения вокруг .5 (сигмоида) или 0 (tanh) будут иметь большую производную и быстро изменятся, что является одним из преимуществ этих активаций. Для достижения аналогичного, но менее навязчивого эффекта: играйте с постоянной учебой. Я не уверен в размере вашей сети или количестве образцов, которые у вас есть, но попробуйте обучающую константу ~ .01