Таблица 9.1.
Сравнение двух парадигм векторизации слов — унитарного/федеративного
кодирования и вложения слов
Унитарное/федеративное
представление
Вложения слов
Усваивается моделью
или «зашивается»
в код?
«Зашивается» в код
Усваиваются: матрица вложений
представляет собой обучаемый
весовой параметр, ее значения
часто отражают семантическую
структуру словарей после
обучения
Разреженное или
плотное?
Разреженное: большинство
элементов нулевые, некоторые
равны 1
Плотное: элементы принимают
непрерывные значения
Масштабируемость
Не масштабируется на словари
большого размера, размер вектора
пропорционален размеру словаря
Масштабируется на словари
большого размера, размер
вложений (число измерений
вложений) не обязательно растет
с увеличением количества слов
в словаре
Глава 9. Глубокое обучение для последовательностей и текста
361
9.2.4. Одномерные сверточные сети
В главе 4 мы показали, что двумерные сверточные слои играют ключевую роль в глу
боких нейронных сетях, входными данными в которых являются изображения. Слои
conv2d можно обучить представлять локальные признаки на маленьких двумерных
фрагментах изображений. Понятие свертки можно распространить на последова
тельности. В результате получается алгоритм
одномерной свертки
(1D convolution),
доступный в TensorFlow.js в виде функции
tf.layers.conv1d()
. В основе слоев
conv2d и conv1d лежит одна идея: они оба представляют собой обучаемые средства
выделения трансляционно инвариантных локальных признаков. Например, после
обучения на изображениях слой conv2d может стать чувствительным к паттернам
углов определенной ориентации и определенного цвета, а слой conv2d может стать
чувствительным к паттерну «негативный глагол, за которым следует одобрительное
прилагательное» после обучения на тексте
1
.
На рис. 9.8 подробно показана схема работы слоя conv1d. Как вы помните из
рис. 4.3, в слое conv2d ядро скользит по всем возможным позициям входного
изображения. Алгоритм одномерной свертки также включает в себя скольжение
ядра, но более простое, в одном измерении. При таком скольжении на каждой
позиции извлекается срез входного тензора. Длина среза равна
kernelSize
(за
даваемое поле конфигурации слоя conv1d), и в нашем случае у него есть второе
1
Как вы, наверное, догадались, существует и трехмерная свертка, удобная для задач глу
бокого обучения, связанных с трехмерными (пространственными) данными, например
определенными типами медицинских снимков и геологических данных.
Рис. 9.8.
Схематическая иллюстрация работы одномерной свертки (tf.layers.conv1d()).
Для простоты показан только один входной пример
(слева). Мы предполагаем, что длина входной
последовательности равна 14, а размер ядра слоя conv1d — 5. Для каждой из позиций скользящего
окна выделяется срез входной последовательности длиной 5. Этот срез скалярно умножается
на ядро слоя conv1d, и получается отдельный срез выходной последовательности. В результате
повторения этого процесса для всех возможных позиций скользящего окна получается выходная
последовательность
(справа)
362
Do'stlaringiz bilan baham: |