16 AlexNet
Контекст
К 2012-му всё было готово порознь: датасет ImageNet (#15), идея CNN (#9), backprop. Не хватало вычислительной мощи и пары трюков. Крижевский, Суцкевер и Хинтон собирают это вместе.
Идея и механизм
Глубокая CNN: 5 свёрточных + 3 полносвязных слоя, ~60M параметров. Что сделало её рабочей: ReLU (не насыщается → обучение в разы быстрее tanh), обучение на 2 GPU (модель разрезана между картами — иначе не влезала в 3 ГБ памяти), dropout в полносвязных слоях, аугментация данных (кропы, отражения, сдвиг цвета), overlapping max-pooling и local response normalization.
мат. анализ Почему ReLU победила сигмоиду: затухание градиента
Производная сигмоиды ограничена и насыщается:
В глубокой сети backprop перемножает эти производные слой за слоем, поэтому градиент сжимается экспоненциально:
У ReLU f(z) = max(0, z) производная равна 1 на активной части (z > 0) и 0 на неактивной. На активных нейронах градиент не сжимается — нет мультипликативного затухания сквозь глубину. Это и позволило обучать действительно глубокие сети. Плата — «мёртвые» нейроны (если z < 0 всегда, градиент 0 навсегда), что позже лечат вариантами вроде Leaky ReLU.
PyTorch Блок AlexNet-стиля
import torch.nn as nn
block = nn.Sequential(
nn.Conv2d(3, 96, kernel_size=11, stride=4), # крупные фильтры на входе
nn.ReLU(inplace=True), # быстрее tanh, не насыщается
nn.MaxPool2d(kernel_size=3, stride=2), # overlapping pooling
)
# полная сеть: 5 conv-блоков + 3 fc, dropout в fc, ~60M параметров
Почему это важно
Момент, когда deep learning «взлетел». Эмпирически доказал: глубокие CNN + GPU + большие данные дают качество, недостижимое ручными фичами. После 2012 всё компьютерное зрение (а вскоре и остальной ML) переключилось на глубокие сети, и начался спрос на GPU — давший NVIDIA её нынешнюю роль.
Связи
Архитектурно AlexNet — это LeNet, выросший вглубь: те же свёртки + pooling, но больше слоёв, ReLU вместо сигмоиды и dropout. Идея 1998-го дождалась данных и железа — и выстрелила без изменения сути.
Без масштаба ImageNet глубокая сеть переобучилась бы или не показала преимущества. Датасет — топливо, без которого двигатель не поехал бы; победа AlexNet задним числом оправдала ставку Фей-Фей Ли на данные.
AlexNet открыл гонку «глубже = лучше». Но просто складывать слои перестало работать (деградация). ResNet через три года решит эту проблему skip-связями и доведёт глубину до 152 слоёв — продолжение траектории, начатой здесь.
Вопросы пытливого ума
Что было решающим — ReLU, GPU, dropout или данные?
Все необходимы, но роли разные. GPU + ImageNet сделали глубину обучаемой на масштабе; ReLU сделал обучение быстрым; dropout и аугментация сдержали переобучение. Уберите любой — и результат разваливается. Самый глубокий enabler — встреча дешёвых параллельных вычислений (GPU/CUDA) с большими данными; трюки лишь сделали эту встречу продуктивной.
Почему именно 2012, если CNN существовали с 1998?
Идея ждала субстрата. В 1998-м не было ни датасета такого масштаба, ни GPU-вычислений, ни ReLU/dropout; глубокие CNN на слабом железе и маленьких данных проигрывали SVM. ImageNet и CUDA-карты сняли оба ограничения почти одновременно — и накопленная идея мгновенно реализовалась. Это типичный сюжет DL: правильная мысль ждёт данных и compute.
Разрезание на 2 GPU — фундаментальное решение или костыль?
Костыль под лимит памяти (3 ГБ на карту) — это ранний пример модельного параллелизма. Любопытно, что вынужденная слабая связь между «половинами» на разных GPU дала лёгкий регуляризующий эффект. Сегодня для одной AlexNet это не нужно, но тот же приём (разрезать модель между устройствами) сейчас обязателен для обучения гигантских LLM.
Что читать в оригинале
Короткий (9 стр.) и исторический — стоит прочитать целиком. Обратите внимание на инженерные детали (память, 2 GPU, ReLU): отличный пример, как системные ограничения формируют архитектуру.