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