Импортируйте политику и представления функции ценности

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

  • Модели Open Neural Network Exchange (ONNX™), для которых требуется Deep Learning Toolbox Converter для ONNX Model Формата поддерживает программное обеспечение пакета. Для получения дополнительной информации, importONNXLayers.

  • TensorFlow™-Keras сети, которым требуется Deep Learning Toolbox Converter для пакета поддержки TensorFlow Models. Для получения дополнительной информации см. importKerasLayers.

  • Caffe сверточные сети, которые требуют Пакета поддержки Importer for Caffe Models пакета Deep Learning Toolbox. Для получения дополнительной информации см. importCaffeLayers.

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

Когда вы импортируете архитектуры глубоких нейронных сетей, примите к сведению следующее.

  • Импортированные архитектуры должны иметь один входной слой и один выходной слой. Поэтому импорт целых сетей критика с входными слоями наблюдений и действий не поддерживается.

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

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

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

Импортируйте актёра и критика для приложения наблюдения изображений

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

  • Актёр - выбирает значение действия на основе текущего наблюдения

  • Критик - Оценивает ожидаемое долгосрочное вознаграждение на основе текущего наблюдения

Кроме того, предположим, что у вас есть следующие сетевые архитектуры для импорта:

  • A архитектуры глубоких нейронных сетей для актера с входным слоем изображений 50 на 50 и скалярным выходным слоем, которая сохранена в формате ONNX (criticNetwork.onnx).

  • A архитектуры глубоких нейронных сетей для критика с входным слоем изображений 50 на 50 и скалярным выходном слоем, которая сохранена в формате ONNX (actorNetwork.onnx).

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

criticNetwork = importONNXLayers('criticNetwork.onnx');
actorNetwork = importONNXLayers('actorNetwork.onnx');

Эти команды генерируют предупреждение, в котором указывается, что сеть является обучаемой до добавления выходом слоя. Когда вы используете импортированную сеть, чтобы создать представление актёра или критика, Пакет Reinforcement Learning Toolbox™ автоматически добавляет слой выхода для вас.

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

obsInfo = getObservationInfo(env);
actInfo = getActionInfo(env);

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

critic = rlValueRepresentation(criticNetwork,obsInfo,...
    'Observation',{criticNetwork.Layers(1).Name});

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

actor = rlDeterministicActorRepresentation(actorNetwork,obsInfo,actInfo,...
    'Observation',{actorNetwork.Layers(1).Name},...
    'Action',{actorNetwork.Layers(end).Name});

Затем можно:

  • Создайте агента, используя эти представления. Для получения дополнительной информации см. Раздел «Агенты обучения с подкреплением».

  • Установите представление актера и критика в существующем агенте, используя setActor и setCritic, соответственно.

Похожие темы

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