Я работаю над репликацией нейронной сети. Я пытаюсь понять, как работают стандартные типы слоев. В частности, у меня возникли проблемы с поиском описания того, как ведут себя слои поперечного канала нормализации на обратном пути.
Поскольку уровень нормализации не имеет параметров, я мог бы предположить две возможные опции:
-
Градиенты ошибок со следующего (то есть более позднего) уровня передаются назад, не делая ничего с ними.
-
Градиенты ошибок нормализуются так же, как активация нормализуется по каналам в прямом проходе.
Я не могу придумать причину, по которой вы делали бы один над другим, основываясь на любой интуиции, поэтому я хотел бы помочь в этом.
EDIT1:
Слой представляет собой стандартный слой в caffe, как описано здесь http://caffe.berkeleyvision.org/tutorial/layers.html (см. "Нормализация локального ответа (LRN)" ).
Реализация уровня в переходе вперед описана в разделе 3.3 документа alexNet: http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
EDIT2:
Я считаю, что алгоритмы прямого и обратного прохода описаны в обеих библиотеках Torch: https://github.com/soumith/cudnn.torch/blob/master/SpatialCrossMapLRN.lua
и в библиотеке Caffe: https://github.com/BVLC/caffe/blob/master/src/caffe/layers/lrn_layer.cpp
Пожалуйста, может ли кто-нибудь, кто знаком с любым из них, перевести метод для этапа обратного прохода на простой английский?