Main Content

rlTD3AgentOptions

TD3 에이전트에 대한 옵션

R2020a 이후

설명

rlTD3AgentOptions 객체를 사용하여 TD3(Twin-Delayed Deep Deterministic: 트윈 지연 심층 결정적) 정책 경사법 에이전트에 대한 옵션을 지정합니다. TD3 에이전트를 만들려면 rlTD3Agent를 사용하십시오.

자세한 내용은 TD3(Twin-Delayed Deep Deterministic: 트윈 지연 심층 결정적) 정책 경사법 에이전트 항목을 참조하십시오.

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

생성

설명

opt = rlTD3AgentOptions는 전부 디폴트 옵션을 사용하여 TD3 에이전트를 만들 때 인수로 사용할 options 객체를 만듭니다. 점 표기법을 사용하여 객체 속성을 수정할 수 있습니다.

예제

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

속성

모두 확장

잡음 모델 옵션으로, GaussianActionNoise 객체 또는 OrnsteinUhlenbeckActionNoise 객체로 지정됩니다. 잡음 모델에 대한 자세한 내용은 잡음 모델 항목을 참조하십시오.

복수의 행동을 갖는 에이전트의 경우 행동의 범위와 단위가 서로 다르면 각 행동에 서로 다른 잡음 모델 파라미터가 필요할 수 있습니다. 행동들이 유사한 범위와 단위를 가질 경우, 모든 행동의 잡음 파라미터를 동일한 값으로 설정할 수 있습니다.

예를 들어, 두 개의 행동을 갖는 에이전트에 대해 각 행동의 표준편차는 서로 다른 값으로 설정하고 두 표준편차의 감쇠율은 동일하게 설정합니다.

opt = rlTD3AgentOptions;
opt.ExplorationModel.StandardDeviation = [0.1 0.2];
opt.ExplorationModel.StandardDeviationDecayRate = 1e-4;

Ornstein-Uhlenbeck 행동 잡음을 사용하려면 먼저 디폴트 OrnsteinUhlenbeckActionNoise 객체를 만듭니다. 그런 다음 점 표기법을 사용하여 디폴트가 아닌 모델 속성을 지정합니다.

opt = rlTD3AgentOptions;
opt.ExplorationModel = rl.option.OrnsteinUhlenbeckActionNoise;
opt.ExplorationModel.StandardDeviation = 0.05;

타깃 평활화 잡음 모델 옵션으로, GaussianActionNoise 객체로 지정됩니다. 이 모델은 정책이 Q-값 추정치가 높은 행동을 악용하도록 돕습니다. 잡음 모델에 대한 자세한 내용은 잡음 모델 항목을 참조하십시오.

복수의 행동을 갖는 에이전트의 경우 행동의 범위와 단위가 서로 다르면 각 행동에 서로 다른 평활화 잡음 모델 파라미터가 필요할 수 있습니다. 행동들이 유사한 범위와 단위를 가질 경우, 모든 행동의 잡음 파라미터를 동일한 값으로 설정할 수 있습니다.

예를 들어, 두 개의 행동을 갖는 에이전트에 대해 각 행동의 표준편차는 서로 다른 값으로 설정하고 두 표준편차의 감쇠율은 동일하게 설정합니다.

opt = rlTD3AgentOptions;
opt.TargetPolicySmoothModel.StandardDeviation = [0.1 0.2];
opt.TargetPolicySmoothModel.StandardDeviationDecayRate = 1e-4;

다음 정책 업데이트로 넘어가기 전의 스텝 수로, 양의 정수로 지정됩니다.

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

예: ActorOptimizerOptions = rlOptimizerOptions(LearnRate=2e-3)

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

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

배치 데이터 정규화 함수 옵션으로, rlBehaviorCloningRegularizerOptions 객체로 지정됩니다. 이러한 옵션은 일반적으로 기존 데이터에서부터 에이전트를 오프라인으로 훈련시키는 데 사용됩니다. 이 옵션을 비워 두면 정규화 함수가 사용되지 않습니다.

자세한 내용은 rlBehaviorCloningRegularizerOptions 항목을 참조하십시오.

예: BatchDataRegularizerOptions = rlBehaviorCloningRegularizerOptions(BehaviorCloningRegularizerWeight=10)

타깃 액터 및 크리틱 업데이트를 위한 평활화 인자로, 1보다 작거나 같은 양의 스칼라로 지정됩니다. 자세한 내용은 타깃 업데이트 방법 항목을 참조하십시오.

예: TargetSmoothFactor=1e-2

다음 타깃 액터 및 크리틱 업데이트로 넘어가기 전의 스텝 수로, 양의 정수로 지정됩니다. 자세한 내용은 타깃 업데이트 방법 항목을 참조하십시오.

예: TargetUpdateFrequency=5

훈련 전 경험 버퍼를 지우기 위한 옵션으로, 논리값으로 지정됩니다.

예: ResetExperienceBufferBeforeTraining=true

순환 신경망을 사용할 때의 최대 배치-훈련 궤적 길이로, 양의 정수로 지정됩니다. 이 값은 순환 신경망을 사용하는 경우 1보다 커야 하고, 그 외에는 1이어야 합니다.

예: SequenceLength=4

무작위 경험 미니 배치의 크기로, 양의 정수로 지정됩니다. 각 훈련 에피소드 중에 에이전트는 크리틱 속성 업데이트를 위한 기울기를 계산할 때 경험 버퍼에서 무작위로 경험을 샘플링합니다. 대규모 미니 배치를 사용하면 기울기 계산 시 분산을 줄일 수 있지만 계산 노력이 늘어납니다.

예: MiniBatchSize=128

정책 값 추정에 사용되는 미래 보상 수로, 양의 정수로 지정됩니다. 구체적으로 설명하면, NumStepsToLookAhead가 N과 같은 경우 주어진 스텝에서 정책의 타깃 값은 그다음 N개 스텝의 보상에 N번째 보상의 원인이 된 상태에 대한 감가 추정값을 더하여 계산됩니다. 이 타깃을 N-스텝 리턴값이라고도 합니다.

참고

크리틱에 순환 신경망을 사용하는 경우 NumStepsToLookAhead1이어야 합니다.

자세한 내용은 [1]의 7장을 참조하십시오.

예: NumStepsToLookAhead=3

경험 버퍼 크기로, 양의 정수로 지정됩니다. 훈련 중에 에이전트는 버퍼에서 무작위로 샘플링된 경험 미니 배치를 사용하여 업데이트를 계산합니다.

예: ExperienceBufferLength=1e6

에이전트의 샘플 시간으로, 양의 스칼라 또는 -1로 지정됩니다. 이 파라미터를 -1로 설정하면 이벤트 기반 시뮬레이션을 실행할 수 있습니다.

Simulink® 환경에서는 에이전트가 시뮬레이션 시간의 매 SampleTime초마다 실행되도록 지정된 RL Agent 블록입니다. SampleTime-1이면 이 블록은 부모 서브시스템에서 샘플 시간을 상속합니다.

MATLAB® 환경에서는 환경이 진행될 때마다 에이전트가 실행됩니다. 이 경우 SampleTimesim 또는 train에 의해 반환되는 출력 경험의 연속된 요소 사이의 시간 간격입니다. SampleTime-1인 경우 반환되는 출력 경험의 연속된 요소 사이의 시간 간격은 에이전트 실행을 트리거하는 이벤트의 발생 시점을 반영합니다.

예: SampleTime=-1

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

예: DiscountFactor=0.9

객체 함수

rlTD3AgentTwin-delayed deep deterministic (TD3) policy gradient reinforcement learning agent

예제

모두 축소

미니 배치 크기를 지정하는 rlTD3AgentOptions 객체를 만듭니다.

opt = rlTD3AgentOptions(MiniBatchSize=48)
opt = 
  rlTD3AgentOptions with properties:

                             SampleTime: 1
                         DiscountFactor: 0.9900
                       ExplorationModel: [1x1 rl.option.GaussianActionNoise]
                 ExperienceBufferLength: 10000
                          MiniBatchSize: 48
                         SequenceLength: 1
                  ActorOptimizerOptions: [1x1 rl.option.rlOptimizerOptions]
                 CriticOptimizerOptions: [1x2 rl.option.rlOptimizerOptions]
                    NumStepsToLookAhead: 1
                  PolicyUpdateFrequency: 2
                TargetPolicySmoothModel: [1x1 rl.option.GaussianActionNoise]
                     TargetSmoothFactor: 0.0050
                  TargetUpdateFrequency: 2
            BatchDataRegularizerOptions: []
    ResetExperienceBufferBeforeTraining: 0
                             InfoToSave: [1x1 struct]

점 표기법을 사용하여 옵션을 수정할 수 있습니다. 예를 들어, 에이전트 샘플 시간을 0.5로 설정합니다.

opt.SampleTime = 0.5;

알고리즘

모두 확장

참고 문헌

[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.

버전 내역

R2020a에 개발됨

모두 확장