AlexNet
AlexNet — это глубокая свёрточная нейронная сеть (CNN), разработанная группой исследователей из Университета Торонто (Алекс Крижевский, Илья Суцкевер, Джеффри Хинтон) и представленная в 2012 году. Архитектура стала ключевым прорывом в области компьютерного зрения, впервые продемонстрировав значительное превосходство глубинных нейросетей над традиционными методами машинного обучения на задаче классификации изображений. Сеть одержала убедительную победу в соревновании ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012 года, что положило начало эпохе глубокого обучения в данной области.
История
Предпосылки создания
До 2012 года доминирующими подходами в компьютерном зрении были методы, основанные на ручном выделении признаков (например, SIFT, HOG) и классификаторах вроде SVM. Свёрточные нейронные сети (CNN) были известны с 1980-х годов (LeNet-5 Янна Лекуна), но их применение ограничивалось небольшими наборами данных из-за высокой вычислительной сложности, склонности к переобучению и отсутствия мощных графических процессоров (GPU). К 2012 году рост производительности GPU и появление больших размеченных наборов данных, таких как ImageNet (содержащий более 14 миллионов изображений и 22 000 категорий), создали предпосылки для обучения глубоких моделей.
Соревнование ILSVRC-2012
В 2012 году команда SuperVision (Крижевский, Суцкевер, Хинтон) представила AlexNet на конкурсе ILSVRC. Сеть продемонстрировала топ-5 ошибку (то есть вероятность того, что правильный ответ не входит в пятёрку наиболее вероятных предсказаний) в 15,3%, что было на 10,8 процентных пункта лучше, чем у занявшего второе место метода, основанного на комбинации классических признаков. Этот результат был воспринят как сенсация и послужил катализатором для массового перехода исследовательского сообщества к глубоким нейронным сетям.
Влияние на развитие ИИ
Успех AlexNet привёл к резкому росту интереса к глубокому обучению, финансирования исследований и коммерческих разработок. Архитектура стала основой для многих последующих моделей (VGGNet, GoogLeNet, ResNet). Сам Алекс Крижевский, Илья Суцкевер и Джеффри Хинтон впоследствии основали компанию DNNresearch, которая была приобретена компанией Google в 2013 году. Суцкевер стал одним из сооснователей OpenAI.
Архитектура
AlexNet представляет собой последовательную свёрточную нейронную сеть, состоящую из восьми обучаемых слоёв: пяти свёрточных и трёх полносвязных.
Основные компоненты
- Входной слой: Принимает изображения размером 227×227×3 пикселя (RGB). Исходные изображения из ImageNet (обычно 256×256) обрезались до этого размера.
- Свёрточные слои (C1–C5):
- C1: 96 фильтров размером 11×11 с шагом 4. Применяет ReLU-активацию. После слоя — операция локальной нормализации отклика (Local Response Normalization, LRN) и объединение (Max Pooling) с окном 3×3 и шагом 2.
- C2: 256 фильтров размером 5×5. После — LRN и Max Pooling.
- C3: 384 фильтра размером 3×3. Без пулинга.
- C4: 384 фильтра размером 3×3. Без пулинга.
- C5: 256 фильтров размером 3×3. После — Max Pooling.
- Полносвязные слои (FC6–FC8):
- FC6: 4096 нейронов. После — ReLU и метод регуляризации Dropout (вероятность отключения нейрона — 0.5).
- FC7: 4096 нейронов. После — ReLU и Dropout.
- FC8 (выходной): 1000 нейронов (по числу классов ImageNet). Используется функция активации Softmax для получения вероятностей принадлежности к каждому классу.
Ключевые нововведения
- Функция активации ReLU (Rectified Linear Unit): В отличие от сигмоиды или гиперболического тангенса, ReLU (f(x) = max(0, x)) позволяла обучать сеть в несколько раз быстрее, не вызывая проблемы затухания градиента на глубоких слоях.
- Обучение на GPU: Сеть обучалась на двух графических процессорах NVIDIA GTX 580 в течение 5–6 дней. Свёрточные слои были распределены между двумя GPU: один обрабатывал часть карт признаков, другой — остальные. Это позволило уместить модель в память и ускорить обучение.
- Локальная нормализация отклика (LRN): Создавала конкуренцию между нейронами в одной пространственной позиции, подавляя слишком активные нейроны. Этот метод, по мнению авторов, способствовал обобщению и снижал ошибку.
- Перекрывающееся объединение (Overlapping Pooling): Использование шага пулинга (2) меньшего, чем размер окна (3), снижало ошибку и уменьшало переобучение.
- Аугментация данных: Для борьбы с переобучением применялись искусственные преобразования изображений: случайное горизонтальное отражение, изменение интенсивности RGB-каналов (PCA-шум), а также извлечение случайных фрагментов размером 227×227 из изображений 256×256.
Обучение
Набор данных
AlexNet обучался на подмножестве ImageNet, содержащем около 1,2 миллиона изображений из 1000 классов. Для валидации использовалось 50 000 изображений, для тестирования — 150 000.
Гиперпараметры
- Оптимизатор: Стохастический градиентный спуск (SGD) с импульсом (momentum = 0.9).
- Скорость обучения: Начальная — 0.01, с ручным уменьшением в 10 раз при остановке снижения ошибки на валидационном наборе (всего было сделано три таких снижения).
- Размер мини-пакета (batch size): 128.
- Регуляризация: Dropout с вероятностью 0.5 на первых двух полносвязных слоях. Весовое затухание (weight decay) с коэффициентом 0.0005.
- Инициализация весов: Случайные значения из нормального распределения со средним 0 и стандартным отклонением 0.01. Смещения (bias) в свёрточных слоях инициализировались единицами, в остальных — нулями.
Результаты
На тестовом наборе ILSVRC-2012 AlexNet показал топ-1 ошибку 37,5% и топ-5 ошибку 17,0% (в конкурсе — 15,3% с учётом ансамбля из семи моделей). Эти результаты более чем вдвое превзошли все предыдущие подходы.
Применение и наследие
Области использования
Хотя AlexNet был создан для классификации изображений, его архитектура и принципы обучения легли в основу многих прикладных задач:
- Классификация и распознавание объектов.
- Поиск изображений по содержанию.
- Обнаружение объектов (в комбинации с методами вроде R-CNN).
- Медицинская диагностика (анализ рентгеновских снимков, МРТ, гистологических препаратов).
- Автономное вождение (распознавание дорожных знаков, пешеходов).
Критика и ограничения
- Высокие вычислительные затраты: AlexNet требовал значительных ресурсов GPU для обучения, что было доступно лишь крупным исследовательским группам и компаниям.
- Склонность к переобучению: Несмотря на аугментацию и Dropout, модель могла переобучаться на небольших датасетах.
- Отсутствие механизма внимания: Сеть обрабатывала изображение целиком, не фокусируясь на ключевых областях.
- Устаревание: С появлением более глубоких и эффективных архитектур (ResNet, Inception, EfficientNet) AlexNet перестал быть практическим стандартом, но остаётся важной исторической вехой.
Интересные факты
- Название «AlexNet» происходит от имени первого автора — Алекса Крижевского.
- Исходный код AlexNet был написан на C++ с использованием CUDA для работы на GPU. Позже были созданы реализации на TensorFlow, PyTorch и других фреймворках.
- Победа AlexNet в ILSVRC-2012 считается моментом начала «глубокой революции» в искусственном интеллекте. Через несколько лет после этого все участники конкурса перешли на глубокие нейронные сети, а традиционные методы почти полностью исчезли.
- Джеффри Хинтон, один из соавторов, получил в 2018 году Премию Тьюринга (совместно с Янном Лекуном и Йошуа Бенжио) за вклад в развитие глубокого обучения.
Источники
- Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet Classification with Deep Convolutional Neural Networks. Advances in Neural Information Processing Systems 25 (NIPS 2012).
- Russakovsky, O., Deng, J., Su, H., et al. (2015). ImageNet Large Scale Visual Recognition Challenge. International Journal of Computer Vision, 115(3), 211–252.
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. (Глава 9: Convolutional Networks).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →