Уже существует множество обзоров литературы о LeNet, которая представляет собой классическую сверточную нейронную сеть с глубоким обучением для классификации изображений. Но большинство из них просто рассматривают одну из версий, то есть LeNet-5. LeNet-1, LeNet-4 и Boosted LeNet-4 обычно игнорируются. В этом рассказе я сделаю краткий обзор сетевых архитектур:
- Базовый линейный классификатор
- Полностью подключенная многослойная сеть с одним скрытым слоем
- Полностью подключенная многослойная сеть с двумя скрытыми слоями
- LeNet-1
- LeNet-4
- LeNet-5
- Улучшенный LeNet-4
Архитектура и исполнение представлены в этом рассказе.
Это журнал 1998 г. Proceedings of the IEEE с около 14000 цитирований, когда я писал этот рассказ. Хотя это и с 1998 года, он начинается с основ нейронной сети, которая представляет собой документ, который дает хорошее начало изучению глубокого обучения. Глядя на развитие архитектуры нейронной сети и снижение количества ошибок, мы можем легко узнать важность или влияние добавления компонентов глубокого обучения в сеть. (Сик-Хо Цанг @ средний)
Предполагается, что мы получили базовые знания о компонентах глубокого обучения, таких как сверточный слой, уровень объединения, полносвязный уровень и функция активации.
1. Базовый линейный классификатор
Простейший линейный классификатор. Каждое значение входного пикселя вносит вклад в взвешенную сумму для каждого выходного блока. Единица вывода с наибольшей суммой указывает класс входного символа. Таким образом, как мы видим, изображение обрабатывается как одномерный вектор и соединяется с вектором с 10 выходами.
Таким образом, частота ошибок для тестовых данных составляет 8,4%.
2. Полностью подключенная многослойная сеть с одним скрытым слоем
Добавив один скрытый слой между входным и выходным слоями, с 300 нейронами на скрытом слое, т. Е. сеть 20 × 20–300–10, коэффициент ошибок на тестовые данные - 3,6%. При 1000 нейронов на скрытом уровне, то есть в сети 20 × 20–1000–10, коэффициент ошибок для тестовых данных составляет 3,8%.
3. Двухслойная полностью связная многослойная сеть с двумя скрытыми слоями
Если добавить два скрытых слоя между входным и выходным слоями, сеть 28 × 28–300–100-10, коэффициент ошибок для тестовых данных составит 3,05. %.
Сеть 28 × 28–1000–150–10, частота ошибок для тестовых данных составляет 2,95%.
Мы можем заметить, что при добавлении скрытых слоев частота ошибок становится меньше. Но улучшение также замедляется.
4. LeNet-1
В Lenet-1:
входное изображение 28 × 28 ›
Сверточный слой четырех векторных карт 24 × 24 (размер 5 × 5)›
Среднее объединение слоев (размер 2 × 2) ›
Сверточный слой восьми 12 × 12 карт объектов (размер 5 × 5)›
Средние слои объединения (размер 2 × 2) ›
Непосредственно полностью подключены к вывод
С введенными слоями свертки и подвыборки / объединения LeNet-1 получил коэффициент ошибок 1,7% на тестовых данных.
Следует отметить, что на момент изобретения LeNet авторы использовали средний слой объединения, выводили средние значения карт характеристик 2 × 2. Прямо сейчас во многих реализациях LeNet используется максимальный пул, который выводит только максимальное значение из 2 × 2 карт функций, и оказывается, что это может помочь ускорить обучение. Поскольку выбран самый сильный элемент, при обратном распространении может быть получен больший градиент.
5. LeNet-4
В Lenet-4
входное изображение 32 × 32 ›
Четыре сверточных слоя 28 × 28 карт объектов (размер 5 × 5)›
Среднее объединение слои (размер 2 × 2) ›
Шестнадцать сверточных слоев 10 × 10 карт объектов (размер 5 × 5)›
Среднее объединение слоев (размер 2 × 2) ›
Полностью подключено к 120 нейронам ›
Полностью подключено к 10 выходам
При большем количестве карт объектов и еще одном полностью подключенном слое коэффициент ошибок составляет 1,1% для тестовых данных.
6. LeNet-5
LeNet-5, наиболее популярный из тех, о которых говорили люди LeNet, имеет лишь небольшие отличия от LeNet-4.
Входное изображение 32 × 32 ›
Шесть сверточных слоев 28 × 28 карт объектов (размер 5 × 5)›
Среднее объединение слоев (размер 2 × 2) ›< br /> Шестнадцать сверточных слоев 10 × 10 карт объектов (размер 5 × 5) ›
Среднее объединение слоев (размер 2 × 2)›
Полностью подключено к 120 нейронам ›
Полностью подключено к 84 нейроны ›
Полностью подключены к 10 выходам
При большем количестве карт объектов и еще одном полностью подключенном слое коэффициент ошибок составляет 0,95% по тестовым данным.
7. Ускоренный LeNet-4
Повышение - это метод объединения результатов нескольких / многих слабых классификаторов для получения более точных результатов. В LeNet-4 выходы трех LeNet-4 просто складываются вместе, и тот, у которого есть максимальное значение, будет прогнозируемым классом классификации. И есть улучшение, заключающееся в том, что, когда первая сеть имеет ответ с высокой степенью достоверности, другие сети не вызываются.
При повышении коэффициент ошибок для тестовых данных составляет 0,7%, что даже меньше, чем у LeNet-5.
Этот метод усиления использовался годами до сих пор.
8. Резюме по частоте ошибок
- Базовый линейный классификатор: 8,4%
- Полностью подключенная многослойная сеть с одним скрытым слоем: от 3,6% до 3,8%
- Полностью подключенная многослойная сеть с двумя скрытыми слоями: от 2,95% до 3,05%
- LeNet-1: 1,7%
- LeNet-4: 1,1%
- LeNet-5: 0,95%
- Повышение эффективности LeNet-4: 0,7%
Мы видим, что частота ошибок снижается при добавлении большего количества компонентов глубокого обучения или некоторых методов машинного обучения.
9. Обсуждения
Фактически, в этих нескольких статьях [1–3] подробно описаны многие базовые техники глубокого обучения. Кроме того, различные версии LeNet также сравниваются с другими традиционными подходами, такими как PCA, k-NN, SVM.
Мы должны отметить следующее:
9.1. Функция активации
Tanh используется как функция активации, за исключением выхода.
Sigmoid используется как функция активации на выходе.
ReLU НЕ использовался в те годы.
[В настоящее время] Позже выяснилось, что ReLU является лучшей функцией активации для ускорения конвергенции во время обучения.
9. 2. Уровень объединения
Как уже упоминалось, LeNet использовал средний пул вместо максимального.
[В настоящее время] очень распространено максимальное объединение, или даже отсутствие уровней объединения.
9.3. Скрытые слои
Раньше количество скрытых слоев было небольшим, и производительность нельзя было слишком сильно повысить, добавив больше слоев.
[В настоящее время] Это могут быть сотни или тысячи скрытых слоев.
9.4. Тренировочное время
В прежние времена на тренировки уходили дни.
[В настоящее время] Но сейчас это всего лишь небольшая сеть с ускорением на GPU.
10. Выводы
В заключение, статьи LeNet действительно стоит прочитать, особенно новичкам в глубоком обучении.
Если интересно, есть также руководство по быстрой настройке LeNet-5 с использованием Nvidia-Docker и Caffe [4].
использованная литература
- [1989 NIPS] [LeNet-1]
Распознавание рукописных цифр с помощью сети обратного распространения - [1995 ICANN] [LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4]
Сравнение алгоритмов обучения для распознавания рукописных цифр - [1998 Proc. IEEE] [LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4]
Градиентное обучение, применяемое для распознавания документов - ОЧЕНЬ БЫСТРАЯ НАСТРОЙКА LeNet-5 для классификации рукописных цифр с использованием Nvidia-Docker 2.0 + CUDA + CuDNN + Jupyter Notebook + Caffe