Алгоритм вложенной выборки


Из Википедии, свободной энциклопедии
  (Перенаправлено из вложенной выборки )
Перейти к навигации Перейти к поиску

Алгоритм вложенной выборки — это вычислительный подход к задачам байесовской статистики по сравнению моделей и генерации выборок из апостериорных распределений. Он был разработан в 2004 году физиком Джоном Скиллингом. [1]

Задний план

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

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

и аналогично для . Этот интеграл часто трудно поддается аналитическому анализу, и в этих случаях необходимо использовать численный алгоритм для нахождения аппроксимации. Алгоритм вложенной выборки был разработан Джоном Скиллингом специально для аппроксимации этих интегралов маргинализации, и он имеет дополнительное преимущество, заключающееся в генерации выборок из апостериорного распределения . [2] Это альтернатива методам из байесовской литературы [3] , таким как промежуточная выборка и выборка по важности защиты.

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

Начните с точек , выбранных из предыдущего.for to do  % Количество итераций j выбирается наугад. текущие значения правдоподобия точек ; Сохраните точку с наименьшей вероятностью как точку выборки с весом .     Обновите точку с наименьшей вероятностью с помощью некоторых шагов Монте-Карло цепи Маркова в соответствии с предыдущим, принимая только шаги, которые сохранить вероятность выше .конец возврата ; 

На каждой итерации является оценкой количества априорной массы, покрываемой гиперобъемом в пространстве параметров всех точек с вероятностью больше . Весовой коэффициент является оценкой количества априорной массы, лежащей между двумя вложенными гиперповерхностями и . Шаг обновления вычисляет сумму для численной аппроксимации интеграла

В пределе эта оценка имеет положительное смещение порядка [4] , которое можно убрать, используя вместо в приведенном выше алгоритме.

Идея состоит в том, чтобы разделить диапазон и оценить для каждого интервала априорную вероятность того, что случайно выбранный интервал будет отображаться в этот интервал. Это можно рассматривать как байесовский способ численной реализации интеграции Лебега . [5]

Реализации

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

  • Простые примеры на C , R или Python есть на сайте Джона Скиллинга. [6]
  • Порт Haskell вышеуказанных простых кодов находится на Hackage . [7]
  • Пример в R , изначально предназначенный для подгонки спектров , описан в [8] и находится на GitHub. [9]
  • Пример на C++ под названием Diamonds есть на GitHub. [10]
  • Высокомодульный параллельный пример Python для статистической физики и физики конденсированного состояния находится на GitHub. [11]
  • pymatnest — это пакет Python , предназначенный для изучения энергетического ландшафта различных материалов, расчета термодинамических переменных при произвольных температурах и обнаружения фазовых переходов . Он доступен на GitHub. [12]
  • Программный пакет MultiNest способен выполнять вложенную выборку на мультимодальных апостериорных распределениях. [13] Он имеет интерфейсы для входных данных C++, Fortran и Python и доступен на GitHub. [14]
  • PolyChord — еще один программный пакет для вложенных сэмплов, доступный на GitHub. [15] Вычислительная эффективность PolyChord лучше масштабируется с увеличением количества параметров, чем MultiNest, что означает, что PolyChord может быть более эффективным для задач с большими размерами. [16]
  • NestedSamplers.jl — пакет Julia для реализации алгоритмов вложенной выборки с одним и несколькими эллипсоидами — находится на GitHub. [17]

Приложения

Поскольку в 2004 году была предложена вложенная выборка, она использовалась во многих аспектах области астрономии . В одном документе предлагалось использовать вложенную выборку для выбора космологической модели и обнаружения объектов, поскольку она «уникально сочетает в себе точность, общую применимость и вычислительную осуществимость». [18] Уточнение алгоритма для обработки мультимодальных апостериорных данных было предложено как средство для обнаружения астрономических объектов в существующих наборах данных. [13] Другие применения вложенной выборки относятся к области обновления конечных элементов , где алгоритм используется для выбора оптимальной модели конечных элементов , и это было применено к динамике конструкций .[19] Этот метод выборки также использовался в области моделирования материалов. Его можно использовать для изучения статистической суммы из статистической механики и получения термодинамических свойств. [20]

Динамическая вложенная выборка

Динамическая вложенная выборка — это обобщение алгоритма вложенной выборки, в котором количество выборок, взятых в разных областях пространства параметров, динамически корректируется для достижения максимальной точности вычислений. [21] Это может привести к значительному повышению точности и вычислительной эффективности по сравнению с исходным алгоритмом вложенной выборки, в котором распределение выборок не может быть изменено, и часто многие выборки берутся в областях, которые мало влияют на точность вычислений.

Общедоступные пакеты программного обеспечения для динамической вложенной выборки включают:

  • dynesty — реализация динамической вложенной выборки на Python, которую можно загрузить с GitHub. [22] [23]
  • dyPolyChord: программный пакет, который можно использовать с вероятностями Python, C++ и Fortran и предыдущими дистрибутивами. [24] dyPolyChord доступен на GitHub. [25]

Динамическая вложенная выборка применялась для решения множества научных задач, включая анализ гравитационных волн, [26] , отображение расстояний в космосе [27] и обнаружение экзопланет. [28]

Смотрите также

  • Сравнение байесовской модели

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

  1. ^ Скиллинг, Джон (2004). «Вложенная выборка». Материалы конференции AIP . 735 : 395–405. Бибкод : 2004AIPC..735..395S . дои : 10.1063/1.1835238 .
  2. ^ Скиллинг, Джон (2006). «Вложенная выборка для общих байесовских вычислений» . Байесовский анализ . 1 (4): 833–860. дои : 10.1214/06-BA127 .
  3. ^ Чен, Мин-Хуэй, Шао, Ци-Ман и Ибрагим, Джозеф Джордж (2000). Методы Монте-Карло в байесовских вычислениях . Спрингер. ISBN 978-0-387-98935-8.CS1 maint: несколько имен: список авторов ( ссылка )
  4. ^ Уолтер, Клемент (2017). «Оценка Монте-Карло на основе точечного процесса». Статистика и вычислительная техника . 27 : 219–236. архив : 1412.6368 . doi : 10.1007/s11222-015-9617-y . S2CID 14639080 . 
  5. ^ Яса, Томислав; Сян, Нин (2012). «Вложенная выборка, примененная в байесовском анализе затухания акустики помещения» . Журнал Акустического общества Америки . 132 (5): 3251–3262. Бибкод : 2012ASAJ..132.3251J . дои : 10.1121/1.4754550 . PMID 23145609 . S2CID 20876510 .  
  6. ^ Веб-сайт Джона Скиллинга
  7. ^ Алгоритм вложенной выборки в Haskell в Hackage
  8. ^ Алгоритм вложенной выборки в R на веб-сайте Бояна Николича
  9. ^ Алгоритм вложенной выборки в R на GitHub
  10. ^ Алгоритм вложенной выборки в C++ на GitHub
  11. ^ Алгоритм вложенной выборки в Python на GitHub
  12. ^ Алгоритм вложенной выборки для моделирования материалов на GitHub
  13. ^ б Фероз, Ф . ; Хобсон, член парламента (2008). «Мультимодальная вложенная выборка: эффективная и надежная альтернатива методам Монте-Карло с цепью Маркова для анализа астрономических данных» . МНРАН . 384 (2): 449–463. архив : 0704.3704 . Бибкод : 2008MNRAS.384..449F . doi : 10.1111/j.1365-2966.2007.12353.x . S2CID 14226032 . 
  14. ^ Пакет программного обеспечения для вложенной выборки MultiNest на GitHub.
  15. ^ Пакет программного обеспечения для вложенных сэмплов PolyChord на GitHub.
  16. ^ Хэндли, Уилл; Майк, Хобсон; Энтони, Ласенби (2015). «полихорда: вложенная выборка следующего поколения». Ежемесячные уведомления Королевского астрономического общества . 453 (4): 4384–4398. архив : 1506.00171 . Бибкод : 2015MNRAS.453.4384H . doi : 10.1093/mnras/stv1911 . S2CID 118882763 . 
  17. ^ Реализации вложенной выборки с одним и несколькими эллипсоидами в Julia на GitHub.
  18. ^ Мукерджи, П .; Паркинсон, Д.; Лиддл, Арканзас (2006). «Алгоритм вложенной выборки для выбора космологической модели». Астрофизический журнал . 638 (2): 51–54. arXiv : astro-ph/0508461 . Бибкод : 2006ApJ...638L..51M . дои : 10.1086/501068 . S2CID 6208051 . 
  19. ^ Мтембу, Л .; Марвала, Т .; Фрисвелл, Мичиган; Адхикари, С. (2011). «Выбор модели при обновлении модели конечных элементов с использованием байесовской статистики свидетельств». Механические системы и обработка сигналов . 25 (7): 2399–2412. Бибкод : 2011MSSP...25.2399M . doi : 10.1016/j.ymssp.2011.04.001 .
  20. ^ Партей, Ливия Б. (2010). «Эффективная выборка атомных конфигурационных пространств». Журнал физической химии B . 114 (32): 10502–10512. архив : 0906.3544 . дои : 10.1021/jp1012973 . PMID 20701382 . S2CID 16834142 .  
  21. ^ Хигсон, Эдвард; Хэндли, Уилл; Хобсон, Майкл; Ласенби, Энтони (2019). «Динамическая вложенная выборка: улучшенный алгоритм оценки параметров и расчета доказательств». Статистика и вычислительная техника . 29 (5): 891–913. архив : 1704.03459 . Бибкод : 2019S&C....29..891H . doi : 10.1007/s11222-018-9844-0 . S2CID 53514669 . 
  22. ^ Пакет программного обеспечения для вложенной выборки Dynesty на GitHub.
  23. ^ Спигл, Джошуа (2020). «dynesty: пакет динамической вложенной выборки для оценки байесовских апостериорных показателей и доказательств». Ежемесячные уведомления Королевского астрономического общества . 493 (3): 3132–3158. архив : 1904.02180 . doi : 10.1093/mnras/staa278 . S2CID 102354337 . 
  24. ^ Хигсон, Эдвард (2018). «dyPolyChord: динамическая вложенная выборка с помощью PolyChord» . Журнал программного обеспечения с открытым исходным кодом . 3 (29): 965. doi : 10.21105/joss.00965 .
  25. ^ Пакет программного обеспечения динамического вложенного сэмплирования dyPolyChord на GitHub.
  26. ^ Эштон, Грегори; и другие. (2019). «Билби: удобная библиотека байесовских выводов для гравитационно-волновой астрономии». Серия приложений к астрофизическому журналу . 241 (2): 13. arXiv : 1811.02042 . Бибкод : 2019ApJS..241...27A . doi : 10.3847/1538-4365/ab06fc . S2CID 118677076 . 
  27. ^ Цукер, Кэтрин; и другие. (2018). «Отображение расстояний в молекулярном облаке Персея с использованием наблюдений {CO}, звездной фотометрии и измерений параллакса Gaia {DR} 2». Астрофизический журнал . 869 (1): 83. arXiv : 1803.08931 . doi : 10.3847/1538-4357/aae97c . S2CID 119446622 . 
  28. ^ Гюнтер, Максимилиан; и другие. (2019). «Суперземля и два субнептуна проходят транзитом через соседний и тихий карлик М TOI-270». Астрономия природы . 3 (12): 1099–1108. архив : 1903.06107 . Бибкод : 2019NatAs...3.1099G . doi : 10.1038/s41550-019-0845-5 . S2CID 119286334 . 
Получено с " https://en.wikipedia.org/w/index.php?title=Nested_sampling_algorithm&oldid=1059491510 "