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

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

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

О популярности этой статьи можно судить только по количеству ее цитирований.

7 главных интересных фактов об этой статье

  1. Глубина - слоев: 8 (5 сверточных + 3 полностью связанных), параметры: 60 миллионов, нейронов: 650 миллионов
  2. Функция активации - Используется нелинейность: ReLU вместо TanH
  3. Скорость - графических процессоров: 2, время обучения: 6 дней.
  4. Контрастность - нормализация отклика
  5. Предотвращение переобучения - увеличение объема данных + исключение вместо регуляризации
  6. DATASET (ImageNet) - 1,2 миллиона обучающих изображений, 50 000 изображений для проверки и 150 000 изображений для тестирования.
  7. Огромный выигрыш - частота ошибок при тестировании 15,3% против 26,2% (второе место)

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

Слои - глубина очень важна

Архитектура содержит восемь слоев с весами. Первые пять являются сверточными, а остальные три полностью связаны. Выходные данные последнего полностью подключенного уровня подаются на 1000-way softmax, который производит распределение по 1000 меткам классов. Softmax принимает все 1000 значений, проверяет максимальное значение и делает его 1, а для всех остальных устанавливает 0.

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

Эта схема кросс-коммутации была хитрой уловкой, которая снизила количество ошибок в первой и первой пятерке на 1,7% и 1,2% соответственно. Это было огромно, учитывая, что они уже опережали уровень развития техники.

Глубина этой сети (количество уровней) настолько критична, что удаление любого среднего уровня внезапно снижает точность.

Нелинейность

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

Команда AlexNet выбрала нелинейную функцию активации с нелинейностью, являющейся выпрямленной линейной единицей (ReLU). Они утверждали, что он работает намного быстрее, чем TanH, более популярный в то время для определения линейности.

Зачем нам нужна нелинейная функция активации в искусственной нейронной сети?

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

Авторы показали, что ReLU обеспечивает низкий уровень ошибок, намного быстрее, чем TanH. Популярный график показан ниже: толстая линия представляет ReLU, а пунктирная линия - функция TanH.

Ключевое слово быстрее. Прежде всего AlexNet нуждался в более быстром обучении, и ReLU помог им. Но им нужно было нечто большее. Что-то, что могло бы изменить скорость вычисления CNN. Вот где и фигурировали графические процессоры.

Графические процессоры и время обучения

Графические процессоры - это устройства, которые могут выполнять параллельные вычисления. Вспомните, что средний ноутбук - это либо Quadcore (4 ядра), либо Octacore (8 ядер). Это относится к количеству параллельных вычислений, которые могут произойти в процессоре. Графический процессор может иметь 1000 ядер, что приводит к большому распараллеливанию. AlexNet использовал графический процессор, выпущенный NVIDIA за год до выхода AlexNet.

Примечательно то, что AlexNet использовал параллельно 2 графических процессора, что делало их дизайн чрезвычайно быстрым.

Несмотря на архитектуру, обучение AlexNet заняло 6 дней. Но время тренировки было не единственной проблемой. Ваша точность упадет, если ваши данные не будут нормализованы. AlexNet нужно было найти эффективный способ нормализации своих данных. Они выбрали LRN.

Нормализация местного ответа

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

AlexNet использовал LRN для облегчения обобщения. Нормализация ответов снизила частоту ошибок в первой и пятерке на 1,4% и 1,2% соответственно.

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

Перекрывающееся объединение

Объединение - это процесс выбора окрестности размером s x s пикселей и ее суммирования.

Резюмируя можно

  • Простое среднее всех значений пикселей или
  • Большинство голосов или даже
  • Медиана по участку s x s пикселей.

Традиционно эти участки не перекрывались, то есть после суммирования патча s x s вы больше не касаетесь этих пикселей и переходите к следующий патч s x s. Они поняли, что перекрывающееся объединение снижает частоту ошибок первой и пятерки на 0,4% и 0,3% соответственно по сравнению с схемой без перекрытия.

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

Профилактика переобучения

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

На вопрос, который вы уже видели, вы можете дать точный ответ, но не справитесь с невидимыми вопросами.

В архитектуре, содержащей 60 миллионов параметров, AlexNet столкнулся со значительным переоснащением.

Они использовали два метода борьбы с переобучением.

  • Увеличение данных
  • Выбывать

Увеличение данных

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

Эти схемы привели к снижению ошибок на 1% в их первой метрике ошибок. Увеличивая данные, вы не только увеличиваете набор данных, но и стараетесь, чтобы модель стала инвариантной к вращению, инвариантной по цвету и т. Д., И предотвращает переоснащение.

Выбывать

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

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

Набор данных

Наконец, как мы можем показать великолепие AlexNet, не показывая проблемы, с которыми он столкнулся. ImageNet имеет в общей сложности 15 миллионов маркированных изображений с высоким разрешением в более чем 22 000 категорий. Конкурс ILSVRC использует подмножество ImageNet с примерно 1000 изображений в каждой из 1000 категорий. Всего существует примерно 1,2 миллиона обучающих изображений, 50 000 изображений для проверки и 150 000 изображений для тестирования.

Вызов 2012 года

AlexNet выиграл ILSVRC. Это был большой прорыв. Давайте посмотрим, о чем был вопрос и что было доставлено.

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

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

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

Глубокое погружение



  • Сравнение функций активации - я рекомендую аккуратный небольшой блог, написанный Кевином Урбаном.


  • Отладка нейронных сетей


  • Увеличение данных


  • Хао Гао поместил детали этой архитектуры в таблицу. Размер сети можно оценить по тому факту, что она имеет 62,3 миллиона параметров и требует 1,1 миллиарда вычислительных единиц для прямого прохода.


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

Спасибо за чтение!