Поскольку все больше и больше компаний стремятся расширить свои операции, для них стало неотъемлемой частью как машинное обучение, так и прогнозная аналитика. Искусственный интеллект в сочетании с правильной структурой глубокого обучения действительно расширил общий масштаб того, что компании могут достичь и получить в своих областях.
Как вы, возможно, уже знаете, мы разрабатываем децентрализованную открытую платформу для виртуальных помощников. Создание любого виртуального помощника - это процесс, напрямую связанный с обучением нейронных сетей. Благодаря нашим замечательным специалистам по данным и разработчикам мы создали собственное программное обеспечение, не хуже программного обеспечения Google.
Меня зовут Андрей Курганов, я один из разработчиков PuzzleLib, и здесь я хотел бы рассказать о нашем ноу-хау.
Что такое PuzzleLib?
PuzzleLib - это фреймворк глубокого обучения: программная библиотека, которая позволяет построить нейронную сеть - позволяет пользователю визуализировать ее архитектуру, обучать и экспортировать для использования в мобильных или серверных приложениях.
Аналоги: TensorFlow от Google, Torch от Facebook, CNTK от Microsoft.
Что важно для фреймворка?
- Алгоритмы: библиотека должна поддерживать классические нейронные алгоритмы, реализованные в виде вычислительных модулей.
- Поддержка ЦП и ГП: обучение лучше с ГП, но поддержка ЦП может иметь решающее значение, когда невозможно использовать дорогие ГП.
- Кросс-платформенность: очень важно иметь возможность использовать Deep Learning в различных операционных системах и процессорах, например на мобильных.
- Скорость: обучение нейронной сети для работы с большими данными может занять несколько дней. Для рабочего процесса важно ускорение в 1,5–2 раза. Кроме того, в приложениях реального времени важна быстрая обработка данных (например, анализ видео на борту).
Преимущества PuzzleLib
- Скорость сопоставима с Facebook Torch. Мы достигаем максимальной скорости, потому что используем только библиотеки NVIDIA для низкоуровневых вычислений и эффективное использование ресурсов процессора.
- Мы поддерживаем вывод и обучение CPU и GPU.
- Intel, ARM, Байкал, поддержка NVIDIA.
- Фреймворк поддерживает все самые популярные операционные системы: семейство Linux, Windows, Mac OS, iOS и Android.
- Мы реализовали методику автоматической оптимизации вычислений. В некоторых случаях это удваивает скорость обучения сети.
- Реализовано более 60 нейронных модулей, позволяющих строить сверточные и рекуррентные нейронные сети, а также сети с настраиваемыми вычислительными графами. Список поддерживаемых модулей можно найти ниже.
- Кривая обучения PuzzleLib намного короче.
- PuzzleLib - это наша собственная запатентованная IP.
Модули PuzzleLib
Любая нейронная сеть - это вычислительный граф: каждый узел - это модуль PuzzleLib, который выполняет определенные операции с предоставленными данными. Ниже приведен список поддерживаемых в настоящее время модулей, которые позволяют построить любую современную архитектуру глубокого обучения. Список поддерживаемых в настоящее время модулей представлен ниже:
Базовые модули:
- Активация (Sigmoid, Tanh, ReLU, ELU, LeakyReLU, SoftMaxPlus)
- AvgPool (1D, 2D, 3D)
- BatchNorm (1D, 2D, 3D, ND)
- Конв. (1D, 2D, 3D, ND)
- CrossMapLRN
- Деконв (1D, 2D, 3D, ND)
- Выпадение (1D, 2D)
- GroupLinear
- InstanceNorm2D
- KMaxPool
- LCN
- Линейный
- LRN
- MapLRN
- MaxPool (1D, 2D, 3D)
- MaxUnpool2D
- Бассейн (1D, 2D, 3D)
- RNN
- SoftMax
- SubtractNorm
- Повышение дискретизации (2D, 3D)
Специальные модули:
- Встроить
- SpatialTf
Дополнительные модули:
- Добавлять
- Concat
- Глубина
- Сплющивать
- Клей
- Личность
- MoveAxis
- Mul
- MulAddConst
- NoiseInjector
- Пенальти
- Тиражировать
- Изменить форму
- Расколоть
- Сумма
- SwapAxes
- Плитка
- К списку
- Транспонировать
Алгоритмы оптимизации, реализованные в PuzzleLib
Для обучения нейронной сети необходимо итеративно обновлять ее веса, используя алгоритм, называемый «оптимизатором». Для разных задач (например, регрессии, классификации текстов или изображений) нужны разные оптимизаторы.
- АдаДельта
- АдаГрад
- Адам
- Крючки
- LBFGS
- MomentumSGD
- НестеровСГД
- RMSProp
- RMSPropGraves
- SGD
- СМОРМС3
Мы уже реализовали несколько коммерческих проектов на базе PuzzleLib для разных предприятий. Эти проекты связаны с обработкой фото и видео информации. Кроме того, фреймворк позволяет выполнять автоматическую классификацию текстов по тематике или ключу, а также оценивать близость текстов и выполнять машинный перевод.
Если у вас есть вопросы или вы хотите поддержать наш проект, свяжитесь с нами по адресу [email protected].
Посетите официальный сайт SOVA…
ИЛИ пообщайтесь с нами в Telegram.
Не забывай хлопать! Я очень старался написать эту статью, похвалите меня за это :-)