Обработка структурированных данных
Раньше мы работали с вектором признаков , предполагая неструктурированность признаков (unstructured data): если признаки переставить в другом порядке и соответствующим образом поменять веса модели, то результат не изменится.
Однако на практике часто приходится обрабатывать структурированные данные (structured data), в которых позиция, на которой стоит тот или иной призн ак, имеет значение.
Приведём примеры структурированных данных:
-
1D: временной ряд (динамика цен на акцию);
-
1D: последовательность (слова в предложении);
-
2D/3D: матрица/тензор (интенсивность пикселей на чёрно-белом/цветном изображении);
-
3D: тензор (воксели [1] на снимках магнитно-резонансной томографии),
-
4D: видеоданные (последовательность кадров во времени).
Если мы обрабатываем временной ряд, то позиции отвечает время наблюдения, задающее структуру временного ряда и влияющее на результат обработки.
Аналогично изображение задаётся матрицей или тензором пикселей, позиции которого соответствует пространственное расположение пикселя. Используя эту структуру, для каждого пикселя изображения можно указать, какой пикcель расположен над/под ним, и расположен ли он слева или справа. Причём для двух соседних признаков значения сильно скоррелированы, чего нельзя сказать о более удалённых друг от друга пикселях.
Обычно структурированные данные обладают высокой размерностью (например, чёрно-белое изображение 1000x1000 - это уже 1.000.000 признаков!). Применять к ним многослойный персептрон или другую стандартную параметрическую модель машинного обучения неразумно, так как пропорционально числу входных признаков возрастёт и число оцениваемых параметров, что приведёт к переобучению и потребует слишком больших выборок для оценивания модели.
На помощь при обработке таких данных приходят свойства эквивариантности (equivariance) и инвариантности (invariance) к пространственному изменению входных данных.
Если на картинке изображён какой-то объект, то при сдвиге пикселей будет изображён всё тот же объект.
Следовательно, инвариантная функция, применённая к сдвинутому изображению, должна выдать тот же самый результат.
Инвариантный к сдвигу оператор обладает свойством:
Инвариантность важна при классификации изображений.
Если сдвинуть все пиксели изображения на одинаковое расстояние, то все объекты изображения также сдвинутся на это расстояние.
Эквивариантная функция, применённая к сдвинутому изображению, должна выдать сдвинутый соответствующим образом результат.
Эквивариантный к сдвигу оператор обладает свойством:
Эквивариантность важна при сегментации изображений.
Мы определили понятия инвариантности и эквивариантности для изображений, но аналогично эти понятия действуют и для других структурированных данных.
Также на помощь при обработке структурированных данных приходит свойство иерархичности локальных представлений (hierarchical representation), состоящей в том, что сложный объект пространтвенно состоит из более простых объектов.
Например, если на картинке изображена машина, то она локализована на каком-то его участке, состоит из ещё более малых участков, отвечающих дверям, стёклам, колёсам, которые, в свою очередь, состоят из ещё более мелких участков, отвечающих текстуре металлического покрытия, стекла, резины и т. д., вплоть до базовых геометрических примитивов, таких как определённое изменение цветов для соседних пикселей. Аналогичные рассуждения справедливы и для обработки временных рядов, последовательностей, видеоданных и т. д.
Моделировать эти свойства позволяют следующие конструкции:
-
свёртка (convolution) локально извлекает признаки, обеспечивая его эквивариантную обработку;
-
пулинг (pooling) обеспечивает приближённую инвариантность к небольшим сдвигам изображения;
-
цепочка последовательно применяемых свёрток и пулингов моделирует иерархичность локальных представлений.
В следующих главах мы детально разберём операции свёртки и пулинга для обработки последовательностей и временных рядов, а в отдельном разделе разберём, как эти операции применяются для обработки изображений.
Поняв общий принцип, вы легко сможете его обобщить на трёхмерные и четырёхмерные данные.