Применение граничных условий к выводу Keras - PullRequest
0 голосов
/ 08 октября 2018

У меня есть периодическое значение (угол) с периодом = pi (то есть pi+a = a).Я обучаю нейронную сеть в Керасе выводить это значение, учитывая набор входов.Сеть работает очень хорошо, за исключением границ 0 и pi (если значение истинности равно 0 или pi, ее прогноз является случайным).Это можно увидеть в этой гистограмме .Кто-нибудь знает, почему это так?Могу ли я как-то включить границы в тренинг или сказать, что если он предсказывает pi+a, когда значение истинности равно a, то он предсказывает правильно и не нуждается в обновлении своих весов и смещений?Спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Нейронные сети не очень хорошо справляются с задачей, в которой у вас непостоянное поведение в ваших данных.Особенно на угловых данных вроде твоих.Чтобы обойти вашу проблему, вы можете сначала выполнить тригонометрическое преобразование целевого значения.На самом деле это не что иное, как применение ядра к вашим данным.Допустим, ваши периодические выходные данные y=0...π.Тогда ваша новая цель - это двузначный вектор y_hat=[sin(2y), cos(2y)].Позвольте вашей сети тренироваться против y_hat, пока вы выполняете обратное преобразование y=.5 atan2(y_hat) во время вывода, чтобы получить исходное значение.

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