Deep Learning Toolbox (ранее Neural Network Toolbox) обеспечивает основу для проектирования и реализации глубоких нейронных сетей, используя как предварительно обученные модели, так и приложения и инструменты для проектирования разработки архитектур нейронных сетей.

Вы можете использовать сверточные нейронные сети (ConvNets, CNN) и сети с долгосрочной кратковременной памятью (LSTM) для классификации и регрессии для изображений, временных рядов и текстовых данных. Приложения в MATLAB Apps и различные графики помогают визуализировать характеристики активации слоев сети, редактировать архитектуру сети и отслеживать ход обучения.

При обучении на небольших наборах данных вы можете использовать методику переноса обучения для уже обученных сетей и не начинать обучение сети с нуля. Например, можно использовать сети SqueezeNet, Inception-v3, ResNet-101, GoogLeNet, VGG-19 и т.д. или импортировать сеть из TensorFlow, Keras и Caffe.

Для ускорения обучения на больших наборах данных вы можете распараллеливать вычисления на многоядерных процессорах и на графических процессорах GPU на вашем компьютере, используя Parallel Computing Toolbox, или использовать для обучения кластеры и облака, например, Amazon EC2® P2, P3 и G3 GPU, используя MATLAB Distributed Computing Server.

Сети и архитектуры сетей

Сверточная нейронная сеть
Сверточная нейронная сеть

Используйте Deep Learning Toolbox для обучения сетей глубокого обучения для задач классификации, регрессии, анализа изображений, временных рядов и анализу текстовых данных.

Сверточные нейронные сети

Используйте сверточные сети для нахождения на изображениях определенных объектов, лиц людей и сцен. Создавайте и обучайте сверточные нейронные сети (CNN) для извлечения признаков и распознавания изображений.

LSTM - сети с долгосрочной кратковременной памятью (рекуррентные сети)

Анализируйте зависимости в последовательности данных, включая сигналы, аудиосигналы, текст и в другие данные на основе временных рядов. Построите и обучите LSTM - сеть для решения задач классификации и регрессии.

Архитектуры нейронных сетей

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


Сверточная нейронная сеть Сверточная нейронная сеть

Разработка сетей и их анализ

Анализ архитектуры нейронной сети с использованием функции analyzeNetwork
Анализ архитектуры нейронной сети с использованием функции analyzeNetwork

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

Разрабатывайте сети глубокого обучения

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

Анализ сетей глубокого обучения

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


Анализ архитектуры нейронной сети с использованием функции analyzeNetwork Анализ архитектуры нейронной сети с использованием функции analyzeNetwork

Перенос обучения и обученные модели

График предсказательной точности предобученных сетей в зависимости от количества операций на одно предсказание, диаметр сети – количество обучаемых параметров
График предсказательной точности предобученных сетей в зависимости от количества операций на одно предсказание, диаметр сети – количество обучаемых параметров
График предсказательной точности предобученных сетей в зависимости от количества операций на одно предсказание, диаметр сети – количество обучаемых параметров График предсказательной точности предобученных сетей в зависимости от количества операций на одно предсказание, диаметр сети – количество обучаемых параметров

Импортируйте предварительно обученные модели в MATLAB.

Перенос обучения

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

Предобученные модели

Загружайте предобученные модели сетей для исследований всего одной строкой кода. Импортируйте предварительно обученные сети, включая AlexNet, GoogLeNet, VGG-16, VGG-19, ResNet-101, Inception-v3 и SqueezeNet. Ознакомьтесь ниже со списком всех доступных предобученных сетей.

Визуализация

Визуализация архитектуры сети
Визуализация архитектуры сети

Визуализируйте топологию сети, прогресс обучения, характеристики активации слоев сети и изученные признаки сетью.

Визуализация топологии сети

Визуализируйте топологию сети, слои сети и соединения между ними. Используйте функцию analyNetwork для интерактивного анализа архитектуры сети или приложение «Deep Network Designer».

Процесс обучения

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

Визуализация характеристик активации слоев

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

Визуализация архитектуры сети Визуализация архитектуры сети

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

Взаимодействие MATLAB с другими фреймворками глубокого обучения
Взаимодействие MATLAB с другими фреймворками глубокого обучения
Взаимодействие MATLAB с другими фреймворками глубокого обучения Взаимодействие MATLAB с другими фреймворками глубокого обучения

Используйте MATLAB совместно с другими фреймворками глубокого обучения.

ONNX конвертер

Импортируйте и экспортируйте модели ONNX в MATLAB для взаимодействия с другими фреймворками глубокого обучения. Формат ONNX позволяет обучать модели в одном фреймворке и переноситься в другой.

Импорт из TensorFlow-Keras

Импортируйте обученные модели из TensorFlow-Keras в MATLAB, используя функцию importKerasNetwork.

Импорт из Caffe

Импортируйте модели из Caffe Model Zoo в MATLAB, используя функцию importCaffeNetwork.

Ускорение процесса обучения

Ускорение обучения в зависимости от количества GPU
Ускорение обучения в зависимости от количества GPU

Ускорьте процесс обучения сетей, используя GPU, вычисления в облаке или на распределенных вычислителях.

Обучение на GPU

Ускорьте процесс обучения, используя высокопроизводительные NVIDIA GPU. Вы можете выполнять обучение как на одной GPU вашего ПК, так и на нескольких GPU, используя рабочие станции NVIDIA DGX Station в дата-центрах или облаках. Для ускорения и распараллеливания вычислений используйте MATLAB с Parallel Computing Toolbox совместно с видеокартами NVIDIA с поддержкой CUDA версии 3.0 и выше.

Обучение в облаке

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

Распределенные вычисления

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

Ускорение обучения в зависимости от количества GPU Ускорение обучения в зависимости от количества GPU

Генерация кода и развертывание сетей

Генерация кода и запуск алгоритма на NVIDIA Jetson
Генерация кода и запуск алгоритма на NVIDIA Jetson
Генерация кода и запуск алгоритма на NVIDIA Jetson Генерация кода и запуск алгоритма на NVIDIA Jetson

Развертывание обученных нейронных сетей на встраиваемых системах или их интеграция с различными средами.

Генерация кода

Используйте GPU Coder для генерации оптимизированного CUDA из кода MATLAB для глубокого обучения, обработки видео и систем автономного вождения. Используйте MATLAB Coder для генерации C/C++ кода для развертывания нейронных сетей на Intel,  ARM и других процессорах.

MATLAB Compiler

Используйте MATLAB Compiler и MATLAB Compiler SDK для развертывания обученных сетей в виде C/C++ библиотек, Microsoft .NET, Java классов и Python пакетов.

Неглубокие нейронные сети

Неглубокая сверточная нейронная сеть
Неглубокая сверточная нейронная сеть

Используйте модели не глубоких нейронных сетей для обучения с учителем и без.

Обучение с учителем

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

Обучение без учителя

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

Каскадные автоэнкодеры

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

Неглубокая сверточная нейронная сеть Неглубокая сверточная нейронная сеть