2015-08-07 3 views
1

http://i60.tinypic.com/no7tye.png Рис. 1 сверточных нейронная сеть (LeNet5)Сверточная нейронная сеть (LeNet 5). Конструирование С3, С5 слои

На сверточной нейронной сети (LeNet 5), рис. 1 исходя из свертки (C1), Макс Аккумулирование (Подвыборка) (S2, S4) вычисляются итерационным маннером. Но я не понял, как правильно перейти на C3 (Convolution).

http://tinypic.com/r/fvzp86/8 рис. 2 Поступая С1 слой

Во-первых, в качестве входных данных мы Получать MNIST 32 * 32 полутоновое изображение числа, воспринимая его как массив байтов размера 32 * 32. В слое C1 мы имеем 6 различных (разных) ядер, заполненных случайными малыми значениями. Каждое ядро ​​от 1 до 6 используется для построения 6 различных карт функций (по одному ядру на одну карту функций). Перемещение восприимчивого поля размером 5 * 5 один шаг по 1 пикселю (смещение) слева направо, умножение значения в изображении Массив на добавление ядра, добавление смещения и прохождение через сигмовидную функцию. Результатом является i, j текущей построенной функциональной карты. Как только мы достигли конца Image Array, мы закончили создание текущей карты функций.

http://i57.tinypic.com/rk0jk9.jpg рис. 3 Поступая S2 слой

Далее мы начинаем производить слой S2, опять-таки будет 6 особенность карты, как мы с помощью 2 * 2 восприимчивого поля индивидуальны для каждого из 6 художественных карт C1 слоя (используя максимальные операции объединения, выбрав максимальное значение в 2 * 2 восприимчивом поле). Продолжение С1, S2, S4, проводимое на итерационном маннеуре.

http://i58.tinypic.com/ifsidu.png Рис. Список 4 Подключение С3 слоя

Но затем мы должны вычислить C3 слой. Согласно различным документам, существует карта соединений. Не могли бы вы сказать, что воспринимается в списке подключений? Означает ли это, что мы все равно будем использовать 5 * 5 восприимчивое поле, как в слое C1. И, например, мы видим, что в первой строке есть отмеченные карты признаков, соответствующие столбцам (0,4,5,6,9,10,11,12,14,15). Означает ли это, что для построения карт характеристик слоя C3 0,4,5,6,9,10,11,12,14,15 мы продолжим сверточную операцию по первой карте признаков слоя S2 с 5 * 5 восприимчивым полем. Какое конкретное ядро ​​будет использоваться во время сверточной работы, или снова нам нужно случайным образом генерировать 16 ядер, заполненных небольшими числами, как мы это делали в слое C1. Если да, то мы видим, что карты характеристик 0,4,5,6,9,10,11,12,14,15 C3, окрашенные в светло-серый, светло-серый, темно-серый, светло-серый, темно-серый, светло-серый, темно-серый , светло-серый, светло-серый, темно-серый. Очевидно, что первая карта функций S2 светло-серая, но только 0,4,6,10,12,14 окрашены в светло-серый цвет. Возможно, построение 16 карт функций в C3 происходит по-разному. Не могли бы вы рассказать, как создать слой C5, будет ли он иметь определенный список соединений?

ответ

1

Отказ от ответственности: Я только что начал с этой темы, поэтому, пожалуйста, укажите ошибки в моей концепции!

  1. В оригинальной Lenet paper, на странице 8, вы можете найти карту соединения, которая связывает различные слои S2 для слоев С3. Этот список соединений сообщает нам, какие слои S2 свернуты с ядром (детали появятся), чтобы создать слои C3.

  2. Вы заметите, что каждый слой S2 участвует в производстве ровно 10 (не всех 16) слоев C3. Это показывает, что размер ядра равен (5x5x6) x 10.

  3. В C1 у нас было ядро ​​(5x5) x 6, то есть 5x5 с 6 картами функций. Это двумерная свертка. В C3 мы имеем (5x5x6) x 10 ядро, т.е.«ядро-ящик» с 10 картами функций. Эти 10 карт функций и ядро-ящик объединяются для создания 16 слоев, а не 6, поскольку они не полностью подключены.

  4. Что касается генерации весов ядра, это зависит от алгоритма. Он может быть случайным, заранее определенным или с использованием какой-либо схемы, например. xavier в кофе.

Что меня смущает, так это то, что детали ядра не определены и должны быть получены из данной информации.

Обновление: Как производится C5?

Слой С5 представляет собой сверточный слой с 120 картами функций. Карты функций C5 имеют размер 1x1, поскольку ядро ​​5x5 применяется на S4. В случае ввода 32x32 мы также можем сказать, что S4 и C5 полностью подключены. Размер ядра, примененного на S4, чтобы получить C5 (5x5x16) x 120 (смещение не показано). Подробности о том, как эти 120 ячеек ядра подключаются к S4, не указаны явно в документе. Однако в качестве намека упоминается, что S4 и C5 полностью связаны.

0

Ключевым моментом в документе, касающимся «C5», является то, что ядро ​​5x5 применяется к картам функций ALL 16 или S4 - полностью подключенному слою.

«Каждый блок подключен к 5x5 соседству на всех 16 картах функций S4».

Поскольку у нас есть 120 выходных блоков, у нас должно быть 120 подключений модуля смещения (иначе детали архитектуры не совпадают).

Затем мы подключаем все входные устройства 25x16 для создания одного из выходов карты объектов.

Таким образом, в общей сложности у нас есть

num_connections = (25x16 + 1) x120 = 48000 + 120 = 48120

Смежные вопросы