Какие уловки мы можем использовать для дальнейшего совершенствования обученной модели нейронной сети, чтобы она имела более низкое значение целевой функции? - PullRequest
0 голосов
/ 20 февраля 2019

Я задаю этот вопрос, потому что многие структуры глубокого обучения, такие как Caffe, поддерживают функцию уточнения модели.Например, в Caffe мы можем использовать снимок для инициализации параметров нейронной сети, а затем продолжить выполнение обучения, как показано в следующей команде:

./caffe train -solver solver_file.prototxt -snapshot snap_file.solverstate

Чтобы продолжить обучение модели, я могу сыграть на следующих приемахс:

  • использовать меньшую скорость обучения
  • изменить метод оптимизации.Например, изменить стохастический градиентный спуск на алгоритм ADAM

Какие-нибудь другие приемы, с которыми я могу играть?

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

1 Ответ

0 голосов
/ 20 февраля 2019

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

  • меньшая скорость обучения
  • больше / другое увеличение данных
  • добавление шума в набор поездов (действительно, связанных с увеличением данных)
  • точная настройка на подмножество обучающего набора.

Самый последний действительно очень мощный метод для финализации модели, которая работает плохо в некоторых угловых случаях.Затем вы можете создать «сложное» подмножество поездов, чтобы сместить модель к нему.Я лично использую это очень часто.

...