Руководство для начинающих по сверточным нейронным сетям (CNN): пошаговое объяснение

Опубликовано: 2022-06-06

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

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

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

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

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

Оглавление

Приложения CNN

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

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

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

Изучите наши курсы по машинному обучению и искусственному интеллекту

Продвинутая сертификация по машинному обучению и облаку от IITM Магистр наук в области машинного обучения и искусственного интеллекта от LJMU Высшая программа высшего образования в области машинного обучения и искусственного интеллекта от IITB
Продвинутая сертификационная программа по машинному обучению и НЛП от IIITB Расширенная программа сертификации в области машинного обучения и глубокого обучения от IIITB Расширенная программа сертификации в области искусственного интеллекта для менеджеров от IITR

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

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

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

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

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

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

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

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

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

Читайте наши популярные статьи, посвященные машинному обучению и искусственному интеллекту.

Интернет вещей: история, настоящее и будущее Учебное пособие по машинному обучению: Изучите машинное обучение Что такое алгоритм? Просто и легко
Заработная плата инженера-робототехника в Индии: все роли Один день из жизни инженера по машинному обучению: что они делают? Что такое IoT (Интернет вещей)
Перестановка против комбинации: разница между перестановкой и комбинацией 7 основных тенденций в области искусственного интеллекта и машинного обучения Машинное обучение с R: все, что вам нужно знать

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

  • ТензорФлоу
  • Керас
  • Апач MXNet

Что такое сверточная нейронная сеть?

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

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

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

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

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

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

Вот некоторые доступные архитектуры CNN.

  • ГугЛеНет
  • АлексНет
  • Ленет
  • ZFNet
  • Реснет
  • VGGNet

Вот пример реализации CNN

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

Каждая из этих целей станет меткой класса со связанными целочисленными значениями. Метки классов будут «птицы», «кошки», «собаки», «автомобили» и «люди» со значениями 0, 1, 2, 3 и 4. После обучения модели CNN с использованием этого набора данных и контрольных показателей , он сможет идентифицировать визуальные подсказки из случайных входных данных, а затем классифицировать их в соответствии с их метками. Окончательная модель может точно идентифицировать пять различных типов объектов (меток) из случайного набора изображений с этими объектами.

Вот необходимые шаги для построения модели CNN

  • Загрузка набора данных.
  • Подготовка данных пикселей.
  • Определение модели.
  • Оценка модели.
  • Представление результатов.
  • Полная выборка.
  • Разработайте базовую модель.
  • Внедрите методы регуляризации для улучшения модели.
  • Дополнение данных.
  • Доработка модели и дальнейшая оценка.

Глубокое обучение CNN — многообещающая область с отличными карьерными перспективами. Если вы планируете построить карьеру в CNN, вы можете проверить Advanced Certificate Program upGrad в программе машинного обучения и глубокого обучения .

В чем разница между классическими нейронными сетями (другие ИНС) и CNN?

Основное различие между классическими нейронными сетями, такими как искусственная нейронная сеть (ANN) и CNN, заключается в том, что только последний слой CNN полностью связан, а в ANN каждый нейрон связан с каждым другим нейроном.

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

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

Можно ли использовать НЛП с CNN?

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