Как метод градиентного спуска обновляет параметры - PullRequest
0 голосов
/ 01 ноября 2019

Я много искал, чтобы понять, как алгоритм градиентного спуска обучает и обновляет параметры, когда мы разбиваем данные на, скажем, B партии (или мин-партии), а также предполагаем, что количество эпох составляет * 1003. * E . Я собираюсь записать свое понимание, и я просто хочу убедиться, что это правильно. Поэтому, пожалуйста, поправьте меня, где бы я ни находился на выезде с полосы движения !!!

1-Давайте начнем с первой эпохи. Таким образом, в первом пакете (или мини-пакете) метод градиентного спуска показан первым образцом этого пакета, и, выполнив один шаг метода градиентного спуска, он вычисляет обновления параметров (скажем, веса), но не обновляетони (просто хранят их в своей памяти) до тех пор, пока не будет показан последний образец первой партии, и градиентный спуск вычислит обновления и сохранит их в памяти, а затем обновит весовые коэффициенты, усредняя (или суммируя) их по всей партии. Таким образом, в каждой партии он рассчитывает вес для одного образца независимо от других образцов в той же партии.

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

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

4- Таким образом, число шагов градиентного спуска на самом деле B * E В одной партии у нас есть один шаг градиентного спуска, а для следующей партии у нас есть следующий шаг градиентного спуска, нона разных данных, потому что данные в каждой партии отличаются от других партий!

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

Поэтому было бы неплохо, если бы вы исправили меня, если я допустил ошибку где-то в вышеприведенных строках.

Спасибо.

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