Статьи

Что такое сверточные нейронные сети?

  • Что такое сверточные нейронные сети в глубоком обучении?
  • Как работают сверточные нейронные сети?
  • Какие существуют типы сверточных нейронных сетей?
  • Каковы преимущества CNN?
  • Каковы недостатки CNN?

Что такое сверточные нейронные сети в глубоком обучении?

Сверточные нейронные сети –  это  глубокие нейронные сети, которые применяются для решения задача компьютерного зрения (компьютерное зрение, Computer Vision, CV — это область искусственного интеллекта, связанная с анализом изображений и видео), таких как распознавание изображений и видео, обнаружение объектов и сегментация изображений. Проще говоря, компьютерное зрение — это область искусственного интеллекта (ИИ), которая позволяет машинам интерпретировать и понимать визуальные данные из реального мира.

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

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

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

Что такое сверточные нейронные сети?
Рисунок 1. Разница между классификацией изображений с использованием традиционного машинного обучения и глубокого обучения.

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



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

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

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

Как работают сверточные нейронные сети?

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

Шаги, связанные с работой сверточных нейронных сетей, включают:

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

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

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

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

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

Что такое сверточные нейронные сети?
Рисунок 2. Пример архитектуры CNN для классификации изображений.

Давайте посмотрим, как CNN будет классифицировать изображения кошек и собак:

Шаг 1
Входной слой получает 3-канальные (RGB) изображения собаки или кошки и другие необработанные данные изображения. Трехканальный (RGB) — это стандартный формат, используемый для представления цветных изображений в нейронных сетях, где каждый пиксель представлен тремя значениями, представляющими интенсивность красного, зеленого и синего цветовых каналов.

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

Шаг 3
Вывод сверточного слоя становится нелинейным из-за слоя ReLU.

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

Шаг 5
Многочисленные сверточные и объединяющие слои накладываются друг на друга для извлечения все более сложных характеристик из входного изображения.

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

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

Какие существуют типы сверточных нейронных сетей?

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

Традиционные CNN

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

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

Что такое сверточные нейронные сети?
Рисунок 3. Архитектура модели Lenet-5.

Рекуррентные нейронные сети

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

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

Что такое сверточные нейронные сети?
Рисунок 3. Архитектура рекуррентной нейронной сети.

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

Полностью сверточные сети

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

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

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

Пространственная трансформаторная сеть

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

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

Преобразование относится к любой операции, которая каким-либо образом изменяет изображение, например поворачивает его, масштабирует или обрезает. Выравнивание обеспечивает, чтобы объекты на изображении были центрированы, ориентированы или расположены согласованным и осмысленным образом.

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

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

Каковы преимущества CNN?

CNN предпочтительнее в задачах компьютерного зрения из-за их преимуществ, включая неизменность перевода, совместное использование параметров, иерархическое представление, устойчивость к изменениям и сквозное обучение.

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

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

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

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

Каковы недостатки CNN?

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

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

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

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

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


Подборка статей по криптовалютам и технологии блокчейн. Подпишитесь на нас в социальных сетях.

Информация для Вас была полезна?
0
0
0
0
0
0
0

Похожие статьи

Кнопка «Наверх»