tf.losses.mean_squared_error с отрицательной целью - PullRequest
1 голос
/ 23 мая 2019

Я использую Q learning и хочу знать, могу ли я использовать функцию расчета потерь tf.losses.mean_squared_error, если у меня есть функция вознаграждения, которая может давать отрицательные вознаграждения.

Потому что, если я, например, имею в качестве выхода моей сети следующие значения Q: (0,1, 0,2, 1), и я рассчитываю, что мои реальные значения Q должны быть (0,1, -5, 1), если я использую Функция mean_squared_error: потеря для второго значения Q будет положительной, я не прав? Из-за квадратной операции, поэтому снижение градиента не будет основано на правильной потере?

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Да, это хорошо работает.

Вы должны относиться к функции стоимости mse.

mse = tf.reduce_mean(tf.square((x*w+b)-y))

Функция стоимости вычисляет квадрат разности. Это означает, что всегда - значения становятся +.

И, Вы правы.
7-1 и 5+ -1 имеют ту же стоимость, что и 36.

Для большего понимания градиентного спуска Вам необходимо знать, как минимизировать mse. На изображении ниже вы можете видеть текущие mse по x*w+b.
В этот момент градиентный спуск получает наклон, чтобы определить направление w, которое будет изменено.

enter image description here

Наклон вычисляется как производная .

enter image description here

Вы можете увидеть следующую формулу после производной функции mse.

enter image description here

Итак, вы можете видеть направление W, где W будет смещено влево, если ((w*x-y)*x) > 0, и смещено вправо, если нет.

1 голос
/ 24 мая 2019

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

Как вы прокомментировали, функция MSE всегда будет положительной из-за квадратной операции. Однако это желательный эффект.

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

Следующая схема (из Градиентный спуск: все, что вам нужно знать статья) иллюстрирует процесс градиентного спуска, который может помочь лучше понять, что я имею в виду:

enter image description here

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