2016-07-15 6 views
-2

Я пытаюсь повторить эту статью https://arxiv.org/pdf/1606.07659v1.pdf в Keras. Он использует автокодер в качестве систем рекомендаций. Идея состоит в том, чтобы замаскировать некоторые из известных значений (рейтингов), чтобы научить вашу сеть прогнозировать неизвестные значения при правильном восстановлении других значений. Вы, следовательно, имеете три типа оценок: незамаскированные известные значения, замаскированные известные значения (становятся 0) и неизвестные значения (становятся 0). Функция потерь должна включать только ошибки неизвестных значений и маскированных известных значений, но если я правильно понимаю, вам также необходимо замаскировать вывод для неизвестных значений для обратного распространения, чтобы они не включали их в обновление веса (и это должно быть обоснованным). Прилагаемое изображение в ссылке (forward and back propagation) из учебника статьи и объясняет шаги вперед и назад.Keras - Маска для случая вывода для backpropagation

Есть ли у вас какие-либо идеи о том, как реализовать этот случай мудрой маскировки вывода или любым другим способом справиться с этой проблемой?

Большое спасибо!

ответ

0

Если два тензора (A, Mask) имеют одинаковую форму или могут быть переданы в одну и ту же форму. Затем используйте A*Mask для реализации маскирования по элементам.

Маскировка корпуса может быть выполнена K.switch() в document. Например, K.switch(T.equal(Mask, 0), 0, A) возвращает 0, если Mask 0 else Элемент-разумно.