Как бороться со случайностью процесса обучения NN? - PullRequest
0 голосов
/ 12 января 2019

Рассмотрим процесс обучения глубоководной нейронной сети с использованием мини-градиентного спуска. Насколько я понимаю, в каждую эпоху обучения у нас разные случайные наборы мини-партий. Затем итерируя по всем мини-пакетам и вычисляя градиенты параметров NN, мы будем получать случайные градиенты на каждой итерации и, следовательно, случайные направления для параметров модели, чтобы минимизировать функцию стоимости. Давайте представим, что мы исправили гиперпараметры алгоритма обучения и начали процесс обучения снова и снова, а затем мы получили бы модели, которые полностью отличаются друг от друга, потому что в этих тренировках изменения параметров модели были разными.

1) Это всегда тот случай, когда мы используем такие алгоритмы случайного обучения?

2) Если это так, то где гарантия, что тренировка NN еще раз с лучшими гиперпараметрами, найденными во время предыдущих тренировок и валидаций, снова даст нам лучшую модель?

3) Можно ли найти такие гиперпараметры, которые всегда дадут лучшие модели?

1 Ответ

0 голосов
/ 12 января 2019

Нейронная сеть решает задачу оптимизации. Пока она вычисляет градиент в правильном направлении, но может быть случайной, это не мешает ее цели обобщать данные. Это может застрять в некоторых местных оптимах. Но есть много хороших методов, таких как Adam, RMSProp, основанные на импульсе и т. Д., С помощью которых он может достичь своей цели.

Другая причина, когда вы говорите, что мини-пакет, есть, по крайней мере, некоторая выборка, по которой она может обобщать эту выборку, могут быть колебания частоты ошибок, и, по крайней мере, это может дать нам локальное решение.

Даже при каждой случайной выборке эти мини-партии имеют различную выборку-2, что помогает хорошо обобщать по всему распределению.

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

...