Руководство для начинающих по сверточной нейронной сети (CNN)

Опубликовано: 2021-07-05

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

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

Оглавление

Биологическое значение сложной нейронной сети

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

Эта идея была расширена в 1962 году Хьюбелем и Визелем в эксперименте, в ходе которого было обнаружено, что разные отдельные нейронные клетки реагируют (возбуждаются) на наличие отдельных краев определенной ориентации. Например, одни нейроны будут срабатывать при обнаружении горизонтальных краев, другие — при обнаружении диагональных краев, а некоторые другие — при обнаружении вертикальных краев. Благодаря этому эксперименту. Хьюбел и Визель обнаружили, что нейроны организованы по модульному принципу, и все модули вместе необходимы для создания визуального восприятия.

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

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

Обучение сверточной нейронной сети

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

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

1. Свертка

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

путеводитель по CNN

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

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

Если на изображении присутствует функция, результатом операции свертки является положительное число с высоким значением. Если признак отсутствует, операция свертки приводит либо к 0, либо к числу с очень низким значением.

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

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

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

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

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

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

2. Прокладка

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

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

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

3. Карта активации

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

4. Стадия объединения

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

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

Новая матрица, сформированная в результате выходных данных, называется объединенной картой объектов.

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

5. Сглаживание

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

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

6. Полносвязный уровень (FCL)

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

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

Выходные данные, полученные из плотного слоя, подаются в функцию активации Softmax. Благодаря этому все конечные результаты сопоставляются с вектором, в котором сумма всех элементов равна единице.

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

Краткий обзор работы CNN

Вот краткое изложение всего процесса работы CNN и помощи в компьютерном зрении:

  • Различные пиксели изображения передаются на сверточный слой, где выполняется операция свертки.
  • Предыдущий шаг приводит к свернутой карте.
  • Эта карта проходит через функцию выпрямления, чтобы получить исправленную карту.
  • Изображение обрабатывается с помощью различных сверток и функций активации для обнаружения и обнаружения различных функций.
  • Слои объединения используются для идентификации конкретных отдельных частей изображения.
  • Объединенный слой выравнивается и используется в качестве входных данных для полносвязного слоя.
  • Полносвязный слой вычисляет вероятности и дает результат в диапазоне [0,1].

В заключение

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

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

Если вы хотите освоить азы машинного обучения и искусственного интеллекта, идеальным вариантом будет записаться на профессиональную программу искусственного интеллекта и машинного обучения. Например, наша программа для руководителей по машинному обучению и искусственному интеллекту — идеальный курс для тех, кто стремится к науке о данных. Программа охватывает такие предметы, как статистика и исследовательский анализ данных, машинное обучение и обработка естественного языка. Кроме того, он включает в себя более 13 отраслевых проектов, более 25 живых сессий и 6 завершающих проектов. Самое приятное в этом курсе то, что вы можете общаться со сверстниками со всего мира. Это облегчает обмен идеями и помогает учащимся устанавливать прочные связи с людьми из разных слоев общества. Наша всесторонняя помощь в построении карьеры — это именно то, что вам нужно, чтобы преуспеть в вашем путешествии в области машинного обучения и искусственного интеллекта!

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

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

Подать заявку на курс машинного обучения от IIIT B