Предыстория

Увлекательное путешествие в современные сети глубокого обучения началось с проф. Фей-Фей Ли, который тогда только что присоединился к профессору компьютерных наук в Университете Иллинойса в Урбана-Шампейн. У нее была идея пересмотреть мир наборов данных. Она поняла, что лучший алгоритм не будет работать, если данные, на которых он учится, не будут отражать реальный мир. Мы собираемся нанести на карту весь мир объектов, — сказала она.

Она была вдохновлена ​​WordNet (лексическая база данных, разработанная психологом из Принстона Джорджем Миллером и содержащая 155 тысяч слов из более чем 200 языков в середине 1980-х годов) и захотела создать что-то подобное для изображений и назвала ее ImageNet. Она начала работать над проектом в начале 2007 года. Она и ее два кандидата наук. Студенты (Цзя Дэн и Ольга Русаковская) использовали Amazon Mechanical Turk для сбора и маркировки с помощью WordNet 3,2 миллиона изображений, разделенных на 5 247 категорий (синсетов), в среднем более 600 изображений на синсет, отсортированных по 12 поддеревьям (т. е. млекопитающие, птица, рыба, рептилия, амфибия, транспортное средство, мебель, музыкальный инструмент, геологическое образование, инструмент, цветок, плод) всего за 2,5 года. Основной целью набора данных было использование в области распознавания объектов, классификации изображений и локализации объектов. Документ ImageNet был опубликован в 2009 году.

Профессор Ли работал главным научным сотрудником AI/ML (вице-президентом) в Google (2017–2018 гг.), членом совета директоров Twitter (2020–2022 гг.) и профессором Sequoia кафедры компьютерных наук в Стэнфордском университете с 2009.

ILSVRC (масштабная задача визуального распознавания ImageNet, 2010–2017 гг.)

Профессор Ли обратилась к PASCAL VOC, известному конкурсу по распознаванию изображений в Европе (2005–2012 гг.). Они согласились сотрудничать с ImageNet, и ILSVRC начал с 2010 года как ежегодное соревнование до 2017 года. В задаче PASCAL было всего 20 категорий, тогда как ILSVRC использовала уменьшенную версию ImageNet с 1000 категориями из 1,28 миллиона обучающих изображений и оценивала 50 тысяч проверочных изображений. Он стал эталоном для классификации и локализации изображений.

Первым победителем ILSVRC в мае 2010 года стала модель Descriptor Coding + SVM, разработанная командой NEC Laboratories America-University of Illinois Urbana-Champaign, США. Стоимость их классификации составила 0,28. Этот метод показал плохие результаты в некоторых категориях.

Почетное упоминание получил ядро Fisher + SVM от Xerox Research Center Europe (XRCE), Франция. Стоимость их классификации составила 0,34.

В следующем вызове в 2011 году XRCE победил в задаче классификации с сжатыми векторами Фишера со стоимостью классификации 0,26. Университет Амстердама и Университет Тренто выиграли задачу обнаружения с сегментацией как выборочный поиск сфиксированной стоимостью 0,425.

Нечто еще большее произошло в 2012 году, сразу после двух лет проведения первого конкурса ImageNet. Если бы экстраординарный бум искусственного интеллекта, который мы наблюдаем сегодня, можно было бы объяснить каким-то одним инцидентом, то это было бы объявление результатов конкурса ImageNet 2012 года. Алекс Крижевский, Илья Суцкевер и Джеффри Хинтон из Университета Торонто представили глубокую архитектуру CNN под названием AlexNet, которая до сих пор используется в исследованиях. 15,3% по сравнению с 26,2% у второго лучшего варианта.

ImageNet и ILSVRC вдохновили на создание совершенно нового поколения архитектур глубоких нейронных сетей для классификации изображений. В этой статье мы постараемся рассмотреть некоторые популярные из прошлого и современные.

Ленет (1989–98)

Прежде чем говорить об AlexNet, давайте взглянем на LeNet. Эта модель CNN была предложена Yann LeCun и др. в 1989 году и назван в честь LeCun. LeNet обычно относится к LeNet-5, который был опубликован в 1998 году.

  • Размер ввода: 32×32×1
  • Количество слоев: 7
  • Выход: 1 из 10 классов.
  • LeNet-1 впервые реализует обратное распространение.
  • LeNet-5 использует два основных типа слоев: Сверточные слои и Субдискретизирующие слои. Слой подвыборки применяет среднее объединение для уменьшения размерности и tanh функции активации.

Выполнение:

LeNet дает очень хорошую точность набора данных рукописных изображений MNIST.

АлексНет (2012)

Это улучшенная и более глубокая версия LeNet. Модель AlexNet стала победителем ILSVRC 2012 Алекса Крижевского, Ильи Суцкевера и Джеффри Хинтона из Университета Торонто имени Алекса Крижевского. Она считается одной из самых влиятельных статей, опубликованных в области компьютерного зрения.

  • Размер ввода: 224×224×3
  • Количество слоев: 8
  • Выход: 1 из 1000 классов
  • AlexNet использует активацию ReLU
  • Уменьшает переобучение с помощью Увеличение данных и Исключение (50%)

Выполнение:

ЗФНет (2013)

Опубликовано Matthew D. Zeiler и Rob Fergus из Нью-Йоркского университета, отсюда и название ZFNet, выиграло ILSVRC в 2013 году.

  • Размер ввода: 224×224×3
  • Количество слоев: 8
  • Выход: 1 из классов C
  • Все фильтры и карты объектов имеют квадратную форму.

ZFNet использует метод, называемый нормализованным контрастом для карт объектов. Локальная нормализация контраста (LCN) используется для нормализации контраста изображения нелинейным способом. Вместо выполнения глобальной нормализации на основе диапазона значений всего изображения LCN работает с локальными участками изображения для каждого пикселя. Это можно сделать, удалив среднее значение окрестности из определенного пикселя и разделив его на вариацию значений пикселей.

Последний слой имеет функцию softmax C-way, где C — количество классов.

GoogLeNet (2014) — Начало (2015)

GoogLeNet — это нейронная сеть с 22 слоями, которая выиграла ILSVRC 2014. Название — дань уважения Яну ЛеКуну, пионеру LeNet-5. Общее количество слоев (независимых строительных блоков), используемых для построения сети, составляет около 100. Она обучается на наборе данных Places365, классифицирует изображения по 365 категориям мест.

  • Размер ввода: 224×224×3
  • Количество слоев: 22 (100 независимых строительных блоков)
  • Выход: 1 из 1000 классов.
  • Его вес меньше, чем у VGG и ResNet.

GoogLeNet содержит блоки модулей, называемые Inception.Он имеет 9 начальных модулей, расположенных линейно. Более поздние версии под названием Inception vN вдохновлены одноименным фильмом Кристофера Нолана, который стал популярным мемом «Нам нужно пойти глубже». Начало v3 опубликовано в 2015 году.

Целью начального модуля является то, что он действует как «многоуровневый экстрактор признаков», вычисляя свертки 1×1, 3×3, 5×5 в одном и том же модуле сети. Затем выходные данные этих фильтров складываются по измерению канала и перед подачей на следующий уровень в нейронной сети. Сеть Inception накладывает эти модули друг на друга, периодически добавляя слои max-pooling с шагом 2, чтобы вдвое уменьшить разрешение сетки.

Реализация:

ВГГ (2014)

VGG — еще одна исключительная архитектура нейронной сети, которая только что проиграла GoogLeNet и заняла второе место в ILSVRC 2014. Она была предложена Карен Симонян и Эндрю Зиссерман из Visual Geometry Group, кафедра инженерных наук. , Оксфордский университет. Их основной вклад заключался в тщательной оценке сетей с возрастающей глубиной. Они использовали архитектуру с очень маленькими (3×3) свёрточными фильтрами. Он показал, что значительного улучшения можно добиться, увеличив глубину до 16–19 слоев веса (таким образом, VGG16–VGG19).

  • Размер ввода: 224×224×3
  • Количество слоев: 16–19 утяжеляющих слоев.
  • Выход: 1 из 1000 классов.
  • Использует активацию ReLU.

Эта сеть содержит несколько блоков, группу сверточных слоев с фильтрами 3 × 3 (заполнение = 1) и фильтр максимального объединения 2 × 2 (шаг = 2).

Реализация:

Реснет (2015)

Эта революционная модель от Microsoft Research заняла 1-е место в задаче классификации ILSVRC 2015. С набором данных ImageNet остаточная нейронная сеть (ResNet) может быть оценена с глубиной до 152 слоев — в 8 раз глубже, чем сети VGG, но все же с меньшей сложностью.

ResNet содержит сопоставление идентичности с помощью быстрых соединений, чтобы адаптировать остаточное обучение для каждых нескольких сложенных слоев (т. е. каждых двух слоев веса). Эти стеки являются строительными блоками для построения сети, которые называются «Остаточные блоки».

  • Размер ввода: 224×224×3
  • Количество слоев: 18,34,50,101,152 или более параметров (вес) слоев.
  • Выход: 1 из 1000 классов.
  • Оптимизатор SGD используется с размером мини-пакета 256
  • Использует активацию ReLU.
  • Отсев не используется.

Углубленные архитектуры узких мест: чтобы сократить время обучения, стандартный блок изменен как конструкция узких мест (для каждой остаточной функции используется стек из 3 слоев вместо 2) для ResNet-50/101/152.

Ансамбль этих остаточных сетей обеспечивает ошибку 3,57% в тестовом наборе ImageNet и относительное улучшение на 28% в наборе данных обнаружения объектов COCO.

Реализация:

ResNeXt (2016)

ResNeXt занял первое место в классификационном задании ILSVRC 2016. Он показал гораздо лучшие результаты, чем аналог ResNet.

ResNeXt использует набор строительных блоков, аналогичный тому, что используется в глубоких (50/101/152) нейронных сетях ResNet. Он создается путем повторения стандартного блока, который объединяет набор преобразований с одинаковой топологией.

ResNeXt обозначает новое измерение поверх ResNet. Это новое измерение называется «количество элементов» (размер набора преобразований/строительных блоков). Увеличение мощности может повысить точность классификации. Более того, увеличение кардинальности более эффективно, чем углубление или расширение при увеличении емкости.

Реализацию ResNeXt в Pytorch можно найти здесь.

СЕнет (2017)

Сети сжатия и возбуждения заняли первое место в представлении классификации ILSVRC 2017 и сократили ошибку топ-5 до 2,251%, превзойдя позицию, победившую в ILSVRC 2016, на 25%.

Он исследует другой аспект дизайна сети — взаимоотношения между каналами. В нем представлена ​​новая архитектурная единица, называемая блоком сжатия и возбуждения (SE). SE-блок — это упрощенный механизм шлюза, предназначенный для моделирования взаимосвязей между каналами эффективным с вычислительной точки зрения способом и предназначенный для повышения репрезентативной способности модулей по всей сети.

Карты объектов (u = vX) создаются путем суммирования по всем каналам (X). Зависимости каналов неявно встроены в ядра (v), но связаны с локальной пространственной корреляцией, улавливаемой фильтрами. Блок получает доступ к глобальной информации и повторно калибрует ответы фильтра за два шага, прежде чем они будут переданы в следующее преобразование:

  1. Squeeze: встраивание глобальной информации: глобальное среднее объединение используется (также может использоваться максимальное объединение) для сжатия глобальной пространственной информации в дескриптор канала с помощью генерация поканальной статистики (z = u/H×W).
  2. Возбуждение: Адаптивная повторная калибровка.Оператор возбуждения (ReLu / tanh / Sigmoid) сопоставляет дескриптор ввода (z) с набором весов канала. Чтобы полностью зафиксировать зависимости по каналам, функция должна соответствовать двум критериям:
  • Во-первых, он должен быть гибким (способным обучаться нелинейному взаимодействию между каналами).
  • Во-вторых, он должен изучить невзаимоисключающие отношения, поскольку мы хотели бы гарантировать, что несколько каналов могут быть выделены (вместо принудительной однократной активации).

  • Чтобы соответствовать этим критериям, использовался простой вентильный механизм с сигмоидальной(σ) активацией: s = F(z, W) = σ(g(z, W)) = σ(W₂ × ReLU(z × W₁))
  • Конечный результат блока получается путем масштабирования u с активациями s: x = Fₛ𝒸ₐₗₑ(u, s) = s × u
  • Размер ввода:
    Зависит от архитектуры модели (224 x 224 пикселя для Inception-ResNet-v2 или 299 x 299 пикселей для SE-Inception-ResNet-v2)
  • Количество слоев: зависит от архитектуры модели.
  • Выход: 1 из 1000 классов.

Реализацию SE-ResNeXt101 в PyTorch можно найти здесь.

SENet превосходит предыдущую современную модель Places-365-CNN, у которой в этой задаче ошибка топ-5 составляет 11,48%. На самом деле, это было настолько хорошо, что знаменитое соревнование ILSVRC полностью завершилось.

Масштабирование трансформеров видения (2021)

Нейронные сети, основанные на внимании, такие как Vision Transformer (ViT), получили самые современные результаты во многих тестах компьютерного зрения. Масштаб — это основной компонент для достижения отличных результатов, поэтому понимание свойств масштабирования модели является ключом к эффективному проектированию будущих поколений. Неизвестно, как масштабируются Vision Transformers. Для решения этой проблемы исследователи применяют следующие методы:

  1. Верхние и нижние модели и данные ViT,
  2. Охарактеризовать отношения между частотой ошибок, данными и вычислениями.
  3. Уточнить архитектуру и обучение ViT,
  4. Уменьшить потребление памяти,
  5. Повышение точности получаемых моделей.

В результате исследователи успешно обучили модель ViT с параметрами 2 миллиарда, которая в ImageNet достигла точности 90,45% в топ-1. Модель также хорошо работает при обучении с несколькими выстрелами, например, достигнув 84,86% точности первого уровня в ImageNet всего с 10 примерами на класс.

Реализацию ViT в PyTorch можно найти здесь.

КоКа (2022)

Contrastive Captioners (CoCa) показывает, что одна предварительно обученная модель может превзойти многие специализированные модели, используя нулевой перенос или минимальную адаптацию к конкретной задаче. Он использует модифицированную архитектуру кодер-декодер, обученную как контрастной потере, так и потере субтитров (генеративной).

Они разделяют трансформатор декодера на 2 части:

  1. Унимодальный декодер:
     – исключить перекрестное внимание в слоях одномодального декодера для кодирования текстовых представлений.
  2. Мультимодальный декодер:
     – каскадные уровни мультимодального декодера, взаимодействующие с выходными данными кодировщика изображений, для изучения мультимодальных представлений изображения и текста.

Они применяют как контрастную цель между выходами кодировщика изображений и одномодального декодера текста, так и цель субтитров на выходе мультимодального декодера.

С замороженным кодировщиком CoCa достигает 90,6 % по классификации ImageNet, а после облегченной тонкой настройки CoCa достигает высочайшей точности 91,0 %.

Реализацию CoCa в PyTorch можно найти здесь.

Что дальше?

В декабре 2022 года появились Преобразователи с самоконтролем, учитывающие местоположение, где каждый патч в представлении запроса должен предсказывать свое положение относительно другого эталонного представления, а IncepFormer представляет новый кодировщик преобразователя с пирамидальной структурой, интегрирующий архитектуру, подобную Inception, с глубиной. -мудрые извилины. Новые модели будут лучше старых. Иногда старые методы возвращаются с новым поворотом, чтобы побить все известные рекорды. Постараюсь обновлять эту статью. Перепроверьте через несколько месяцев. Чусс!

Использованная литература:

  • Дж. Денг, В. Донг, Р. Сочер, Л.-Дж. Ли, К. Ли и Л. Фей-Фей, ImageNet: крупномасштабная иерархическая база данных изображений. Компьютерное зрение IEEE и распознавание образов (CVPR), 2009 г.pdf | БибТекс
  • Русаковский О., Дэн Дж., Су Х. и др. Проблема визуального распознавания большого масштаба ImageNet. Int J Comput Vis 115, 211–252 (2015 г.). https://doi.org/10.1007/s11263-015-0816-y
  • Эверингем, М., Ван Гул, Л., Уильямс, С.К.И., Винн, Дж. и Зиссерман, А. Вызов PASCAL Visual Object Classes (VOC)International Journal of Computer Vision, 88 (2), 303–338, 2010
    Источник Bibtex | "Абстрактный"
  • (LeNet) Ю. Лекун, Л. Ботту, Ю. Бенжио и П. Хаффнер, Обучение на основе градиента применительно к распознаванию документов в Proceedings of the IEEE, vol. 86, нет. 11, стр. 2278–2324, ноябрь 1998 г., doi: 10.1109/5.726791.
  • (AlexNet) Алекс Крижевский, Илья Суцкевер и Джеффри Э. Хинтон. 2017. Классификация ImageNet с использованием глубоких сверточных нейронных сетей. Commun. ACM 60, 6 (июнь 2017 г.), 84–90. DOI: https://doi.org/10.1145/3065386
  • (ZFNet) Мэтью Д. Зейлер, Роб Фергус, Визуализация и понимание сверточных сетей. CoRR абс/1311.2901 (2013)
  • (GoogLeNet) C. Szegedy et al., Углубление сверток, Конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 2015 г., стр. 1–9, doi: 10.1109/CVPR.2015.7298594.
  • (Inceptionv3) К. Сегеди, В. Ванхуке, С. Иоффе, Дж. Шленс и З. Война, Переосмысление исходной архитектуры для компьютерного зрения, Конференция IEEE по компьютерам, 2016 г. Зрение и распознавание образов (CVPR), 2016, стр. 2818–2826, doi: 10.1109/CVPR.2016.308.
  • (VGG) К. Симонян, А. Зиссерман, Очень глубокие сверточные сети для крупномасштабного распознавания изображений, 2015, https://arxiv.org/abs/1409.1556 v6
  • (ResNet) He Kaiming, Zhang Xiangyu, Ren Shaoqing, Sun Jian (2016), Deep Residual Learning for Image Recognition. Конференция IEEE 2016 г. по компьютерному зрению и распознаванию образов (CVPR). Лас-Вегас, Невада, США: IEEE. стр. 770–778. arXiv: 1512.03385. doi:10.1109/CVPR.2016.90. ISBN 978–1–4673–8851–1.
  • (ResNeXt) Сайнин Се, Росс Б. Гиршик, Петр Доллар, Жуовен Ту, Кайминг Хе (2016), Агрегированные остаточные преобразования для глубоких нейронных сетей. https://arxiv.org/abs/1611.05431v2
  • (SENet) Цзе Ху, Ли Шен, Сэмюэл Олбани, Ган Сунь, Энхуа Ву (2019 г.),
    Сети сжатия и возбуждения, https:/ /arxiv.org/abs/1709.01507
  • (ViT) Сяохуа Чжай, Александр Колесников, Нил Хоулсби, Лукас Бейер (2021), Scaling Vision Transformers, https://arxiv.org/abs/2106.04560
  • (CoCa) Jiahui Yu, Zirui Wang, Vijay Vasudevan, Legg Yeung, Mojtaba Seyedhosseini, Yonghui Wu (2022), CoCa: Contrastive Captioners are Image-Text Foundation Models, https://arxiv.org /абс/2205.01917

Больше контента на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Заинтересованы в масштабировании запуска вашего программного обеспечения? Посмотрите Цирк.

Мы предлагаем бесплатные консультации экспертов и индивидуальные решения, которые помогут вам повысить осведомленность о вашем технологическом продукте или услуге и принять их.