Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Сверточная нейронная сеть

Определение 1

Сверточная нейронная сеть — это специализированная разновидность нейронных сетей, использующая свертку вместо общего матричного умножения, по крайней мере, в одном из своих слоев.

Общие сведения о сверточных сетях

Сверточной нейронной сетью является специализированная архитектурная организация искусственных нейронных сетей, которая была предложена Яном Лекуном и нацелена на организацию эффективного распознавания образов. Эта архитектура способна существенно более точно осуществить распознавание объектов на изображениях, поскольку, в отличие от многослойного персептрона, она учитывает двухмерную топологию изображений. Причем сверточные сети являются устойчивыми к незначительным смещениям, корректировкам масштаба и поворотам объектов на исходных изображениях.

В основном, именно по этой причине архитектуры, которые базируются на сверточных сетях, до сих пор способны занимать первые места в соревнованиях по распознаванию образов, как, к примеру, ImageNet.

Общеизвестно, что нейронные сети отлично себя зарекомендовали в распознавании изображений. При этом отличная точность может достигаться и обычными сетями прямого распространения, но, если речь идет об обработке изображений с большим количеством пикселей, то и количество параметров для нейронной сети существенно возрастает. При этом возрастание может превратиться в настолько огромное, что время, которое нужно затратить на их обучение, способно стать также просто огромным.

Например, когда необходимо обработать цветное изображение размером 64х64, то для каждого нейрона первого слоя полносвязной сети может потребоваться 64•64•3 = 12288 параметров, а если сети следует выполнить распознавание изображения 1000х1000 пикселей, то количество исходных параметров увеличивается уже до трех миллионов. А кроме входного слоя имеются и другие слои, на которых часто количество нейронов может превышать число нейронов на входном слое, и по этой причине три миллиона легко могут превратиться в триллионы. Данное количество параметров абсолютно нереально оперативно рассчитать по причине отсутствия настолько больших вычислительных мощностей компьютерного оборудования.

«Сверточная нейронная сеть» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Особенности сверточных нейронных сетей

Основной отличительной чертой сверточных сетей считается тот факт, что они способны работать именно с изображениями, и поэтому следует выделить особенности, которые свойственны именно им. Многослойные персептроны могут работать с векторами, и поэтому для них нет никакой разницы в местоположении каких-либо точек. То есть, расположены они рядом или на противоположных концах, так как все точки являются равнозначными и могут считаться совершенно одинаковым образом.

Изображения же способны обладать локальной связностью. К примеру, если рассматриваются изображения человеческих лиц, то вполне логично предполагать, что точки основных частей лица находятся рядом, а не разрозненно расположены на изображении. Поэтому потребовалось сформировать более эффективные алгоритмы для работы с изображениями и ими стали именно сверточные сети.

В отличие от сетей прямого распространения, работающих с данными в формате векторов, сверточные сети способны работать с изображениями в виде тензоров. Тензорами являются 3D массивы чисел, или, говоря иначе, это массивы матриц чисел. Изображения в компьютере представлены в виде пикселей, а каждый пиксель имеет значения интенсивности соответствующих каналов. Причем интенсивность каждого из каналов может быть описана при помощи целого числа от 0 до 255.

Наиболее часто применяются цветные изображения, состоящие из RGB пикселей, то есть, пикселей, которые содержат яркость по трем каналам, а именно, красному, зеленому и синему. Разные комбинации данных цветов способны формировать любые цвета из всего спектра. Следовательно, является абсолютно логичным использование именно тензоров для представления изображений. Все матрицы тензоров отвечают за интенсивность своего канала, а набор всех матриц способен описать все изображение.

Сверточные нейронные сети имеют в своем составе базовые блоки, благодаря чему появляется возможность собирать их как конструктор, путем добавления слоя за слоем и получения все более мощной архитектуры. Главными блоками сверточных нейронных сетей считаются:

  1. Совокупность сверточных слоев.
  2. Совокупность слоев подвыборки (пулинга).
  3. Совокупность слоев активации и полносвязных слоев.

Так, к примеру, LeNet5, которая является одной из первых сверточных сетей и смогла победить в ImageNet, имела в своем составе семь слоев:

  1. Два слоя свертки,
  2. Два слоя пулинга,
  3. Трехслойную полносвязную нейронную сеть.

Слой свертки, как следует из названия типа нейронной сети, считается основным слоем сети. Его главным предназначением является выделение признаков на входном изображении и формирование карты признаков. Карта признаков выступает как всего лишь очередной тензор (массив матриц), в котором все каналы отвечают за какой-либо свой выделенный признак.

Для того чтобы слой обладал способностью выделения признаков, в нем предусмотрены специальные фильтры (или ядра). Ядра, по существу, являются всего лишь совокупностью тензоров. Данные тензоры обладают одинаковым размером, а их число служит для определения глубины выходного 3D массива. Причем глубина самих фильтров должна совпадать с числом каналов входного изображения. Так, когда на вход сверточного слоя поступает RGB изображение и необходима карта признаков, которая состоит из тридцати двух каналов, тогда сверточный слой должен иметь в себе тридцать два фильтра глубиной, равной трем.

Для формирования карты признаков из входного изображения, осуществляется процедура свертки входного тензора со всеми фильтрами. Сверткой является операция определения нового значения выбранного пикселя, которая учитывает значения окружающих его пикселей. Алгоритм формирования результата свертки может быть представлен следующим образом:

  1. Фильтр следует наложить на левую верхнюю часть изображения и произвести покомпонентное умножение значений фильтра и значений изображения, а затем фильтр должен перемещаться дальше по изображению до тех пор, пока точно также не будут обработаны все его участки.
  2. Далее числа полученных матриц должны быть просуммированы в единую матрицу, которая и будет результатом применения фильтра.
Дата написания статьи: 16.08.2022
Получи помощь с рефератом от ИИ-шки
ИИ ответит за 2 минуты
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot