После расчета градиентов моих параметров w и u, каков следующий шаг для их оптимизации с помощью SGD?

Что я кодирую: я создаю простую нейронную сеть с матрицей весов w и вторым параметром u для оценки. После умножения моего входного вектора на w результат умножается на вектор u, чтобы получить результат в виде одной цифры, и это моя оценка.

Где я сейчас: я рассчитал градиенты обоих двух параметров по отношению к моей функции потерь.

Моя проблема: И теперь я застрял, что делать дальше?

Мое предложение по решению: Могу ли я обновить параметр с помощью w = w + скорость обучения * w_grad (а также для u с u = u скорость обучения * u_grad) и выполнять эту процедуру до тех пор, пока значение затрат / потерь не уменьшится. .. Это работает? Это верно? Это упрощенная реализация стохастического градиентного спуска?

Я программирую на Java, если у вас есть простой и хорошо документированный пример того, как легко оптимизировать нейронную сеть, вы можете поделиться им со мной.

Заранее спасибо!


person user3352632    schedule 21.04.2015    source источник
comment
стохастический градиентный спуск или что-то еще?   -  person Yuriy Zaletskyy    schedule 21.04.2015
comment
стохастический градиентный спуск   -  person user3352632    schedule 21.04.2015
comment
Вы хотите иметь один нейрон или нейронную сеть? Если нейронная сеть, то сколько слоев?   -  person Yuriy Zaletskyy    schedule 21.04.2015
comment
Нейронная сеть, как описано выше. Входной слой, скрытый слой, выходной слой. Вход * W --› fsigmoid --› *U --› Выход / оценка   -  person user3352632    schedule 22.04.2015


Ответы (1)


Я предполагаю, что w_grad является частными производными. Если говорить о предложении вашего решения, то это то, что называется итеративным способом оптимизации. Всего одно уточнение. Вместо w = w + скорость обучения * w_град вы должны использовать w = w - скорость обучения * w_град. Он отлично работает, но если у вас многоядерный компьютер, он будет использовать только одно ядро. Если вам нужно повысить производительность, вы можете попробовать пакетный алгоритм. w = w - скорость обучения * Сумма (w_grad). Повышение производительности достигается при расчете w_grad

person Yuriy Zaletskyy    schedule 22.04.2015