Чтобы создать функциональную аппроксимацию для обучения с подкрепления, можно импортировать предварительно обученные глубокие нейронные сети или архитектуру слоя глубокой нейронной сети с помощью функциональности импорта сетей пакета Deep Learning Toolbox™. Можно импортировать:
Модели Open Neural Network Exchange (ONNX™), которые требуют Конвертера Deep Learning Toolbox для программного обеспечения пакета поддержки Формата Модели ONNX. Для получения дополнительной информации, importONNXLayers
.
Сети TensorFlow™-Keras, которые требуют Средства импорта Deep Learning Toolbox для программного обеспечения пакета поддержки Моделей TensorFlow-Keras. Для получения дополнительной информации смотрите importKerasLayers
.
Сверточные сети Caffe, которые требуют пакета поддержки Importer for Caffe Models пакета Deep Learning Toolbox. Для получения дополнительной информации смотрите importCaffeLayers
.
После того, как вы импортируете глубокую нейронную сеть, можно создать политику или объект представления функции ценности использование объекта представления, такой как rlValueRepresentation
.
Когда вы импортируете архитектуры глубоких нейронных сетей, рассматриваете следующее.
Импортированные архитектуры должны иметь один входной слой и один выходной слой. Поэтому импорт целых сетей критика с наблюдением и входными слоями действия не поддерживается.
Размерности входных и выходных слоёв импортированной архитектуры сети должны совпадать с размерностями соответствующих действий, наблюдений или вознаграждения вашего окружения.
После импорта сетевой архитектуры необходимо задать имена входного и выходного слоёв, так чтобы они совпадали с именами соответствующих спецификаций действий и наблюдений.
Для получения дополнительной информации об архитектурах глубоких нейронных сетей, поддержанных для обучения с подкреплением, смотрите, Создают Представления Функции ценности и политика.
Как пример, примите, что у вас есть среда с 50 50 сигналом наблюдения полутонового изображения и непрерывным пространством действий. Для обучения агента градиента политики (GP) вам требуется нижеследующие функциональные аппроксимации, при этом обе должны иметь единственный входной слой наблюдений изображений 50 на 50 и одно скалярное выходное значение.
Агент — Выбирает значение действия на основе текущего наблюдения
Критик — Оценивает ожидаемое долгосрочное вознаграждение на основе текущего наблюдения
Кроме того, предположим, что у вас есть следующая сетевая архитектура для импорта:
Архитектура глубоких нейронных сетей для актера с входным слоем изображений 50 на 50 и скалярным выходным слоем, который сохранен в формате ONNX (criticNetwork.onnx
).
Архитектура глубоких нейронных сетей для критика с входным слоем изображений 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
, соответственно.