Почему обучение Convolutions Networks намного медленнее, чем полностью подключенные сети - PullRequest
0 голосов
/ 16 января 2019

Это сверточная нейронная сеть, которую я построил:

Архитектура сверточной нейронной сети

А вот обычный ANN с только плотными слоями для сравнения:

Fully Connected Neural Network

Количество параметров вполне сопоставимо. Оба были использованы для классификации рукописных цифр из набора данных MNIST (60 000 массивов 28x28). Независимо от моей вычислительной мощности, обучение CNN происходит медленнее. ANN для 250 эпох на 60.000 изображений: 0:05 ч CNN за 20 эпох на 30.000 снимках: 12:00 ч.

Итак, вопрос в том, почему? Полагаю, из-за совместного использования параметров CNN количество параметров может быть аналогичным, но параметр слоя свертки используется несколько раз:

Ядро 3x3 на изображении 28x28 -> каждый параметр используется примерно 784 раза (одинаковое заполнение) использование 32 ядер, что приводит к выводу 28x28x32 (после объединения 14x14x32). Таким образом, ядро ​​для следующего сверточного слоя имеет размер 3x3x32, поэтому здесь каждый параметр будет использоваться примерно 6,272 раза.

Может ли кто-то, кто лучше понимает весь этот тренировочный процесс, согласиться или не согласиться со мной? Или у вас есть другие идеи на эту тему?

...