В статье даётся обзор самых популярных библиотек машинного обучения языка Python.
Ключевые слова: нейронная сеть, python, обучение, сеть, машинное зрение, библиотека.
Tensorflow
Первая и самая популярная на данный момент — открытая библиотека Tensorflow. Вышла 9 ноября 2015 года и претерпела множество изменений, однако на данный момент интерфейс библиотеки остаётся без изменений, а методы обучения постоянно улучшаются.
Эта библиотека позволяет легко строить модели, а также поддерживает очень простой и интуитивный интерфейс, облегчающий обучение людей работе с нейронными сетями. [1]
Простота и популярность Tensorflow привела к появлению надстройки-интерфейса Keras. Кроме того, в 2016-ом году Google сообщили о применении специального тензорного процессора, адаптированного под библиотеку Tensorflow.
PyTorch
Вторая библиотека — PyTorch. Этот, основанный на базе Lua-библиотеке Torch, фреймворк предназначен для задач машинного зрения (распознавание изображений и образов), а также машинного слуха (распознавание естественного языка). Разработана группой из Facebook.
Библиотека предоставляет две основные модели: тензорные вычисления с поддержкой вычислений на графическом процессоре и глубокие нейронные сети.
Apache MXNet
Apache MXNet — открытая библиотека для обучения и развёртывания глубоких нейронных сетей. Поддерживается облачными платформами — в том числе Amazon Web Services и Microsoft Azure.
Данная библиотека поддерживает свёрточные нейронные сети и сети с краткосрочной памятью. Также интегрирована и поддерживает семь языков помимо Python, включая C+, Scala, Java, и Perl. Это позволяет быстро переключаться между языками во время разработки.
Caffe
Библиотека Caffe — аббревиатура Convolution Architecture For Feature Extraction — в основном предназначена для глубинного обучения свёрточных нейронных сетей. Она предназначена для быстрого обучения и работы с многомерными матрицами, так как они являются основой свёрточных нейронных сетей.
Кроме этого, библиотека поддерживает множество типов обучения сетей для классификации и сегментации изображений. Однако также даёт функционал для полносвязных сетей и сетей долгой краткосрочной памятью.
Отличительной особенностью библиотеки является работа с блобами — многомерными массивами данных для параллельных вычислений в центральном и графическом процессорах.
Caffe часто применяют для академических исследований и для создания прототипов.
TfLearn
TfLearn модульная библиотека-надстройка над Tensorflow. Является, по сути, высокоуровневым интерфейсом над TensorFlow, который ускоряет работу и упрощает понимание глубоких нейронных сетей.
Обеспечивает быстрое прототипирование — модульность слоёв внутри сети, настройку параметров, оптимизацию, метрики. Полная совместимость с Tensorflow. Весь функционал оттуда может быть использован в TfLearn. Важной особенностью является красивая графическая визуализация, позволяющая легко оценить такие детали как веса внутри сети, градиенты, активации нейрон и так далее. Присутствует поддержка нескольких параллельных вычислений на центральных и графических процессорах. [2]
Рис. 1. Визуализация на примере графика ошибок и точности [2]
Scikit - learn
Scikit-learn одна из самых старых и на 2012 год самая популярная библиотека для обучения нейронных сетей по данным GitHub. Создана в Goggle в 2007 году, эта библиотека является надёжным и проверенным временем инструментом в таких областях, как: классификация, регрессия, кластеризация и моделирование. [3]
Несмотря на большой возраст библиотеки, до сих пор обновляется, а оригинальная база библиотеки была переписана и значительно улучшена с 2007 года.
OpenCV
OpenCV — это старая и проверенная библиотека для обучения сетей в задачах машинного зрения. Включает в себя более 2500 оптимизационных алгоритмов, позволяющих легко обучать сети для задач распознавания лиц, идентификации объектов, отслеживании движения, построение 3D моделей с помощью камер, совмещение множества изображений для получения изображения большего разрешения, поиск изображений в базах данных, отслеживание движений глаз.
Библиотека является коммерческой, однако, несмотря на это, она имеет более 47 тысяч пользователей и более 18 миллионов скачиваний. На практике применяется как для исследований, так и для правительственных целей. [4]
Заключение
Применение специализированных библиотек для нейронных сетей и их обучении в языке Python позволяет устранить такие недостатки языка как относительно слабые вычислительные мощности, особенно на слабых компьютерах, путём оптимизации или переноса вычислений на облачные сервера. Это позволят упростить обучение людей работе с нейронными сетями, а также упростить самую сложную из задач подобной работы — обучение.
Литература:
1. Why TensorFlow. — Текст: электронный // tensorflow.org: [сайт]. — URL: https://www.tensorflow.org/about?hl=en (дата обращения: 10.11.2020).
2. TFLearn: Deep learning library featuring a higher-level API for TensorFlow.. — Текст: электронный // TFLearn: [сайт]. — URL: http://tflearn.org/ (дата обращения: 10.11.2020).
3. Scikit-learn Machine Learning in Python. — Текст: электронный // Scikit-learn: [сайт]. — URL: https://scikit-learn.org/stable/index.html (дата обращения: 10.11.2020).
4. About. — Текст: электронный // opencv.org: [сайт]. — URL: https://opencv.org/about/ (дата обращения: 10.11.2020).