Когда мы говорим Сверточная нейронная сеть (CNN), обычно мы имеем в виду двумерную CNN, которая используется для классификации изображений. Но в реальном мире используются два других типа сверточных нейронных сетей: одномерные и трехмерные CNN. В этом руководстве мы рассмотрим 1D и 3D CNN и их приложения в реальном мире. Я предполагаю, что вы уже знакомы с концепцией сверточных сетей в целом.

2-мерный CNN | Conv2D

Это стандартная сверточная нейронная сеть, которая впервые была представлена ​​в архитектуре Lenet-5. Conv2D обычно используется для данных изображений. Это называется двумерной CNN, потому что ядро ​​ перемещается по данным в двух измерениях, как показано на следующем изображении.

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

Ниже приведен код для добавления слоя Conv2D в keras.

Аргумент input_shape (128, 128, 3) представляет (высоту, ширину, глубину) изображения. Аргумент размер_ядра (3, 3) представляет (высоту, ширину) ядра, а глубина ядра будет такой же, как глубина изображения.

1-мерный CNN | Conv1D

Прежде чем переходить к Conv1D, позвольте мне дать вам подсказку. В Conv1D ядро ​​ скользит по одному измерению. Теперь давайте остановим блог здесь и подумаем, какой тип данных требует, чтобы ядро ​​двигалось только в одном измерении и обладало пространственными свойствами?

Ответ - данные временных рядов. Давайте посмотрим на следующие данные.

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

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

Ниже приведен код для добавления слоя Conv1D в keras.

Аргумент input_shape (120, 3) представляет 120 временных шагов с 3 точками данных на каждом временном шаге. Эти 3 точки данных представляют собой ускорение для осей x, y и z. Аргумент размер_ядра равен 5, что соответствует ширине ядра, а высота ядра будет такой же, как количество точек данных на каждом временном шаге.

Точно так же 1D CNN также используются для аудио и текстовых данных, поскольку мы также можем представлять звук и тексты как данные временного ряда. См. Изображения ниже.

Conv1D широко применяется к сенсорным данным, и данные акселерометра являются одним из них.

3-х мерный CNN | Conv3D

В Conv3D ядро ​​ перемещается в трех измерениях, как показано ниже. Давайте еще раз подумаем, для какого типа данных требуется, чтобы ядро ​​перемещалось через 3 измерения?

Conv3D в основном используется с данными трехмерных изображений. Например, данные магнитно-резонансной томографии (МРТ). Данные МРТ широко используются для исследования головного мозга, спинного мозга, внутренних органов и многого другого. Компьютерная томография (КТ) также является примером трехмерных данных, которые создаются путем комбинирования серии рентгеновских снимков, сделанных под разными углами вокруг тела. Мы можем использовать Conv3D для классификации этих медицинских данных или извлечения из них функций.

Еще один пример 3D-данных - Видео. Видео - это не что иное, как последовательность кадров изображения вместе. Мы также можем применить Conv3D к видео, поскольку оно имеет пространственные особенности.

Ниже приведен код для добавления слоя Conv3D в keras.

Здесь аргумент Input_shape (128, 128, 128, 3) имеет 4 измерения. Трехмерное изображение - это четырехмерные данные, в которых четвертое измерение представляет количество цветовых каналов. Точно так же, как плоское 2D-изображение имеет 3 измерения, где 3-е измерение представляет цветовые каналы. Аргумент размер_ядра (3,3,3) представляет (высоту, ширину, глубину) ядра, а 4-е измерение ядра будет таким же, как и цветовой канал.

Резюме

  • В 1D CNN ядро ​​движется в направлении 1. Входные и выходные данные 1D CNN имеют размерность 2. В основном используется для данных временных рядов.
  • В 2D CNN ядро ​​движется в 2 направлениях. Входные и выходные данные 2D CNN имеют размерность 3. В основном используется для данных изображения.
  • В 3D CNN ядро ​​движется в 3 направлениях. Входные и выходные данные 3D CNN имеют размерность 4. В основном используется для данных 3D изображения (МРТ, компьютерная томография, видео).

Далее