Вопрос или проблема
Для исследования мы пропускаем некоторые тестовые образцы через физический процесс в течение определенного периода времени и проводим измерения. Общая структура данных, которые мы собираем, выглядит следующим образом:
Эксперимент А
- Измерение А1
- Измерение А2
- Измерение А3
...
и аналогично
Эксперимент B
- Измерение B1
- Измерение B2
- Измерение B3
...
Обратите внимание, что каждое измерение представляет собой независимые данные временных рядов для тестового образца (может быть одномерным или многомерным). По природе тестовых образцов и процесса ожидается, что некоторые измерения из разных экспериментов должны каким-то образом совпадать или коррелировать.
Я хотел бы рассчитать совпадающие пары из разных экспериментов (например, A2 и B4). На данный момент я делал это путем итерации через измерения и вычисления функции перекрестной корреляции. Но я хочу перейти к подходу с глубоким обучением/нейронной сетью используя PyTorch.
У меня есть некоторый опыт в классификации данных временных рядов с использованием PyTorch. Тем не менее, я не смог найти решение этой задачи. Итак, вот мои вопросы:
- Что это за задача? Я бы сказал, что это задача классификации? Какие ключевые слова мне нужно использовать для дальнейшего исследования?
- Как мне структурировать архитектуру моей модели?
В общем, любая помощь приветствуется. Спасибо!
Для вашей проблемы нет простого решения, так как она не четко определена, но существуют способы ее уточнения и приближения к решению. Вот некоторые моменты, которые могут помочь в этом.
1. Что-то наподобие корреляции
Как я понимаю, вы ищете что-то вроде корреляции (но более сложное), что определяет временные ряды, которые принадлежат вместе. Это расплывчатое описание. Можете ли вы
- самостоятельно определить совпадающие ряды? (см. также пункт 2)
- описать, что составляет совпадение (корреляция ищет линейные зависимости)
- возможно, даже математически определить меру похожести или расстояния между ними? (В этом случае, возможно, вам не нужно глубокое обучение, а просто использование меры похожести/расстояния)
2. Обучение с учителем или без учителя
У вас есть размеченные тренировочные данные, то есть набор временных рядов, где вы знаете, какие ряды совпадают, а какие нет? Если вы хотите обучать нейронную сеть, вам может потребоваться довольно большое количество таких размеченных пар.
Если у вас есть такие размеченные данные, может сработать подход с учителем (например, классификация).
Примечание: Если вы используете корреляцию для идентификации совпадающих пар для обучения, то ваша нейронная сеть просто научится воспроизводить результаты корреляции. Вам нужно приложить ручные усилия для создания более качественных совпадений.
Если у вас нет таких размеченных данных, то есть у вас просто есть набор временных рядов, вам нужно искать метод без учителя.
3. Классификация
Если вы хотите превратить это в задачу классификации, вы могли бы использовать два временных ряда в качестве входных данных и иметь бинарный целевой показатель (совпадение: да/нет). Учтите, что в этом случае вам нужно будет протестировать все пары рядов, чтобы найти совпадающие пары.
4. Методы без учителя
Существуют два класса алгоритмов без учителя, которые могут быть полезны здесь.
- Кластеризация группирует ваши образцы (=временные ряды) в подгруппы. Вам может понадобиться алгоритм кластеризации, который создает много маленьких кластеров (в идеале, каждый кластер — это одна совпадающая пара). Иерархическая кластеризация может быть способна на это. Недостаток в том, что вам нужна подходящая функция расстояния (см. пункт 1 выше)
- Эмбеддинги преобразуют ваши данные (например, ваши временные ряды) в низкоразмерный вектор фиксированного размера. Известные алгоритмы — t-SNE и UMAP. Это может использоваться как этап предобработки для кластеризации. Евклидово расстояние может работать хорошо на низкоразмерных эмбеддингах.
Об архитектуре
- Если все временные ряды имеют одинаковые временные шаги, архитектура может рассматривать их как векторы фиксированного размера. В противном случае, вам, возможно, понадобиться архитектура, работающая с динамическими входными длинами (LSTM, GRU, Attention, Transformer и т.д.)
- Как сложные зависимости должны распознаваться. Больше параметров в сети позволяет распознавать более сложные зависимости. Большая размерность эмбеддинга также способствует этому.
Изучите нейронные операторы – особенно нейронные операторы Фурье и Лапласа.
Ответ или решение
Теория
Корреляция между множественными временными рядами представляет собой задачу, требующую определения пар временных рядов, которые каким-либо образом соотносятся друг с другом. Эту задачу можно воспринимать как задачу классификации или как задачу на нахождение сходства. Однако, из-за специфики данных, таких как наличие независимых временных рядов и их возможная многомерность, не существует единственного метода, который бы идеально подходил для всех случаев. Основное внимание следует уделить тому, как измерить похожесть временных рядов и какие методы и подходы являются наиболее подходящими для анализа таких данных.
Пример
Допустим, у нас есть два эксперимента: Эксперимент A и Эксперимент B, каждый из которых содержит несколько измерений (например, A1, A2, A3 и B1, B2, B3). Каждое из этих измерений представляет собой независимый временной ряд. Ваша задача заключается в том, чтобы определить, какие из этих временных рядов из разных экспериментов коррелируют. Например, возможно, A2 коррелирует с B4. Для вычисления такой корреляции можно использовать кросс-корреляционные функции, однако такой подход может оказаться недостаточным для выявления более сложных зависимостей.
Применение
Перейдем к вашему запросу о возможном применении глубокого обучения для решения этой задачи. Я рекомендую следующее:
-
Определитесь с задачей:
Вам необходимо уточнить, какую именно зависимость или схожесть вы хотите выявить: линейную или более сложную. Если линейная зависимость достаточна, традиционные статистические методы могут быть достаточно эффективными. Если же вы имеете дело с нелинейными зависимостями, глубокое обучение может быть подходящим инструментом.
-
Супервайзинговые и несупервайзинговые подходы:
-
Супервайзинг: Если у вас есть размеченные данные, где пары временных рядов, которые сопоставимы, известны, вы можете рассматривать задачу как задачу классификации. Здесь вы можете подать две последовательности как входные данные в нейронную сеть и получить на выходе бинарный результат (сопадают/не сопадают).
-
Несупервайзинг: Если данных с метками нет, вам нужно рассматривать задачу как несупервайзинговую. Здесь подходят методы кластеризации (например, иерархическая кластеризация) и эмбеддинги, которые помогают переводить ваши временные ряды в векторные представления в низкоразмерном пространстве.
-
-
Архитектура нейронной сети:
-
Если временные ряды имеют одинаковую длину, вы можете использовать стандартные fully connected сети либо конвейные слои. Если же длины различаются, вам подходят рекуррентные архитектуры, такие как LSTM или GRU, которые могут работать с временными последовательностями переменной длины.
-
Учитывая сложность зависимостей, рекомендуется использовать более глубокие или более широкие сети для изучения сложных нелинейных зависимостей. В некоторых случаях могут быть полезны современные подходы, такие как Transformer.
-
-
Изучение и тестирование:
-
Начните с простых моделей и увеличивайте их сложность по мере появления понимания об особенностях данных.
-
Используйте кросс-валидацию для оценки производительности модели и избегайте переобучения.
-
-
Исследовательская работа:
Наряду с исследованием стандартных методов, изучите новые и прогрессивные подходы, такие как нейронные операторы Фурье и Лапласа, которые могут быть специализированными для работы именно с такими данными.
Итак, ваша задача имеет свою специфику, и универсальное решение для нее подобрать будет сложно. Однако, вооружившись вышеупомянутыми подходами и методами, вы будете в состоянии более полно исследовать и проанализировать свои данные. Уделите внимание построению метрик схожести и экспериментам с различными архитектурами и методами. Удачи в вашем исследовании!