АВТОМАТИЧЕСКОЕ ДИФФЕРЕНЦИРОВАНИЕ В PYTHON

  • Андрей Владимирович Туркин Федеральный исследовательский центр "Информатика и управление" РАН; Национальный исследовательский университет "Московский институт электронной техники"

Аннотация

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

Сведения об авторе

Андрей Владимирович Туркин, Федеральный исследовательский центр "Информатика и управление" РАН; Национальный исследовательский университет "Московский институт электронной техники"

младший научный сотрудник отдела прикладных проблем оптимизации Вычислительного центра им. А.А. Дородницына ФИЦ ИУ РАН, доцент кафедры Вычислительной техники Национального исследовательского университета “МИЭТ”, кандидат физико-математических наук

Литература

1. Евтушенко Ю. Г. Оптимизация и быстрое автоматическое дифференцирование //М.: Научное издание ВЦ РАН. – 2013. http://www.ccas.ru/personal/evtush/p/198.pdf
2. Community Portal for Automatic Differentiation. http://www.autodiff.org/
3. H. Koepke. Why Python Rocks for Research. Hacker Monthly, Issue 8, January 2011.
https://www.stat.washington.edu/~hoytak/_static/papers/why-python.pdf
4. Filguiera R. et al. dispel4py: a Python framework for data-intensive scientific computing //International Journal of High Performance Computing Applications. – 2016. – С. 1094342016649766.
5. Mortensen M., Langtangen H. P. High performance Python for direct numerical simulations of turbulent flows //Computer Physics Communications. – 2016. – Т. 203. – С. 53-65.
6. Shukla X. U., Parmar D. J. Python–A comprehensive yet free programming language for statisticians //Journal of Statistics and Management Systems. – 2016. – Т. 19. – №. 2. – С. 277-284.
7. Griewank A., Walther A. Evaluating derivatives: principles and techniques of algorithmic differentiation. – Siam, 2008.
8. Griewank A. A mathematical view of automatic differentiation //Acta Numerica. – 2003. – Т. 12. – С. 321-398.
9. Baydin A. G., Pearlmutter B. A. Automatic differentiation of algorithms for machine learning //arXiv preprint
arXiv:1404.7456. – 2014. http://arxiv.org/pdf/1404.7456.pdf
10. Weinstein M. J., Rao A. V. A source transformation via operator overloading method for the automatic differentiation of mathematical functions in MATLAB //ACM Transactions on Mathematical Software (TOMS). – 2016. – Т. 42. – №. 2. – С. 11.
11. Bischof C. H., Bücker H. M. Computing derivatives of computer programs //Modern Methods and Algorithms of Quantum Chemistry: Proceedings, Second Edition, NIC Series. – 2000. – Т. 3. – С. 315-327.
12. S. F. Walter. PyADOL-C: a python module to differentiate complex algorithms written in python.
www.github.com/b45ch1/pyadolc/
13. B. M. Bell and S.F. Walter. Pycppad: Python algorithmic differentiation using cppad. Available:
http://www.seanet.com/~bradbell/pycppad/pycppad.htm
14. Andersson J. A general-purpose software framework for dynamic optimization //Arenberg Doctoral School, KU Leuven. – 2013.
15. B. Stadie, Z. Xie, P. Moritz, J. Schulman, J. Ho. Computational graph toolkit: a library for evaluation and differentiation of functions of multidimensional arrays. https://github.com/joschu/cgt 265
16. F. Bastien, P. Lamblin, R. Pascanu, J. Bergstra, I. J. Goodfellow, A. Bergeron, N. Bouchard, and Y. Bengio. Theano: new features and speed improvements. //Deep Learning and Unsupervised Feature Learning NIPS 2012 Workshop, 2012.
17. J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley, and Y. Bengio. Theano: A CPU and GPU math expression compiler. //Proceedings of the Python for Scientific Computing Conference (SciPy), June 2010. Oral Presentation.
18. A.D. Lee AD: python package for first- and second-order automatic differentiation. http://pythonhosted.org/ad
19. Walther A., Griewank A. Getting started with ADOL-C //Combinatorial scientific computing. – 2012. – Т. 20121684.
20. B.M. Bell. Cppad: A package for differentiation of c++ algorithms. http://www.coin-or.org/CppAD
21. Abrahams D., Grosse-Kunstleve R. W. Building hybrid systems with Boost. Python //CC Plus Plus Users Journal. – 2003. – Т. 21. – №. 7. – С. 29-36.
22. Andersson J., Åkesson J., Diehl M. CasADi: A symbolic package for automatic differentiation and optimal control //Recent Advances in Algorithmic Differentiation. – Springer Berlin Heidelberg, 2012. – С. 297-307.
23. Beazley D. M. Automated scientific software scripting with SWIG //Future Generation Computer Systems. – 2003. – Т. 19. – №. 5. – С. 599-609.
24. Посыпкин М. А. Методы и распределенная программная инфраструктура для численного решения задачи поиска молекулярных кластеров с минимальной энергией //Вестник нижегородского университета им. Н.И. Лобачевского. – 2010. – №. 1.
25. Wales D. J., Doye J. P. K. Global optimization by basin-hopping and the lowest energy structures of Lennard-Jones clusters containing up to 110 atoms //The Journal of Physical Chemistry A. – 1997. – Т. 101. – №. 28. – С. 5111-5116.
26. Northby J. A. Structure and binding of Lennard-Jones clusters: 13≤ N≤ 147 //The Journal of chemical physics. – 1987. – Т. 87. – №. 10. – С. 6166-6177.
27. Shao X., Jiang H., Cai W. Parallel random tunneling algorithm for structural optimization of Lennard-Jones clusters up to n=330 //Journal of chemical information and computer sciences. – 2004. – Т. 44. – №. 1. – С. 193-199.
28. Xiang Y. et al. Structural distribution of Lennard-Jones clusters containing 562 to 1000 atoms //The Journal of Physical Chemistry A. – 2004. – Т. 108. – №. 44. – С. 9516-9520.
29. Shao X., Xiang Y., Cai W. Structural transition from icosahedra to decahedra of large Lennard-Jones clusters //The Journal of Physical Chemistry A. – 2005. – Т. 109. – №. 23. – С. 5193-5197.
Опубликована
2016-11-25
Как цитировать
ТУРКИН, Андрей Владимирович. АВТОМАТИЧЕСКОЕ ДИФФЕРЕНЦИРОВАНИЕ В PYTHON. Современные информационные технологии и ИТ-образование, [S.l.], v. 12, n. 2, p. 259-266, nov. 2016. ISSN 2411-1473. Доступно на: <http://sitito.cs.msu.ru/index.php/SITITO/article/view/96>. Дата доступа: 24 apr. 2024
Раздел
Прикладные проблемы оптимизации