Как бороться со случайностью процесса обучения NN?
Рассмотрим процесс обучения глубинной нейронной сети FF с использованием мини-пакетного градиентного спуска. Насколько я понимаю, в каждую эпоху обучения у нас разные случайные наборы мини-партий. Затем итерируя по всем мини-пакетам и вычисляя градиенты параметров NN, мы будем получать случайные градиенты на каждой итерации и, следовательно, случайные направления для параметров модели, чтобы минимизировать функцию стоимости. Давайте представим, что мы исправили гиперпараметры алгоритма обучения и начали процесс обучения снова и снова, а затем мы получили бы модели, которые полностью отличаются друг от друга, потому что в этих тренировках изменения параметров модели были разными.
1) Это всегда тот случай, когда мы используем такие случайные алгоритмы обучения?
2) Если это так, то где гарантия, что тренировка NN еще раз с лучшими гиперпараметрами, найденными во время предыдущих тренировок и проверок, даст нам снова лучшую модель?
3) Можно ли найти такие гиперпараметры, которые всегда будут давать лучшие модели?
1 ответ
Нейронные сети решают проблему оптимизации. Пока она вычисляет градиент в правильном направлении, но может быть случайной, это не мешает ее цели обобщать данные. Это может застрять в некоторых местных оптимах. Но есть много хороших методов, таких как Adam, RMSProp, основанный на импульсе и т. Д., С помощью которых он может достичь своей цели.
Другая причина, когда вы говорите, что мини-пакет, есть, по крайней мере, некоторая выборка, по которой она может обобщать эту выборку, могут быть колебания частоты ошибок, но, по крайней мере, это может дать нам локальное решение.
Даже при каждой случайной выборке эти мини-партии имеют различную выборку-2, что помогает хорошо обобщать по всему распределению.
Для выбора гиперпараметра вам нужно выполнить настройку и проверить результат на невидимых данных, прямого способа выбрать их нет.