Экскурс в байесовскую непараметрику для моделирования точек изменения

Проблема «n» компонентов

Для неконтролируемых алгоритмов кластеризации, будь то алгоритм пространственной кластеризации (например, K-средних или смешанная модель Гаусса) или алгоритм временной кластеризации (например, скрытая марковская модель или другая модель точки изменения), обычно должно быть определено количество компонентов априори. Для многих наборов данных это легко определить (левая панель внизу). Для других это число вообще непонятно (возможно, до такой степени, что предположение о дискретных, отделимых компонентах становится сомнительным [правая панель, ниже]). Однако знание количества компонентов имеет важные последствия для того, как интерпретируется кластеризация. Поэтому было разработано множество методов и попыток ответить на этот вопрос.

Сравнение моделей с показателями «доброты соответствия»

Самый популярный способ сделать это — попробовать ряд компонентов и оценить соответствие модели данным. Однако следует соблюдать осторожность, так как модели с большим количеством компонентов будут иметь тенденцию к чрезмерному соответствию данных. Следовательно, любая используемая метрика должна также учитывать сложность модели и согласовывать, насколько хорошо модель соответствует текущему набору данных, с тем, насколько хорошо модель может соответствовать ЛЮБОМ набору данных (выразительность модели). Это легче диагностировать с помощью обучения с учителем, когда можно выполнить перекрестную проверку, чтобы проверить, насколько модель подходит, однако такая перекрестная проверка не может быть выполнена в рамках подхода без учителя.

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

Однако основным недостатком любой такой метрики является то, что разницу в этих метриках для разных моделей (с разным количеством состояний) нелегко интерпретировать. Например, если AIC для 4-компонентной модели K-Means является самой высокой среди моделей с K=2-8 компонентами, однако тот факт, что AIC для K=4 на 10 пунктов выше, чем K=3, на самом деле не имеет значения. сказать нам, является ли K = 3 жизнеспособным претендентом, и поэтому труднее понять неопределенность в нашей оценке количества компонентов. Другими словами, эти метрики все еще могут сказать нам, что K=8, возможно, худшая модель, но, несмотря на это, K=8 все еще может быть жизнеспособной моделью.

С другой точки зрения, сравнение моделей с использованием метрик согласия, по сути, дает нам подход максимального правдоподобия к сравнению моделей, говоря нам, какая модель лучше, однако мы получаем гораздо более интерпретируемый результат, идя по байесовскому маршруту и ​​позволяя количество компонентов в качестве параметра и вывод распределения по количеству компонентов в модели.

Сравнение моделей: байесовский подход

Было предпринято много успешных попыток принципиально вывести соответствующее количество состояний для неконтролируемых алгоритмов, требующих дискретного количества компонентов. Путем добавления количества состояний в модель в качестве оптимизируемого параметра были разработаны вариационные методы для определения количества компонентов для анализа главных компонентов (ссылка 2), гауссовых моделей смесей (ссылка 3), а также количество состояний для скрытых марковских моделей (ссылка 4). В этих моделях ненужные параметры имеют тенденцию «сокращаться», оставляя только «наилучшее» количество компонентов, необходимых для экономного объяснения данных.

Однако можем ли мы использовать возможности вероятностного программирования, чтобы сделать то же самое, не будучи хорошо знакомы со статистической теорией? Именно здесь вступают в действие байесовские непараметрические модели и вероятностные языки программирования, такие как PyMC.

Что такое байесовские непараметрические/бесконечные модели и как они здесь актуальны?

Изначально меня смутила номенклатура непараметрических моделей: «Как определить распределение без параметров?». Однако я узнал, что «непараметрический» относится к бесконечномерным распределениям, что позволяет числу параметров модели расти вместе с данными и, следовательно, позволяет модели адаптироваться к сложности данных. См. ссылку. 5 для доступного учебника.

Тогда как распределение может быть бесконечномерным? Как выполнить выборку/вывод из бесконечномерного распределения? Само распределение на практике не является действительно бесконечным, но имеет «вариант» (при условии, что можно оплатить вычислительные затраты). Вы, вероятно, слышали о различных статистических «процессах». Каждый из этих процессов является одним из таких бесконечномерных распределений. Гауссовский процесс, соответствующий данным временных рядов, сам по себе является конечным воплощением возможно бесконечного блуждания (рисунок ниже). То же самое относится к индийскому и китайскому процессам «шведского стола», а также к процессу Дирихле.

Теперь, почему эти процессы полезны для нас в тех случаях, когда мы ищем дискретное количество компонентов? Я попытаюсь проиллюстрировать это на двух примерах.

Первый пример: процесс индийского буфета обеспечивает распределение по разреженным бинарным матрицам с конечными строками (точками данных) и бесконечным числом столбцов (признаков). Это делает распределение полезным, например, для описания компонентов, которые можно суммировать по категориям (без весов) для получения выборок из набора данных, например. как можно реконструировать изображения в наборе данных, используя суммирование из набора «характерных изображений» (ссылка 6).

Второй пример, представляющий для нас больший интерес, — это процесс Дирихле. Однако, прежде чем обсуждать процесс Дирихле, нам нужно понять распределение Дирихле. Распределение Дирихле определено на n-мерном симплексе. Это означает, что сумма всех значений в векторе, описывающем любую точку n-мерного распределения, будет равна 1.

Распределение Дирихле — это многомерная версия бета-распределения, и аналогичным образом область концентрации распределения (т. е. его форма) определяется вектором параметров α_1, α_2, …, α_j (примеры ниже для трехмерных распределений Дирихле ).

Однако, если мы хотим позволить распределению Дирихле гибко расти вместе с нашими данными, нам нужно разрешить ему быть непараметрическим, то есть иметь бесконечные измерения. Это создает процесс Дирихле (ссылка 7), выходом которого являются «бесконечные» размерные векторы, элементы которых можно рассматривать как веса или сечения, которые можно использовать в качестве весов компонентов в гауссовой модели смеси (ссылка 8), или для разделения конечного отрезка времени на несколько состояний (что мы и пытаемся сделать здесь).

Определение модели

Многие реализации неконтролируемых моделей используют процессы Дирихле в качестве априорных распределений весов компонентов в модели. Например, вес или ответственность компонентов в гауссовской модели смеси или веса состояний в скрытой марковской модели. Однако с моделью точки изменения такая прямая реализация невозможна.

Это связано с тем, что модель точки изменения состоит из двух наборов переменных: значений выбросов и позиций точки изменения. Если мы определяем переменные, которые представляют местоположения точки изменения, добавление весов/обязанностей (которые, по сути, являются коэффициентами масштабирования) непосредственно к ним не имеет смысла, так как это будет масштабировать положение точки изменения, создавая корреляцию между положением точки изменения и весом. . Точно так же весовые коэффициенты переменных выбросов будут создавать коллинеарность, поскольку модель может корректировать значение выбросов или масштабировать выбросы с использованием весов Дирихле.

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

Есть много способов представить процесс Дирихле в вычислительном отношении, здесь я использую формулу разрыва палки из-за ее простоты (ссылка 7). Вкратце, процесс ломания палочек представляет собой «усеченную» версию процесса Дирихле, что означает, что он имеет максимальное количество компонентов; однако мы можем установить это число достаточно большим, чтобы оно могло соответствовать требованиям наших изменяющихся данных. Для выборки с использованием процесса ломания палочки мы берем выборки из β_i ∼ Beta (1, α) для i = 1, 2, 3, ..., где i = нет. компонентов. Отсюда мы разбиваем нашу палку на дроби в соответствии с этими β следующим образом:

Где каждый π_i — это длина, соответствующая каждой части палки. Это показано ниже, где черная линия — это наша полная палочка, а в каждом последующем ряду показаны последующие сегменты одной и той же палочки:

В этом случае каждая из этих дробей будет представлять продолжительность одного состояния относительно всей длины данных.

Модель определяется с использованием pymc3, как показано ниже, а структура модели разрабатывается с использованием графической модели, показанной ниже.

В модели слева «альфа», которая является параметром концентрации и характеризует продолжительность каждого состояния, берется из гамма-распределения. Цель размещения гиперприорных значений «a_gamma» и «b_gamma» на «альфе» состоит в том, чтобы позволить «альфе» гибко адаптироваться между небольшим и большим количеством состояний, как того требуют данные. Затем «альфа» используется для выборки «бета», которые определяют длину каждого отдельного состояния. Первая детерминированная переменная, «w_raw», генерируется путем прохождения «бета» через процесс ломания палочек для генерации длин состояний. Вторая детерминированная переменная «w_latent» масштабирует длины в «w_raw», чтобы убедиться, что они добавляются к 1 (обратите внимание, поскольку здесь мы используем усеченный процесс Дирихле, нет гарантии, что мы израсходуем весь стержень, следовательно, перенормировка). Наконец, «тау», местоположения точек изменения, генерируются путем выполнения кумулятивной суммы по длинам состояний.

«лямбда» — это матрица выбросов (аналогично скрытой марковской модели), а «лямбда_» обозначает присвоение каждого значения в матрице выбросов различным моментам времени (для создания временных рядов скрытых выбросов), как продиктовано точкой изменения места.

Экспериментальные испытания

Данные

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

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

Результаты

Поскольку эта методология по-прежнему будет возвращать ненулевые значения длины состояния для состояний, которые не требуются, я установлю порог, чтобы определить, что считать состоянием. В этом случае мы будем либеральны и скажем, что состояние должно иметь дробную длину (относительно всей длины данных) › 0,01. Используя этот порог, мы можем увидеть, для скольких наших образцов мы имеем состояния, которые превышают этот порог.

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

Что происходит, когда «наилучшее» количество состояний более неоднозначно, как в случае с большим количеством состояний, когда у отдельных состояний больше шансов быть меньшими, и, следовательно, они вносят меньший вклад в вероятность (что делает вещи более неоднозначными). В случаях с большим количеством состояний модель не всегда получает «правильное» количество состояний, это относится как к наборам данных с 6, так и с 9 состояниями ниже. Однако что полезно, так это неопределенность в выводе номера состояния. Мы можем видеть из нижней строки на рисунке ниже, что, хотя модель более неопределенна в отношении количества состояний, чем это было для данных с меньшим количеством состояний, мы все же достаточно уверены, что количество состояний в каждом наборе данных ниже равно отличается от другого набора данных (т. е. распределение состояний для данных с 9 состояниями не предполагает, что данные имеют 6 состояний). Кроме того, полезно знать диапазон неопределенности, т.е. для данных о 9 состояниях тот факт, что медиана распределения находится в 8 состояниях, в то время как для 9 состояний все еще есть некоторая масса, предполагает, что может быть недостаточно доказательств, чтобы убедительно заключить, что данные имеют 9 состояний (это, опять же, может быть связано с тем, что некоторые состояния намного короче других).

Вынос

Хотя сравнение моделей с использованием метрик обеспечивает мощную и простую методологию поиска лучшей модели, оно не позволяет нам сравнивать «расстояния» между моделями и интерпретировать, является ли количество компонентов, отличающееся от «наилучшего», жизнеспособными претендентами. Эта проблема изящно решается путем включения количества состояний в качестве параметра в модель, из которой мы можем делать выборки. Распределение компонентов является легко интерпретируемым показателем того, насколько сопоставимы различные количества компонентов, и неопределенность в этом распределении очень полезна для определения нашего уровня уверенности при принятии решений с использованием этих данных.

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

Спасибо за чтение, и, пожалуйста, свяжитесь со мной, если у вас есть какие-либо вопросы или комментарии.

Блокнот Jupyter, содержащий использованный здесь код, доступен по адресу https://github.com/abuzarmahmood/teachables/blob/main/dirichlet_changepoint_model.ipynb.

Рекомендации

1. 11.5 - Информационные критерии и ПРЕССА | СТАТ 462 https://online.stat.psu.edu/stat462/node/199/.

2. Бишоп, К.М. (1999). Вариационные главные компоненты. На 9-й Международной конференции по искусственным нейронным сетям: ICANN '99 (IEE), стр. 509–514. 10.1049/cp:19991160.

3. Насиос Н. и Борс А.Г. (2006). Вариационное обучение для гауссовских смешанных моделей. IEEE транс. Сист., Муж., Киберн. Б 36, 849–862. 10.1109/ТСМКБ.2006.872273.

4. Ван П. и Блансом П. Свернутый вариационный байесовский вывод для скрытых марковских моделей. 9.

5. Гершман С.Дж., Блей Д.М. (2012). Учебник по байесовским непараметрическим моделям. Журнал математической психологии 56, 1–12. 10.1016/j.jmp.2011.08.004.

6. Гриффитс, Т.Л., и Гахрамани, З. (2011). Процесс индийского буфета: введение и обзор. Журнал исследований машинного обучения 12, 1185–1224.

7. Эль-Арини, К. Процессы Дирихле: Нежный учебник. 44.

8. Ли Ю., Шофилд Э. и Генен М. (2019). Учебное пособие по моделированию смесей процесса Дирихле. J Math Psychol 91, 128–144. 10.1016/j.jmp.2019.04.004.

9. Фокс Э. и Джордан М. (2013). Смешанные модели членства для временных рядов. Справочник по смешанным моделям членства и их применению.