Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 20(64)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5

Библиографическое описание:
Лавриненкова Е.В., Цыганков И.А. ОБЗОР ПРОГРАММНЫХ БИБЛИОТЕК ДЛЯ МАШИННОГО ОБУЧЕНИЯ // Студенческий: электрон. научн. журн. 2019. № 20(64). URL: https://sibac.info/journal/student/64/142888 (дата обращения: 22.11.2024).

ОБЗОР ПРОГРАММНЫХ БИБЛИОТЕК ДЛЯ МАШИННОГО ОБУЧЕНИЯ

Лавриненкова Екатерина Владимировна

магистрант, кафедра электроники и микропроцессорной техники, филиал ФГБОУ ВО «НИУ «МЭИ» в г. Смоленске,

РФ, г. Смоленск

Цыганков Илья Александрович

магистрант, кафедра электроники и микропроцессорной техники, филиал ФГБОУ ВО «НИУ «МЭИ» в г. Смоленске,

РФ, г. Смоленск

На сегодняшний день машинное обучение, нейронные сети и искусственный интеллект стали доминирующими темами в разработке различных программных продуктов. Такая тенденция связана с удешевлением и, следовательно, возросшей доступностью, облачных сред разработки, и с увеличением производительности персональных и мобильных компьютеров. Это послужило причиной для создания программных библиотек для машинного обучения. Данные библиотеки предназначены для облегчения процесса проектирования программного обеспечения путем создания абстракций для самых трудных частей машинного обучения. Существующие программные библиотеки позволяют упростить написание моделей нейросетей, которые решают следующие задачи:

·     обработка текста (определение языка, составление краткого описания);

·     обработка изображений (словесное описание изображения, распознавание лиц, распознавание объектов);

·     распознавание звуков

·     обработка статистических параметров;

·     обработка видеоизображения.

В данной статье описаны пять самых часто используемых библиотек на данный момент [6]:

·     TensorFlow;

·     PyTorch;

·     Keras;

·     Caffe;

·     Deeplearning4j.

Детально рассмотрим особенности каждой из библиотек.

TensorFlow программная библиотека, созданная инженерами из подразделения корпорации Google – Google Brain. На сегодняшний день это самый популярный программный пакет в сфере машинного обучения. TensorFlow имеет открытый исходный код и распространяется по лицензии Apache License 2.0 [5].

Предпочтительным языком программирования для работы с TensorFlow является Python, но также доступны интерфейсы для работы с JavaScript, C++, Java, Go и Swift. Благодаря открытой лицензии, сообщество свободного программного обеспечения разработало решения для C#, Haskell, Julia, Ruby, Rust и Scala.

Результатом широкого распространения библиотеки стала подробная документация, включающая как официальную версию, расположенную на сайте TensorFlow, так и обучающие статьи, написанные различными исследователями в сфере машинного обучения. Документация описывает структуру библиотеки TensorFlow, а также инструмент TensorBoard, который позволяет отследить сам процесс обучения нейросети и визуализировать его.

Модели созданные при помощи TensorFlow можно запустить на большом количестве вычислительных устройств, начиная от мощных вычислительных кластеров, заканчивая мобильными платформами.

Однако, TensorFlow – это библиотека низкого уровня. Эта особенность предоставляет широкие возможности по настройке модели нейронной сети, но также требует тщательного обдумывания архитектуры нейросети и размерности входных и выходных данных. Также это приводит к увеличению программного кода.

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

PyTorch, в отличие от TensorFlow, использует динамически обновляемый граф. Это позволяет вносить изменения в архитектуру модели в процессе работы программы обучения.

Библиотека PyTorch была разработана для сервисов Facebook и распространяется под свободной лицензией BSD License [4]. Это позволило увеличить популярность инструмента, и он уже сейчас используется для решения собственных задач компаниями Twitter и Salesforce. PyTorch позволяет использовать стандартные инструменты отладки, например, pdb или PyCharm. Создание модели нейронной сети в PyTorch намного проще, чем в TensorFlow. При этом PyTorch поддерживает модель параллелизма данных и распределенного обучения, а также содержит множество заранее реализованных моделей.

Главным минусом PyTorch можно назвать ограниченную поддержку различных платформ, в отличие от TensorFlow. Также в PyTorch нет встроенных инструментов для визуализации данных. Однако есть сторонний аналог – tensorboardX.

В научно-исследовательских работах и соревнованиях по машинному обучению авторы нередко выбирают PyTorch, а не TensorFlow. Это связано с тем, что PyTorch позволяет гораздо проще и быстрее реализовать несложные модели нейронных сетей. Однако для мультиплатформенных проектов TensorFlow выглядит более подходящим выбором.

Keras – высокоуровневый интерфейс для различных библиотек машинного обучения. Распространяется по свободной лицензии MIT License [3]. Прототипирование в данной библиотеке значительно упрощено и создание комплексных моделей глубокого обучения сводится к описанию минималистичных функций. Однако такая особенность сильно ограничивает возможность конфигурации обучаемой модели. Таким образом, Keras – лучший выбор для начинающих знакомство с машинным обучением. Данную библиотеку рационально применять для обучения и прототипирования простых проектов.

Caffe – программная библиотека для машинного обучения, распространяемая по свободной лицензии BSD License [1]. Согласно документации, библиотека была сделана «с расчётом на выразительность, скорость и модульность». Изначально библиотека создавалась для проектов машинного зрения, но с тех пор используется также для распознавания речи и работы с мультимедиа, однако в этих областях сильно уступает другим библиотекам.

Главное преимущество Caffe — скорость. Библиотека целиком написана на С++, имеется поддержка моделирования с использованием графическим процессоров, и при необходимости умеет переключать поток обработки между ЦП и ГП. Также, как и большинство библиотек, имеет в своем составе реализацию множества моделей глубокого обучения.

Deeplearning4j — это программная библиотека для машинного обучения, разработанная на Java (и языках Java Virtual Machine) и распространяемая по лицензии Apache 2.0 License [2]. Deeplearning4j обладает особенностями большинства библиотек для машинного обучения. Она имеет в своем составе реализацию множества моделей глубокого обучения, и может работать как с центральным процессором, так и с графическим.

Главной отличительной особенностью библиотеки является то, что она обладает преимуществами работы со всей экосистемой Java, которая является доминирующей платформой в разработке программного обеспечения для бизнеса, включая другие языки в Java Virtual Machine (например, Scala) и платформы для больших данных (Hadoop и Spark).

В статье были рассмотрены пять самых популярных программных пакета для обучения нейросетей. Для начинающих осваивать машинное обучение, лучше всего подойдет Keras. В исследовательских целях наиболее востребован PyTorch. Если необходимо обрабатывать видеоинформацию, а главным критерием является скорость, то следует выбрать Caffe. Для использования в производстве нужно ориентироваться на среду, в которой будет применяться устройство. Если проект должен поддерживаться на как можно большем количестве платформ, то следует остановиться на TensorFlow. А если программный продукт нацелен на использование в сфере бизнеса, лучшим выбором будет Deeplearning4j.

 

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

  1. Caffe | Deep Learning Framework [Электронный ресурс]. – Режим доступа: https://caffe.berkeleyvision.org/ (дата обращения: 21.05.2019)
  2. Guide | Deeplearning4j [Электронный ресурс]. – Режим доступа: https://deeplearning4j.org/docs/latest/ (дата обращения: 21.05.2019)
  3. Home – Keras Documentation [Электронный ресурс]. – Режим доступа: https://keras.io/ (дата обращения: 20.05.2019)
  4. PyTorch documentation – PyTorch master documentation [Электронный ресурс]. – Режим доступа: https://pytorch.org/docs/stable/index.html (дата обращения: 20.05.2019)
  5. TensorFlow Guide [Электронный ресурс]. – Режим доступа: https://www.tensorflow.org/guide/?hl=ru (дата обращения: 20.05.2019)
  6. Top 5 Deep Learning Frameworks, their Applications, and Comparisons! [Электронный ресурс]. – Режим доступа: https://www.analyticsvidhya.com/blog/ 2019/03/deep-learning-frameworks-comparison/ (дата обращения: 19.05.2019)

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.