ВВЕДЕНИЕ 4
ГЛАВА 1. ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ 6
1.1. Что такое метаэвристики 9
1.2. Описание методов метаэвристического поиска 11
1.2.1. Методы с одним состоянием 12
1.2.2. Популяционные методы 17
1.2.3 Некоторые другие виды методов 17
1.3. Вероятностное программирование 19
ВЫВОДЫ 22
ГЛАВА 2. РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКИХ ОПЕРАТОРОВ В ВЕРОЯТНОСТНЫХ ЯЗЫКАХ ПРОГРАММИРОВАНИЯ 23
2.1. Вероятностные языки 23
2.1.1. Основные сведения о вероятностном программировании 23
2.1.2. Реализованный язык 26
2.2. Разработка генетических операторов для оптимизационных запросов 27
2.2.1. Мутации 27
2.2.2. Имитация отжига 29
2.2.3. Скрещивание 30
ВЫВОДЫ 34
ГЛАВА 3. ОСОБЕННОСТИ РЕАЛИЗАЦИИ ОПТИМИЗАЦИОННЫХ ЗАПРОСОВ 35
3.1. Реализация вероятностного языка с оптимизационными запросами на c++ 35
3.1.1. Реализация языка на основе конструкторов классов 35
3.1.2. Несоответствие поведения оптимизационных и семплирующих запросов 38
3.2. Автоматическое применение принципа минимальной длины описания 40
3.2.1. Байесовская бритва Оккама в вероятностном программировании 40
3.2.2. Принцип минимальной длины описания 40
3.2.3. Автоматическая оценка сложности генеративных моделей 41
ВЫВОДЫ 42
ГЛАВА 4. ЭКСПЕРИМЕНТАЛЬНАЯ ПРОВЕРКА 43
4.1. Исследование эффективности реализации оптимизационных запросов 43
4.1.1. Полиномиальная аппроксимация 43
4.1.2. Задача суммы подмножеств 46
4.1.3. Предсказание целочисленных последовательностей 48
4.2. Проверка применимости оптимизационных запросов в задачах с реальными данными 49
ВЫВОДЫ 53
ЗАКЛЮЧЕНИЕ 54
СПИСОК ЛИТЕРАТУРЫ
Настоящая работа посвящена оптимизационному подходу в области вероятностного программирования, которое является новой парадигмой машинного обучения. Объект нашего исследования – вероятностные языки программирования, а предмет – процессы вывода при интерпретации программ на вероятностных языках. Актуальность данной темы обусловлена недостатком эффективных средств вывода в вероятностных языках общего назначения, что ограничивает их применимость.
Цель работы – разработка интерпретатора вероятностного языка, поддерживающего оптимизационные запросы.
Гипотеза: оптимизационные запросы являются более эффективными, чем запросы на основе семплирования.
Задачи, которые необходимо решить, чтобы достигнуть поставленную цель, следующие:
- реализовать интерпретатор опорного языка, который будет расширяться вероятностной семантикой;
- реализовать метаэвристические методы оптимизации, включая имитацию отжига и генетическое программирование;
- реализовать поддержку оптимизационных запросов в интерпретаторе вероятностного языка на основе метаэвристических методов;
- экспериментально сравнить эффективность вероятностных языков на основе семплирования и оптимизационных запросов.
Основные источники представлены двумя ресурсами. Первый – книга «Probabilistic models of Cognition» [1], которая является описанием одного из общепринятых языков вероятностного программирования Church и его применением к задачам когнитивного моделирования. Второй – книга «The essentials of Metaheuristics» [2], где описываются основные концепции и методы метаэвристического поиска.
Основная часть работы состоит из 4 глав. В обзорной главе дан обзор проблемы поиска в области искусственного интеллекта. В заключении представлены выводы.
Мы разработали методы имитации отжига и генетического программирования над следами выполнения программ. Насколько нам известно, это первая реализация этих методов таким образом.
Были использованы одинаковые функции для генетических операторов над следами выполнения программ для решения оптимизационных задач очень разных типов объектов, включая параметрически определенные функции, множества, символьные выражения и даже изображения без производства некорректных кандидатов на решения. Наша реализация соответствует однородному кроссоверу. Должны быть реализованы другие типы генетических операторов, так как наша реализация показывает преимущество над имитацией отжига только в задачах, где выучиваются модели с вещественными значениями. Интересно совместить вероятностное программирование и такие продвинутые системы генетического программирования, как MOSES [15].
Несмотря на простоту использованных метаэвристических методов поиска, они показали лучшие результаты, чем стандартный mh-query. Хотя это сравнение не означает, что annealing-query или evolution-query могут заменить mh-query, так как они решают несколько разные задачи, но показывает, что они могут быть совмещены, и также оптимизационные запросы могут быть полезны для расширения семантики вероятностных языков программирования. До сих пор остается недостаточной эффективность общих методов вывода, и это может быть одним из принципиальных препятствий на пути к сильному ИИ. Возможно, один общий метод вывода не может быть эффективен во всех предметных областях, так что метод вывода должен быть автоматически специализирован по отношению к каждой области, встреченной агентом сильного ИИ [29, 30], которая предполагает, что такие методы должны быть тесно связаны с когнитивными архитектурами.
Разработанный метод автоматического использования принципа минимальной длины описания в вероятностном программировании как сокращает разрыв между свободно применимым принципом МДО и основанным на теории и непрактичной колмогоровской сложности, так и помогает избежать переобучения в оптимизационных запросах, делая их эффективной альтернативой более традиционным запросам, оценивающим условные вероятности. Были проведены эксперименты на примере задачи анализа изображений, подтверждающие приемлемость этого подхода.
Однако даже неспециализированные оптимизационные запросы не смогли эффективно решить произвольные задачи индукции, особенно связанные с общим ИИ. В самом деле, задача такого эффективного вывода может сама по себе быть рассмотрена как ИИ-полная задача. Поэтому должны быть установлены более глубокие связи между общим ИИ и областью вероятностного программирования.
1. Goodman N.D., Tenenbaum J.B. Probabilistic models of cognition. [Электронный ресурс]. Режим доступа: http://probmods.org, свободный. Яз. англ. (дата обращения 15.03.2016).
2. Luke S. Essentials of metaheuristics / Lulu. 2009. 235 p.
3. Newell A., Shaw J.C., Siman H. Empirical explorations of the Logic Theory Machine: a case study in heuristics // proc. Western Joint Computer Conference. 1957. P. 218-239.
4. Brachman R. Getting Back to “The Very Idea” // AI Magazine. 2005. V. 26. No 4. P. 48–50.
5. Nilsson N.J. Human-Level Artificial Intelligence? Be Serious! // AI Magazine. 2005. V. 26. No 4. P. 68–75.
6. Duch W., Oentaryo R.J., Pasquier M. Cognitive Architectures: Where Do We Go from Here // Frontiers in Artificial Intelligence and Applications (Proc. 1st AGI Conference). 2008. V. 171. P. 122–136.
7. Hutter M. Universal Artificial Intelligence. Sequential Decisions Based on Algorithmic Probability / Springer. 2005. 278 p.
8. Minka, T., Winn, J.M., Guiver, J.P., Knowles, D.: Infer.NET 2.4. Microsoft Research Camb. [Электронный ресурс]. Режим доступа: http://research.microsoft.com/infernet, свободный. Яз. англ. (дата обращения 15.03.2016).
9. Koller D., McAllester D.A., Pfeffer A. Effective Bayesian inference for stochastic programs // Proc. National Conference on Artificial Intelligence (AAAI). 1997. P. 740–747.
10. Stuhlmüller A., Goodman N. D. A dynamic programming algorithm for inference in recursive probabilistic programs // In: Second Statistical Relational AI workshop at UAI 2012 (StaRAI-12). 2012. arXiv:1206.3555 [cs.AI].
11. Goodman N.D., Mansinghka V.K., Roy D.M., Bonawitz K., Tenenbaum J.B. Church: a language for generative models // Proc. of Uncertainty in Artificial Intelligence. 2008. arXiv:1206.3255 [cs.PL].
12. Milch B., Russell S. General-purpose MCMC inference over relational structures // Proc. 22nd Conference on Uncertainty in Artificial Intelligence. 2006. P. 349–358.
13. Perov Y., Wood F. Learning Probabilistic Programs. // arXiv:1407.2646 [cs.AI]. 2014.
14. Solomonoff R. Algorithmic Probability, Heuristic Programming and AGI // In: Baum, E., Hutter, M., Kitzelmann, E. (Eds). Advances in Intelligent Systems Research. 2010. V. 10 (proc. 3rd Conf. on Artificial General Intelligence). P. 151–157.
15. Goertzel B., Geisweiller N., Pennachin C., Ng K. Integrating Feature Selection into Program Learning // In: Kühnberger, K.-W., Rudolph, S., Wang, P. (Eds.): AGI’13, LNAI. 2013. V. 7999. P. 31–39.
16. McDermott J., Paula C. Program Optimisation with Dependency Injection // Proc. 16th European Conference on Genetic Programming, EuroGP. 2013.
17. Gordon A.D., Henzinger Th.A., Nori A.V., Rajamani S.K. Probabilistic programming // International Conference on Software Engineering. 2014.
18. Mansinghka V., Kulkarni T., Perov Y., Tenenbaum J. Approximate Bayesian Image Interpretation using Generative Probabilistic Graphics Programs // Advances in Neural Information Processing Systems. 2013. arXiv:1307.0060 [cs.AI].
19. Hutter M. Universal Algorithmic Intelligence: A Mathematical Top→Down Approach // in Artificial General Intelligence. Cognitive Technologies, B. Goertzel and C. Pennachin (Eds.). Springer. 2007. P. 227–290.
20. Solomonoff R. Does Algorithmic Probability Solve the Problem of Induction? // Oxbridge Research, P.O.B. 391887, Cambridge, Mass. 02139 1997.
21. Wallace C.S., Boulton D.M. An Information Measure for Classification // Computer Journal. 1968. V. 11. P. 185–195.
22. Rissanen J.J. Modeling by the Shortest Data Description // Automatica-J.IFAC. 1978. V. 14. P. 465–471.
23. Vitanyi P.M.B., Li M. Minimum Description Length Induction, Bayesianism, and Kolmogorov complexity // IEEE Trans. on Information Theory. 2000. V. 46 (2). P. 446–464.
24. Potapov A.S. Principle of Representational Minimum Description Length in Image Analysis and Pattern Recognition // Pattern Recognition and Image Analysis. 2012. V. 22 (1). P. 82–91.
25. Zhdanov I.N., Potapov A.S., Shcherbakov O.V. Erythrometry method based on a modified Hough transform // Journal of Optical Technology. 2013. V. 80. No. 3. P. 201–203.
26. Maitra M., Gupta R.K., Mukherjee M. Detection and counting of red blood cells in blood cell images using Hough transform // International journal of computer applications. 2012. V. 53. № 16. P. 18–22.
27. Poomcokrak J., Neatpisarnvanit C. Red blood cells extraction and counting // The 3rd International Symposium on Biomedical Engineering. 2008. P. 199–203.
28. Kimbahune V.V., Ukepp N.J. Blood cell image segmentation and counting // International journal of engeneering science and technology. 2011. V. 3. № 3. P. 2448–2453.
29. Khudobakhshov V. Metacomputations and Program-based Knowledge Representation // K.-U. Kühnberger, S. Rudolph, P. Wang (Eds.): AGI’13. Lecture Notes in Artificial Intelligence. 2013. V. 7999. P. 70–77.
30. Potapov A., Rodionov S. Making Universal Induction Efficient by Specialization // B. Goertzel et al. (Eds.): AGI 2014. Lecture Notes in Artificial Intelligence. 2014. V. 8598. P. 133–142.