Глубокая нейронная сеть - порядок параметров для настройки - PullRequest
0 голосов
/ 03 октября 2019

Я новичок в этом поле DNN, и мне надоели настраиваемые гиперпараметры и другие параметры в DNN, потому что есть много параметров для настройки, и это похоже на многопараметрический анализ без помощи компьютера. Как человек может двигаться к наивысшей точности, которая может быть достигнута для задачи, использующей DNN, из-за огромного количества переменных внутри DNN. И как мы узнаем, какую точность можно получить, используя DNN, или я должен отказаться от DNN? Я потерян. Помощь приветствуется.

Основные проблемы, которые у меня есть:

1. What are the limits of DNN / when we have to give up on DNN

2. What is the proper way of tunning without missing good parameter values

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

для переоснащения -

1. reduce the number of layers
2. reduce the number of nodes of layers
3. add regularizers (l1/ l2/ l1-l2) - have to decide the factors
4. add dropout layers and -have to decide the dropout factor
5. reduce batch size
6. stop earlier

для переоснащения

1. increase the number of layers
2. increase number of nodes of layers
3. Add different types of layers (Conv, LSTM, ...)
4. add learning rate decay (decide the type and parameters for the type)
5. reduce the learning rate

кроме того, что обычно мы можем сделать,

1. number of epochs (by seeing what is happening while model training)
2. Adjust Learning Rate
3. batch normalization -for fast learning
4. initializing techniques (zero/ random/ Xavier / he)
5. different optimization algorithms

методы автоматической настройки

- Gridsearchcv - but for this, we have to choose what we want to change and it takes a lot of time.

1 Ответ

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

Краткий ответ: Вы должны экспериментировать много !

Длинный ответ: Сначала вы можете быть поражены наличием большого количества ручек, которые вы можете настроить, но постепенно вы становитесь опытными. Очень быстрый способ получить некоторое представление о том, как настроить гиперпараметры вашей модели, - попытаться повторить то, что опубликовали другие исследователи. Копируя результаты (и пытаясь улучшить современное состояние), вы приобретаете интуицию о глубоком обучении.
Лично я не следую определенному порядку в настройке гиперпараметров модели. Вместо этого я пытаюсь реализовать грязную модель и улучшить ее. Например, если я вижу, что в точности проверки есть превышения, которые могут быть показателем того факта, что модель колеблется вокруг «сладкой точки», я делю скорость обучения на десять и вижу, как это происходит. Если я вижу, что модель начинает перегоняться, я использую раннюю остановку, чтобы сохранить лучшие параметры перед переоснащением. Я также играю с показателями отсева и снижения веса, чтобы найти наилучшую их комбинацию, чтобы модель была достаточно подходящей, сохраняя при этом эффект регуляризации. И т. Д.
Чтобы исправить некоторые из ваших предположений, добавление различных типов слоев не обязательно поможет вашей модели не перегружаться. Более того, иногда (особенно при использовании трансферного обучения, что является тенденцией в наши дни), вы просто не можете просто добавить сверточный слой в свою нейронную сеть.
Предполагая, что вы имеете дело с задачами компьютерного зрения, Data Augmentation - еще один полезный подход для увеличенияколичество доступных данных для обучения вашей модели и выполнения ее производительности.
Также обратите внимание, что нормализация партии также имеет эффект регуляризации. Weight Decay - это еще одна широко распространенная реализация регуляризации l2.
Другой интересный метод, который может улучшить обучение нейронных сетей, - это политика One Cycle для скорости и импульса обучения (если применимо). Проверьте эту бумагу: https://doi.org/10.1109/WACV.2017.58

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