Что это? Сверточные нейронные сети (Convolutional Neural Networks, CNN) – класс алгоритмов машинного обучения. С их помощью удается достичь впечатляющих результатов в области распознавания образов, классификации изображений, а также обработки и анализа видеоданных.
Как влияют? Сверточные нейронные сети разработаны специально для работы с данными, имеющими пространственную или растровую структуру, такими как изображения. Отдельно стоит отметить их способность к автоматическому изучению признаков. Вместо ручного выбора сверточные нейронные сети используют обратное распространение ошибки и градиентный спуск для настройки весовых коэффициентов.
В статье рассказывается:
- Что собой представляют сверточные нейронные сети
- Структура свёрточной нейронной сети
- Где используются сверточные нейронные сети
- Часто задаваемые вопросы о сверточных нейронных сетях
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Что собой представляют сверточные нейронные сети
Сверточной называют вид нейронной сети, специализирующейся на обработке изображений и видео. Такие сети подходят для улавливания локального контекста, когда поток информации в пространстве не прерывается, т.е. ее носители находятся в непосредственной близости друг от друга.
Например, на изображении пиксели расположены рядом и содержат такие визуальные данные, как яркость и цвет. Если нейронная сеть видит кошку в одном пикселе на фотографии или рисунке, это означает, что она видит ее и в соседних пикселях.
Зачастую сверточные нейронные сети используются для решения двух задач: распознавания и классификации изображений. Так, они могут быть использованы на изображении кошки для определения ее цвета по большим фрагментам изображения или для определения оттенка ее глаз по маленьким фрагментам, а также для различения собак и кошек.
AlexNet является первой глубокой сверточной нейронной сетью и основой современной сетевой архитектуры. Ее разработчики победили в конкурсе LSVRC-2012 по классификации изображений с использованием набора данных ImageNet.
Существует несколько наборов данных (датасетов), на которых новички, используя сверточные нейронные сети, могут обучаться решению задач по классификации. К примеру, MNIST является базой для начала изучения. Вы можете найти этот инструмент в наборе Google Colab. Так, в течение получаса можно попытаться обучить нейронную сеть распознавать рукописные цифры.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Другим вариантом является 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 %.
на обучение «Искусственный интеллект с нуля» до 24 ноября
В чем особенности сверточных нейронных сетей по сравнению с традиционными?
Они могут эффективно работать с изображениями и видеозаписями благодаря своей способности улавливать локальные пространственные зависимости в данных. Они также более эффективны, поскольку количество обучающих параметров может быть уменьшено за счет их разделения.
В чем заключается роль сверточных нейронных сетей в развитии искусственного интеллекта?
Сверточные нейронные сети играют важную роль в области искусственного интеллекта, в частности, в компьютерном зрении и обработке изображений. С их помощью можно решать такие сложные задачи, как распознавание лиц, автоматическое аннотирование изображений, автоматическое вождение автомобилей и беспилотников, анализ медицинских изображений и пр.
С помощью каких методов и техник происходит оптимизация сверточных нейронных сетей?
Для оптимизации работы сверточных нейронных сетей используются различные методы, например, стохастический градиентный спуск, адаптивный импульс, регуляризация и нормализация. Для улучшения процесса обучения и общей производительности сети также применяются методы предварительного обучения, передачи обучения и дополнения данных.
Если вы хотите расти как специалист по компьютерному зрению, вам потребуется больше знаний. Например, необходимо понимать свойства сверточных операций и методы обратного распространения ошибки.