exponenta event banner

Обучение модели глубокого обучения в MATLAB

Можно обучать и настраивать модель глубокого обучения различными способами - например, можно переподготовить заранее обученную модель с новыми данными (обучение передаче), обучить сеть с нуля или определить модель глубокого обучения как функцию и использовать индивидуальный цикл обучения. Эта блок-схема используется для выбора метода обучения, наиболее подходящего для выполнения задачи.

Совет

Сведения о рабочих процессах компьютерного зрения, включая обнаружение объектов, см. в разделе Компьютерное зрение с помощью глубокого обучения. Сведения об импорте сетей и сетевых архитектур из формата модели TensorFlow™-Keras, Caffe и ONNX™ (Open Neural Network Exchange) см. в разделе Импорт и экспорт глубокого обучения.

Методы обучения

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

МетодДополнительные сведения
Использовать сеть напрямую

Если предварительно обученная сеть уже выполняет требуемую задачу, то переобучать сеть не нужно. Вместо этого вы можете делать прогнозы с сетью непосредственно с помощью classify и predict функции.

Пример см. в разделе Классификация изображения с помощью GoogLeNet.

Сеть поездов с использованием trainingOptions и trainNetwork

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

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

Сеть поездов с использованием dlnetwork объект и пользовательский обучающий цикл

Для большинства задач можно управлять подробностями алгоритма обучения с помощью trainingOptions и trainNetwork функции. Если trainingOptions функция не предоставляет опции, необходимые для выполнения задачи (например, индивидуальный график обучения), после чего можно определить собственный индивидуальный цикл обучения с помощью dlnetwork объект. A dlnetwork объект позволяет обучить сеть, заданную как график слоев, с помощью автоматического дифференцирования.

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

Пример обучения сети с использованием пользовательского графика обучения см. в разделе Обучение сети с использованием пользовательского цикла обучения.

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

Обучение сети с использованием функции модели и пользовательского обучающего цикла

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

Если можно создать детали сети с помощью графика слоев, можно определить эти детали как графики слоев, а неподдерживаемые детали - с помощью функций модели.

Решения

В этой таблице содержится дополнительная информация о каждом решении на блок-схеме.

РешениеДополнительные сведения
Предоставляет ли Deep Learning Toolbox™ подходящую предварительно подготовленную сеть?

Для большинства задач можно использовать или переподготовить предварительно обученную сеть, такую как googlenet.

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

Можно ли пользоваться сетью без переподготовки?

Если заранее обученная сеть уже выполняет нужную вам задачу, то можно использовать сеть напрямую без переподготовки. Например, можно использовать googlenet сеть для классификации изображений в 1000 классов. Чтобы сделать прогноз непосредственно с сетью, используйте classify и predict функции. Пример см. в разделе Классификация изображения с помощью GoogLeNet.

Если нужно переобучить сеть - например, классифицировать другой набор классов - то можно переобучить сеть с помощью трансферного обучения.

Можно ли определить модель как массив слоев или график?

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

Некоторые сетевые архитектуры не могут быть определены как граф уровня. Например, сиамские сети требуют совместного использования веса и не могут быть определены как граф слоев. Для этих сетей необходимо определить модель как функцию. Пример см. в разделе Сеть поездов с использованием функции модели.

Сеть имеет только один выход?

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

Предоставляет ли Deep Learning Toolbox необходимые промежуточные слои?

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

Если Deep Learning Toolbox предоставляет необходимые промежуточные слои (слои в середине сети), можно определить сеть как массив слоев или график слоев, используя эти слои. В противном случае попробуйте определить все неподдерживаемые слои как пользовательские. Дополнительные сведения см. в разделе Определение пользовательских слоев глубокого обучения.

Можно ли определить неподдерживаемые промежуточные слои как пользовательские?

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

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

Предоставляет ли Deep Learning Toolbox необходимые выходные слои?

Выходные уровни определяют функцию потерь, используемую для обучения. Deep Learning Toolbox предоставляет различные выходные уровни для задач глубокого обучения. Например, classificationLayer и regressionLayer. Список выходных слоев см. в разделе «Выходные слои» на странице «Список слоев глубокого обучения».

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

Можно ли определить неподдерживаемые выходные слои как пользовательские?

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

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

Делает trainingOptions функция предоставляет необходимые опции?

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

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

См. также

|

Связанные темы