Открыть сервис

LeNet-5

LeNet-5 — это одна из первых свёрточных нейронных сетей (CNN), разработанная французским учёным Яном Лекуном (Yann LeCun) в 1998 году. Она была создана для распознавания рукописных цифр и изображений небольшого размера. LeNet-5 считается основополагающей архитектурой в области глубокого обучения, заложившей принципы, которые используются в современных свёрточных сетях: свёрточные слои, подвыборка (субдискретизация) и полносвязные слои.

История

Предпосылки создания

В конце 1980-х — начале 1990-х годов Ян Лекун, работая в Bell Labs, занимался задачами распознавания образов. Существовавшие на тот момент методы (например, многослойные перцептроны) были неэффективны для обработки изображений из-за большого числа параметров и отсутствия учёта пространственной структуры данных. Лекун предложил использовать свёрточные слои, которые имитируют работу зрительной коры мозга: нейроны реагируют на локальные участки изображения (рецептивные поля), а веса фильтров разделяются по всему изображению.

Разработка и публикация

В 1998 году Ян Лекун совместно с Леоном Ботту, Йошуа Бенжио и Патриком Хаффнером опубликовал статью «Gradient-Based Learning Applied to Document Recognition», где подробно описал архитектуру LeNet-5. Сеть была обучена на наборе данных MNIST (база рукописных цифр размером 28×28 пикселей) и достигла точности распознавания около 99,2% — рекордного показателя для того времени.

Практическое применение

LeNet-5 была внедрена в коммерческие системы обработки чеков и банковских документов. В частности, в США и Канаде она использовалась для автоматического считывания сумм с чеков — до 10% всех чеков в США обрабатывались с помощью этой сети. Однако с развитием более мощных архитектур (AlexNet, VGG, ResNet) LeNet-5 утратила практическую актуальность, но сохранила образовательную и историческую ценность.

Архитектура

LeNet-5 имеет фиксированную структуру из семи слоёв (не считая входного), каждый из которых выполняет определённую функцию.

Входной слой

На вход подаётся изображение размером 32×32 пикселя в градациях серого (один канал). Такой размер был выбран, чтобы центральные элементы (на которых обычно находятся цифры) попадали в рецептивные поля нейронов следующих слоёв.

Слои сети

  1. Слой C1 (свёрточный) — 6 фильтров размером 5×5. Выход: 6 карт признаков размером 28×28. Каждый фильтр сканирует входное изображение с шагом 1, выделяя простые признаки: края, углы, линии.
  2. Слой S2 (подвыборка, субдискретизация) — 6 карт признаков размером 14×14. Используется операция усреднения (average pooling) по блокам 2×2 с шагом 2. К каждому элементу добавляется обучаемый сдвиг и применяется сигмоидная функция активации. Этот слой уменьшает размерность и повышает устойчивость к небольшим сдвигам и искажениям.
  3. Слой C3 (свёрточный) — 16 фильтров размером 5×5. Выход: 16 карт признаков размером 10×10. В отличие от C1, здесь используется неполная связь: каждый из 16 фильтров соединяется только с частью карт из предыдущего слоя (от 3 до 6). Это снижает количество параметров и нарушает симметрию, заставляя сеть изучать более разнообразные признаки.
  4. Слой S4 (подвыборка) — 16 карт признаков размером 5×5. Принцип аналогичен S2.
  5. Слой C5 (свёрточный) — 120 фильтров размером 5×5. Выход: 120 карт признаков размером 1×1. Фактически это полносвязный слой, так как размер карт совпадает с размером фильтра. Каждый фильтр соединяется со всеми 16 картами S4.
  6. Слой F6 (полносвязный) — 84 нейрона. Выполняет классификацию на основе признаков, извлечённых предыдущими слоями. Функция активации — гиперболический тангенс (tanh).
  7. Выходной слой (Gaussian connections) — 10 нейронов (по числу цифр от 0 до 9). Используется евклидово расстояние между выходным вектором и эталонными векторами каждого класса. В современных реализациях заменяется на softmax.

Параметры и количество связей

Общее количество параметров LeNet-5 — около 60 000 (для сравнения, у AlexNet — 60 миллионов). Количество связей (умножений) — около 340 000. Малое число параметров достигается за счёт разделения весов (weight sharing) в свёрточных слоях.

Обучение

LeNet-5 обучалась с помощью алгоритма обратного распространения ошибки (backpropagation). Использовалась среднеквадратичная ошибка (MSE) в качестве функции потерь. Обучение проводилось на наборе MNIST (60 000 обучающих и 10 000 тестовых примеров). Скорость обучения выбиралась вручную, без адаптивных методов (Adam, RMSprop). Из-за ограниченных вычислительных ресурсов того времени обучение занимало несколько дней.

Предобработка данных

Изображения из MNIST (28×28) масштабировались до 32×32 путём добавления пустых пикселей по краям. Интенсивность пикселей нормализовалась к диапазону [-1, 1].

Значение и влияние

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

LeNet-5 стала первой практически успешной свёрточной нейронной сетью. Она продемонстрировала, что:

  • свёрточные слои эффективно извлекают пространственные признаки;
  • разделение весов резко сокращает число параметров;
  • комбинация свёртки и подвыборки устойчива к искажениям.

Эти принципы легли в основу всех последующих архитектур CNN. Работа Лекуна 1998 года считается одной из основополагающих в области компьютерного зрения.

Образовательное значение

LeNet-5 до сих пор используется в учебных курсах по машинному обучению как первый пример свёрточной сети. Её простая и наглядная архитектура позволяет студентам понять базовые механизмы работы CNN без излишней сложности.

Ограничения

  • Размер входного изображения фиксирован (32×32), что не позволяет обрабатывать изображения произвольного размера без предварительного масштабирования.
  • Малая глубина (всего 3 свёрточных слоя) ограничивает способность выделять сложные иерархические признаки.
  • Функция активации tanh менее эффективна, чем ReLU, которая появилась позже.
  • Отсутствие методов регуляризации (dropout, batch normalization) делает сеть склонной к переобучению на больших наборах данных.

Модификации и современные реализации

LeNet-4 и LeNet-1

До LeNet-5 существовали более ранние версии: LeNet-1 (1989) и LeNet-4 (1994). Они имели меньшее число слоёв и использовали более простые схемы связей. LeNet-5 стала наиболее совершенной версией в этой линейке.

Современные реализации

LeNet-5 часто воспроизводят в современных фреймворках (TensorFlow, PyTorch) для обучения на MNIST. При этом вносятся небольшие изменения:

  • замена tanh на ReLU;
  • добавление dropout;
  • использование softmax вместо Gaussian connections;
  • применение более эффективных методов оптимизации (Adam).

Такие модификации позволяют достичь точности 99,5–99,7% на MNIST.

Интересные факты

  • Название «LeNet-5» происходит от имени создателя (LeCun) и числа слоёв (5 обучаемых слоёв, хотя всего их 7).
  • В 1990-х годах LeNet-5 использовалась в системе обработки чеков банка США, обрабатывая около 10% всех чеков в стране.
  • Ян Лекун получил премию Тьюринга в 2018 году (совместно с Джеффри Хинтоном и Йошуа Бенжио) за вклад в развитие глубокого обучения, в том числе за создание LeNet-5.
  • Набор данных MNIST, на котором обучалась LeNet-5, остаётся одним из самых популярных бенчмарков для начинающих специалистов по машинному обучению.

Источники

  • LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-Based Learning Applied to Document Recognition. Proceedings of the IEEE, 86(11), 2278–2324.
  • LeCun, Y., & Bengio, Y. (1995). Convolutional Networks for Images, Speech, and Time Series. The Handbook of Brain Theory and Neural Networks, 3361.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →