Как бороться со случайностью процесса обучения НС?

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

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

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

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


person M.Sidorenko    schedule 12.01.2019    source источник
comment
Это неплохой вопрос, но он довольно теоретический, и я не уверен, что он лучше всего подходит для SO, поскольку он не входит в рамки программирования (например, как что-то сделать в Tensorflow или Pytorch)   -  person paisanco    schedule 12.01.2019
comment
Обоснование ответа здесь может быть полезным: Оценка алгоритма машинного обучения изменяется без каких-либо изменений данных или шагов   -  person desertnaut    schedule 13.01.2019


Ответы (1)


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

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

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

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

person Ankish Bansal    schedule 12.01.2019