주요 콘텐츠

Q-러닝 에이전트

Q-러닝 알고리즘은 이산 행동 공간이 있는 환경에 대한 오프-폴리시 강화 학습 방법입니다. Q-러닝 에이전트는 최적의 정책 값을 추정하도록 Q-값 함수 크리틱을 훈련시키면서, 크리틱에 의해 추정된 값을 기반으로 엡실론-그리디 정책을 따릅니다(최적의 정책을 직접 학습하려고 하지 않음). 다양한 유형의 강화 학습 에이전트에 대한 자세한 내용은 강화 학습 에이전트 항목을 참조하십시오.

Reinforcement Learning Toolbox™에서 Q-러닝 에이전트는 rlQAgent 객체에 의해 구현됩니다.

참고

Q-러닝 에이전트는 순환 신경망을 지원하지 않습니다.

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

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

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

크리틱액터

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

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

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

Q-러닝 에이전트에 사용되는 크리틱

최적의 정책 값을 추정하기 위해 Q-러닝 에이전트는 크리틱을 사용합니다. 크리틱은 파라미터화된 행동-가치 함수 Q(S,A;ϕ)를 파라미터 ϕ를 사용하여 구현하는 함수 근사기 객체입니다. 관측값 S와 행동 A가 주어지면 크리틱은 최적의 정책(즉, 최적의 정책 값)을 따를 때 기대되는 감가된 누적 장기 보상의 해당 추정값을 저장합니다. 훈련이 진행되는 동안 크리틱은 행동-가치 함수 추정값을 개선하기 위해 ϕ의 파라미터를 조정합니다. 훈련을 마친 후 파라미터는 훈련된 에이전트 내부의 크리틱에서 조정된 값으로 유지됩니다.

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

크리틱에 대한 자세한 내용은 Create Policies and Value Functions 항목을 참조하십시오.

Q-러닝 에이전트 생성

Q-러닝 에이전트를 만들려면 다음을 수행하십시오.

  1. 환경에 대한 관측값 사양을 만듭니다. 환경 객체가 이미 있는 경우 getObservationInfo를 사용하여 이러한 사양을 가져올 수 있습니다.

  2. 환경에 대한 행동 사양을 만듭니다. 환경 객체가 이미 있는 경우 getActionInfo를 사용하여 이러한 사양을 가져올 수 있습니다.

  3. 크리틱에 대한 근사 모델을 만듭니다. 문제의 유형과 다음 단계에서 사용할 특정 크리틱에 따라 이 모델은 rlTable 객체(이산 관측값 공간에만 해당), 초기 파라미터 값을 갖는 사용자 지정 기저 함수 또는 신경망 객체가 될 수 있습니다. 생성된 모델의 입력값과 출력값은 다음 단계에서 사용하는 크리틱의 유형에 따라 달라집니다.

  4. rlQValueFunction 또는 rlVectorQValueFunction을 사용하여 크리틱을 만듭니다. 이전 단계에서 만든 모델을 첫 번째 입력 인수로 사용하십시오.

  5. rlQAgentOptions 객체를 사용하여 에이전트 옵션을 지정합니다. 또는 이 단계를 건너뛰고 나중에 점 표기법을 사용하여 에이전트 옵션을 수정할 수 있습니다.

  6. rlQAgent를 사용하여 에이전트를 만듭니다.

Q-러닝 훈련 알고리즘

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

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

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

    1. 에피소드가 시작할 때 환경에서 초기 관측값을 가져옵니다.

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

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

        A=argmaxAQ(S,A;ϕ)

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

      2. 행동 A를 실행합니다. 보상 R과 다음 관측값 S'을 관측합니다.

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

        y=R+γmaxAQ(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. 관측값 SS'으로 설정합니다.

참고 문헌

[1] Sutton, Richard S., and Andrew G. Barto. Reinforcement Learning: An Introduction. Second edition. Adaptive Computation and Machine Learning. Cambridge, Mass: The MIT Press, 2018.

참고 항목

객체

도움말 항목