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