Что такое 1D сверточный слой в глубоком обучении?

13

У меня есть хорошее общее представление о роли и механизме сверточных слоев в Deep Learning для обработки изображений в случае реализации 2D или 3D - они «просто» пытаются поймать 2D-шаблоны в изображениях (в 3 каналах в случае 3D).

Но недавно я столкнулся с одномерными сверточными слоями в контексте обработки естественного языка, что для меня является своего рода сюрпризом, потому что в моем понимании двумерная свертка особенно используется для захвата двумерных образов, которые невозможно обнаружить в одномерной (векторной) форме пикселей изображения. Какая логика лежит в основе 1D свертки?

Хендрик
источник

Ответы:

16

Короче говоря, нет ничего особенного в количестве измерений для свертки. Любая размерность свертки может быть рассмотрена, если она подходит для проблемы.

Количество измерений является свойством решаемой проблемы. Например, 1D для аудиосигналов, 2D для изображений, 3D для фильмов. , ,

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

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

  2. Общие веса является формой регуляризации.

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

    3.1 Локальные шаблоны обеспечивают хорошие прогнозирующие данные (и / или могут быть с пользой объединены в более сложные прогнозные шаблоны на более высоких уровнях)

    3.2 Типы паттернов, найденных в данных, можно найти в нескольких местах. Поиск одного и того же шаблона в другом наборе данных имеет смысл.

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

Нил Слэйтер
источник
2D только для изображений в градациях серого? Что происходит, когда вы вводите RGB?
Мохаммад Атар
1
@MohammadAthar: RGB представляется в виде каналов (или карт характеристик ) отдельной 2D-информации и обычно рассматривается как 2D также при описании слоев CNN. Если бы вы использовали TensorFlow или Keras, вы бы определенно использовали определение слоя Conv2D для обработки цветных изображений. Однако реализации часто будут иметь трехмерные и четырехмерные структуры для хранения весов. , , и двумерная свертка по нескольким каналам является математически частным случаем трехмерной свертки (где входные размеры и размеры ядра должны совпадать для последнего слоя). Так что это соглашение об именах, как и все остальное.
Нил Слэйтер