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

ADMB или AD Model Builder - это бесплатный программный пакет с открытым исходным кодом для нелинейного статистического моделирования . [2] [3] Он был создан Дэвидом Фурнье и сейчас разрабатывается проектом ADMB, созданным некоммерческой организацией ADMB Foundation. «AD» в AD Model Builder относится к возможностям автоматического дифференцирования , которые поступают из библиотеки AUTODIF , расширения языка C ++, также созданного Дэвидом Фурнье, которое реализует автоматическое дифференцирование в обратном режиме. [4] Соответствующий программный пакет ADMB-RE обеспечивает дополнительную поддержку для моделирования случайных эффектов .[5]

Особенности и использование [ править ]

Методы Монте-Карло цепи Маркова интегрированы в программное обеспечение ADMB, что делает его полезным для байесовского моделирования. [6] В дополнение к байесовским иерархическим моделям ADMB обеспечивает поддержку моделирования случайных эффектов в частотной структуре с использованием аппроксимации Лапласа и выборки по важности. [5]

ADMB широко используется учеными в академических учреждениях, государственных учреждениях и международных комиссиях [7], чаще всего для экологического моделирования. В частности, с помощью этого программного обеспечения было построено множество моделей оценки рыбных запасов . [8] ADMB находится в свободном доступе под Новой лицензией BSD , [9] с версиями, доступными для операционных систем Windows , Linux , Mac OS X и OpenSolaris . [9] Исходный код ADMB стал общедоступным в марте 2009 года. [10] [11]

История и предыстория [ править ]

Реализация [ править ]

Работа Дэвида Фурнье в 1970-х годах по разработке комплексных статистических моделей с высокой степенью параметризации в рыболовстве послужила толчком для разработки библиотеки AUTODIF и, в конечном итоге, ADMB. Уравнения правдоподобия в этих моделях обычно нелинейны, а оценки параметров получают численными методами.

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

Фурнье разработал протокол для написания кода для вычисления требуемых производных на основе цепного правила дифференциального исчисления. Этот протокол очень похож на набор методов, которые стали известны как `` автоматическое дифференцирование в обратном режиме '' . [12]

Статистические модели, использующие эти методы [13] [14] [15] [16], обычно включали восемь составляющих сегментов кода:

  1. целевая функция;
  2. сопряженный код для вычисления частных производных целевой функции по параметрам, которые должны быть оценены;
  3. выделенная память для хранения промежуточных данных для производных вычислений, известная как «стек градиента», и программное обеспечение для управления этим;
  4. минимизатор функций;
  5. алгоритм проверки правильности производных по отношению к конечно-разностным аппроксимациям;
  6. алгоритм для вставки параметров модели в вектор, которым можно управлять с помощью минимизатора функции и соответствующего производного кода;
  7. алгоритм для возврата значений параметров в вычисление правдоподобия и соответствующий производный код; и
  8. алгоритм для вычисления вторых частных производных целевой функции по параметрам, которые должны быть оценены, матрица Гессе .

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

Бьярн Страуструп начал разработку C ++ в 1970-х годах в Bell Labs как усовершенствование языка программирования C. C ++ получил широкое распространение, и к 1989 году компиляторы C ++ стали доступны для персональных компьютеров. Полиморфизм C ++ позволяет представить систему программирования, в которой все математические операторы и функции могут быть перегружены для автоматического вычисления производных вкладов каждой дифференцируемой числовой операции в любой компьютерной программе.

Otter Research [ править ]

Фурнье основал Otter Research Ltd. в 1989 году, и к 1990 году библиотека AUTODIF включала специальные классы для производных вычислений и необходимые перегруженные функции для всех операторов C ++ и всех функций в стандартной математической библиотеке C ++. Библиотека AUTODIF автоматически вычисляет производные целевой функции с той же точностью, что и сама целевая функция, и тем самым освобождает разработчика от обременительной задачи по написанию и поддержке производного кода для статистических моделей. Не менее важно с точки зрения разработки модели, библиотека AUTODIF включает «стек градиента», минимизатор квазиньютоновской функции, средство проверки производных и классы-контейнеры для векторов и матриц. Первое приложение библиотеки AUTODIF было опубликовано в 1992 г. [17]

Однако библиотека AUTODIF не освобождает разработчика от написания всех компонентов модели, перечисленных выше. В 1993 году Фурнье дополнительно абстрагировался от написания статистических моделей, создав ADMB, специальный язык «шаблонов» для упрощения спецификации модели, создав инструменты для преобразования моделей, написанных с использованием шаблонов, в приложения библиотеки AUTODIF. ADMB создает код для управления обменом параметрами модели между моделью и минимизатором функций, автоматически вычисляет матрицу Гессе и инвертирует ее, чтобы обеспечить оценку ковариации оцененных параметров. Таким образом, ADMB освобождает разработчика модели от всех утомительных накладных расходов по управлению нелинейной оптимизацией, тем самым позволяя ему или ей сосредоточиться на более интересных аспектах статистической модели.

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

В 2002 году Фурнье объединился с Хансом Скаугом, чтобы ввести в ADMB случайные эффекты. Эта разработка включала автоматическое вычисление второй и третьей производных и использование автоматического дифференцирования в прямом режиме, за которым в некоторых случаях следовали две развертки обратной модели AD.

Проект ADMB [ править ]

В 2007 году группа пользователей ADMB, в которую входили Джон Сиберт, Марк Маундер и Андерс Нильсен, была обеспокоена долгосрочным развитием и обслуживанием ADMB. Было достигнуто соглашение с Otter Research о продаже авторских прав ADMB с целью сделать ADMB проектом с открытым исходным кодом и распространять его бесплатно. Некоммерческий фонд ADMB Foundation был создан для координации разработки и продвижения использования ADMB. Фонд ADMB подготовил проект предложения Фонду Гордона и Бетти Мур о выделении средств на приобретение ADMB у Otter Research. В конце 2007 года Фонд Мура предоставил грант Национальному центру экологического анализа и синтеза Калифорнийского университета в Санта-Барбаре, чтобы регенты Калифорнийского университета могли приобрести права на ADMB. Покупка была завершена в середине 2008 г.а полные библиотеки ADMB были размещены на веб-сайте проекта ADMB в декабре 2008 года. К маю 2009 года было выполнено более 3000 загрузок библиотек. Исходный код был доступен в декабре 2009 года. В середине 2010 года ADMB поддерживался во всех распространенных операционных системах (Windows, Linux, MacOS и Sun / SPARC), для всех распространенных компиляторов C ++ (GCC, Visual Studio, Borland) и как для 32-битной, так и для 64-битной архитектуры.

Усилия ADMB Foundation в течение первых двух лет реализации проекта ADMB были сосредоточены на автоматизации создания ADMB для различных платформ, оптимизации установки и создании удобной для пользователя рабочей среды. Планируемые технические разработки включают распараллеливание внутренних вычислений, реализацию гибридной MCMC и улучшение большой разреженной матрицы для использования в моделях случайных эффектов.

См. Также [ править ]

  • Список статистических пакетов
  • Список программного обеспечения для численного анализа
  • Сравнение программ численного анализа

Ссылки [ править ]

  1. ^ [1]
  2. ^ "admb-project" . Проект ADMB. Архивировано 3 марта 2009 года . Проверено 1 апреля 2009 .
  3. ^ Fournier, DA, HJ Skaug, J. Ancheta, J. Ianelli, А. Магнуссон, М. Н. Маундер, А. Нильсен и Дж Sibert. 2012. Построитель моделей AD: использование автоматического дифференцирования для статистического вывода сильно параметризованных сложных нелинейных моделей. Оптим. Методы Softw. 27: 233-249
  4. ^ «AUTODIF: расширение языка массивов C ++ с автоматическим дифференцированием для использования в нелинейном моделировании и статистике» (PDF) . Проект ADMB. Архивировано из оригинального (PDF) 11 июля 2011 года . Проверено 3 декабря 2008 .
  5. ^ a b «Случайные эффекты в построителе моделей AD: руководство пользователя ADMB-RE» (PDF) . Проект ADMB. Архивировано из оригинального (PDF) 11 июля 2011 года . Проверено 3 декабря 2008 .
  6. ^ «Введение в построитель моделей AD версии 9.0.0» (PDF) . Проект ADMB. Архивировано из оригинального (PDF) 04.01.2011 . Проверено 3 декабря 2008 .
  7. ^ «База пользователей ADMB и основные приложения» . Проект ADMB. Архивировано из оригинала на 2011-07-24 . Проверено 2 декабря 2008 .
  8. ^ «Библиография: оценки запасов» . Проект ADMB. Архивировано из оригинала на 2013-02-26 . Проверено 3 декабря 2008 .
  9. ^ a b «Загрузки ADMB» . Проект ADMB . Проверено 28 июля 2010 .
  10. ^ «Пресс-релиз UCSB:« Программное обеспечение для оценки рыбных запасов теперь общедоступно » » . Калифорнийский университет в Санта-Барбаре . Проверено 9 декабря 2008 .
  11. ^ «Доступен исходный код ADMB» . Проект ADMB. Архивировано из оригинала на 2010-04-18 . Проверено 14 мая 2009 .
  12. ^ А. Griewank и GFCorliss (ред). Автоматическое дифференцирование алгоритмов: теория, реализация и применение. `Общество промышленной и прикладной математики. 1992 г.
  13. Д. Фурнье и И. Дунан.Метод оценки запаса на основе длины с использованием обобщенной модели разницы задержек . Канадский журнал рыболовства и водных наук, 44 (2): 422-437, 1987.
  14. ^ Д. Фурнье и А. Уорбертон.Оценка моделей управления рыболовством путем моделирования адаптивного управления - введение составной модели . Канадский журнал рыболовства и водных наук. 46 (6): 1002-1012, 1989.
  15. ^ Д. Фурнье, Дж. Сиберт, Дж. Майковски и Дж. Хэмптон.MULTIFAN - вероятностный метод оценки параметров роста и возрастного состава на основе нескольких наборов данных о частоте длин, проиллюстрированных с использованием данных по южному синему тунцу (Thunnus maccoyii) . Канадский журнал рыболовства и водных наук, 47 (2): 301-317, 1990.
  16. ^ Дж. Сиберт, Дж. Хэмптон, Д. Фурнье и П. Биллс.Модель адвекции-диффузии-реакции для оценки параметров движения рыбы по данным мечения с применением к тунцовому тунцу (Katsuwonus pelamis) . Канадский журнал рыболовства и водных наук, 56 (6): 925-938, 1999.
  17. ^ К. Н. Холланд, Р. Брилл, Р. Чанг, Дж. Сиберт и Д. Фурнье.Физиологическая и поведенческая терморегуляция у большеглазого тунца (Thunnus obesus) . Природа, 358: 410-412, 1992.

Внешние ссылки [ править ]

  • Для загрузки установщиков, руководств и исходного кода: Проект ADMB
  • Для поддержки проекта ADMB: Фонд ADMB
  • Оригинальный разработчик ADMB: Otter Research Ltd