Ссылка на Часть 1

4. VGG -Sep 2014- Original PaperCode

Архитектура VGG представляет собой более глубокую сверточную нейронную сеть (CNN), чем AlexNet.

На приведенной выше диаграмме размеры представлены в формате [В x Ш x С], где В и Ш — высота и ширина изображения в пикселях, а С — количество каналов или количество фильтров, содержащихся в слое. . Входной слой, исходное изображение, начинается с 224 пикселей на 224 пикселя и трех каналов, которые придают ему цвет: R, G и B. Сотни фильтров, примененных к каждому слою, создают сотни каналов в промежуточном представлении. Слой max-pooling вдвое меньше предыдущего слоя. Как только сеть достигает полносвязного плотного сетевого уровня, последний слой создает массив из 1000 чисел, каждое из которых находится в диапазоне от нуля до единицы. Сумма этих чисел равна 1,00. Вы можете думать о каждом числе как о вероятности того, что изображение принадлежит соответствующему классу; таким образом, модель производит 1000 вероятностей, соответствующих 1000 классам.

Многие уровни VGG превзошли все архитектуры конкурса Imagenet 2014 года ILSVRC, достигнув точности более 90% в категории машинного обучения, известной как идентификация объектов.

С созданием VGG исследователи данных поняли, что чем глубже сеть, тем выше точность, что привело их к созданию сети VGG-19. С 19 слоями в дополнение к слоям с максимальным пулом авторы создали самую глубокую функционирующую сеть в то время — намного глубже, чем 8 слоев AlexNet.

Величайшее нововведение, обнаруженное VGG, — это эквивалентные рецептивные поля. Большие рецептивные поля (например, извилины AlexNet 11x11) принимали много параметров, в то время как серия небольших извилин 3x3 эквивалентного рецептивного поля могла обрабатывать тот же объем информации с гораздо меньшим количеством параметров. Лучше делать больше с меньшими затратами. Больше параметров означает больше возможностей для переобучения.

5. ResNet -декабрь 2015- Оригинальная статьяКод

Следующей нейронной сетью на временной шкале, побившей самые современные рекорды, стала ResNet. Эта новая сеть решила основную проблему, с которой столкнулись специалисты по данным при внедрении структур VGG. Эта модель улучшена по сравнению с моделью VGG за счет добавления пропуска соединений. Проще говоря, пропуск соединений помогает сгладить картину потерь, что облегчает схождение сети к хорошему решению.

Помимо пропусков соединений, авторы обнаружили, что еще большему улучшению модели способствовали узкие места. Свертка 1x1, за которой следует свертка 3x3, за которой следует еще одна свертка 1x1, заменяет каждый слой для создания более глубоких сетей. Свертки 1x1 работают для уменьшения размерности изображения, что, в свою очередь, уменьшает объем вычислительной работы, которую необходимо выполнить для свертки 3x3.

Если мы посчитаем параметры двух сверток 3x3 и двух сверток 3x3 с узким местом, то увидим, как узкое место может функционировать для уменьшения общего количества параметров.

Узкое место значительно уменьшило количество параметров по сравнению с исходным количеством. Помните, что чем меньше параметров, тем ниже вероятность переобучения модели.

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

6. DenseNet — август 2016 г. — Оригинальная статьяКод

DenseNet более агрессивно использует пропущенные соединения, введенные ResNet. Каждый слой соединяется с каждым предыдущим слоем в каждом блоке. Эти пропускные соединения отличаются весовыми каналами, которые объединяются посредством конкатенации, а не сложения.

DenseNet также использует слой глобального среднего пула вместо слоя выравнивания, чтобы предотвратить переоснащение активаций на основе местоположения. Сеть использует блоки узких мест из ResNet для дальнейшего улучшения своей структуры. Многочисленные пропущенные соединения позволяют модели работать с той же точностью, что и ResNet, с в 3 раза меньшим количеством параметров, что упрощает вычислительную работу во время обучения.

7. Inception-v1/Inception-v3 — Сентябрь 2014 г. — Original Paper-v1Code — Декабрь 2015 г. — Original Paper-v3Code

Inception был разработан для снижения вычислительных затрат при сохранении точности. Используя ширину (увеличение количества единиц на слой), компания Inception смогла уменьшить количество параметров сети, сделав ее шире, а не глубже.

Ширина измеряется количеством путей, которые сеть проходит перед конкатенацией на следующем уровне. Свертки 1x1 перед более крупными свертками имеют тот же эффект, что и при реализации в слоях с узким местом. Следуя за 1x1 с 3x3 или 5x5, количество карт функций, которые должны быть обработаны этими большими ядрами, может быть уменьшено, что хорошо для сокращения количества операций.

Следует отметить, что при реализации расширения, поскольку оно увеличивает количество параметров на слой, обучение модели может занять больше времени, чем обучение традиционной «узкой и глубокой» модели. Для наборов данных, которые меньше предполагаемого набора данных ImageNet, уменьшение количества начальных блоков и фильтров может помочь вашей модели работать с разумной скоростью. Но что еще более важно, большее количество параметров делает эту модель склонной к переоснащению, что предотвращает Inception с помощью выпадающего слоя ближе к концу.

Вы заметите, что при просмотре блок-схемы модели модель содержит несколько слоев softmax, которые обычно зарезервированы как последний слой в модели. Причина в том, что глубокая архитектура неизбежно сталкивается с проблемой «исчезающих градиентов», с той же проблемой, с которой столкнулся VGG, когда количество слоев превысило 100. Это происходит потому, что градиенты теряют больше информации, чем дальше они снижаются. В GoogLeNet поняли, что промежуточные слои содержат важную информацию в дополнение к конечным слоям, поэтому они объединяются в конце обучения для повышения точности. Окончательная потеря представляет собой комбинацию промежуточной потери и окончательной потери, таким образом, несколько слоев softmax. Однако результат модели Inception все еще отставал от ResNet, и его необходимо улучшить в модели Inception-v3 для точности.

В модели GoogLeNet Inception-v3 они берут страницу из VGG и заменяют свои более крупные извилины (5x5) рядом 3x3 эквивалентного рецептивного поля — концепция, которая уменьшает параметры, сохраняя при этом информацию. Затем они продвигают концепцию еще на один шаг и делят свертки 3x3 на свертки 1x3 и 3x1 (они должны быть вместе), создавая рецептивное поле, равное 3x3, при одновременном сокращении операций.

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

8. Inception-ResNets/Inception-v4 — февраль 2016 г. — Original PaperCode

Inception-v4 объединяет начальные конкатенации и остаточные соединения из ResNet, чтобы создать довольно сложное решение для классификации изображений.

На левой диаграмме показан модуль Inception-ResNet. На правой диаграмме показан модуль понижающей дискретизации. Эти модули имеют разные гиперпараметры, пути и свертки. Эти пути содержат много параметров, аналогичных предыдущим моделям Inception, поэтому отсеваемые слои необходимы для предотвращения переобучения.

Модель, помимо остаточных соединений, значительно глубже, чем модель Inception-v3, и ее точность выше, чем у ResNet.

Хотя модель оказалась более мощной, чем Inception-v3 и ResNet, за исключением комбинации сложения и конкатенации, модель должна быть очень специфичной с размерами выходных и входных данных. Карты признаков и другие гиперпараметры нельзя изменять небрежно. Может быть сложно настроить и работать с этой моделью с нуля.

9. ResNeXt -ноябрь 2016- Оригинальная статьяКод

В модели ResNeXt введено понятие «количество элементов», аналогичное расширению модели, за исключением того, что оно применяется к остаточным добавлениям, а не к конкатенациям. Блоки ResNeXt берут изображение и делят его на множество преобразований узких мест.

Множество путей, по которым поступают входные данные, позволяют количеству операций и параметров ResNeXt в 50-уровневой модели быть почти равным 50-уровневой модели ResNet. Это означает, что по сети передается больше информации без увеличения количества параметров, которые могут вызвать переобучение. Экспериментируя с кардинальностью, ResNeXt обнаружила, что увеличение кардинальности дает значительно лучшие результаты, чем увеличение глубины или ширины. В дополнение к мощности, ResNeXt сохраняет свои остаточные соединения, позволяя информации пропускать все пути свертки, позволяя передавать больше информации по сети, продолжая фильтровать изображение.

Более того, модель содержит тот же модуль с увеличивающимися картами признаков, поэтому воссоздание модели становится простым и понятным. С повторяющимися строительными блоками одинаковых размеров необходимо установить несколько гиперпараметров.

10. Будущее архитектуры нейронных сетей / NASNet — июль 2018 г. — Оригинальная статья

В настоящее время инженерия машинного обучения имеет в своем распоряжении так много инструментов, которые хорошо изучены, включая ряд сверток 3x3, узких мест, конкатенаций и исключения, и это лишь некоторые из них. Но с таким количеством инструментов может быть сложно разработать удобную архитектуру, которая реализует каждый из них осмысленно и эффективно. Таким образом, Google решил создать модель, которая создает другие модели нейронных сетей: NASNet.

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

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

Поскольку это инициализируется случайным образом, модель должна обучаться на основе некоторой метрики, например точности. Созданную модель необходимо проверить на точность на всем наборе данных, а это означает, что обучение может занять очень много времени даже на нескольких графических процессорах. Как только он узнает, что работает, а что нет, он выводит современную архитектуру.

Эта модель была создана после использования 500 графических процессоров Nvidia P100, которые работали в течение четырех дней. И что самое приятное, модель не только работает, но и превосходит современную архитектуру, достигая точности до 96% в конкурсах ImageNet. Это превосходит все предыдущие модели.

Ссылки:

  1. Дехтиар, Джонатан. Почему свертки всегда используют нечетные числа в качестве filter_size. Data Science Stack Exchange, 1 марта 1968 г., datascience.stackexchange.com/questions/23183/why-convolutions-always-use-нечетные-числа-как-размер-фильтра.
  2. Дертат, Арден. Прикладное глубокое обучение. Часть 4: сверточные нейронные сети. Medium, На пути к науке о данных, 13 ноября 2017 г., towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2#9a7a.
  3. Деспуа, Жюльен. Запоминание — это не обучение! — 6 приемов предотвращения переобучения в машинном обучении. Hackernoon, 20 марта 2018 г., hackernoon.com/memorizing-is-not-learning-6-tricks-to-prevent-overfitting-in-machine-learning-820b091dc42.
  4. Он, Кайминг и др. Глубокое остаточное обучение для распознавания изображений. arXiv:1512.03385, Корнельский университет. 10 декабря 2015 г., https://arxiv.org/abs/1512.03385
  5. Хуанг, Гао и др. Плотно связанные сверточные сети. arXiv:1608.06993, Корнельский университет. 25 августа 2016 г., https://arxiv.org/abs/1608.06993?source=post_page
  6. Крижевский, Алекс и др. Классификация ImageNet с глубокими свёрточными нейронными сетями. 2012 г. Бета-версия материалов NIPS, https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks
  7. Симонян, Карен и др. Очень глубокие сверточные сети для крупномасштабного распознавания изображений. arXiv:1401.1556, Корнельский университет. 4 сентября 2014 г., https://arxiv.org/abs/1409.1556
  8. Сегеди, Кристиан и др. Погружаемся глубже с извилинами. arXiv:1409.4842, Корнельский университет. 17 сентября 2014 г., https://arxiv.org/abs/1409.4842
  9. Сегеди, Кристиан и др. Переосмысление начальной архитектуры компьютерного зрения. arXiv:1512.00567, Корнельский университет. 2 декабря 2015 г., https://arxiv.org/abs/1512.00567
  10. Сегеди, Кристиан и др. Inception-v4, Inception-ResNet и влияние остаточных соединений на обучение. arXiv:1602.07261, Корнельский университет. https://arxiv.org/abs/1602.07261
  11. Се, Сайнин и др. Агрегированные остаточные преобразования для глубоких нейронных сетей. arXiv:1611.05431, Корнельский университет. https://arxiv.org/abs/1611.05431
  12. Зоф, Баррет и др. Изучение переносимых архитектур для масштабируемого распознавания изображений. arXiv:1707.07012, Корнельский университет. https://arxiv.org/abs/1707.07012