Какое конкретное изменение формулы в цели меняет нейронную сеть с градиентного спуска на градиентное восхождение? - PullRequest
0 голосов
/ 25 декабря 2018

Было странно, когда я сталкиваюсь с этим в обучении подкреплению.Потеря MSE.Все должно быть идеально, чтобы быть градиентным спуском, и теперь это градиентное восхождение.Я хочу знать магию.Я сделал NumPy нейронной сети.Изменение производной приводит к градиентному всплытию.Какие конкретные изменения в производной приводят к градиентному всплытию?Это так просто, что автоград видит, что он вогнутый или выпуклый?

1 Ответ

0 голосов
/ 26 декабря 2018

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

Во-первых, позвольте мне извиниться от имени некоторых излюди в этом сообществе, потому что они не могут полностью понять эту тему и решили отказаться от голосования по этому вопросу.Этот вопрос очень специфичен для области ИИ, и вам, возможно, повезет больше, если вы разместите его на бирже стеков ИИ.

Вернуться к вопросу.Выполнение градиентного всплытия чрезвычайно просто, коротко говоря, вы просто применяете градиентный спуск, за исключением того, что ставите знак минуса перед термином градиента!

В коде тензорного потока:

gradients = - tf.compute_gradients(loss)
update = tf.apply_gradients(zip(gradients, vars))

Это основной алгоритм градиентного спуска, где тета - это веса модели, альфа - скорость обучения, а dJ / dtheta - градиент функции потерь по отношению к весам.

enter image description here

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

Пожалуйста, смотритеНа рисунке ниже от TowardsDataScience видно, что веса обновляются в направлении самого низкого значения J. (обратите внимание на положительное, а не на отрицательное)

enter image description here

Просто изменив знак обновления, мы можем вместо этого пойти другим путем (т. Е. Максимизировать вознаграждение

enter image description here

Ниже приведено формальное уравнение для градиентного отклонения для методов градиента политики. Градиент политики * Vt по существу равен dJ / dtheta.

enter image description here

...