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

Обложка

Цитировать

Полный текст

Аннотация

Статья носит обзорный характер. В ней проведено сравнение актуальных библиотек машинного обучения, которые могут быть использованы для построения нейронных сетей. В первой части статьи даётся краткое описание библиотек TensorFlow, PyTorch, Theano, Keras, SciKit Learn, стека библиотек SciPy (NumPy, SciPy, Pandas, Matplotlib, Jupyter). Делается обзор области применения перечисленных библиотек и основных технических характеристик, таких как быстродействие, поддерживаемые языки программирования, текущее состояние разработки. Среди рассматриваемых библиотек только PyTorch и TensorFlow непосредственно конкурируют друг с другом. Остальные библиотеки взаимодополняют друг друга и часто используются совместно при построении различных моделей машинного обучения. Во второй части статьи проводится сравнение пяти библиотек на примере многослойного перцептрона, который применяется к задаче распознания рукописных цифр. Данная задача хорошо разработана и является модельной для тестирования различных реализаций нейронных сетей. Сравнивается время обучения в зависимости от количества эпох и точности работы классификатора. Результаты сравнения представлены в виде графиков времени обучения и точности в зависимости от количества эпох и в табличном виде.

Об авторах

М. Н. Геворкян

Российский университет дружбы народов

Автор, ответственный за переписку.
Email: gevorkyan-mn@rudn.ru

Кафедра прикладной информатики и теории вероятностей

ул. Миклухо-Маклая, д. 6, Москва, 117198, Россия

А. В. Демидова

Российский университет дружбы народов

Email: demidova-av@rudn.ru

Кафедра прикладной информатики и теории вероятностей

ул. Миклухо-Маклая, д. 6, Москва, 117198, Россия

Т. С. Демидова

Российский университет дружбы народов

Email: 1032152607@pfur.ru

Кафедра прикладной информатики и теории вероятностей

ул. Миклухо-Маклая, д. 6, Москва, 117198, Россия

А. А. Соболев

Российский университет дружбы народов

Email: 1032152618@pfur.ru

Кафедра прикладной информатики и теории вероятностей

ул. Миклухо-Маклая, д. 6, Москва, 117198, Россия

Список литературы

  1. G. Van Rossum and F. L. Drake Jr, Python tutorial. Centrum voor Wiskunde en Informatica Amsterdam, The Netherlands, 1995.
  2. T. Kluyver et al., “Jupyter Notebooks - a publishing format for repro- ducible computational workflows,” in Positioning and Power in Academic Publishing: Players, Agents and Agendas, F. Loizides and B. Schmidt, Eds., IOS Press, 2016, pp. 87-90. doi: 10.3233/978-1-61499-649-1- 87.
  3. J. D. Hunter, “Matplotlib: A 2D graphics environment,” Computing in Science & Engineering, vol. 9, no. 3, pp. 90-95, 2007. DOI: 10.1109/ MCSE.2007.55.
  4. F. Pérez and B. E. Granger, “IPython: a system for interactive scientific computing,” Computing in Science and Engineering, vol. 9, no. 3, pp. 21- 29, May 2007. doi: 10.1109/MCSE.2007.53.
  5. S. Behnel, R. Bradshaw, C. Citro, L. Dalcin, D. S. Seljebotn, and K. Smith, “Cython: the best of both worlds,” Computing in Science & Engineering, vol. 13, no. 2, pp. 31-39, Mar. 2011. doi: 10.1109/MCSE. 2010.118.
  6. S. van der Walt, S. C. Colbert, and G. Varoquaux, “The NumPy array: a structure for efficient numerical computation,” Computing in Science Engineering, vol. 13, no. 2, pp. 22-30, Mar. 2011. doi: 10.1109/MCSE. 2011.37.
  7. E. Jones, T. Oliphant, P. Peterson, et al. (2001-). SciPy: open source scientific tools for Python, [Online]. Available: http:// www. scipy. org/.
  8. W. McKinney, “Data structures for statistical computing in Python,” in Proceedings of the 9th Python in Science Conference, S. van der Walt and J. Millman, Eds., 2010, pp. 51-56.
  9. [9] Martıń Abadi et al. (2015). TensorFlow: large-scale machine learning on heterogeneous systems. Software available from tensorflow.org, [Online]. Available: http://tensorflow.org/.
  10. (2019). TensorFlow official repository, [Online]. Available: https:// github.com/tensorflow/tensorflow.
  11. A. Paszke, S. Gross, S. Chintala, G. Chanan, E. Yang, Z. DeVito, Z. Lin, Desmaison, L. Antiga, and A. Lerer, “Automatic differentiation in PyTorch,” in 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA, 2017.
  12. (2019). Torch official repository, [Online]. Available: https://github. com/torch/torch7.
  13. Theano Development Team, “Theano: a Python framework for fast computation of mathematical expressions,” May 2016. eprint: arXiv: abs/1605.02688.
  14. F. Chollet. (2019). Keras, [Online]. Available: https://keras.io/.
  15. (2019). CNTC official repository, [Online]. Available: https://github. com/Microsoft/cntk.
  16. F. Pedregosa et al., “Scikit-learn: machine learning in Python,” Journal of Machine Learning Research, vol. 12, pp. 2825-2830, 2011.
  17. (2019). MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges, [Online]. Available: http:// yann. lecun. com/exdb/mnist/.
  18. F. Rosenblatt, “The perceptron: a probabilistic model for information storage and organization in the brain,” Psychological review, vol. 65, no. 6, 1958. doi: 10.1037/h0042519.
  19. X. Glorot, A. Bordes, and Y. Bengio, “Deep Sparse Rectifier Neural Networks,” in Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics, G. Gordon, D. Dunson, and M. Dudík, Eds., ser. Proceedings of Machine Learning Research, vol. 15, Fort Lauderdale, FL, USA: PMLR, Nov. 2011, pp. 315-323.
  20. T. Zhang, “Solving large scale linear prediction problems using sto- chastic gradient descent algorithms,” in Proceedings of the Twenty-first International Conference on Machine Learning, ser. ICML ’04, Banff, Alberta, Canada: ACM, 2004. doi: 10.1145/1015330.1015332.

© Геворкян М.Н., Демидова А.В., Демидова Т.С., Соболев А.А., 2019

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution 4.0 International License.

Данный сайт использует cookie-файлы

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта.

О куки-файлах