Резюме
LeNet-5 из статьи Gradient-Based Learning Applied to Document Recognition — очень эффективная сверточная нейронная сеть для распознавания рукописных символов.
Введение
LeNet-5Из статьи Gradient-Based Learning Applied to Document Recognition — очень эффективная сверточная нейронная сеть для распознавания рукописных символов.
Эта статья начнется с основ структуры сверточной нейронной сети и подробно объяснит каждый слой сети.
Скачать статью: пожалуйста, перейдите наконец статьиСкачать здесь.
2. Сверточная нейронная сеть (CNN)
Прежде чем объяснять LeNet-5, давайте взглянем на CNN. Сверточные нейронные сети могут эффективно использовать структурную информацию изображений. LeNet-5 — более простая сверточная нейронная сеть. На следующем рисунке показана его структура: входное 2D-изображение проходит через два сверточных слоя в слой пула, затем через полностью связанный слой и, наконец, использует классификацию softmax в качестве выходного слоя. Ниже мы в основном вводим сверточный слой и слой объединения.
1. Сверточный слой
Сверточные слои являются основными строительными блоками сверточных нейронных сетей. Свертка, которую мы упоминали в распознавании изображений, является двумерной сверткой, то есть дискретный двумерный фильтр (также называемый ядром свертки) свертывается с двумерным изображением, Проще говоря, двумерный фильтр скользит к двум Все позиции на многомерном изображении и сделать скалярное произведение с пикселем и пикселями его домена в каждой позиции. Операции свертки широко используются в области обработки изображений, и различные ядра свертки могут извлекать различные признаки, такие как краевые, линейные, угловые и другие признаки. В глубоких сверточных нейронных сетях низкоуровневые и сложные характеристики изображений могут быть извлечены с помощью операций свертки.
На приведенном выше рисунке показан пример процесса вычисления свертки.Размер входного изображения H = 5, W = 5, D = 3, который представляет собой 3-канальное (RGB, также называемое глубиной) цветное изображение 5 × 5. Этот пример графа содержит два (обозначенных K) набора ядер свертки, фильтров W0 и W1 в графе. В вычислениях свертки обычно используются разные ядра свертки для разных входных каналов.В примере, показанном на рисунке, каждая группа ядер свертки содержит (D=3) 3×3 (представлено F×F) ядра свертки. Кроме того, в этом примере размер скользящего шага ядра свертки в горизонтальном направлении (направление W) и вертикальном направлении (направление H) изображения равен 2 (обозначается S); 1 (обозначается P) заполняется вокруг входное изображение. , то есть исходные данные входного слоя на рисунке — это синяя часть, серая часть расширена с размером 1, а для расширения используется 0. После операции свертки на выходе получается карта признаков размером 3×3×2 (представленная Ho×Wo×K), то есть 2-канальная карта признаков размером 3×3, где вычисление формула Ho: Ho=(H−F+ 2×P)/S+1, Wo то же самое. И каждый пиксель на выходной карте объектов представляет собой сумму внутреннего произведения каждого набора фильтров и каждой карты объектов входного изображения плюс смещение bo, которое обычно используется для каждой выходной карты объектов. Последние −2 в выходной карте объектов o[:,:,0] вычисляются, как показано в формуле в правом нижнем углу рисунка выше.
Запомните эти символы:
- H: высота изображения;
- W: ширина изображения;
- D: количество исходных каналов изображения, которое также является количеством ядер свертки;
- F: высота и ширина ядра свертки;
- P: размер расширения края изображения;
- S: размер скользящего шага.
В операции свертки ядро свертки является обучаемым параметром.После приведенного выше примера размер параметра каждого слоя свертки равен D×F×F×K. Сверточный слой имеет меньше параметров, что также определяется основными особенностями сверточного слоя, а именно локальными связями и общими весами.
- Локальная связь: каждый нейрон связан только с областью входного нейрона, которая называется рецептивным полем. В операции свертки изображения, то есть нейроны локально связаны в пространственном измерении (то есть плоскости, где H и W расположены в приведенном выше примере), но полностью связаны по глубине. Для самого двумерного изображения локальная корреляция пикселей также сильна. Это локальное соединение гарантирует, что изученный фильтр может иметь самый сильный отклик на локальные входные функции. Идея локальных связей также навеяна структурой зрительной системы в биологии, и нейроны в зрительной коре получают информацию локально.
- Разделение веса: фильтры, используемые при вычислении нейронов в одном и том же срезе глубины, являются общими. Например, фильтр каждого нейрона, вычисляющего o[:,:,0], на приведенном выше рисунке один и тот же, то есть W0, что может сильно уменьшить параметры. Совместное использование весов в определенной степени имеет смысл, например, базовые граничные элементы изображения не имеют ничего общего с конкретным расположением элемента на изображении. Но в некоторых сценариях это происходит непреднамеренно, например, входное изображение представляет собой лицо, глаза и волосы расположены в разных положениях, и есть надежда, что в разных положениях будут изучены разные черты. Обратите внимание, что веса являются общими только для нейронов одного и того же среза глубины.В слое свертки обычно используется несколько наборов ядер свертки для извлечения разных признаков, то есть признаков, соответствующих разным срезам глубины, и весов нейронов. срезы разной глубины не являются общими. Кроме того, смещение является общим для всех нейронов одного и того же среза глубины.
Вводя процесс вычисления свертки и его характеристики, можно увидеть, что свертка является линейной операцией и имеет инвариант к сдвигу, что означает, что одна и та же операция выполняется в каждой позиции изображения. Локальные соединения и распределение веса сверточных слоев значительно сокращают параметры, которые необходимо изучить, что также полезно для обучения более крупных сверточных нейронных сетей.
Общий процесс расчета выглядит следующим образом (отличается от данных на рисунке выше, но процесс расчета тот же):
2. Слой объединения
Объединение в пул — это форма нелинейной субдискретизации, и его основная функция — уменьшить объем вычислений за счет уменьшения параметров сети и в определенной степени контролировать переоснащение. Обычно объединяющий слой добавляется после сверточного слоя. Объединение включает максимальное объединение, среднее объединение и т. д. Максимальное объединение состоит в том, чтобы разделить входной слой на разные области с непересекающимися прямоугольными блоками и взять максимальное значение количества каждого прямоугольного блока в качестве выходного слоя, как показано на рисунке выше.
3. Ленет-5
Несмотря на то, что сеть LeNet5 невелика, она содержитглубокое обучениеОсновные модули: сверточный слой, слой пула, полносвязный слой. другойглубокое обучениеОснова модели, здесь мы проводим глубокий анализ LeNet5. В то же время с помощью анализа примеров углубите понимание сверточных слоев и объединенных слоев.
Всего Ленет-5имеет 7 этажей, не содержит входных данных, а каждый слой содержит обучаемые параметры, каждый слой имеетНесколько карт объектов, каждая FeatureMap извлекает функцию из входных данных через сверточный фильтр, а затем каждая FeatureMap имеетмножественные нейроны.
Подробное объяснение параметров каждого слоя:
1. INPUT layer - входной слой
Первый - это слой ВВОДА данных, и размер входного изображения равномерно нормализован до 32 * 32.
Примечание: Этот слой не считается сетевой структурой LeNet-5, традиционно входной слой не рассматривается как одна из сетевых иерархий.
2. Слой C1 - сверточный слой
Входное изображение: 32*32
Размер ядра свертки: 5*5
Типы ядер свертки: 6
Выходной размер карты характеристик: 28*28 (32-5+1)=28
Количество нейронов: 28286
Обучаемые параметры: (55+1) * 6 (5 на фильтр5=25 единичных параметров и один параметр смещения, всего 6 фильтров)
Количество соединений: (55+1)62828=122304
**Подробности:** Выполните первую операцию свертки над входным изображением (используя 6 изображений размера 5).5 ядер свертки), в результате чего получается 6 карт признаков C1 (6 размером 2828 карт признаков, 32-5+1=28). Посмотрим сколько нужно параметров, размер ядра свертки 55 из 6(55+1) = 156 параметров, где +1 означает, что ядро имеет смещение. Для сверточного слоя C1 каждый пиксель в C1 совпадает с 5 во входном изображении.5 пикселей связаны с 1 смещением, поэтому всего 1562828=122304 соединения. Есть 122304 связи, но нам нужно выучить только 156 параметров, в основном через распределение веса.
3. Слой S2 — слой пула (слой понижающей дискретизации)
Вход: 28*28
Зона отбора проб: 2*2
Метод выборки: добавляются 4 входа, умножаются на обучаемый параметр, плюс обучаемое смещение. Результаты через сигмовидную
Типы выборки: 6
Выходная функцияРазмер карты: 14*14 (28/2)
Количество нейронов: 14146
Количество соединений: (22+1)61414
Размер каждой карты объектов в S2 составляет 1/4 размера карты объектов в C1.
**Подробности:**За первой сверткой следует операция объединения с использованием 22 ядра объединяются, получается S2, 6 1414 карт объектов (28/2=14). Слой объединения S2 должен суммировать пиксели в области 2 * 2 в C1, умножать его на весовой коэффициент и добавлять смещение, а затем снова отображать результат. Одновременно имеется 5x14x14x6=5880 соединений.
4. Слой C3 — сверточный слой
Входные данные: все 6 или несколько комбинаций карт объектов в S2.
Размер ядра свертки: 5*5
Типы ядер свертки: 16
Выходная функцияРазмер карты: 10*10 (14-5+1)=10
Каждая карта объектов в C3 связана со всеми 6 или несколькими картами объектов в S2, что указывает на то, что карта объектов этого слоя представляет собой другую комбинацию карт объектов, извлеченных предыдущим слоем.
Один из способов заключается в том, что первые 6 карт признаков C3 принимают в качестве входных данных 3 смежных подмножества карт признаков в S2. Следующие 6 карт объектов принимают в качестве входных данных подмножество из 4 смежных карт объектов в S2. Следующие 3 берут в качестве входных данных несмежное подмножество из 4 карт объектов. Последний принимает все карты функций в S2 в качестве входных данных.
Тогда: обучаемые параметры: 6*(355+1)+6*(455+1)+3*(455+1)+1*(655+1)=1516
Количество соединений: 10101516=151600
**Подробности:**После того, как первое объединение представляет собой вторую свертку, выход второй свертки — C3, 16 карт признаков 10x10, а размер ядра свертки — 5.5. Мы знаем, что S2 имеет 6 1414 карт признаков, как получить 16 карт признаков из 6 карт признаков? Вот 16 карт характеристик, рассчитанных с помощью специальной комбинации карт характеристик S2. детали следующим образом:
Первые 6 карт объектов C3 (соответствующие 6 столбцам первого красного прямоугольника на рисунке выше) связаны с 3 картами объектов, подключенными к слою S2 (первый красный прямоугольник на рисунке выше), а следующие 6 карты объектов подключены к слою S2.4 карты объектов подключены (вторая красная рамка на рисунке выше), следующие 3 карты объектов подключены к 4 картам объектов, которые не подключены к части слоя S2, а последний подключен ко всем картам объектов слоя S2. Размер ядра свертки по-прежнему равен 55, значит всего 6(355+1)+6*(455+1)+3*(455+1)+1*(655+1)=1516 параметров. А размер образа 10*10, то есть всего 151600 подключений.
Структура свертки, соединяющая первые 3 графа в C3 и S2, показана на следующем рисунке:
Параметр, соответствующий приведенному выше рисунку, равен 3.55+1, всего выполняется 6 сверток для получения 6 карт признаков, поэтому имеется 6*(355+1) параметров. Зачем использовать вышеуказанную комбинацию? В документе говорится, что есть две причины: 1) уменьшить параметры, 2) эта асимметричная комбинация соединений выгодна для извлечения нескольких функций комбинации.
5. Слой S4 — слой пула (слой понижающей дискретизации)
Вход: 10*10
Зона отбора проб: 2*2
Метод выборки: добавляются 4 входа, умножаются на обучаемый параметр, плюс обучаемое смещение. Результаты через сигмовидную
Типы выборки: 16
Выходная функцияРазмер карты: 5*5 (10/2)
Количество нейронов: 5516=400
Количество соединений: 16*(2*2+1)55=2000
Размер каждой карты объектов в S4 составляет 1/4 размера карты объектов в C3.
**Подробности:**S4 — это объединяющий слой, размер окна по-прежнему 2*2, всего 16 карт объектов, а 16 карт 10x10 слоя C3 объединяются в блоки 2x2 для получения 16 карт объектов 5x5. . Имеется 5x5x5x16=2000 соединений. Способ подключения аналогичен слою S2.
6. Слой C5 — сверточный слой
Вход: все 16-элементные карты объектов слоя S4 (полностью связанные с s4).
Размер ядра свертки: 5*5
Типы ядер свертки: 120
Выходная функцияРазмер карты: 1*1 (5-5+1)
Обучаемые параметры/подключения: 120*(1655+1)=48120
**Подробности:** Слой C5 — это сверточный слой. Поскольку размер 16 графов слоя S4 равен 5x5, что совпадает с размером ядра свертки, размер графа, сформированного после свертки, равен 1x1. Здесь формируется 120 результатов свертки. Каждый связан с 16 графами из предыдущего слоя. Итак, имеется (5x5x16+1)x120 = 48120 параметров, а также 48120 соединений. Сетевая структура уровня C5 выглядит следующим образом:
7. Слой F6 — полносвязный слой
Вход: c5 120-мерный вектор
Метод расчета: вычислить скалярное произведение между входным вектором и вектором весов, добавить смещение и вывести результат с помощью сигмовидной функции.
Обучаемые параметры: 84*(120+1)=10164
**Подробности:** Уровень 6 — это полностью подключенный уровень. Слой F6 имеет 84 узла, соответствующих растровому изображению 7x12, где -1 означает белый, а 1 означает черный, так что черный и белый цвета растрового изображения каждого символа соответствуют коду. Параметры обучения и количество соединений для этого слоя составляют (120 + 1)x84=10164. Схема кодирования ASCII выглядит следующим образом:
Способ подключения слоя F6 следующий:
8. Выходной слой — полносвязный слой
Выходной слой также является полносвязным слоем с 10 узлами, представляющими числа от 0 до 9, и если значение узла i равно 0, результатом сетевой идентификации является число i. Используется метод подключения к сети радиальной базисной функции (RBF). Предполагая, что x является входом предыдущего слоя, а y является выходом RBF, выход RBF рассчитывается как:
Значение приведенной выше формулы w_ij определяется битовым кодированием i, i находится в диапазоне от 0 до 9, а j находится в диапазоне от 0 до 7*12-1. Чем ближе значение выхода RBF к 0, тем оно ближе к i, то есть ближе к ASCII-кодовому изображению i, указывающему, что текущим результатом распознавания сетевого входа является символ i. Этот слой имеет 84x10=840 параметров и соединений.
На картинке выше показан процесс, в котором LeNet-5 распознает цифру 3.
4. Резюме
- LeNet-5 — очень эффективная сверточная нейронная сеть для распознавания рукописных символов.
- Сверточные нейронные сети могут эффективно использовать структурную информацию изображений.
- Сверточный слой имеет меньше параметров, что также определяется основными особенностями сверточного слоя, а именно локальными связями и общими весами.
Использованная литература:
blog.CSDN.net/Чжан Цзюнь ударил…
woo woo Краткое описание.com/fear/test 609 волос 9 не 5…
Загрузка файла Градиентное обучение в применении к распознаванию документовссылка для скачивания