Модель DenseNet
В архитектуре DenseNet [1] используются два блока - плотный блок (dense block) и переходный блок (transition block).
В плотном блоке каждый следующий слой использует информацию со всех предшествующих слоёв плотного блока, как показано на рисунке:
Математически выход каждого слоя зависит от выходов всех предшествующих слоёв:
что реализуется тем, что входом для -го слоя является конкатенация выходов всех предыдущих слоёв.
Такая архитектура позволяет добавлять меньше каналов на каждом слое (экономя на числе параметров) и лучше обрабатывать ранее полученные признаки, поскольку информация, уже полученная на предшествующих слоях, эффективнее переиспользуется, поступая не в преобразованном виде (как в традиционных свёрточных сетях и ResNet), а в исходном виде.
Поскольку в плотном слое число каналов растёт линейно с ростом числа слоёв, в промежуточные узлы архитектуры вставляются переходные блоки (transition blocks), задача которых состоит в том, чтобы
-
уменьшить число каналов, используя поточечные свёртки размера 1x1;
-
уменьшить пространственное разрешение, используя пулинг.
Таким образом, обработка изображения состоит из последовательного применения плотных и переходных блоков, как показано ниже для случая 3х блоков каждого типа:
Архитектура DenseNet показала лучшее качество на датасетах CIFAR и SVHN, чем ResNet, и сравнимое с ней качество на датасете ImageNet при меньшем числе параметров [1].