${message}

${message}

Почему MATLAB

С помощью всего лишь нескольких строк кода MATLAB или на основе интерактивного инструмента вы можете создавать модели глубокого обучения. 

  • Легко получить доступ к самым последним моделям, включая GoogleNet, VGG-16,  VGG-19, AlexNet, ResNet, ResNet, Inception, InceptionResNet и DenseNet.
  • Ускорение алгоритмов на графических процессорах от Nvidia®, использование облаков и ресурсов центров обработки данных без специализированных программ.
  • Создание, модификация и анализ сложных архитектур глубоких нейронных сетей с помощью MATLAB apps и инструментов визуализации.
  • Автоматизация маркировки изображений, видео и аудио с помощью интерактивных приложений.
  • Работа с моделями Caffe и TensorFlow-Keras.
  • MATLAB поддерживает ONNX, поэтому вы можете сотрудничать с коллегами, использующих такие фреймворки, как PyTorch и MxNet.


Совместимость

Это не выбор между платформами MATLAB и Python. MATLAB поддерживает взаимодействие с платформами глубокого обучения с открытым исходным кодом, использующими возможности импорта и экспорта ONNX. Используйте инструменты MATLAB там, где это наиболее важно – доступ к возможностям и предварительно подготовленным функциям и приложениям, недоступным в Python.

 


Инструменты для предобработки данных

Быстро приступайте к сетевому обучению. Быстрая предварительная обработка наборов данных с помощью приложений зависящих от предметной области, таких как аудио, видео и изображения. Визуализация, проверка и исправление проблем перед обучением с помощью приложения Deep Network Designer для создания сложных сетевых архитектур или изменения предварительно подготовленных сетей для передачи обучения.


Мультиплатформенное портирование алгоритмов

Развертывайте модели глубокого обучения на различные платформы включая CUDA, C-код, корпоративные системы или облака. Когда производительность имеет значение, вы можете генерировать код, который использует оптимизированные библиотеки от Intel® (MKL-DNN), NVIDIA (TensorRT, cuDNN) и ARM® (АРМ вычислительные библиотека) для создания модели глубокой сети с высокой скорость работы.


Основные этапы рабочего процесса в системах основанных на глубоких сетях состоят из:

  1. Создание базы данных для обучения
  2. Разработка архитектуры 
  3. Оптимизация параметров сети
  4. Оптимизация гиперпараметров и валидация решения
  5. Перенос алгоритма на целевую платформу


Глубокое обучение в задачах компьютерного зрения 

MATLAB — это среда в которой вы легко можете собрать и протестировать архитектуру под конкретную задачу компьютерного зрения, такую как распознавание образов или детектирование объектов на изображении.

Распознавание образов

Для распознавания образов вы можете использовать уже обученные сети  с помощью технологии передачи обучения, или создавая свои собственные архитектуры как в виде программного кода, так и с помощью интерактивного инструмента Deep Networks Designer

Пример использования техники передачи обучения

Детектирование объектов

Детектирование объектов — это технология в основе которой лежит техника распознавания образов. Выделяют два подхода детектирования:

1. На основе выделения регионовв которых находится предполагаемый объект

2. Попиксельная сегментация: примери видео во вложении: segnet1.mp4

Глубокое обучение: естественные языки

MATLAB это удобная среда для работы с текстом.

На основе глубоких сетей вы можете классифицироватьи генерироватьтекст. 

Глубокое обучение: обработка аудио сигнала

Распознавание речи

Удаление шума

Глубокое обучение: временные ряды

Предсказание поведения временного ряда

Классификация последовательнсти Sequence-to-Sequence 

Глубокое обучение: обучение с подкреплением

Обучение с подкреплением — это техника в которой алгоритм учится по принципу проб и ошибок. Возможности для обучения с подкреплением появились в MATLAB в релизе R2019a (март 2019 года) и содержат такие алгоритмы как Deep Q-Network, Deep Deterministic Policy Gradients, Advantage Actor Critic и другие.

Примеры:

Создание агента с помощью Deep Network Designer и обучение с использованием наблюдений изображений

Обучение с подкреплением на сетке

Обучение с подкреплением для перевернутого маятника  

Глубокое обучение: диагностическое обслуживание

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

Запрос консультации

Создание базы данных для обучения

Для задач глубокого обучения наличие качественной базы данных является ключевым атрибутом успешного решения задачи. Образно говоря, качественная и представительная база данных - это 90% успеха. База данных включает в себя 3 компонента: сырые данные, разметка и объект для доступа к данным. В этот этап, в некоторых случаях, включают предобработку данных: выделение характеристик, предобработку текста и пр. Хотя выделение характеристик относится к задачам машинного обучения, в задачах глубокого обучения их применяют для обработки последовательностей, таких как показания датчиков, аудио сигналов и т.д.

Сырые данные - это данные собранные в результате испытаний (покзания датчиков, видеоряд с веб камеры и т. д.). В общем случае, чем больше сырых данных, тем лучше.

Разметка данных - процесс ставящий в соответствие объект сырых данных с некоторым классом (например, изображение кота ставится в соостветсвие классу «кот» или «млекопитающее»). Разметка, как правило, производится в ручную, однако, в MATLAB можно использовать интерактивные инструменты, которые позволяют автоматизировать процесс разметки. 

Доступ к базе данных - это специальный класс, который позволяет оптимальным способом обращаться к базе данных при обучении нейронной сети. В зависимости от типа базы данных в MATLAB реалзиованы следующие объекты:

  • datastore — объект для работы с данными общего вида
  • imageDatastore — объект для работы с изображениями
  • audioDatastore — объект для работы с аудио файлами

Разработка архитектуры

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

Процесс передачи обучения описан в документации. Его удобно проводить с помощью интерактивного инструмента Deep Network Designer.

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

Оптимизация параметров сети (обучение сети)

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

Программное обеспечение

Оптимизация гиперпараметров и валидация решения

К гиперпараметрам сети относятся компоненты, которые не настраиваются в процессе обучения. На пример, это может быть количество слоев в сети, количество нейронов в конкретном слое, скорость обучения и т. д. От правильного подбора гиперпараметров зависит качество обучения и, соответственно, точность распознавания (классификации или регрессии). 

Гиперпараметры можно настраивать перебором, но это очень затратная процедура. Одним из современных способов настроить гиперпараметры — Байесовская оптимизация. Она позволяет добиться приемлемых результатов минимизируя при этом количество запусков обучений сети.

Перенос алгоритмов на целевую платформу

В зависимости от требований, MATLAB предоставляет различные возможности для переноса алгоритмов глубокого обучения на целевые платформы. Этом может быть создание независимого от  MATLAB приложения, но работающего на основе библиотек MATLAB. Другой вариант, генерация С/C++ кода на микропроцессоры для различных архитектур или CUDA кода для Nvidia GPU и NVIDIA Jetson. На конец, генерация Verilog/VHDL кода для запуска на ПЛИС. Все описанные возможности максимально автоматизированы и занимают минимум времени.

Ключевые возможности:

  • Автоматическое преобразование обученных моделей глубокого обучения из MATLAB  кода в CUDA с помощью GPU Coder™
  • Интеграция сгенерированного CUDA кода с NVIDIA ® TensorRT
  • Поддержка DAG (ациклические направленные графы) сетей, включая GoogleNet, ResNet-50, ResNet-101, и SegNet
  • Создание кода на основе обученных моделей глубокого обучения для процессоров Intel® Xeon и ARM® Cortex-A
  • Автоматизированное развертывание на платформах NVIDIA Jetson и DRIVE
  • Оптимизация глубокого обучения: улучшенная производительность благодаря автоматической настройке, слиянию слоев и поддержке Thrust библиотеки 

Услуги:

  • Сопровождение  проекта
  • Консультации при создании базы данных
  • Настройка рабочего процесса 
  • Выбор архитектуры сети
  • Настройка параметров и гиперпарамтеров сети
  • Перенос кода на целевые платформы (получение оптимального C/C++, CUDA, HDL кода из кода MATLAB)

Задать вопрос

*
Настоящим в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» от 27.07.2006, отправляя данную форму, вы подтверждаете свое согласие на обработку персональных данных . Мы, ООО ЦИТМ "Экспонента" и аффилированные к нему лица, гарантируем конфиденциальность получаемой нами информации. Обработка персональных данных осуществляется в целях эффективного исполнения заказов, договоров и пр. в соответствии с «Политикой конфиденциальности персональных данных». * - обязательные поля