На прошлой неделе Amazon Web Services (AWS) и Microsoft представили открытую библиотеку Gluon для машинного обучения. Создатели утверждают, что она позволит разработчикам легко прототипировать и развёртывать сложные модели машинного обучения в облаке.
/ Flickr / Cory Doctorow / CC
Gluon предлагает понятный и ёмкий API. Модели в библиотеке определяются и управляются как любые другие данные. Также есть возможность быстро создавать прототипы и использовать динамические графы нейросетей для новых архитектур без ущерба скорости обучения.
По словам главы подразделения искусственного интеллекта AWS Мэтта Вуда (Matt Wood), машинное обучение с помощью нейросетей состоит из трех основных компонентов: данных для обучения, модели нейросети и обучающего алгоритма. Нейросеть похожа на ориентированный граф: входные данные соединяются с выходными через нейронные слои, синапсы которых имеют определенные веса. Во время обучения алгоритм корректирует веса на основе ошибок в выходных данных. Это традиционный способ обучения сети. Он может длиться несколько дней или дольше.
Фреймворки для глубокого обучения помогают ускорить процесс. Но работа с ними требует от пользователя дополнительных усилий: формального определения графа, планирования и корректировки весов.
Настраивать сеть, в которой миллионы соединений, приходится вручную. Поэтому сети глубокого обучения громоздкие и их трудно отлаживать. Использовать их код для других проектов также сложно.
Особенности Gluon
Разработчики Gluon попытались упростить создание интеллектуальных технологий. В AWS заявляют, что основные преимущества Gluon — динамические графы, быстрая интеграция и масштабируемое обучение.
- Понятный API. Сети Gluon настраиваются с помощью простого и ёмкого кода. При этом Gluon поддерживает сложные методы: динамические графы и гибкие структуры, но разработчику нет необходимости разбираться в конкретных деталях или оптимизировать все вручную.
- Разные типы данных. Gluon поддерживает работу с разряженными и квантованными данными. Разряженные данные часто обрабатываются при обработке естественного языка.
- Динамические сети. В Gluon сети определяются динамически, что делает их гибкими, как любую другую структуру данных. Алгоритм динамически настраивает сеть во время определения и обучения. Это означает, что разработчики смогут использовать стандартные циклы и условия для создания сетей.
- Производительность. Встроенная поддержка циклов и невырожденных тензоров позволяет эффективно выполнять алгоритмы для моделей RNN и LSTM. При этом Gluon предлагает автоматическое распределение задач на несколько графических процессоров.
Gluon — открытый и бесплатный продукт. Найти его можно на GitHub.
Другие библиотеки
Помимо Gluon, за последние месяцы появились ещё несколько библиотек. Компания IBM с помощью PowerAI DDL обучила нейросеть Resnet-50 на основе данных ImageNet за 50 минут. Для этого разработчики задействовали 64 сервера с 4 графическими процессорами в каждом.
Библиотека Deeplearn.js от Google позволяет обучать нейросети в браузере без установки софта. Разработчики компании заявляют, что библиотека может стать платформой для быстрого прототипирования, визуализации и офлайн-вычислений.
CatBoost — это алгоритм градиентного бустинга на деревьях решений от разработчиков компании «Яндекс». Новая версия продукта CatBoost version 0.2 вышла в сентябре и уже опубликована на GitHub. CatBoost основан на принципах универсального алгоритма MatrixNet, который используется в компании «Яндекс» для ранжирования задач и прогнозирования.
Ссылки по теме
Напоследок предлагаем вам небольшую подборку инструментов и материалов, касающихся разработки интеллектуальных систем. Например, пользователи Quora советуют обратить внимание на следующие ресурсы:
- TensorFlow (интерактивная среда для TensorFlow).
- А также Keras, Caffe2, Paddle, Theano, Torch и MLJAR.
- Библиотеки для Python: Scikit, Numpy, Scipy, Pandas, NLTK.
- Библиотеки для Java: Weka, H2O, Java-ML, Apache Mahout.
А пользователи Reddit предложили к просмотру подборку бесплатных ресурсов для самообучения и курируемый список с фреймворками и библиотеками Awesome Machine Learning.
Несколько фреймворков и полезных материалов вы найдете по ссылкам здесь и тут.
P.S. О чем еще мы пишем в нашем блоге:
- Безопасность данных в облаке
- Облачное хранилище данных
- Backup и Snapshot: отличия и применение
- Виртуальная сеть в облаке
- Backup&Recovery: поточная и умная дедупликация, снапшоты и вторичное хранение
- Немного о безопасности в «облаке»
- Тренды облачной безопасности
Автор: 1cloud