2014-08-28 11 views
2

Ссылаясь на этот ответ о выборе числа скрытых слоев и узлов в NN: https://stackoverflow.com/a/10568938/2265724
Пост предлагает добавить количество скрытых блоков, пока ошибка обобщения не начнет возрастать.
Но моя проблема - скорость обучения. Учитывая значение для числа скрытой единицы (т. Е. Одна точка данных на графике или одна конкретная архитектура, например, скажем, 10 скрытых единиц), как я могу установить скорость обучения и сколько эпох тренироваться?
1. используйте фиксированную скорость обучения (после того, как она сходится, то есть затраты снижаются) и выполняются в течение n эпох или до тех пор, пока плавающие (или валидационные ошибки) плагины (если они действительно падают с хорошей асимптотикой)
2. as в 1 с ранней остановкой
3. как в 1 или 2, но при попытке разных скоростей обучения в определенном (линейном или логарифмическом диапазоне)
4. как в 3, включая распад скорости обучения
5. как в 3 или 4, в том числе распад массы в качестве регуляризации или, возможно, лучший отказкак установить скорость обучения для обучения нейронной сети

Число параметров увеличивается от 1 до 5. 1 является самым быстрым, но не кажется удовлетворительным (почему бы не попробовать другую обучающую крысу эс?). 3-5 занимают много времени. Потому что, если я не счастлив, мне нужно попробовать другую архитектуру, увеличив количество скрытых единиц. И повторяйте до тех пор, пока не будет получен график, показанный в сообщении.

Я правильно понимаю и практикую это?

ответ

0

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

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

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

+1

Итак, вы говорите, что скорость обучения должна быть переделана, например, вариант 1 или 2 выше не является удовлетворительным. Затем, сколько возиться, т. Е. Сколько n очков попробовать, скажем в [0.001,1]. В моей проблеме n = 10 займет несколько дней. Я видел бумаги, в которых говорилось: «... мы тренировали нашу нервную сеть с частотой обучения = 0,01 ...», неясно, сколько из них они делали. – ng0323

+0

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

4

Это сложная проблема; есть даже подполе машинного обучения, посвященное изучению этого, получившее название hyperparameter optimization.

Самый простой способ решения проблемы гиперпараметра - поиск грубой силы, в котором вы пытаетесь систематически изменять параметры гиперпараметра вдоль сетки («поиск сетки») и выбирать лучший. Это довольно медленно, и это также раздражает, потому что кажется, что должен быть лучший способ.

Есть несколько различных школ мысли по улучшению поиска сетки:

  • Эволюционные методы назначить некоторые фитнес-счет в комбинацию гиперпараметров, а затем пытаться повторно использовать комбинации настроек параметров, которые выполняются хорошо вместе. Самый популярный метод, который я недавно видел в этом лагере, - CMA-ES.

  • Байесовские методы пытаются разместить какое-то предварительное распределение по значениям, которые, по мнению исследователя, являются разумными для каждого гиперпараметра. Затем, оценивая несколько разных параметров гиперпараметра, вы можете совместить полученную производительность с предыдущим статистически оптимальным способом.

Смежные вопросы