Main Content

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

SARSA 에이전트

SARSA 알고리즘은 모델이 주어지지 않은(model-free) 온라인 방식의 온-폴리시(on-policy) 강화 학습 방법입니다. SARSA 에이전트는 가치를 기반으로 하는 강화 학습 에이전트로, 현재 정책에 대해 기대되는 감가된 누적 장기 보상을 추정하도록 크리틱을 훈련시킵니다. 주어진 관측값에 대해 에이전트는 추정된 리턴값이 가장 큰 행동을 선택하고 출력합니다.

참고

SARSA 에이전트는 순환 신경망을 지원하지 않습니다.

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

다음과 같은 관측값 공간과 행동 공간이 있는 환경에서 SARSA 에이전트를 훈련시킬 수 있습니다.

관측값 공간행동 공간
연속 또는 이산이산

SARSA 에이전트는 다음 크리틱을 사용합니다.

크리틱액터

rlQValueFunction 또는 rlVectorQValueFunction을 사용하여 만드는 Q-값 함수 크리틱 Q(S,A)

SARSA 에이전트는 액터를 사용하지 않습니다.

훈련 중 에이전트는 엡실론-그리디 탐색을 사용하여 행동 공간을 탐색합니다. 각 제어 간격 동안 에이전트는 확률 ϵ으로 임의의 행동을 선택하며, 그렇지 않으면 확률 1–ϵ으로 행동-가치 함수가 가장 큰 행동을 선택합니다.

크리틱 함수 근사기

현재 정책의 가치를 추정하기 위해 SARSA 에이전트는 크리틱을 사용합니다. 크리틱은 파라미터화된 행동-가치 함수 Q(S,A;ϕ)를 파라미터 ϕ를 사용하여 구현하는 함수 근사기 객체입니다. 관측값 S와 행동 A가 주어지면 크리틱은 현재 정책을 고려하여 기대되는 감가된 누적 장기 보상의 해당 추정값을 저장합니다. 크리틱은 훈련이 진행되는 동안 파라미터를 조정하여 추정값을 개선합니다.

테이블 기반 가치 함수를 사용하는 크리틱의 경우 ϕ의 파라미터는 테이블에 있는 실제 Q(S,A) 값입니다.

가치 함수 근사를 위해 크리틱을 만드는 방법에 대한 자세한 내용은 Create Policies and Value Functions 항목을 참조하십시오.

훈련이 진행되는 동안 에이전트는 ϕ의 파라미터 값을 조정합니다. 훈련 후에 파라미터는 조정된 값으로 유지되고 훈련된 가치 함수 근사기는 크리틱 Q(S,A)에 저장됩니다.

에이전트 만들기

SARSA 에이전트를 만들려면 다음을 수행하십시오.

  1. rlQValueFunction 객체 또는 rlVectorQValueFunction 객체를 사용하여 크리틱을 만듭니다.

  2. rlSARSAAgentOptions 객체를 사용하여 에이전트 옵션을 지정합니다. 또는 먼저 에이전트를 만든 다음(단계 3), 점 표기법을 사용하여 option 객체에 액세스하고 옵션을 수정할 수 있습니다.

  3. rlSARSAAgent 객체를 사용하여 에이전트를 만듭니다.

훈련 알고리즘

SARSA 에이전트는 다음의 훈련 알고리즘을 사용합니다. 훈련 알고리즘을 구성하려면 rlSARSAAgentOptions 객체를 사용하여 옵션을 지정하십시오.

  • ϕ의 임의 파라미터 값으로 크리틱 Q(S,A;ϕ)를 초기화합니다.

  • 각 훈련 에피소드에 대해 다음을 수행합니다.

    1. 환경에서 초기 관측값 S를 가져옵니다.

    2. 현재 관측값 S에 대해 확률 ϵ으로 임의의 행동 A를 선택합니다. 그렇지 않으면, 크리틱 가치 함수의 값이 최대인 행동을 선택합니다.

      A=argmaxAQ(S,A;ϕ)

      ϵ과 그 감쇠율을 지정하려면 EpsilonGreedyExploration 옵션을 사용하십시오.

    3. S가 종료 상태가 될 때까지 에피소드의 각 스텝마다 다음 작업을 반복합니다.

      1. 행동 A0을 실행합니다. 보상 R과 다음 관측값 S'을 관측합니다.

      2. 현재 관측값 S'에 대해 확률이 ϵ인 임의의 행동 A'을 선택합니다. 그렇지 않으면, 크리틱 가치 함수의 값이 최대인 행동을 선택합니다.

        A'=argmaxA'Q(S',A';ϕ)

      3. S'이 종료 상태인 경우 가치 함수 타깃 y를 R로 설정합니다. 그 외의 경우에는 다음과 같이 설정합니다.

        y=R+γQ(S',A';ϕ)

        감가 인자 γ를 설정하려면 DiscountFactor 옵션을 사용하십시오.

      4. 가치 함수 타깃과 현재 Q(S,A;ϕ) 값 사이의 차이 ΔQ를 계산합니다.

        ΔQ=yQ(S,A;ϕ)

      5. 학습률 α를 사용하여 크리틱을 업데이트합니다. 크리틱을 만들 때 agent options 객체 내에서 rlCriticOptimizerOptions 속성의 LearnRate 옵션을 설정하여 학습률을 지정합니다.

        • 테이블 기반 크리틱의 경우, 테이블에 있는 대응하는 Q(S,A) 값을 업데이트합니다.

          Q(S,A)=Q(S,A;ϕ)+αΔQ

        • 기타 모든 유형의 크리틱의 경우, 파라미터 ϕ에 대해 손실 함수의 기울기 Δϕ를 계산합니다. 그런 다음, 계산된 기울기에 기반하여 파라미터를 업데이트합니다. 이 경우 손실 함수는 ΔQ의 제곱입니다.

          Δϕ=12ϕ(ΔQ)2ϕ=ϕ+αΔϕ

      6. 관측값 S를 S'으로 설정합니다.

      7. 행동 A를 A'으로 설정합니다.

참고 항목

객체

관련 예제

세부 정보