Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить курсы бесплатно
ГлавнаяБлогСверточные нейронные сети: основы и принцип работы
Сверточные нейронные сети
09.08.2023
5 692
Время чтения: 10 минут

Сверточные нейронные сети: основы и принцип работы

09.08.2023
5 692
Время чтения: 10 минут
Сохранить статью:
Сохранить статью:

Что это? Сверточные нейронные сети (Convolutional Neural Networks, CNN) – класс алгоритмов машинного обучения. С их помощью удается достичь впечатляющих результатов в области распознавания образов, классификации изображений, а также обработки и анализа видеоданных.

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

В статье рассказывается:

  1. Что собой представляют сверточные нейронные сети
  2. Структура свёрточной нейронной сети
  3. Где используются сверточные нейронные сети
  4. Часто задаваемые вопросы о сверточных нейронных сетях
  5. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Что собой представляют сверточные нейронные сети

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

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

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

Что собой представляют сверточные нейронные сети
Что собой представляют сверточные нейронные сети

AlexNet является первой глубокой сверточной нейронной сетью и основой современной сетевой архитектуры. Ее разработчики победили в конкурсе LSVRC-2012 по классификации изображений с использованием набора данных ImageNet.

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

Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 28095 pdf иконка

Другим вариантом является ImageNet. Этот набор данных содержит 1000 различных классов, включая кошек и собак, а также, например, вишню, дерево и фотокамеру.

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

Структура свёрточной нейронной сети

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

Структура свёрточной нейронной сети
Структура свёрточной нейронной сети

В состав сверточной нейронной сети входит несколько слоев. От количества слоев зависит мощность архитектуры и эффективность обучения. Вот схема основных составляющих свёрточной нейронной сети:

  • сверточный слой;
  • пулинг;
  • нормализация по батчу;
  • полносвязный слой.

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

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

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

Задача первых слоев сверточной нейронной сети – анализ мельчайших элементов изображения (ворсинки, трещинки и т.д.), размер которого может составлять 2 x 2 или 3 x 3 пикселя. Такой маленький формат не позволяет определить глаза или уши кошки или деревья, на которых она сидит. Однако можно найти различия в цвете и свете – грани между различными объектами. Для следующих слоев характерны сложные объекты, такие как круги и другие фигуры.

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

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

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

Сверточной нейронной сетью изображения классифицируются представляются по-особому – как трехмерные массивы чисел или матриц. В математике они носят название «тензоры». RGB цвета кодируются как три целых числа в диапазоне от 0 до 255. Все пиксели в матричном массиве представлены в виде чисел, отражающих яркость в этом диапазоне.

Где используются сверточные нейронные сети

В 2010-е годы искусственные сверточные нейронные сети имели широкое использование в медицине и государственных учреждениях при:

  • распознавании рукописного текста;
  • классификации документов, таких как СНИЛС или паспорт;
  • распознавании на снимках новообразований и иных патологий.
В настоящее время сверточные нейронные сети применяются в системах видеонаблюдения, видеоаналитики и беспилотных автомобилях. Например, камеры в комплексе с такими сетями помогают роботам компании «Яндекс» и беспилотным такси понимать, что происходит на дороге.

Другой популярной областью применения принципа работы сверточных нейронных сетей является генеративное искусство. Когда человек вводит запрос, нейронная сеть генерирует на его основе изображение. Преобразование текста является задачей различных алгоритмов, а генерация изображения – сверточных нейронных сетей. Наиболее распространенными моделями для генерации изображений являются такие сверточные нейронные сети, как Midjourney, Stable Diffusion, Dream, DALL-E 2 и ruDALL-E.

Задачи, не подвластные сверточным нейронным сетям:

  • Они не подходят для анализа глобальных контекстов, таких как смысл текста. В изображениях детали, анализируемые сетью, расположены близко друг к другу. А в тексте связи между элементами длинные, потому как начало и конец предложения могут отделять множество слов. Такие нейронные сети не подходят для табличных данных. Это связано с тем, что, в отличие от пикселей, табличные данные неоднородны (текст, дата, различные строчные и математические символы).
  • Сверточной нейронной сети нелегко дается работа по анализу разноразмерных изображений. Например, когда документов несколько и все они разного масштаба (A3, A4 и A5), но содержат один и тот же текст. И если не подогнать все документы под один размер, то нейросеть вряд ли поймет, что содержание текста у всех них одинаково.

Часто задаваемые вопросы о сверточных нейронных сетях

Когда была заложена основа сверточных нейронных сетей?

Сама идея возникла еще в 1950-х годах, но интерес к ним возродился в 2012 году после победы математиков из Университета Торонто Алека Крижевски и Джеффа Хинтона в конкурсе по распознаванию изображений ImageNet. Их нейронная сеть позволила снизить ошибки распознавания изображений с 26 % до 15 %, что явилось рекордным показателем. В настоящее время точность алгоритма сверточных нейронных сетей при распознавании лиц в толпе выше, чем у человека, и составляет 99,8 %.

Дарим скидку от 60%
на обучение «Искусственный интеллект с нуля» до 12 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

В чем особенности сверточных нейронных сетей по сравнению с традиционными?

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

Часто задаваемые вопросы о сверточных нейронных сетях
Часто задаваемые вопросы о сверточных нейронных сетях

В чем заключается роль сверточных нейронных сетей в развитии искусственного интеллекта?

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

С помощью каких методов и техник происходит оптимизация сверточных нейронных сетей?

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

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

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

Оцените статью
Рейтинг: 4.14
( голосов 7 )
Поделиться статьей
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
До конца акции осталось
0 дней 00:00:00
Получите бесплатно 3 курса для лёгкого старта работы в IT
  • Начни зарабатывать от 210 000 ₽ в ИТ-сфере
  • Работай там, где ты хочешь: дома, на море, и даже на концерте
Получить бесплатно
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...