Как выполняется операция свертки, когда на входном слое присутствует несколько каналов? (например, RGB)Сверточные нейронные сети - несколько каналов
После некоторого чтения по архитектуре/реализации CNN я понимаю, что каждый нейрон в карте характеристик ссылается на NxM пикселей изображения, как определено размером ядра. Каждый пиксель затем учитывается с помощью карт характеристик, вычисленных с помощью набора NxM (ядро/фильтр), суммируется и вводится в функцию активации. Для простой серой шкалы изображения, я полагаю, операция будет что-то придерживаться следующего псевдокода:
for i in range(0, image_width-kernel_width+1):
for j in range(0, image_height-kernel_height+1):
for x in range(0, kernel_width):
for y in range(0, kernel_height):
sum += kernel[x,y] * image[i+x,j+y]
feature_map[i,j] = act_func(sum)
sum = 0.0
Однако я не понимаю, как расширить эту модель для работы с несколькими каналами. Существуют ли три отдельных набора веса для каждой карты объектов, разделяемых между каждым цветом?
Ссылка на раздел «Общие веса» этого учебника: http://deeplearning.net/tutorial/lenet.html Каждый нейрон в карте характеристик ссылается на слой m-1 с цветами, на которые ссылаются отдельные нейроны. Я не понимаю отношения, которые они выражают здесь. Являются ли ядра нейронов или пиксели и почему они ссылаются на отдельные части изображения?
Основываясь на моем примере, кажется, что единственное ядро нейронов является исключительным для конкретной области изображения. Почему они разделили компонент RGB на несколько регионов?
Я голосовал, чтобы закрыть этот вопрос как не относящийся к теме, потому что он принадлежит к stats.stackexchange – jopasserat