Увеличивается ли количество измерений с каждой сверткой в ​​ConvNets? - PullRequest
0 голосов
/ 24 июня 2018

Я очень новичок в CNN, и я пытаюсь понять концепцию глубоких сверточных сетей.

Я понимаю, что мне нужно наложить свои фильтры на входное изображение, и я получаю массив изображений,После этого я применяю ReLU и max-pooling, что оставляет меня с массивом изображений.Однако я не понимаю, что делать, если я хочу применить другой набор фильтров.Раньше у меня было 1 изображение, которое превратилось в массив изображений, но теперь у меня есть массив изображений.Означает ли это, что я получу массив массивов изображений?2D массив, который на самом деле является 4D, потому что это 2D массив 2D массивов - изображений?А что происходит на следующих слоях?Будет ли 5 ​​измерений?и 6?

Кроме того, вы можете порекомендовать хороший письменный учебник (не видео) для начинающих?В идеале, если есть примеры для Java.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 25 июня 2018

Я думаю, вам не хватает того, что свертки работают на изображениях , включая их глубину .

Если входное изображение является изображением RGB, его глубина равна 3, а также глубина сверточных фильтровв первом слое - 3. Когда вы перемещаете эти 3D-фильтры по вашему 3D-изображению, вы получаете массив 2D-изображений, как вы говорите.Но если вы разместите эти выходные изображения в третьем измерении, вы снова получите трехмерное изображение.Теперь он не будет иметь глубину 3, но глубина будет равна количеству фильтров, которые вы использовали.Таким образом, во втором (и любом следующем) слое вы получаете 3D-изображение в качестве входных данных и также выводите 3D-изображение.Глубина изображения будет варьироваться в зависимости от количества фильтров в данном слое.Глубина фильтров должна соответствовать глубине соответствующего входного изображения.

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

...