주요 콘텐츠

rlQAgentOptions

Q-러닝 에이전트에 대한 옵션

설명

Q-러닝 에이전트를 만들 때 rlQAgentOptions 객체를 사용하여 옵션을 지정합니다. Q-러닝 에이전트를 만들려면 rlQAgent를 사용하십시오.

Q-러닝 에이전트에 대한 자세한 내용은 Q-러닝 에이전트 항목을 참조하십시오.

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

생성

설명

opt = rlQAgentOptions는 전부 디폴트 설정을 사용하여 Q-러닝 에이전트를 만들 때 인수로 사용할 rlQAgentOptions 객체를 만듭니다. 점 표기법을 사용하여 객체 속성을 수정할 수 있습니다.

opt = rlQAgentOptions(Name=Value)는 옵션 객체 opt를 만들고 하나 이상의 이름-값 인수를 사용하여 이 옵션 객체의 속성을 설정합니다. 예를 들어, rlQAgentOptions(DiscountFactor=0.95)는 감가 인자 0.95를 사용하여 옵션 세트를 만듭니다. 여러 개의 이름-값 인수를 지정할 수 있습니다.

속성

모두 확장

에이전트의 샘플 시간으로, 양의 스칼라 또는 -1로 지정됩니다.

MATLAB® 환경에서는 환경이 진행될 때마다 에이전트가 실행되므로, SampleTime이 에이전트 실행 시점에 영향을 주지 않습니다. SampleTime-1로 설정된 경우 MATLAB 환경에서는 반환되는 출력 경험의 연속된 요소 사이의 시간 간격이 1로 간주됩니다.

Simulink® 환경에서는 agent 객체를 사용하는 RL Agent 블록이 시뮬레이션 시간의 매 SampleTime초마다 실행됩니다. SampleTime-1로 설정된 경우 블록은 입력 신호에서 샘플 시간을 상속합니다. 이 블록이 이벤트 기반 서브시스템의 자식인 경우에는 SampleTime-1로 설정하십시오.

이 블록이 이벤트 기반 서브시스템의 자식이 아닌 경우에는 SampleTime을 양의 스칼라로 설정하십시오. 이렇게 설정하면 입력 신호 샘플 시간이 모델 변동으로 인해 변할 때 블록이 적절한 간격으로 실행되도록 보장됩니다. SampleTime이 양의 스칼라인 경우 이 값은 환경의 유형에 관계없이 sim 또는 train에 의해 반환되는 출력 경험의 연속된 요소 사이의 시간 간격이기도 합니다.

SampleTime-1로 설정된 경우 Simulink 환경에서는 반환되는 출력 경험의 연속된 요소 사이의 시간 간격이 RL Agent 블록 실행을 트리거하는 이벤트의 발생 시점을 반영합니다.

이 속성은 에이전트와 에이전트 내 agent options 객체 간에 공유됩니다. agent options 객체에서 이 속성을 변경하면 에이전트에서도 변경되며 그 반대의 경우에도 마찬가지입니다.

예: SampleTime=-1

훈련 중에 미래 보상에 적용할 감가 인자로, 1보다 작거나 같은 음이 아닌 스칼라로 지정됩니다.

예: DiscountFactor=0.9

엡실론-그리디 탐색에 대한 옵션으로, 다음 속성을 갖는 EpsilonGreedyExploration 객체로 지정됩니다.

속성설명디폴트 값
Epsilon행동을 무작위로 선택하거나 상태-행동 가치 함수를 최대화하는 행동을 선택하기 위한 확률 임계값의 초기값입니다. Epsilon 값이 더 크다는 것은 에이전트가 더 높은 비율로 행동 공간을 무작위로 탐색한다는 의미입니다.1
EpsilonMinEpsilon의 최솟값0.01
EpsilonDecay감쇠율0.0050

환경과의 각 상호 작용(즉, 각 훈련 스텝)에서 EpsilonEpsilonMin보다 크면 다음 공식에 따라 업데이트됩니다.

Epsilon = Epsilon*(1-EpsilonDecay)

Epsilon은 한 에피소드의 끝과 다음 에피소드의 시작 사이에 보존됩니다. 따라서 EpsilonEpsilonMin에 도달할 때까지 여러 에피소드에 걸쳐 균일하게 감소합니다.

에이전트가 국소 최적해에 너무 빠르게 수렴할 경우 Epsilon의 값을 높여서 에이전트 탐색을 촉진할 수 있습니다.

탐색 옵션을 지정하려면 rlQAgentOptions 객체 opt를 만든 후에 점 표기법을 사용하십시오. 예를 들어, 초기 엡실론 값을 0.9로 설정합니다.

opt.EpsilonGreedyExploration.Epsilon = 0.9;

참고

EpsilonGreedyExploration 객체의 Epsilon 속성은 첫 번째 에피소드 시작 시의 초기 Epsilon 값을 나타냅니다.

크리틱 최적화 함수 옵션으로, rlOptimizerOptions 객체로 지정됩니다. 이 옵션을 사용하면 학습률, 기울기 임계값뿐 아니라 최적화 함수 알고리즘과 그 파라미터 같은 크리틱 근사기의 훈련 파라미터를 지정할 수 있습니다. 자세한 내용은 rlOptimizerOptions 항목과 rlOptimizer 항목을 참조하십시오.

예: CriticOptimizerOptions = rlOptimizerOptions(LearnRate=5e-3)

추가적인 에이전트 데이터를 저장하기 위한 옵션으로, 다음 필드를 포함하는 구조체로 지정됩니다.

  • Optimizer

  • PolicyState

다음 방법 중 하나를 사용하여 agent 객체를 저장할 수 있습니다.

  • save 명령을 사용합니다.

  • rlTrainingOptions 객체에 saveAgentCriteriasaveAgentValue를 지정합니다.

  • FileLogger 객체 내에 적절한 기록 함수를 지정합니다.

위 방법을 사용하여 에이전트를 저장할 경우, InfoToSave 구조체의 필드 값에 따라 해당 데이터를 에이전트와 함께 저장할지 여부가 결정됩니다. 예를 들어, PolicyState 필드를 true로 설정하면 정책 상태가 에이전트와 함께 저장됩니다.

InfoToSave 속성을 수정하는 것은 agent options 객체를 만든 후에만 가능합니다.

예: options.InfoToSave.Optimizer=true

크리틱 최적화 함수를 저장하기 위한 옵션으로, 논리값으로 지정됩니다. 예를 들어, Optimizer 필드를 false로 설정하면, (에이전트의 숨겨진 속성이며 내부 상태를 가질 수 있는) 크리틱 최적화 함수가 에이전트와 함께 저장되지 않으므로 디스크 공간과 메모리가 절약됩니다. 그러나 최적화 함수에 내부 상태가 포함되어 있다면, 저장된 에이전트의 상태가 원래 에이전트의 상태와 동일하지 않게 됩니다.

예: true

탐색적 정책의 상태를 저장하기 위한 옵션으로, 논리값으로 지정됩니다. PolicyState 필드를 false로 설정하면, (숨겨진 에이전트 속성인) 탐색적 정책의 상태가 에이전트와 함께 저장되지 않습니다. 이 경우 저장된 에이전트의 상태는 원래 에이전트의 상태와 동일하지 않습니다.

예: true

객체 함수

rlQAgentQ-러닝 강화 학습 에이전트

예제

모두 축소

에이전트 샘플 시간을 지정하는 rlQAgentOptions 객체를 만듭니다.

opt = rlQAgentOptions(SampleTime=0.5)
opt = 
  rlQAgentOptions with properties:

                  SampleTime: 0.5000
              DiscountFactor: 0.9900
    EpsilonGreedyExploration: [1×1 rl.option.EpsilonGreedyExploration]
      CriticOptimizerOptions: [1×1 rl.option.rlOptimizerOptions]
                  InfoToSave: [1×1 struct]

점 표기법을 사용하여 옵션을 수정할 수 있습니다. 예를 들어, 에이전트 감가 인자를 0.95로 설정합니다.

opt.DiscountFactor = 0.95;

버전 내역

R2019a에 개발됨