주요 콘텐츠

getObservationInfo

강화 학습 환경, 에이전트 또는 경험 버퍼에서 관측값 데이터 사양 가져오기

설명

obsInfo = getObservationInfo(env)는 강화 학습 환경 env에서 관측값 정보를 추출합니다.

예제

obsInfo = getObservationInfo(agent)는 강화 학습 에이전트 agent에서 관측값 정보를 추출합니다.

obsInfo = getObservationInfo(buffer)는 경험 버퍼 buffer에서 관측값 정보를 추출합니다.

예제

모두 축소

이 예제의 강화 학습 환경은 자동차 2대(선행 차량과 후행 차량 각각 1대)로 구성된 종방향 동특성 모델입니다. 이 차량 모델은 Adaptive Cruise Control System Using Model Predictive Control (Model Predictive Control Toolbox) 예제에서도 사용됩니다.

모델을 엽니다.

mdl = "rlACCMdl";
open_system(mdl);

모델에서 에이전트 블록의 경로를 지정합니다.

agentblk = mdl + "/RL Agent";

관측값 및 행동 사양을 만듭니다.

% Observation specifications
obsInfo = rlNumericSpec([3 1],LowerLimit=-inf*ones(3,1),UpperLimit=inf*ones(3,1));
obsInfo.Name = "observations";
obsInfo.Description = "information on velocity error and ego velocity";

% Action specifications
actInfo = rlNumericSpec([1 1],LowerLimit=-3,UpperLimit=2);
actInfo.Name = "acceleration";

환경 객체를 만듭니다.

env = rlSimulinkEnv(mdl,agentblk,obsInfo,actInfo)
env = 
SimulinkEnvWithAgent with properties:

           Model : rlACCMdl
      AgentBlock : rlACCMdl/RL Agent
        ResetFcn : []
  UseFastRestart : on

강화 학습 환경 envSimulinkEnvWithAgent 객체입니다.

env에서 행동 사양과 관측값 사양을 추출합니다.

actInfoExt = getActionInfo(env)
actInfoExt = 
  rlNumericSpec with properties:

     LowerLimit: -3
     UpperLimit: 2
           Name: "acceleration"
    Description: [0×0 string]
      Dimension: [1 1]
       DataType: "double"

obsInfoExt = getObservationInfo(env)
obsInfoExt = 
  rlNumericSpec with properties:

     LowerLimit: [3×1 double]
     UpperLimit: [3×1 double]
           Name: "observations"
    Description: "information on velocity error and ego velocity"
      Dimension: [3 1]
       DataType: "double"

행동 정보는 가속도 값을 포함하며, 관측값 정보는 에고 차량의 속도와 속도 오차 값을 포함합니다.

입력 인수

모두 축소

환경으로, 다음과 같이 지정됩니다.

  • MATLAB® 환경은 다음 객체 중 하나로 표현됩니다.

    MATLAB 환경 중에서는 rlMultiAgentFunctionEnvrlTurnBasedFunctionEnv만이 동시에 여러 에이전트를 훈련할 수 있습니다.

  • Simulink® 객체로 표현되는 SimulinkEnvWithAgent 환경으로, 다음을 사용하여 생성됩니다:

    • rlSimulinkEnv — 이 환경은 이미 하나 이상의 에이전트 블록을 포함하고 있는 모델을 기반으로 생성되며, 여러 에이전트를 동시에 훈련할 수 있습니다.

    • createIntegratedEnv — 이 환경은 에이전트 블록이 포함되지 않은 모델로 생성되었으며, 여러 에이전트를 동시에 훈련하는 기능을 지원하지 않습니다.

    Simulink-기반 환경 객체는 인터페이스 역할을 하여, 강화 학습 시뮬레이션이나 훈련 함수가 (컴파일된) Simulink-모델을 호출해 에이전트를 위한 경험을 생성하도록 합니다. 이러한 환경에서는 resetstep 함수를 사용할 수 없습니다.

참고

env는 핸들 객체이므로, train과 같이 이를 출력 인수로 반환하지 않는 함수라도 여전히 해당 객체의 내부 상태를 업데이트할 수 있습니다. 핸들 객체에 대한 자세한 내용은 핸들 객체 동작 항목을 참조하십시오.

강화 학습 환경에 대한 자세한 내용은 Reinforcement Learning Environments사용자 지정 Simulink 환경 만들기 항목을 참조하십시오.

예: env = rlPredefinedEnv("DoubleIntegrator-Continuous")는 연속 동작 이중 적분기 시스템을 구현하는 미리 정의된 환경을 생성하고, 이를 변수 env에 할당합니다.

에이전트로, 다음 강화 학습 에이전트 객체 중 하나로 지정됩니다.

참고

agent는 핸들 객체이므로, train와 같이 이를 출력 인수로 반환하지 않는 함수라도 이 객체를 업데이트할 수 있습니다. 핸들 객체에 대한 자세한 내용은 핸들 객체 동작 항목을 참조하십시오.

강화 학습 에이전트에 대한 자세한 내용은 강화 학습 에이전트 항목을 참조하십시오.

예: agent = rlPPOAgent(rlNumericSpec([2 1]),rlNumericSpec([1 1]))는 관측값 채널이 연속적인 요소를 2개 가진 벡터를 전달하고, 행동 채널이 연속적인 스칼라를 전달하는 환경을 위한 디폴트 rlPPOAgent 객체 agent를 생성합니다.

경험 버퍼로, 다음과 같은 replay memory 객체 중 하나로 지정됩니다.

예: rlReplayMemory(rlNumericSpec([1 1]),rlFiniteSetSpec([0 1]),1e5)

출력 인수

모두 축소

강화 학습 환경에서 추출된 관측값 데이터 사양으로, 다음 중 하나로 구성된 배열로 반환됩니다.

배열의 각 요소는 환경 관측값 채널의 속성(예: 차원, 데이터형, 이름)을 정의합니다.

getObservationInfo를 사용하여 기존 환경, 함수 근사기 또는 에이전트에서 observationInfo를 추출할 수 있습니다. rlFiniteSetSpec 또는 rlNumericSpec을 사용하여 사양을 수동으로 생성할 수도 있습니다.

버전 내역

R2019a에 개발됨