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

Привет ребята! В предыдущей истории мы обсудили основы глубокого обучения и его необходимость. Сегодня мы раскопаем историю CNN.

Вы знаете, как компьютеры видят изображения?

Всякий раз, когда мы видим какой-либо объект, данные объекта собираются глазами и затем передаются в кору головного мозга через нейроны. В коре головного мозга есть часть, называемая Зрительная кора, специально предназначенная для обработки данных изображений. Visual Cortex состоит из нескольких слоев для обработки данных изображения и выдачи результатов. Итак, всякий раз, когда мы видим кошку, зрительная кора активируется и классифицирует изображение. Вдохновленный человеческим мозгом, CNN аналогичным образом выполняет обработку.

Компьютер разбивает изображение на комбинацию n*n пикселей. Пиксель – это наименьший элемент изображения. Каждый пиксель соответствует чьему-либо значению. В 8-битном изображении в градациях серого значение пикселя находится в диапазоне от 0 до 255. Для изображения в градациях серого мы импортируем пиксели в Python через массив NumPY 2D, тогда как для цветного изображения мы используем NumPY 3D (из-за 3 каналов: красный, зеленый и синий).

Что такое свертка?

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

Здесь мы используем изображение 6 x 6 Input-pixel, фильтр размером 3 x 3 и умножаем их, как показано на рисунке, образуя карту объектов. сильный>. Размер фильтра задается вручную, но лучшие значения матрицы фильтра автоматически выбираются в Keras.

Для nxn пикселей и фильтра размера fxf мы получаем выходные данные размера (n-f+1)x(n-f+1) карты объектов.

Недостатки свертки

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

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

РЕЛУ

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

релу = макс (0, значение)

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

Объединение слоев

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

Объединение может быть двух типов: Максимальное объединение и Среднее объединение.

Итак, здесь блок 4 х 4 уменьшен до 1 блока. Как правило, Max Pooling на CNN показывает лучшие результаты. Окончательная матрица, которую мы получаем, называется карта объединенных объектов.

Уплощение

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

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

Здесь мы завершаем нашу модель, поэтому, прежде чем перейти к коду, давайте быстро подведем итоги.

  • Пиксели изображения передаются на сверточный слой, который выполняет операцию свертки.
  • Вывод сверточной операции Карта объектов.
  • Карта объектов применяется к функции RELU для создания исправленной карты объектов.
  • Затем эта исправленная карта объектов передается на объединяющий слой.
  • Объединенный слой выводит объединенную карту объектов.
  • Объединенная карта объектов выравнивается и передается на полностью связанный слой для получения окончательного результата.

Это приводит к концу этого блога. Следующая история будет похожа на тему глубокого обучения. Надеюсь, вам понравилось. До встречи!