[Классические алгоритмы должны быть прочитаны] Серия классификации изображений (2): AlexNet

искусственный интеллект

Добро пожаловать, чтобы обратить внимание на мой личный публичный аккаунт WeChat: маленькие конфетти, посвященные обмену отличными работами по искусственному интеллекту.

Если вам не нравится читать статью, вы можете посмотреть видео-объяснение:Официальное видео объяснение Бесплатное видео объяснение

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

Сегодня давайте с уважением вернемся к эпохальной работе AlexNet, в частности, к статье «Классификация ImageNet с глубокими свёрточными нейронными сетями».

Структура модели

Структура модели AlexNet показана на рисунке ниже.

Разве это не интуитивно? Будет легче понять, если его изменить на следующую картинку.

Видно, что модель AlexNet имеет следующие основные характеристики:

1) Глубже (8 слоев, LeNet5 слоев), больше параметров (в 1000 раз больше, чем у LeNet)

Сеть AlexNet глубже, всего 8 слоев (5 сверточных слоев + 3 полносвязных слоя), а предложенная LeNet сверточная нейронная сеть имеет всего 5 слоев (2 сверточных слоя + 3 полносвязных слоя).

Еще одна революционная особенность AlexNet заключается в том, что она имеет особенно большое количество параметров, примерно до 60 миллионов параметров, что более чем в 1000 раз больше, чем у LeNet.

2) Комбинированная конфигурация Conv (функциональный слой) + FC (выходной слой)

После того, как функции извлечены многослойным слоем Conv, слой FC используется для интеграции функций и последующего вывода, что является классической конфигурацией ранней сверточной нейронной сети. LeNet впервые применила эту конфигурацию, а AlexNet ее поддерживала.

3) Слой FC занимает абсолютное большинство параметров модели

96% параметров AlexNet сосредоточены в 3-х слойном полносвязном слое, а сверточный слой занимает всего 4%. (Поскольку в полносвязном слое слишком много параметров, теперь обычно старайтесь избегать полносвязного слоя и вместо этого используйте полную свертка + GlobalAvgPooling)

4) Сверточные слои чередуются со слоями объединения.

Таким образом, на каждом втором этапе разрешение карты объектов уменьшается вдвое. Этот шаблон был предложен LeNet, и AlexNet, и все современные сетевые модели следуют этому шаблону.

5) При уменьшении разрешения (HW) необходимо увеличить количество каналов, чтобы обеспечить количество эффективных функций.

Этот шаблон также предложен LeNet, AlexNet и все современные сетевые модели следуют этому шаблону.

6) Множественная шкала ядра свертки

Размер ядра свертки различен, и чем глубже количество слоев, тем меньше размер ядра свертки, 11х11, 5х5, 3х3. (В настоящее время вместо больших ядер свертки обычно используются многослойные маленькие ядра свертки, так что параметры становятся менее глубокими и глубокими, а эффект лучше)

Training tricks

Параметры модели AlexNet очень велики, и для сходимости необходимо использовать некоторые методы обучения.На следующем рисунке показаны основные приемы, используемые AlexNet в процессе обучения.

От входа к выходу по очереди используются следующие приемы:

1) Обучение с несколькими GPU и групповая свертка

Из-за большого количества параметров и большого объема данных в AlexNet автор впервые применил обучение на GPU для эффективного обучения. Это революционно.

В 2012 году еще не существовало зрелого фреймворка для глубокого обучения. Чтобы обучить более крупную модель, автор использовал групповую свертку (group=2), что эквивалентно прямому разделению модели на две независимые модели и их обучению отдельно на двух графических процессорах. Обмен функциями осуществляется в третьем сверточном слое и последних трех полносвязных слоях.

2) увеличение данных

i) использовал случайную обрезку и горизонтальное отражение

Поскольку разрешение изображения в ImageNet не является фиксированным, автор сначала изменяет размер самой короткой стороны каждого изображения до 256 и сохраняет соотношение сторон изображения, затем обрезает 256x256 в середине изображения, а затем случайным образом обрезает участок 224x224. от 256x256. Это также является источником того, почему вход модели имеет разрешение 224x224, всего с патчами 32x32. В сочетании с горизонтальным отражением всего будет 32x32x2=2048 видов патчей.

ii) PCA значений пикселей изображения

Изображение имеет 3 канала, RGB. Ковариационная матрица 3x3 между 3 каналами, найти ее собственное значение λi и собственный вектор Pi, умножить λi на случайное число αi, подчиняющееся гауссовскому распределению N(0;0,1), на λi * αi (i=1,2, 3). Используя следующую формулу, можно получить важную характеристическую идентичность объекта каждого канала RGB, которая не меняется со значением серого изображения.

Добавьте соответствующее значение характеристики выше для каждого канала.

3) Нормализация локальной реакции

Форма вывода каждого сверточного слоя: [B, H, W, C].В качестве примера для первого сверточного слоя, если размер_пакета равен 32, выход равен [32, 55, 55, 96], а b, h , w, c, если b=5, h=10, w=10, c=30, локальная нормализация ответов означает, что b, h, w одинаковы, а n результатов рядом с c нормированы, то есть [5 , 10 , 10, 30-n/2~30+n/2] элементов нормализации в результате [5, 10, 10, 30]. Конкретная формула расчета выглядит следующим образом:

Следующая диаграмма более наглядна:

4) Функция активации ReLU

Изобретение функции активации ReLU — это здорово, что является одним из важных факторов для нового подъема нейронных сетей. ReLU эффективно решает проблему легкого насыщения кажущихся идеальными нелинейных функций активации sigmoid и tanh и значительно ускоряет скорость сходимости примерно в 6 раз. Как показано на рисунке ниже, та же сеть, но функция активации другая (сплошная линия — ReLU, пунктирная — tanh), на CIFAR10 скорость сходимости ReLU существенно выше в 6-7 раз.

5) Перекрывающийся пул

Если размер ядра с пониженной частотой дискретизации больше, чем шаг, существует перекрытие между понижением частоты дискретизации. Все ядра Maxpooling, размер = 3x3, шаг = 2 AlexNet, являются перекрывающимися пулами.

6) отсев

Dropout был распространенным и очень эффективным методом регуляризации до BatchNormalization, но после появления BatchNormalization он практически исчез. Первый и второй полносвязные слои AlexNet используют отсев с коэффициентом отсева = 0,5.

7) распад веса

Используется затухание веса 0,0005.

Большинство из вышеперечисленных приемов можно рассматривать как предотвращение переобучения, в том числе:

1) увеличение данных

2) Нормализация локальной реакции

3) отсев

4) распад веса

результат

На приведенном ниже рисунке показана точность Top-1 и Top-5 стандартной модели, приведенной выше, на тестовом наборе ImageNet в 2010 году. Улучшение совершенно очевидно, что указывает на превосходство производительности глубокого обучения.

На следующем рисунке показано сравнение результатов одной модели, интеграции нескольких моделей, с предварительным обучением или без него и т. д., мы можем видеть следующие моменты: 1) Эффект улучшен более чем на 10 баллов, а качественное улучшение показывает превосходство производительности глубокого обучения. 2) Предварительная подготовка эффективна 3) Множественное наследование моделей эффективно

Первый столбец рисунка ниже — это 5 фотографий в тестовом наборе, а справа — обучающий набор.Последний скрытый слой модели, FC4096, — это 6 самых близких к евклидову расстоянию фотографий в первом столбце. Видно, что позы фотографий в тренировочном наборе и фотографий в тестовом наборе довольно сильно меняются, что указывает на то, что модель может изучить эффективные свойства объекта.

На следующем рисунке представлена ​​визуализация 96 ядер свертки 11x11x3 первого слоя сверточной нейронной сети. 48 верхних изучаются на GPU1, а нижние 48 — на GPU2. То, что изучается на GPU1, не зависит от цвета. из функций, изученных в GOU2, связаны с цветом.

революционное откровение

1) Доказать сходимость крупномасштабных нейронных сетей с помощью различных методов на крупномасштабных данных.

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

3) Докажите эффективность обучения GPU

в заключении

AlexNet великолепен, представляет собой качественный скачок и представляет собой наступление новой эры.

Обзор прошлых статей:

  1. [Классические алгоритмы должны быть прочитаны] Серия «Классификация изображений» (1): Вы действительно понимаете классификацию изображений?

  2. Ссылка на бумагу AlexNet