Сегодня я попытаюсь дать некоторое представление о TDA (для анализа топологических данных), быстро развивающейся математической области, которая, безусловно, скоро будет полностью интегрирована в структуры машинного / глубокого обучения. Некоторые варианты использования будут представлены после этой статьи, чтобы проиллюстрировать силу этой теории!

Быстрая история

Анализ топологических данных, также сокращенно TDA, - это новая область, появившаяся в результате различных работ в области прикладной топологии и вычислительной геометрии. Он направлен на предоставление хорошо обоснованных математических, статистических и алгоритмических методов для использования топологических и лежащих в основе геометрических структур данных. Обычно вы сочтете его подходящим для трехмерных данных, но опыт показывает, что TDA также может быть полезен и в других случаях, таких как временные ряды.

Существует множество теорий, определяемых топологией, и ее влияние на машинное обучение или глубокое обучение постоянно растет. Тот, кто когда-либо интересовался этими нестандартными теориями, которые могут дать неожиданное понимание данных, может быть заинтересован в том, что будет дальше! Однако в этой статье я сосредоточусь на наглядных примерах и ограничусь одномерным и двухмерным пространствами для понимания.

Гомология персистентности

Среди наиболее распространенных теорий есть гомология персистентности. Это метод, предназначенный для вычисления топологических характеристик пространства с различным пространственным разрешением. По своей конструкции эти функции с большей вероятностью представляют истинные характеристики основного пространства (а не артефакты выборки, шума или конкретного выбора параметров), поскольку они внутренне связаны с пространственными отношениями точек данных. Чтобы вычислить гомологию персистентности пространства, оно должно быть сначала представлено как вложенное семейство симплициального комплекса (в основном граф, состоящий из набора точек и их взаимосвязей, иначе называемых линиями и треугольниками в двухмерное пространство). Это семейство называется фильтрацией. Как правило, построение этой фильтрации основано на определении функции расстояния, значения которой используются для индексации комплексов в семействе. Таким образом, выбор этого расстояния имеет большое значение и дает пищу для размышлений тем, кто интересуется метрическим обучением

Теория гомологии персистентности позволяет нам однозначно представить гомологию персистентности отфильтрованного симплициального комплекса с помощью персистентности штрих-кода или персистентности диаграммы . Диаграмма штрих-кода представляет каждый генератор постоянства с горизонтальной линией, начинающейся на первом уровне фильтрации, где он появляется, и заканчивается на уровне фильтрации, где он исчезает, в то время как диаграмма стойкости отображает точку для каждого генератора с его координатой x время рождения и его координата y времени смерти (примеры приведены ниже). Визуально в двух измерениях вы рассматриваете каждую точку независимо: вы рисуете круг с увеличивающимся радиусом вокруг этих точек, пока не найдете некоторые пересечения (время рождения). Вы продолжаете рисовать, пока не покроете несколько точек и не разрушите некоторые из ранее созданных структур (время смерти). Наконец, вы получаете компоненты (дату рождения и смерть), которые представлены в виде диаграммы устойчивости и штрих-кода.

Диаграммы стойкости

Чтобы лучше представить эту теорию, давайте рассмотрим пример одномерного временного ряда, отмеченного f. Мы хотим сосредоточить внимание на критических точках f по следующему правилу: когда вводится новый компонент, мы говорим, что локальный минимум, который его создает, представляет компонент. Когда мы передаем локальный максимум и объединяем два компонента, мы соединяем максимум с более высоким (младшим) из двух локальных минимумов, которые представляют эти два компонента. Другой минимум теперь представляет компонент, полученный в результате слияния. Когда x и y объединены этим методом, мы определяем постоянство пары как f (y) - f (x). Устойчивость представлена ​​на диаграмме постоянства путем сопоставления каждой пары с точкой (f (x), f (y)), координаты которой являются соответствующими критическими значениями, как показано ниже.

Векторизация и представления

Отлично, но что делать дальше?!? Проблема неоднородности векторов, извлеченных из диаграмм устойчивости, является серьезным недостатком для приложений машинного обучения. Чтобы справиться с этим, не обязательно углубляясь в новый тип нейронных сетей, мы должны преобразовать предыдущие представления персистентности во что-то, собирающее как-то ту же информацию, которая может быть значительной. Для машинного обучения извлечение внешних точек устойчивости может представлять отличные возможности, но некоторая основная информация, содержащаяся на диаграмме, может быть потеряна в ходе этого процесса.

Здесь я выделю три возможных варианта: кривые Бетти, пейзажи стойкости и изображения стойкости. (Все вычисления производятся благодаря пакету Gudhi, разработанному французской командой DataShape из INRIA.) Следующие конструкции находятся на пути к scikit-learn совместимые. Между тем, я отсылаю вас к моему соответствующему репозиторию Github для построения персистентности и представлений диаграмм. Давайте представим это на следующем примере. Тот, кто когда-либо мечтал алгоритмически подсчитать количество пальцев на руке, будет доволен происходящим ...

Что мы получаем из этого результата. Во-первых, вы графически наблюдаете через диаграмму устойчивости и штрих-код, что есть 5 выделенных компонентов. Неудивительно, что это 5 пальцев! Однако один из компонентов помещается в бесконечность: это соответствует первой встреченной точке, когда она считается верхними уровнями фильтрации, автоматически получает бесконечное значение. Как следствие, ваши ландшафты настойчивости четко представляют только четыре меньших пальца. Об этом следует помнить при применении TDA!

Кривая Бетти. Давайте рассмотрим штрих-код постоянства, для которого мы векторизуем пространство радиуса. Каждый компонент диаграммы штрих-кода затем упоминается как функция, принимающая 1 в качестве значения радиуса, определяющего его, и 0 в любом другом месте. Сумма этих функций определяет кривую Бетти.

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

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

Следует отметить следующий момент: даже если количество пальцев отображается четко (соответствует точкам, далеким от диагонали), остается понятие топологического шума (точки, близкие к диагонали). Как следствие, ландшафты персистентности, как правило, лучше использовать, поскольку они остаются более или менее устойчивыми к нему, поскольку они предпочтительно описывают наиболее постоянные объекты набора данных. Тем не менее, топологический шум иногда является полезной информацией, обычно при работе с временными рядами, стандартное отклонение которых имеет большое значение для целей классификации ...

Конвейер глубокого обучения

После того, как вы построите для всех ваших образцов соответствующие представления постоянства, вы можете задаться вопросом, как их использовать. Кривые Бетти легко ввести в 1D сверточную сеть, в то время как постоянные изображения подходят для сверточной 2D сети.

Что касается пейзажей с настойчивостью, тут все немного сложнее. Для тех, кто задается вопросом, как полностью использовать его, не создавая из него свои собственные функции, вот решение, которое я создал. По сути, это связано с идеей силуэта постоянства, который представляет собой взвешенную сумму треугольных функций, полученных из диаграммы постоянства. Вновь созданный слой соответствует взвешенной сумме этих ландшафтов персистентности, получая на выходе структуру скользящего среднего силуэта стойкости. На выходе получается одномерный сигнал, который можно передать в 1D сверточную сеть. Я буду развивать эту идею в новых работах! :)

Эта теория открывает множество возможностей, и связь между этими результатами и глубоким обучением в настоящее время все еще находится в стадии разработки. Впереди много идей, которые сделают тему горячей и действительно интересной! Следите за поступающими статьями и не забывайте хлопать в ладоши, если хотите больше;)!

использованная литература