AlexNet

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: = AlexNet = Архитектура сети AlexNet. == Введение == '''AlexNet''' — архитекту...)
Строка 1: Строка 1:
 +
{{well|Статья написана с использованием LLM '''GPT-5.5''' и проверена участником [[Участник:Anna Chirkova|Anna Chirkova]] 13:22, 12 июля 2026 (MSD)}}
 +
= AlexNet =
= AlexNet =
-
[[Изображение:AlexNet_architecture.png|300px|thumb|right|Архитектура сети AlexNet.]]
+
[[Изображение:AlexNet_architecture.png|300px|thumb|right|Архитектура AlexNet: пять свёрточных и три полносвязных слоя.]]
== Введение ==
== Введение ==
-
'''AlexNet''' — архитектура [[Свёрточная нейронная сеть|свёрточной нейронной сети]] (CNN), разработанная Алексом Крижевским, Ильёй Суцкевером и Джеффри Хинтоном для решения задач [[Компьютерное зрение|компьютерного зрения]]. Архитектура получила широкую известность после победы в соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 года, где с большим преимуществом превзошла все существовавшие на тот момент методы классификации изображений.<ref>Krizhevsky A., Sutskever I., Hinton G. E. ImageNet Classification with Deep Convolutional Neural Networks // Advances in Neural Information Processing Systems. 2012.</ref>
+
'''AlexNet''' — архитектура [[Свёрточная нейронная сеть|свёрточной нейронной сети]] (Convolutional Neural Network, CNN), разработанная Алексом Крижевским, Ильёй Суцкевером и Джеффри Хинтоном. Сеть получила широкую известность после убедительной победы в соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 года, продемонстрировав качественное превосходство глубокого обучения над традиционными методами [[Компьютерное зрение|компьютерного зрения]], основанными на ручном проектировании признаков.<ref>A. Krizhevsky, I. Sutskever, G. Hinton. ''ImageNet Classification with Deep Convolutional Neural Networks''. NeurIPS, 2012.</ref>
-
Победа AlexNet считается переломным моментом в развитии [[Глубокое обучение|глубокого обучения]]. До 2012 года большинство систем компьютерного зрения основывалось на ручном проектировании признаков, таких как SIFT, SURF или HOG, после чего применялись традиционные методы классификации. AlexNet показала, что глубокие обучаемые представления способны значительно превосходить признаки, созданные вручную, при наличии достаточного объёма данных и вычислительных ресурсов.
+
Победа AlexNet стала переломным моментом в развитии машинного обучения. Если до 2012 года большинство систем распознавания изображений использовало заранее разработанные дескрипторы (например, SIFT или HOG) совместно с классическими методами классификации, то AlexNet показала возможность автоматического извлечения признаков непосредственно из исходных изображений. В последующие годы архитектуры, основанные на глубоких CNN, практически полностью вытеснили традиционные подходы в большинстве задач [[Обработка изображений|обработки изображений]].
-
Архитектура была разработана специально для работы с базой [[ImageNet]], содержащей более миллиона размеченных изображений тысячи классов объектов. AlexNet стала практическим подтверждением эффективности глубоких [[Свёрточная нейронная сеть|свёрточных нейронных сетей]] в задачах [[Обработка изображений|обработки изображений]] и положила начало стремительному развитию современных архитектур глубокого обучения.
+
AlexNet обучалась на наборе данных ImageNet, содержащем более миллиона размеченных изображений, распределённых по 1000 категориям объектов.
== Архитектура ==
== Архитектура ==
-
AlexNet представляет собой глубокую [[Свёрточная нейронная сеть|свёрточную нейронную сеть]], состоящую из восьми обучаемых слоёв: пяти свёрточных и трёх полносвязных.
+
=== Общая структура ===
-
Последовательность слоёв имеет следующий вид:
+
AlexNet состоит из восьми обучаемых слоёв:
-
* входное изображение размером <tex>227 \times 227 \times 3</tex>;
+
* пять свёрточных;
-
* первый свёрточный слой: 96 фильтров размера <tex>11 \times 11</tex>, шаг 4, после чего применяется максимальный пулинг;
+
* три полносвязных.
-
* второй свёрточный слой: 256 фильтров размера <tex>5 \times 5</tex> с последующим пулингом;
+
-
* третий свёрточный слой: 384 фильтра размера <tex>3 \times 3</tex>;
+
-
* четвёртый свёрточный слой: 384 фильтра размера <tex>3 \times 3</tex>;
+
-
* пятый свёрточный слой: 256 фильтров размера <tex>3 \times 3</tex> с последующим максимальным пулингом;
+
-
* три полносвязных слоя размерности 4096, 4096 и 1000 нейронов соответственно.
+
-
Выход последнего слоя вычисляется при помощи функции Softmax:
+
После последнего полносвязного слоя используется функция Softmax для получения вероятностей принадлежности изображения каждому из классов.
-
::<tex>
+
Входное изображение имеет размер <tex>227 \times 227 \times 3</tex>. Архитектура содержит около 60 миллионов обучаемых параметров и примерно 650 тысяч нейронов.
-
p_i=\frac{\exp(z_i)}{\sum\limits_j \exp(z_j)}, </tex>
+
-
где <tex>z_i</tex> — значение <tex>i</tex>-го выходного нейрона.
+
=== Свёрточные слои ===
-
Общее число обучаемых параметров сети составляет около 60 миллионов, что значительно превышало размеры ранее использовавшихся моделей.
+
Первый свёрточный слой содержит 96 фильтров размером
-
=== Функции активации ===
+
::<tex>11 \times 11</tex>
-
Одним из важнейших нововведений стало использование функции активации ReLU вместо традиционных сигмоидальных функций или гиперболического тангенса.
+
со шагом 4 пикселя.
-
Функция определяется выражением
+
Получаются карты признаков размерности
-
::<tex>
+
::<tex>55 \times 55 \times 96.</tex>
-
f(x)=\max(0,x). </tex>
+
-
По сравнению с сигмоидой
+
После первого слоя применяются ReLU, Local Response Normalization и операция максимального пулинга.
-
::<tex>
+
Второй слой содержит 256 фильтров размером
-
\sigma(x)=\frac{1}{1+e^{-x}}, </tex>
+
-
ReLU обладает постоянной производной при положительных значениях аргумента и значительно слабее подвержена проблеме исчезающих градиентов. Благодаря этому обучение глубоких сетей существенно ускоряется, а оптимизация становится более устойчивой.
+
::<tex>5 \times 5.</tex>
-
Авторы показали, что применение ReLU позволило сократить время достижения одинаковой точности в несколько раз по сравнению с использованием функции tanh.<ref>Krizhevsky A., Sutskever I., Hinton G. E. ImageNet Classification with Deep Convolutional Neural Networks. 2012.</ref>
+
После него также выполняются нормализация и пулинг.
 +
 
 +
Третий, четвёртый и пятый свёрточные слои используют соответственно 384, 384 и 256 фильтров размером
 +
 
 +
::<tex>3 \times 3.</tex>
 +
 
 +
Пулинг применяется только после пятого слоя.
 +
 
 +
=== Полносвязные слои ===
 +
 
 +
После последовательности свёрточных слоёв признаки преобразуются в одномерный вектор и передаются в три полносвязных слоя.
 +
 
 +
Первые два слоя содержат по 4096 нейронов.
 +
 
 +
Последний полносвязный слой содержит 1000 выходов, соответствующих классам ImageNet.
 +
 
 +
== Функции активации ==
 +
 
 +
Одной из наиболее значимых особенностей AlexNet стало использование функции активации [[ReLU]] вместо традиционных сигмоиды и гиперболического тангенса.
 +
 
 +
Функция ReLU определяется выражением
 +
 
 +
::<tex>f(x)=\max(0,x).</tex>
 +
 
 +
По сравнению с сигмоидой ReLU обладает двумя важными преимуществами.
 +
 
 +
Во-первых, положительная область функции является линейной, благодаря чему производная не стремится к нулю при больших значениях аргумента. Это существенно уменьшает влияние проблемы исчезающих градиентов при обучении глубоких сетей.
 +
 
 +
Во-вторых, вычисление функции требует минимального числа операций, что ускоряет как прямое распространение сигнала, так и обратное распространение ошибки.
 +
 
 +
Авторы показали, что использование ReLU позволило сократить время обучения в несколько раз по сравнению с аналогичной сетью, использующей функцию <tex>\tanh</tex>.
=== Перекрывающийся пулинг ===
=== Перекрывающийся пулинг ===
-
В AlexNet использовался максимальный пулинг с размером окна <tex>3 \times 3</tex> и шагом 2. Такой вариант получил название ''overlapping pooling'', поскольку соседние окна частично перекрываются.
+
AlexNet применяет максимальный пулинг с размером окна
-
Экспериментально было показано, что перекрывающийся пулинг обеспечивает более высокую обобщающую способность по сравнению с традиционным неперекрывающимся вариантом, снижая как top-1, так и top-5 ошибки классификации.
+
::<tex>3 \times 3</tex>
 +
 
 +
и шагом
 +
 
 +
::<tex>2.</tex>
 +
 
 +
Поскольку шаг меньше размера окна, соседние области перекрываются. Такой подход получил название ''overlapping pooling''.
 +
 
 +
Экспериментально было показано, что перекрывающийся пулинг обеспечивает небольшое, но устойчивое уменьшение как top-1, так и top-5 ошибки по сравнению с традиционным неперекрывающимся вариантом.
== Технические детали обучения ==
== Технические детали обучения ==
Строка 62: Строка 94:
=== Обучение на двух GPU ===
=== Обучение на двух GPU ===
-
Во время создания AlexNet объём памяти одной видеокарты был недостаточен для размещения всей модели. Поэтому обучение выполнялось одновременно на двух графических процессорах NVIDIA GTX 580.
+
Во время создания AlexNet объём памяти графических процессоров был недостаточен для размещения всей сети на одном устройстве.
-
Свёрточные карты признаков были разделены между двумя GPU. Большинство вычислений выполнялось независимо, а обмен данными происходил только после отдельных слоёв, где требовалось объединение информации. Такой подход позволил практически вдвое увеличить доступную память и ускорить обучение без существенного увеличения накладных расходов.
+
Поэтому обучение выполнялось одновременно на двух GPU NVIDIA GTX 580.
 +
 
 +
Свёрточные карты признаков были разделены между устройствами. Обмен данными происходил только после определённых слоёв, что уменьшало объём межпроцессорных передач и позволяло эффективно использовать вычислительные ресурсы.
 +
 
 +
Подобная схема стала одним из первых успешных примеров масштабирования обучения глубоких нейронных сетей на несколько графических процессоров.
=== Local Response Normalization ===
=== Local Response Normalization ===
-
После первых двух свёрточных слоёв применялась процедура '''Local Response Normalization''' (LRN), вдохновлённая механизмом латерального торможения, наблюдаемым в биологических зрительных системах.
+
После первых двух свёрточных слоёв применялась операция Local Response Normalization (LRN).
 +
 
 +
Для активации <tex>a_i</tex> нормализованное значение вычислялось по формуле
-
Нормализация вычислялась по формуле
+
::<tex>b_i=\frac{a_i}{\left(k+\alpha\sum_j a_j^2\right)^\beta}.</tex>
-
::<tex>
+
Нормализация выполнялась между соседними картами признаков.
-
b_i=\frac{a_i}{\left(k+\alpha\sum_j a_j^2\right)^\beta}, </tex>
+
-
где суммирование производится по соседним картам признаков.
+
Авторы связывали данный механизм с явлением латерального торможения, наблюдаемым в биологических зрительных системах.<ref>Биологическая интерпретация LRN впоследствии уступила место более эффективным методам нормализации, прежде всего Batch Normalization.</ref>
-
LRN усиливала конкуренцию между активациями различных фильтров и, согласно экспериментам авторов, позволяла дополнительно уменьшить ошибку классификации. В последующих архитектурах необходимость в LRN постепенно исчезла благодаря развитию методов нормализации и более эффективных схем обучения.
+
В более поздних архитектурах LRN практически полностью была вытеснена другими способами нормализации.
=== Регуляризация ===
=== Регуляризация ===
-
Из-за большого числа параметров AlexNet была склонна к переобучению, поэтому авторы использовали несколько методов [[Регуляризация|регуляризации]].
+
AlexNet использовала сразу несколько методов [[Регуляризация|регуляризации]].
-
На двух первых полносвязных слоях применялся [[Dropout]], при котором во время обучения каждый нейрон отключался с вероятностью 0,5. Это препятствовало совместной адаптации признаков и улучшало качество обобщения.
+
На первых двух полносвязных слоях применялся Dropout, при котором каждый нейрон во время обучения случайным образом отключался с вероятностью 0,5.
-
Важную роль играла также [[Аугментация данных|аугментация данных]]. Во время обучения случайным образом выбирались фрагменты изображений размером <tex>227 \times 227</tex>, выполнялись горизонтальные отражения, а также изменялась интенсивность цветовых компонент.
+
Такой подход препятствовал совместной адаптации нейронов и существенно уменьшал переобучение.
-
Для моделирования естественных изменений освещения использовалось преобразование главных компонент цветового пространства (PCA color augmentation). Пусть собственные значения ковариационной матрицы RGB-компонент равны <tex>\lambda_i</tex>, а собственные векторы — <tex>p_i</tex>. Тогда к каждому изображению добавлялось случайное смещение
+
Кроме того, активно использовалась [[Аугментация данных|аугментация данных]].
-
::<tex>
+
Основными преобразованиями являлись:
-
\Delta I=\sum_i p_i \alpha_i \lambda_i, </tex>
+
-
где <tex>\alpha_i</tex> — случайные величины с нормальным распределением.
+
* случайные кропы изображения;
 +
* горизонтальные отражения;
 +
* изменение интенсивности цветовых каналов.
 +
 
 +
Последний метод основывался на анализе главных компонент (PCA) цветового пространства RGB. К исходному изображению добавлялись случайные возмущения вдоль главных компонент распределения цветов, что повышало устойчивость модели к изменениям освещения.
== Результаты на ImageNet 2012 ==
== Результаты на ImageNet 2012 ==
-
В соревновании ILSVRC-2012 AlexNet достигла top-5 ошибки около 15,3 %, тогда как ближайший конкурент показал результат около 26,2 %.<ref>Russakovsky O. et al. ImageNet Large Scale Visual Recognition Challenge // International Journal of Computer Vision. 2015.</ref>
+
На соревновании ILSVRC-2012 AlexNet достигла top-5 ошибки около 15,3 %, тогда как ближайший конкурент показал результат около 26,2 %.
-
Настолько значительное преимущество стало неожиданностью для исследовательского сообщества. Основными причинами успеха стали сочетание глубокой архитектуры, большого обучающего множества ImageNet, использования графических процессоров, эффективной функции активации ReLU, методов регуляризации и агрессивной аугментации данных.
+
Разрыв почти в 11 процентных пунктов оказался беспрецедентным для соревнований по распознаванию изображений.
-
Фактически впервые было убедительно показано, что качество автоматически изучаемых признаков существенно превосходит возможности традиционных методов, основанных на ручном проектировании дескрипторов.
+
Top-1 ошибка также значительно превосходила результаты существовавших методов.
-
== Влияние на развитие глубокого обучения ==
+
Столь существенное преимущество объяснялось сочетанием нескольких факторов:
-
AlexNet радикально изменила направление развития компьютерного зрения.
+
* глубокой архитектуры;
 +
* большого объёма обучающих данных;
 +
* использования GPU;
 +
* эффективной регуляризации;
 +
* функции активации ReLU;
 +
* масштабной аугментации данных.
-
Во-первых, была продемонстрирована возможность эффективного обучения очень глубоких моделей на больших массивах данных. Во-вторых, стало очевидно, что качество признакового пространства определяется не ручным конструированием признаков, а способностью модели автоматически извлекать их из данных.
+
Важно отметить, что ни одно из перечисленных решений само по себе не обеспечивало подобного выигрыша. Существенный эффект возник благодаря их совместному использованию.
-
После публикации работы практически все ведущие исследования в области распознавания изображений перешли к использованию [[Свёрточная нейронная сеть|свёрточных нейронных сетей]]. В течение нескольких последующих лет появились архитектуры ZFNet, [[VGG]], [[GoogLeNet]] и [[ResNet]], каждая из которых развивала идеи, впервые успешно реализованные в AlexNet.
+
== Анализ фильтров и признаков ==
-
Многие технические решения AlexNet впоследствии были пересмотрены. Например, LRN практически перестала использоваться, а большие фильтры первого слоя были заменены более компактными свёртками. Тем не менее фундаментальные идеи — глубокие обучаемые представления, использование ReLU, обучение на GPU и масштабные наборы данных — стали стандартом современного глубокого обучения.
+
Одним из наиболее интересных результатов работы стало исследование внутренних представлений сети.
-
== Анализ фильтров и признаков ==
+
Визуализация фильтров первого свёрточного слоя показала, что сеть автоматически изучает простейшие пространственные структуры:
-
Важным результатом работы стало исследование внутренних представлений сети.
+
* ориентированные границы;
 +
* цветовые переходы;
 +
* текстурные элементы;
 +
* простые цветовые комбинации.
-
Фильтры первого свёрточного слоя визуализируются непосредственно в пространстве пикселей и напоминают классические детекторы границ, цветовых переходов и текстур различной ориентации. Эти признаки близки к фильтрам, используемым в классической обработке изображений.
+
На последующих уровнях признаки становятся всё более абстрактными.
-
На последующих уровнях сеть начинает объединять простые структуры в более сложные композиции. Средние слои обнаруживают углы, повторяющиеся текстуры, фрагменты объектов и характерные геометрические элементы.
+
Второй и третий слои начинают выделять комбинации линий, углы и повторяющиеся текстуры.
-
Глубокие свёрточные слои формируют высокоуровневые семантические признаки, соответствующие отдельным частям объектов — глазам животных, колёсам автомобилей, лицам людей, элементам архитектуры и другим устойчивым визуальным структурам.
+
Более глубокие слои кодируют части объектов: глаза животных, колёса автомобилей, окна зданий, элементы человеческого лица.
-
Таким образом, AlexNet демонстрирует иерархический принцип формирования представлений, при котором сложные признаки постепенно строятся из более простых. Именно эта особенность сделала глубокие [[Свёрточная нейронная сеть|свёрточные нейронные сети]] эффективным инструментом анализа изображений.
+
Последние полносвязные слои формируют высокоуровневые семантические представления, пригодные для окончательной классификации.
 +
 
 +
Подобная иерархия признаков впоследствии была подтверждена многочисленными исследованиями внутренних представлений глубоких нейронных сетей.
 +
 
 +
== Влияние на развитие глубокого обучения ==
 +
 
 +
AlexNet оказала определяющее влияние на дальнейшее развитие глубокого обучения.
 +
 
 +
Во-первых, архитектура убедительно продемонстрировала, что увеличение глубины сети, объёма данных и вычислительных ресурсов позволяет существенно повысить качество распознавания изображений.
 +
 
 +
Во-вторых, она изменила направление развития [[Компьютерное зрение|компьютерного зрения]]. После 2012 года большинство исследований сосредоточилось на обучаемых признаках, тогда как методы с ручным конструированием дескрипторов постепенно утратили лидирующие позиции.
 +
 
 +
Наконец, AlexNet стала отправной точкой для создания более глубоких и эффективных архитектур. Непосредственным развитием её идей стала сеть ZFNet, за которой последовали [[VGG]], [[GoogLeNet]] и [[ResNet]]. Во всех этих архитектурах сохранялась основная идея последовательного формирования всё более абстрактных представлений изображения, однако совершенствовались способы обучения, структура блоков и эффективность использования вычислительных ресурсов.
 +
 
 +
Хотя современные архитектуры существенно отличаются от AlexNet, многие решения, впервые успешно применённые в ней — использование ReLU, масштабная аугментация данных, обучение на GPU и глубокая иерархия признаков — стали стандартными компонентами большинства современных систем компьютерного зрения.
== Литература ==
== Литература ==
-
# Krizhevsky A., Sutskever I., Hinton G. E. ''ImageNet Classification with Deep Convolutional Neural Networks'' // Advances in Neural Information Processing Systems. 2012.
+
# Krizhevsky A., Sutskever I., Hinton G. E. ''ImageNet Classification with Deep Convolutional Neural Networks''. Advances in Neural Information Processing Systems (NeurIPS), 2012.
 +
 
 +
# Deng J., Dong W., Socher R., Li L.-J., Li K., Fei-Fei L. ''ImageNet: A Large-Scale Hierarchical Image Database''. CVPR, 2009.
-
# Russakovsky O., Deng J., Su H. и др. ''ImageNet Large Scale Visual Recognition Challenge'' // International Journal of Computer Vision. 2015.
+
# Zeiler M. D., Fergus R. ''Visualizing and Understanding Convolutional Networks''. ECCV, 2014.
-
# Goodfellow I., Bengio Y., Courville A. ''Deep Learning''. MIT Press, 2016.
+
# Simonyan K., Zisserman A. ''Very Deep Convolutional Networks for Large-Scale Image Recognition''. 2014.
-
# LeCun Y., Bengio Y., Hinton G. ''Deep Learning'' // Nature. 2015.
+
# He K., Zhang X., Ren S., Sun J. ''Deep Residual Learning for Image Recognition''. CVPR, 2016.
== Примечания ==
== Примечания ==

Версия 09:22, 12 июля 2026

Статья написана с использованием LLM GPT-5.5 и проверена участником Anna Chirkova 13:22, 12 июля 2026 (MSD)


Содержание

AlexNet

Изображение:AlexNet architecture.png
Архитектура AlexNet: пять свёрточных и три полносвязных слоя.

Введение

AlexNet — архитектура свёрточной нейронной сети (Convolutional Neural Network, CNN), разработанная Алексом Крижевским, Ильёй Суцкевером и Джеффри Хинтоном. Сеть получила широкую известность после убедительной победы в соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 года, продемонстрировав качественное превосходство глубокого обучения над традиционными методами компьютерного зрения, основанными на ручном проектировании признаков.[1]

Победа AlexNet стала переломным моментом в развитии машинного обучения. Если до 2012 года большинство систем распознавания изображений использовало заранее разработанные дескрипторы (например, SIFT или HOG) совместно с классическими методами классификации, то AlexNet показала возможность автоматического извлечения признаков непосредственно из исходных изображений. В последующие годы архитектуры, основанные на глубоких CNN, практически полностью вытеснили традиционные подходы в большинстве задач обработки изображений.

AlexNet обучалась на наборе данных ImageNet, содержащем более миллиона размеченных изображений, распределённых по 1000 категориям объектов.

Архитектура

Общая структура

AlexNet состоит из восьми обучаемых слоёв:

  • пять свёрточных;
  • три полносвязных.

После последнего полносвязного слоя используется функция Softmax для получения вероятностей принадлежности изображения каждому из классов.

Входное изображение имеет размер 227 \times 227 \times 3. Архитектура содержит около 60 миллионов обучаемых параметров и примерно 650 тысяч нейронов.

Свёрточные слои

Первый свёрточный слой содержит 96 фильтров размером

11 \times 11

со шагом 4 пикселя.

Получаются карты признаков размерности

55 \times 55 \times 96.

После первого слоя применяются ReLU, Local Response Normalization и операция максимального пулинга.

Второй слой содержит 256 фильтров размером

5 \times 5.

После него также выполняются нормализация и пулинг.

Третий, четвёртый и пятый свёрточные слои используют соответственно 384, 384 и 256 фильтров размером

3 \times 3.

Пулинг применяется только после пятого слоя.

Полносвязные слои

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

Первые два слоя содержат по 4096 нейронов.

Последний полносвязный слой содержит 1000 выходов, соответствующих классам ImageNet.

Функции активации

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

Функция ReLU определяется выражением

f(x)=\max(0,x).

По сравнению с сигмоидой ReLU обладает двумя важными преимуществами.

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

Во-вторых, вычисление функции требует минимального числа операций, что ускоряет как прямое распространение сигнала, так и обратное распространение ошибки.

Авторы показали, что использование ReLU позволило сократить время обучения в несколько раз по сравнению с аналогичной сетью, использующей функцию \tanh.

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

AlexNet применяет максимальный пулинг с размером окна

3 \times 3

и шагом

2.

Поскольку шаг меньше размера окна, соседние области перекрываются. Такой подход получил название overlapping pooling.

Экспериментально было показано, что перекрывающийся пулинг обеспечивает небольшое, но устойчивое уменьшение как top-1, так и top-5 ошибки по сравнению с традиционным неперекрывающимся вариантом.

Технические детали обучения

Обучение на двух GPU

Во время создания AlexNet объём памяти графических процессоров был недостаточен для размещения всей сети на одном устройстве.

Поэтому обучение выполнялось одновременно на двух GPU NVIDIA GTX 580.

Свёрточные карты признаков были разделены между устройствами. Обмен данными происходил только после определённых слоёв, что уменьшало объём межпроцессорных передач и позволяло эффективно использовать вычислительные ресурсы.

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

Local Response Normalization

После первых двух свёрточных слоёв применялась операция Local Response Normalization (LRN).

Для активации a_i нормализованное значение вычислялось по формуле

b_i=\frac{a_i}{\left(k+\alpha\sum_j a_j^2\right)^\beta}.

Нормализация выполнялась между соседними картами признаков.

Авторы связывали данный механизм с явлением латерального торможения, наблюдаемым в биологических зрительных системах.[1]

В более поздних архитектурах LRN практически полностью была вытеснена другими способами нормализации.

Регуляризация

AlexNet использовала сразу несколько методов регуляризации.

На первых двух полносвязных слоях применялся Dropout, при котором каждый нейрон во время обучения случайным образом отключался с вероятностью 0,5.

Такой подход препятствовал совместной адаптации нейронов и существенно уменьшал переобучение.

Кроме того, активно использовалась аугментация данных.

Основными преобразованиями являлись:

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

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

Результаты на ImageNet 2012

На соревновании ILSVRC-2012 AlexNet достигла top-5 ошибки около 15,3 %, тогда как ближайший конкурент показал результат около 26,2 %.

Разрыв почти в 11 процентных пунктов оказался беспрецедентным для соревнований по распознаванию изображений.

Top-1 ошибка также значительно превосходила результаты существовавших методов.

Столь существенное преимущество объяснялось сочетанием нескольких факторов:

  • глубокой архитектуры;
  • большого объёма обучающих данных;
  • использования GPU;
  • эффективной регуляризации;
  • функции активации ReLU;
  • масштабной аугментации данных.

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

Анализ фильтров и признаков

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

Визуализация фильтров первого свёрточного слоя показала, что сеть автоматически изучает простейшие пространственные структуры:

  • ориентированные границы;
  • цветовые переходы;
  • текстурные элементы;
  • простые цветовые комбинации.

На последующих уровнях признаки становятся всё более абстрактными.

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

Более глубокие слои кодируют части объектов: глаза животных, колёса автомобилей, окна зданий, элементы человеческого лица.

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

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

Влияние на развитие глубокого обучения

AlexNet оказала определяющее влияние на дальнейшее развитие глубокого обучения.

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

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

Наконец, AlexNet стала отправной точкой для создания более глубоких и эффективных архитектур. Непосредственным развитием её идей стала сеть ZFNet, за которой последовали VGG, GoogLeNet и ResNet. Во всех этих архитектурах сохранялась основная идея последовательного формирования всё более абстрактных представлений изображения, однако совершенствовались способы обучения, структура блоков и эффективность использования вычислительных ресурсов.

Хотя современные архитектуры существенно отличаются от AlexNet, многие решения, впервые успешно применённые в ней — использование ReLU, масштабная аугментация данных, обучение на GPU и глубокая иерархия признаков — стали стандартными компонентами большинства современных систем компьютерного зрения.

Литература

  1. Krizhevsky A., Sutskever I., Hinton G. E. ImageNet Classification with Deep Convolutional Neural Networks. Advances in Neural Information Processing Systems (NeurIPS), 2012.
  1. Deng J., Dong W., Socher R., Li L.-J., Li K., Fei-Fei L. ImageNet: A Large-Scale Hierarchical Image Database. CVPR, 2009.
  1. Zeiler M. D., Fergus R. Visualizing and Understanding Convolutional Networks. ECCV, 2014.
  1. Simonyan K., Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition. 2014.
  1. He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition. CVPR, 2016.

Примечания

Личные инструменты