Чтобы создать функцию approximators для изучения укрепления, можно импортировать предварительно обученные глубокие нейронные сети или архитектуру слоя глубокой нейронной сети с помощью функциональности импорта сети Deep Learning Toolbox™. Можно импортировать:
Открытые модели Neural Network Exchange (ONNX™), которые требуют Конвертера Deep Learning Toolbox для Образцового программного обеспечения пакета поддержки Формата ONNX. Для получения дополнительной информации, importONNXLayers
.
Сети TensorFlow™-Keras, который требует Средства импорта Deep Learning Toolbox для программного обеспечения пакета поддержки TensorFlow-Keras. Для получения дополнительной информации смотрите importKerasLayers
.
Сверточные сети Caffe, который требует Средства импорта Deep Learning Toolbox для программного обеспечения пакета поддержки Моделей Caffe. Для получения дополнительной информации смотрите importCaffeLayers
.
После импорта глубокой нейронной сети можно создать политику или объект представления функции значения использование rlRepresentation
.
При импорте архитектуры глубокой нейронной сети рассмотрите следующее:
Импортированная архитектура должна иметь один входной слой и один выходной слой. Поэтому импорт целых сетей критика с наблюдением и входными слоями действия не поддержан.
Размерности импортированных сетевых слоев ввода и вывода архитектуры должны совпадать с размерностями соответствующего действия, наблюдения или премиальных размерностей для вашей среды.
После импорта сетевой архитектуры необходимо определить имена слоев ввода и вывода, чтобы совпадать с именами соответствующих спецификаций действия и наблюдения.
Для получения дополнительной информации об архитектуре глубокой нейронной сети, поддержанной для изучения укрепления, смотрите, Создают политику и Представления Функции Значения.
Например, примите, что у вас есть среда с 50 50 сигналом наблюдения полутонового изображения и непрерывным пробелом действия. Чтобы обучить агент градиента политики, вы требуете следующей функции approximators, оба из которых должны иметь сингл 50 50, отображают входной слой наблюдения и одно скалярное выходное значение.
Агент — Выбирает значение действия на основе текущего наблюдения
Критик — Оценки ожидаемое долгосрочное вознаграждение на основе текущего наблюдения
Кроме того, примите, что у вас есть следующая сетевая архитектура, чтобы импортировать:
Архитектура глубокой нейронной сети для агента с 50 50 отображает входной слой и скалярный выходной слой, который сохранен в формате ONNX (criticNetwork.onnx
).
Архитектура глубокой нейронной сети для критика с 50 50 отображает входной слой и скалярный выходной слой, который сохранен в формате ONNX (actorNetwork.onnx
).
Чтобы импортировать критика и сети агента, используйте функцию importONNXLayers
, не задавая выходной слой.
criticNetwork = importONNXLayers('criticNetwork.onnx'); actorNetwork = importONNXLayers('actorNetwork.onnx');
Эти команды генерируют предупреждение, которое утверждает, что сеть не будет обучаема, пока выходной слой не будет добавлен. Когда вы используете импортированную сеть, чтобы создать агента или представление критика, программное обеспечение Reinforcement Learning Toolbox™ автоматически добавляет выходной слой для вас.
После импорта сетей создайте агента и функцию критика approximator представления с помощью функции rlRepresentation
. Для этого сначала получите спецификацию наблюдения из среды.
obsInfo = getObservationInfo(env); actInfo = getActionInfo(env);
Создайте представление критика, задав имя входного слоя сети критика как имя наблюдения.
critic = rlRepresentation(criticNetwork,obsInfo,... 'Observation',{criticNetwork.Layers(1).Name});
Создайте представление критика, задав имя входного слоя сети агента как имя наблюдения и выходной слой сети агента как имя наблюдения.
actor = rlRepresentation(actorNetwork,obsInfo,actInfo,... 'Observation',{actorNetwork.Layers(1).Name},... 'Action',{actorNetwork.Layers(end).Name});
Вы можете затем:
Создайте агент с помощью этих представлений. Для получения дополнительной информации смотрите, что Укрепление Изучает Агенты.
Установите агента и представление критика в существующем агенте с помощью setActor
и setCritic
, соответственно.