Я занимаюсь исследованием сверточной нейронной сети.
Шесть различных ядер (или фильтров) применяются к одному и тому же изображению для создания шести карт объектов.
Слой № 0: Входное изображение размером 29x29 пикселей, таким образом, имеет 29 * 29 = 841 нейрон (входной нейрон).
Слой № 1: сверточный слой использует 6 различных ядер (или фильтров) размером 5x5 пикселей и длиной шага 2 (количество сдвига при свертывании входных данных с помощью ядер или фильтров), которые свернуты с входным изображением (29x29), создавая 6 различных карт признаков ( 13x13), таким образом, 13x13x6=1014 нейронов.
Размер фильтра 5x5 и смещение (для коррекции веса), таким образом, (5x5)+1 нейрон и если у нас есть 6 ядер (или фильтров), дают 6*[(5x5)+1]= 156 нейронов.
Во время свертки мы перемещаем ядра (или фильтры) 26 раз (13 перемещений по горизонтали + 13 перемещений по вертикали) и, наконец, 1014 * 26 = 26364 соединения со слоя № 0 на слой № 1.
Вам следует ознакомиться с этой исследовательской работой Y LeCun, L Bottou, Y Bengio: Обучение на основе градиента, применяемое к распознаванию документов Раздел II для понимания сверточной нейронной сети (рекомендую прочитать всю статью).
Другое место, где вы можете найти подробное объяснение и реализацию Python для CNN, — здесь. Если у вас есть время, я рекомендую пройти этот сайт для более подробной информации о глубоком обучении.
Спасибо.
person
Alwyn Mathew
schedule
11.12.2015