Эта статья состоит из девяти частей:

  1. Что такое AlexNet?
  2. Архитектура AlexNet.
  3. Набор данных.
  4. ReLU.
  5. Выбывать.
  6. Плюсы AlexNet.
  7. Минусы AlexNet.
  8. AlexNet с Python.
  9. Заключение.

Что такое AlexNet?

AlexNet - это название, данное архитектуре сверточной нейронной сети, которая выиграла конкурс LSVRC в 2012.

LSVRC ( Large Scale Visual Recognition Challenge) - это соревнование, в котором исследовательские группы оценивают свои алгоритмы на огромном наборе данных с помеченными изображениями (ImageNet) и соревнуются за достижение более высокой точности на нескольких визуальных объектах. задачи распознавания. Это оказало огромное влияние на то, как команды подходят к завершению после.

Архитектура AlexNet

AlexNet содержит 8 слоев с весами;

5 сверточных слоев

3 полностью связанных слоя.

В конце каждого слоя выполняется активация ReLu, за исключением последнего, который выводится с softmax с распределением по 1000 меткам классов. Выпадение применяется в первых двух полностью связанных слоях. Как показано на рисунке выше, также применяется Max-pooling после первого, второго и пятого сверточных слоев. Ядра второго, четвертого и пятого сверточных слоев подключены только к тем картам ядра в предыдущем слое, которые находятся на том же графическом процессоре. Ядра третьего сверточного слоя связаны со всеми картами ядер во втором слое. Нейроны в полностью связанных слоях связаны со всеми нейронами предыдущего слоя.

Набор данных

ImageNet - это база данных изображений, содержащая более 15 миллионов изображений с высоким разрешением и 22 000 категорий. Этот конкурс использует подмножество изображений ImageNet и ставит перед исследователями задачу достичь наименьшего количества ошибок среди первых 1 и 5. Входными данными AlexNet является изображение RGB размером 256 × 256. Это означает, что все изображения в обучающем наборе и все тестовые изображения должны иметь размер 256 × 256. Это означает, что его необходимо преобразовать в 256 × 256, прежде чем использовать его для обучения сети.

ReLU

Важной особенностью AlexNet является использование нелинейности ReLU (Rectified Linear Unit).

Функции активации Tanh или сигмовидной формы раньше были обычным способом обучения модели нейронной сети.

AlexNet показал, что при использовании нелинейности ReLU глубокие CNN можно обучить намного быстрее, чем при использовании насыщающих функций активации, таких как tanh или sigmoid.

Протестировано на наборе данных CIFAR-10.

Посмотрим, почему он тренируется быстрее с помощью ReLU. Функция ReLU задается формулой

f (х) = макс (0, х)

графики двух функций -

1. танх

2. ReLU.

Функция tanh насыщается при очень высоких или очень низких значениях z. В этих областях наклон функции очень близок к нулю. Это может замедлить градиентный спуск.

Наклон функции ReLU не близок к нулю для более высоких положительных значений z. Это помогает оптимизации сойтись быстрее. Для отрицательных значений z наклон по-прежнему равен нулю, но большинство нейронов в нейронной сети обычно имеют положительные значения.

ReLU побеждает сигмовидную функцию по той же причине.

Проблема переобучения. AlexNet имеет 60 миллионов параметров, что является серьезной проблемой с точки зрения переобучения.

Два метода уменьшения переобучения:

  1. Увеличение объема данных
  2. Прекращение учебы.

Увеличение объема данных.

Авторы сгенерировали трансляции изображений и горизонтальные отражения, которые увеличили обучающий набор к 2048 году. Они также выполнили анализ основных компонентов (PCA) для значений пикселей RGB, чтобы изменить интенсивность каналов RGB, что снизило частоту появления первых 1 ошибок более чем на 1 %.

Выбывать

Второй метод, который AlexNet использовал, чтобы избежать переобучения, - это отсев. Он заключается в обнулении выхода каждого скрытого нейрона с вероятностью 0,5. Нейроны, которые "выпадают" таким образом, не участвуют в прямом проходе и не участвуют в обратном распространении. Таким образом, каждый раз, когда вводится ввод, нейронная сеть пробует другую архитектуру. Этот метод заключается в отключении нейронов с заранее определенной вероятностью. Это означает, что на каждой итерации нейроны «выключены» не участвуют в прямом проходе и не участвуют в обратном распространении.

Плюсы AlexNet

  1. AlexNet считается важным камнем CNN для классификации изображений.
  2. Многие методы, такие как Conv + Pooling Design, Dropout, GPU, параллельные вычисления, ReLU, по-прежнему являются промышленным стандартом для компьютерного зрения.
  3. Уникальным преимуществом AlexNet является прямой ввод изображения в модель классификации.
  4. Слои свертки могут автоматически извлекать края объектов и полностью связанные слои, изучая эти функции.
  5. Теоретически сложность визуальных паттернов может быть эффективно устранена путем добавления большего количества повязок.

Минусы AlexNet

  1. AlexNet НЕ достаточно глубок по сравнению с более поздними моделями, такими как VGGNet, GoogLENet и ResNet.
  2. Вскоре после этого использование больших сверточных фильтров (5 * 5) не рекомендуется.
  3. Использование нормального распределения для инициации весов в нейронных сетях не может эффективно решить проблему исчезновения градиента, замененного методом Ксавьера позже.
  4. По производительности превосходят более сложные модели, такие как GoogLENet (6,7%) и ResNet (3,6%).

AlexNet с Python



Заключение

AlexNet - это работа над обучением с учителем, которая дала отличные результаты.

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

AlexNet произвел революционную реализацию в ConvNets, которая продолжается и по сей день, например, ReLU и dropout.

Нелегко иметь низкие ошибки классификации без переобучения.

Чтобы получить более четкое представление, посмотрите это видео

Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть отзывы.

Другие мои сообщения об алгоритмах машинного обучения











Удачного обучения !!!

Удачного кодирования :)

И не забывайте хлопать, хлопать, хлопать ...