Сверточные нейронные сети (CNN): введение
Опубликовано: 2022-08-30Сверточные нейронные сети предлагают более масштабируемый способ распознавания объектов и классификации изображений.
В мире технологий происходит много достижений. Искусственный интеллект и машинное обучение — вот некоторые из распространенных фраз, о которых вы можете часто слышать.
В настоящее время эти технологии используются практически во всех областях: от маркетинга, электронной коммерции и разработки программного обеспечения до банковского дела, финансов и медицины.
AI и ML — обширные области, и предпринимаются усилия по расширению их приложений для решения многих реальных проблем. Вот почему внутри этих технологий можно увидеть множество ответвлений; ML — это подмножество самого ИИ.
Сверточные нейронные сети — одна из ветвей ИИ, набирающая популярность в наши дни.
В этой статье я расскажу, что такое CNN, как они работают и насколько они полезны в современном мире.
Давайте погрузимся прямо в!
Что такое сверточная нейронная сеть?
Сверточная нейронная сеть (ConvNet или CNN) — это искусственная нейронная сеть (ANN), которая использует алгоритмы глубокого обучения для анализа изображений, классификации изображений и выполнения задач компьютерного зрения.

CNN использует принципы линейной алгебры, такие как умножение матриц, для обнаружения закономерностей в изображении. Поскольку эти процессы включают сложные вычисления, им требуются графические процессоры (GPU) для обучения моделей.
Проще говоря, CNN использует алгоритмы глубокого обучения, чтобы брать входные данные, такие как изображения, и присваивать важность в виде предубеждений и обучаемых весов различным аспектам этого изображения. Таким образом, CNN может различать изображения или классифицировать их.
CNN: краткая история
Поскольку сверточная нейронная сеть является искусственной нейронной сетью, важно повторить нейронные сети.
В вычислениях нейронная сеть является частью машинного обучения (ML) с использованием алгоритмов глубокого обучения. Это аналогично паттернам связи, которым следуют нейроны в человеческом мозгу. Искусственные нейронные сети также черпают вдохновение из того, как устроена зрительная кора.

Итак, разные типы нейронных сетей или искусственных нейронных сетей (ИНС) используются для разных целей. Одним из них является CNN, используемый для обнаружения и классификации изображений и многого другого. Он был представлен исследователем с докторской степенью Яном ЛеКуном в 1980-х годах.
Ранняя версия CNN — LeNet, названная в честь Лекуна, была способна распознавать рукописные цифры. Затем он использовался в банковских и почтовых службах для чтения цифр на чеках и почтовых индексах, написанных на конвертах.
Однако этой ранней версии не хватало масштабирования; следовательно, CNN мало использовались в искусственном интеллекте и компьютерном зрении. Кроме того, для более эффективной работы с большими изображениями требовались значительные вычислительные ресурсы и данные.
Кроме того, в 2012 году AlexNet вновь обратилась к глубокому обучению, в котором используются нейронные сети, состоящие из нескольких слоев. Примерно в это же время технологии улучшились, и стали доступны большие наборы данных и мощные вычислительные ресурсы, позволяющие создавать сложные CNN, способные эффективно выполнять действия компьютерного зрения.
Слои в CNN
Давайте разберемся с различными слоями в CNN. Увеличение количества слоев в CNN увеличит ее сложность и позволит обнаруживать больше аспектов или областей изображения. Начиная с простой функции, он становится способным обнаруживать сложные функции, такие как форма объекта и более крупные элементы, пока, наконец, не сможет обнаружить изображение.
Сверточный слой
Первый слой CNN — это сверточный слой. Это основной строительный блок CNN, в котором происходит большинство вычислений. Ему требуется меньше компонентов, таких как входные данные, карта объектов и фильтр.

CNN также может иметь дополнительные сверточные слои. Это делает структуру CNN иерархической, поскольку последующие слои могут визуализировать пиксели в рецептивных полях предыдущих слоев. Затем сверточные слои преобразуют данное изображение в числовые значения и позволяют сети понимать и извлекать ценные шаблоны.
Объединение слоев
Слои объединения используются для уменьшения размеров и называются понижением дискретизации. Это уменьшает параметры, используемые на входе. Операция объединения может перемещать фильтр по всем входным данным, как сверточный слой, но не имеет веса. Здесь фильтр применяет совместную функцию к числовым значениям в принимающем поле для заполнения результирующего массива.
Объединение бывает двух видов:
- Объединение средних значений : среднее значение вычисляется в принимающем поле, которое фильтрующий элемент просматривает входные данные для передачи в выходной массив.
- Максимальное объединение: он выбирает пиксель с максимальным значением и отправляет его в выходной массив, когда фильтр проходит по входу. Максимальный пул используется чаще, чем средний пул.
Несмотря на то, что при объединении теряется значительное количество данных, оно по-прежнему дает CNN много преимуществ. Это помогает снизить риски переобучения и сложность при одновременном повышении эффективности. Это также повышает стабильность CNN.
Полностью подключенный (FC) уровень

Как следует из названия, все узлы в выходном слое напрямую связаны с узлом предыдущего слоя в полносвязном слое. Он классифицирует изображение на основе извлеченных функций через предыдущие слои вместе с их фильтрами.
Кроме того, слои FC обычно используют функцию активации softmax для правильной классификации входных данных вместо функций ReLu (как в случае слоев объединения и свертки). Это помогает получить вероятность либо 0, либо 1.
Как работают CNN?
Сверточная нейронная сеть состоит из множества слоев, даже сотен. Эти слои учатся идентифицировать различные особенности данного изображения.
Хотя CNN — это нейронные сети, их архитектура отличается от обычной ANN.

Последний помещает входные данные через множество скрытых слоев для их преобразования, где каждый слой создается набором искусственных нейронов и полностью связан с каждым нейроном в том же слое. Наконец, есть полносвязный слой или выходной слой для отображения результата.
С другой стороны, CNN организует слои в трех измерениях — ширине, глубине и высоте. Здесь слой нейрона соединяется только с нейронами в небольшой области, а не с каждым из них в следующем слое. Наконец, окончательный результат представлен одним вектором с оценкой вероятности и имеет только измерение глубины.
Теперь вы можете спросить, что такое «свертка» в CNN.
Что ж, свертка относится к математической операции по объединению двух наборов данных. В CNN концепция свертки применяется к входным данным для вывода карты объектов путем фильтрации информации.
Это подводит нас к некоторым важным понятиям и терминологиям, используемым в CNN.
- Фильтр : также известный как детектор признаков или ядро, фильтр может иметь определенное измерение, например 3×3. Он проходит через входное изображение, чтобы выполнить матричное умножение для каждого элемента, чтобы применить свертку. Применение фильтров к каждому тренировочному изображению с разным разрешением плюс вывод свернутого изображения будет работать как вход для последующего слоя.
- Заполнение : используется для расширения входной матрицы до границ матрицы путем вставки поддельных пикселей. Это сделано для противодействия тому факту, что свертка уменьшает размер матрицы. Например, матрица 9×9 после фильтрации может превратиться в матрицу 3×3.
- Striding : если вы хотите получить результат меньше, чем ваш ввод, вы можете выполнить striding. Это позволяет пропускать определенные области, пока фильтр скользит по изображению. Пропустив два или три пикселя, вы можете создать более эффективную сеть за счет уменьшения пространственного разрешения.
- Веса и смещения: CNN имеют веса и смещения в своих нейронах. Модель может узнать эти значения во время обучения, и значения остаются одинаковыми на всем заданном слое для всех нейронов. Это означает, что каждый скрытый нейрон обнаруживает одни и те же функции в разных областях изображения. В результате сеть становится более терпимой при переводе объектов в заданное изображение.
- ReLU : расшифровывается как Rectified Linear Unit (ReLu) и используется для более эффективного и быстрого обучения. Он отображает отрицательные значения в 0 и поддерживает положительные значения. Это также называется активацией, так как сеть переносит на следующий уровень только активированные функции изображения.
- Рецептивное поле: в нейронной сети каждый нейрон получает входные данные из разных мест предыдущего слоя. А в сверточных слоях каждый нейрон получает входные данные только из ограниченной области предыдущего слоя, называемой рецептивным полем нейрона. В случае слоя FC весь предыдущий слой является рецептивным полем.
В реальных вычислительных задачах свертка обычно выполняется в 3D-изображении, требующем 3D-фильтра.
Возвращаясь к CNN, он состоит из разных частей или слоев узлов. Каждый слой узла имеет порог и вес и связан с другим. При превышении порогового значения данные отправляются на следующий уровень в этой сети.
Эти слои могут выполнять операции по изменению данных для изучения соответствующих функций. Кроме того, эти операции повторяют сотни разных слоев, которые продолжают учиться обнаруживать другие особенности изображения.

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

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

Вычислительная эффективность

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

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

Аудиовизуальное сопоставление
Помощь CNN в аудиовизуальном сопоставлении помогает улучшить платформы потокового видео, такие как Netflix, YouTube и т. д. Это также помогает удовлетворить запросы пользователей, такие как «песни о любви Элтона Джона».
Распознавание речи

Помимо изображений, CNN полезны в обработке естественного языка (NLP) и распознавании речи. Реальным примером этого может быть Google, использующий CNN в своей системе распознавания речи.
Реконструкция объекта
CNN можно использовать при 3D-моделировании реального объекта в цифровой среде. Модели CNN также могут создавать трехмерную модель лица с использованием изображения. Кроме того, CNN полезен для создания цифровых двойников в биотехнологии, производстве, биотехнологии и архитектуре.
Использование CNN в различных секторах включает:
- Здравоохранение: компьютерное зрение можно использовать в радиологии, чтобы помочь врачам более эффективно выявлять раковые опухоли у человека.
- Сельское хозяйство: сети могут использовать изображения с искусственных спутников, таких как LSAT, и использовать эти данные для классификации плодородных земель. Это также помогает прогнозировать уровни плодородия земли и разрабатывать эффективную стратегию для максимизации урожайности.
- Маркетинг: приложения для социальных сетей могут предложить человека на изображении, размещенном в чьем-то профиле. Это поможет вам отмечать людей в ваших фотоальбомах.
- Розничная торговля: платформы электронной коммерции могут использовать визуальный поиск, чтобы помочь брендам рекомендовать релевантные товары, которые целевые клиенты хотят купить.
- Автомобилестроение: CNN находит применение в автомобилях для повышения безопасности пассажиров и водителей. Это достигается с помощью таких функций, как определение линии полосы движения, обнаружение объектов, классификация изображений и т. д. Это также помогает миру беспилотных автомобилей развиваться дальше.
Ресурсы для изучения CNN
Курсера:
У Coursera есть этот курс по CNN, который вы можете рассмотреть. Этот курс научит вас тому, как компьютерное зрение развивалось за эти годы, и некоторым применениям CNN в современном мире.
Амазонка:
Вы можете прочитать эти книги и лекции, чтобы узнать больше о CNN:
- Нейронные сети и глубокое обучение. Он охватывает модели, алгоритмы и теорию глубокого обучения и нейронных сетей.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
![]() | Нейронные сети и глубокое обучение: учебник | 49,00 долларов США | Купить на Амазоне |
- Руководство по сверточным нейронным сетям для компьютерного зрения: эта книга научит вас применению CNN и их концепциям.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
![]() | Руководство по сверточным нейронным сетям для компьютерного зрения (обобщающие лекции по компьютерному зрению) | $49,26 | Купить на Амазоне |
- Практические сверточные нейронные сети с Tensorflow: с помощью этой книги вы можете решать различные проблемы компьютерного зрения с помощью Python и TensorFlow.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
![]() | Практические сверточные нейронные сети с TensorFlow: решение проблем компьютерного зрения с помощью моделирования... | 15,24 доллара США | Купить на Амазоне |
- Расширенное прикладное глубокое обучение: эта книга поможет вам понять CNN, глубокое обучение и их расширенные приложения, включая обнаружение объектов.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
![]() | Расширенное прикладное глубокое обучение: сверточные нейронные сети и обнаружение объектов | 23,74 доллара США | Купить на Амазоне |
- Сверточные нейронные сети и рекуррентные нейронные сети: эта книга расскажет вам о CNN и RNN и о том, как создавать эти сети.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
![]() | Сверточные нейронные сети и рекуррентные нейронные сети: сверточные нейронные сети и... | 1,99 доллара США | Купить на Амазоне |
Вывод
Сверточные нейронные сети — одна из новых областей искусственного интеллекта, машинного обучения и глубокого обучения. Он имеет различные применения в современном мире почти в каждом секторе. Глядя на его растущее использование, ожидается, что он будет расширяться и станет более полезным для решения реальных проблем.