Базовая архитектура CNN: объяснение 5 уровней сверточной нейронной сети [США]

Опубликовано: 2023-04-16

CNN (Сверточная нейронная сеть) — это тип нейронной сети с глубоким обучением, который использует комбинацию слоев свертки и субдискретизации для изучения функций из больших наборов данных. Он обычно используется для распознавания изображений и задач классификации. Сверточные слои применяют фильтры к входным данным, а слои субдискретизации уменьшают размер входных данных. Архитектура сверточной нейронной сети направлена ​​​​на изучение функций из данных, которые можно использовать для классификации или обнаружения объектов на входе. Ниже описаны 5 слоев CNN .

Запишитесь на курс машинного обучения в лучших университетах мира. Заработайте программы Master, Executive PGP или Advanced Certificate Programs, чтобы ускорить свою карьеру.

Оглавление

5 слоев сверточной нейронной сети

1. Сверточный слой:

Этот слой выполняет операцию свертки над входными данными, которая извлекает из данных различные функции.

Сверточные слои в архитектуре модели CNN являются одним из наиболее важных компонентов слоев CNN . Эти слои отвечают за извлечение признаков из входных данных и формирование основы для дальнейшей обработки и обучения.

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

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

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

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

2. Слой объединения:

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

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

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

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

3. Уровень активации:

Этот слой добавляет модели нелинейность, применяя нелинейную функцию активации, такую ​​как ReLU или tanh.

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

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

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

ReLu — наиболее часто используемая функция активации в большинстве сверточных сетей. Это нелинейное преобразование, которое выводит 0 для всех отрицательных значений и то же значение, что и входное значение для всех положительных значений. Это позволяет сети впитывать в данные более сложные закономерности.

Сигмоид — еще одна часто используемая функция активации, которая выводит значения от 0 до 1 для любого заданного входа. Это помогает сети понять сложные отношения между входными и выходными данными, но требует больше вычислительных ресурсов, чем ReLu.

Tanh — это наименее часто используемая функция активации, которая выводит значения от -1 до 1 для любого заданного ввода.

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

4. Полностью подключенный слой:

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

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

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

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

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

5. Выходной слой:

Это последний слой сети, который создает выходные метки или значения.

Выходной уровень CNN является последним уровнем в сети и отвечает за создание выходных данных. Это слой, который берет функции, извлеченные из предыдущих слоев, и объединяет их таким образом, чтобы получить желаемый результат.

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

Функция активации softmax используется, когда выходные данные представляют собой распределение вероятностей, например распределение вероятностей по классам. Выходной уровень CNN также отвечает за выполнение необходимых вычислений для получения желаемого результата. Это включает в себя выполнение необходимых линейных или нелинейных преобразований входных данных для получения требуемого вывода.

Наконец, выходной уровень CNN также можно использовать для выполнения методов регуляризации, таких как отсев или пакетная нормализация, для повышения производительности сети.

Заключение

Архитектура CNN — мощный инструмент для задач обработки изображений и видео. Это комбинация сверточных слоев, объединенных слоев и полносвязных слоев. Он позволяет извлекать признаки из изображений, видео и других источников данных и может использоваться для различных задач, таких как распознавание объектов, классификация изображений и распознавание лиц. В целом, этот тип архитектуры очень эффективен при применении к подходящим функциям и наборам данных.

Приобретите профессиональный набор навыков в области ML и DL с upGrad

С программой повышения квалификации upGrad в области машинного обучения и глубокого обучения , предлагаемой IIIT-B, вы можете получить навыки в области машинного обучения и глубокого обучения. Программа охватывает основы ML и DL, включая такие темы, как контролируемое и неконтролируемое обучение, линейная и логистическая регрессия, сверточные нейронные сети, обучение с подкреплением и обработка естественного языка. Вы также научитесь создавать и развертывать модели ML и DL в Python и TensorFlow и приобретете практический опыт, работая над реальными проектами.

Этот курс также включает в себя такие преимущества, как:

  • Наставничество и руководство от экспертов отрасли
  • Помощь в трудоустройстве, чтобы помочь вам найти подходящую работу
  • Расширенный сертификат от IIIT Bangalore

Вы также можете ознакомиться с нашимибесплатными курсами,предлагаемыми upGrad, по менеджменту, науке о данных, машинному обучению, цифровому маркетингу и технологиям.Все эти курсы включают в себя первоклассные учебные ресурсы, еженедельные живые лекции, отраслевые задания и сертификат об окончании курса — и все это бесплатно!

Какие библиотеки в Python можно использовать для CNN?

Библиотеки на Python, которые можно использовать для CNN, включают TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV и SciPy. Эти библиотеки можно использовать для получения готовых модулей для создания приложений и простой реализации алгоритмов CNN.

Сколько измерений в слоях CNN?

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

Могу ли я разработать CNN в R?

Да, CNN можно разрабатывать с использованием как Python, так и R. Поскольку R предоставляет исключительно подробные библиотеки, создание сверточной нейронной сети с помощью R довольно просто.