Inception [1] — семейство сверточных нейронных сетей (CNN) для компьютерного зрения , представленное исследователями Google в 2014 году как GoogLeNet (позже переименованное в Inception v1). Серия была исторически важна как ранняя CNN, которая разделяет ствол (прием данных), тело (обработка данных) и голову (прогнозирование), архитектурный дизайн, который сохраняется во всех современных CNN. [2]
В 2014 году команда Google разработала архитектуру GoogLeNet, экземпляр которой победил в конкурсе ImageNet Large-Scale Visual Recognition Challenge 2014 (ILSVRC14). [1] [3]
Название пришло от LeNet 1998 года, поскольку и LeNet, и GoogLeNet являются CNN. Они также назвали его «Inception» в честь интернет-мема «we need to go depth», фразы из фильма «Начало » (2010) . [1] Поскольку позже было выпущено больше версий, оригинальная архитектура Inception была снова переименована в «Inception v1».
Модели и код были опубликованы под лицензией Apache 2.0 на GitHub. [4]
Архитектура Inception v1 представляет собой глубокую CNN, состоящую из 22 слоев. Большинство этих слоев были «модулями Inception». В оригинальной статье говорилось, что модули Inception являются «логической кульминацией» Network in Network [5] и (Arora et al, 2014). [6]
Поскольку Inception v1 является глубокой, она страдала от проблемы исчезающего градиента . Команда решила ее, используя два «вспомогательных классификатора», которые являются линейными softmax-классификаторами, вставленными на глубину 1/3 и 2/3 внутри сети, а функция потерь представляет собой взвешенную сумму всех трех:
Они были удалены после завершения обучения. Это было позже решено архитектурой ResNet .
Архитектура состоит из трех частей, расположенных друг над другом: [2]
Эта структура используется в большинстве современных архитектур CNN.
Inception v2 был выпущен в 2015 году в статье, которая более известна тем, что предлагает пакетную нормализацию . [7] [8] Он имел 13,6 миллионов параметров.
Он улучшает Inception v1, добавляя пакетную нормализацию и удаляя выпадение и локальную нормализацию отклика , которые, как они обнаружили, стали ненужными при использовании пакетной нормализации.
Inception v3 был выпущен в 2016 году. [7] [9] Он улучшает Inception v2 за счет использования факторизованных свёрток.
Например, одну свертку 5×5 можно разложить на 3×3, уложенные друг на друга 3×3. Оба имеют рецептивное поле размером 5×5. Ядро свертки 5×5 имеет 25 параметров по сравнению с 18 в факторизованной версии. Таким образом, свертка 5×5 строго мощнее факторизованной версии. Однако эта мощность не обязательно нужна. Опытным путем исследовательская группа обнаружила, что факторизованные свертки помогают.
Он также использует форму уменьшения размерности путем объединения выходных данных из сверточного слоя и слоя объединения . Например, тензор размера может быть уменьшен с помощью свертки с шагом 2 до , и с помощью maxpooling с размером пула до . Затем они объединяются в .
Помимо этого, он также удалил самый низкий вспомогательный классификатор во время обучения. Они обнаружили, что вспомогательная головка работала как форма регуляризации .
Они также предложили регуляризацию сглаживания меток в классификации. Для изображения с меткой вместо того, чтобы заставить модель предсказывать распределение вероятностей , они заставили модель предсказывать сглаженное распределение, где — общее число классов.
В 2017 году команда выпустила Inception v4, Inception ResNet v1 и Inception ResNet v2. [10]
Inception v4 — это инкрементное обновление с еще большим количеством факторизованных сверток и другими усложнениями, которые, как было эмпирически обнаружено, улучшают результаты тестов.
Inception ResNet v1 и v2 являются модификациями Inception v4, где остаточные соединения добавляются к каждому модулю Inception, вдохновленному архитектурой ResNet . [11]
Xception («Extreme Inception») был опубликован в 2017 году. [12] Это линейный стек глубинно-разделимых слоев свертки с остаточными связями. Дизайн был предложен на основе гипотезы, что в CNN корреляции между каналами и пространственные корреляции в картах признаков могут быть полностью разделены .