Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

RL Agent

강화 학습 에이전트

  • 라이브러리:
  • Reinforcement Learning Toolbox

  • RL Agent block

설명

RL Agent블록을 사용하여 Simulink®에서 강화 학습 에이전트를 시뮬레이션하고 훈련시킵니다. 이 블록을 MATLAB®작업 공간에 저장된 에이전트와 연결하거나,rlACAgent객체 또는rlDDPGAgent객체 같은 에이전트 객체로 데이터 사전에 연결합니다. 이 블록이 관측값과 계산된 보상을 받을 수 있도록 연결합니다. 예를 들어,rlSimplePendulumModel모델의 블록 다이어그램이 다음과 같다고 가정하겠습니다.

RL Agent블록의observation입력 포트는 진자의 순시각(instantaneous angle)과 각속도에서 도출되는 신호를 받습니다.reward포트는 이 두 개의 동일한 값과 적용된 행동으로부터 계산된 보상을 받습니다. 사용자는 관측값과 보상 계산을 해당 시스템에 적합하게 구성합니다.

이 블록은 에이전트를 사용하여 사용자가 제공하는 관측값과 보상에 기반한 행동을 생성합니다.action출력 포트를 사용자의 시스템에 들어가는 입력으로 적절하게 연결합니다. 예를 들어,rlSimplePendulumModel에서action포트는 진자 시스템에 적용되는 토크입니다. 이 모델에 대한 자세한 내용은Train DQN Agent to Swing Up and Balance Pendulum항목을참조하십시오。

Simulink에서 강화 학습 에이전트를 훈련시키려면 Simulink 모델에서 환경을 생성하십시오. 그 다음, 에이전트를 만들고 구성하여 이 환경에 대해 훈련시킵니다. 자세한 내용은Simulink 강화 학습 환경 만들기항목을참조하십시오。해당 환경을 사용하여train을 호출하면train은 모델을 시뮬레이션하고 이 블록과 연결된 에이전트를 업데이트합니다.

포트

입력값

모두확장

이 포트는 환경으로부터 관측값 신호를 받습니다. 관측값 신호는 측정값이나 시스템의 순시 데이터를 나타냅니다. 관측값이 여러 개인 경우Mux블록을 사용하여 이 관측값들을 벡터 신호로 결합할 수 있습니다. 비가상 버스 신호를 사용하려면bus2RLSpec함수를 사용하십시오.

이 포트는 관측값 데이터에 기반하여 계산하는 보상 신호를 받습니다. 보상 신호는 에이전트를 훈련하는 동안 장기 보상의 기대값을 최대화하는 데 사용됩니다.

이 신호를 사용하여 훈련 에피소드를 종료하는 조건을 지정합니다. 에피소드를 종료하는 조건을 결정하려면 사용자의 시스템에 적합하게 논리를 구성해야 합니다. 한 응용 사례는 훈련이 잘 되는 에피소드를 종료하거나 잘 안되는 에피소드를 종료하는 것입니다. 예를 들어, 에이전트가 목표에 도달한 에피소드를 종료하거나 목표에서 지나치게 멀어진 에피소드를 종료할 수 있습니다.

이 신호를 사용하여 블록에 외부 행동을 전달합니다. 이 신호는 인간 전문가로부터 전달되는 제어 행동이 될 수 있으며, 안전 학습이나 모방 학습 응용 분야에서 사용될 수 있습니다.use external action신호의 값이1이면, 블록은external action신호를action블록 출력을 통해 환경으로 전달합니다. 블록은 또한 외부 행동을 사용하여 결과 관측값과 보상을 기반으로 에이전트 정책을 업데이트합니다.

종속 관계

이 포트를 활성화하려면외부 행동 신호에 대한 인포트 추가파라미터를 선택하십시오.

이 신호를 사용하여external action신호를 환경으로 전달합니다.

use external action신호의 값이1이면, 블록은external action신호를 환경으로 전달합니다. 블록은 또한 외부 행동을 사용하여 에이전트 정책을 업데이트합니다.

use external action신호의 값이0이면, 블록은external action신호를 환경으로 전달하지 않으며 외부 행동을 사용하여 정책을 업데이트하지 않습니다. 그 대신, 블록으로부터 오는 행동은 에이전트 정책으로부터 오는 행동을 사용합니다.

종속 관계

이 포트를 활성화하려면외부 행동 신호에 대한 인포트 추가파라미터를 선택하십시오.

출력값

모두확장

관측값과 보상 입력값에 기반하여 에이전트에 의해 계산되는 행동입니다. 이 포트를 사용자 시스템의 입력에 연결하십시오. 비가상 버스 신호를 사용하려면bus2RLSpec함수를 사용하십시오.

참고

rlACAgent,rlPGAgent또는rlPPOAgent와 같은 에이전트가 연속 행동 공간을 갖는rlStochasticActorRepresentation액터를 사용할 경우, 에이전트는 행동 사양에 의해 설정된 제약 조건을 강제로 적용하지 않습니다. 이러한 경우에는 사용자가 행동 공간 제약 조건을 환경 내에 강제로 적용해야 합니다.

시뮬레이션하는 동안 누적된 보상 신호의 합입니다. 이 신호를 관측하거나 기록하여 시간에 따라 누적 보상이 어떻게 변화하는지 추적합니다.

종속 관계

이 포트를 활성화하려면누적 보상 신호 전달파라미터를 선택하십시오.

파라미터

모두확장

MATLAB 작업 공간이나 데이터 사전에 저장된 agent 객체의 이름을 입력합니다(예:rlACAgent또는rlDDPGAgent). agent 객체에 대한 내용은Reinforcement Learning Agents항목을참조하십시오。

프로그래밍 방식 사용

블록 파라미터:Agent
유형:string형, 문자형 벡터
디폴트 값:"agentObj"

cumulative reward블록 출력을 활성화하려면 이 파라미터를 선택합니다.

프로그래밍 방식 사용

블록 파라미터:ProvideCumRwd
유형:string형, 문자형 벡터
값:"off","on"
디폴트 값:"off"

이 파라미터를 선택하여external actionuse external action블록 입력 포트를 활성화합니다.

프로그래밍 방식 사용

블록 파라미터:ExternalActionAsInput
유형:string형, 문자형 벡터
값:"off","on"
디폴트 값:"off"

버전 내역

R2019a에 개발됨