이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
rlDQNAgentOptions
설명
rlDQNAgentOptions
객체를 사용하여 DQN(심층 Q-신경망) 에이전트에 대한 옵션을 지정합니다. DQN 에이전트를 만들려면 rlDQNAgent
를 사용하십시오.
자세한 내용은 DQN(심층 Q-신경망) 에이전트 항목을 참조하십시오.
다양한 유형의 강화 학습 에이전트에 대한 자세한 내용은 강화 학습 에이전트 항목을 참조하십시오.
생성
설명
는 전부 디폴트 설정을 사용하여 DQN 에이전트를 만들 때 인수로 사용할 options 객체를 만듭니다. 점 표기법을 사용하여 객체 속성을 수정할 수 있습니다.opt
= rlDQNAgentOptions
속성
UseDoubleDQN
— 더블 DQN을 사용할지 여부를 지정하는 플래그
true (디폴트 값) | false
가치 함수 타깃 업데이트에 더블 DQN을 사용할지 여부를 지정하는 플래그로, 논리값으로 지정됩니다. 대부분의 응용 사례에서는 UseDoubleDQN
을 "on"
으로 설정하십시오. 자세한 내용은 DQN(심층 Q-신경망) 에이전트 항목을 참조하십시오.
EpsilonGreedyExploration
— 엡실론-그리디 탐색에 대한 옵션
EpsilonGreedyExploration
객체
엡실론-그리디 탐색에 대한 옵션으로, 다음 속성을 갖는 EpsilonGreedyExploration
객체로 지정됩니다.
속성 | 설명 | 디폴트 값 |
---|---|---|
Epsilon | 행동을 무작위로 선택하거나 상태-행동 가치 함수를 최대화하는 행동을 선택하기 위한 확률 임계값입니다. Epsilon 값이 더 크다는 것은 에이전트가 더 높은 비율로 행동 공간을 무작위로 탐색한다는 의미입니다. | 1 |
EpsilonMin | Epsilon 의 최솟값 | 0.01 |
EpsilonDecay | 감쇠율 | 0.0050 |
각 훈련 시간 스텝 종료 시 Epsilon
이 EpsilonMin
보다 크면 다음 식을 사용하여 업데이트됩니다.
Epsilon = Epsilon*(1-EpsilonDecay)
Epsilon
은 한 에피소드의 끝과 다음 에피소드의 시작 사이에 보존됩니다. 따라서 EpsilonMin
에 도달할 때까지 여러 에피소드에 걸쳐 계속 균일하게 감소합니다.
에이전트가 국소 최적해에 너무 빠르게 수렴할 경우 Epsilon
을 늘려서 에이전트 탐색을 촉진할 수 있습니다.
탐색 옵션을 지정하려면 rlDQNAgentOptions
객체 opt
를 만든 후에 점 표기법을 사용하십시오. 예를 들어, 엡실론 값을 0.9
로 설정합니다.
opt.EpsilonGreedyExploration.Epsilon = 0.9;
CriticOptimizerOptions
— 크리틱 최적화 함수 옵션
rlOptimizerOptions
객체
크리틱 최적화 함수 옵션으로, rlOptimizerOptions
객체로 지정됩니다. 이 옵션을 사용하면 학습률, 기울기 임계값뿐 아니라 최적화 함수 알고리즘과 그 파라미터 같은 크리틱 근사기의 훈련 파라미터를 지정할 수 있습니다. 자세한 내용은 rlOptimizerOptions
항목과 rlOptimizer
항목을 참조하십시오.
BatchDataRegularizerOptions
— 배치 데이터 정규화 함수 옵션
[]
(디폴트 값) | rlConservativeQLearningOptions
객체
배치 데이터 정규화 함수 옵션으로, rlConservativeQLearningOptions
객체로 지정됩니다. 이러한 옵션은 기존 데이터로부터 에이전트를 오프라인으로 훈련시키는 데 사용됩니다. 이 옵션을 비워 두면 디폴트 rlConservativeQLearningOptions
옵션 객체가 사용됩니다(필요한 경우).
자세한 내용은 rlConservativeQLearningOptions
항목을 참조하십시오.
예: opt.BatchDataRegularizerOptions = rlConservativeQLearningOptions(MinQValueWeight=5)
TargetSmoothFactor
— 타깃 크리틱 업데이트를 위한 평활화 인자
1e-3
(디폴트 값) | 1보다 작거나 같은 양의 스칼라
타깃 크리틱 업데이트를 위한 평활화 인자로, 1보다 작거나 같은 양의 스칼라로 지정됩니다. 자세한 내용은 타깃 업데이트 방법 항목을 참조하십시오.
TargetUpdateFrequency
— 다음 타깃 크리틱 업데이트로 넘어가기 전의 스텝 수
1
(디폴트 값) | 양의 정수
다음 타깃 크리틱 업데이트로 넘어가기 전의 스텝 수로, 양의 정수로 지정됩니다. 자세한 내용은 타깃 업데이트 방법 항목을 참조하십시오.
ResetExperienceBufferBeforeTraining
— 경험 버퍼를 지우기 위한 옵션
false
(디폴트 값) | true
훈련 전 경험 버퍼를 지우기 위한 옵션으로, 논리값으로 지정됩니다.
SequenceLength
— RNN을 사용할 때의 최대 배치-훈련 궤적 길이
1
(디폴트 값) | 양의 정수
크리틱에 순환 신경망을 사용할 때의 최대 배치-훈련 궤적 길이로, 양의 정수로 지정됩니다. 이 값은 크리틱에 순환 신경망을 사용하는 경우 1
보다 커야 하고, 그 외에는 1
이어야 합니다.
MiniBatchSize
— 무작위 경험 미니 배치의 크기
64
(디폴트 값) | 양의 정수
무작위 경험 미니 배치의 크기로, 양의 정수로 지정됩니다. 각 훈련 에피소드 중에 에이전트는 크리틱 속성 업데이트를 위한 기울기를 계산할 때 경험 버퍼에서 무작위로 경험을 샘플링합니다. 대규모 미니 배치를 사용하면 기울기 계산 시 분산을 줄일 수 있지만 계산 비용이 늘어납니다.
크리틱에 순환 신경망을 사용할 경우 MiniBatchSize
는 배치에 포함되는 경험 궤적의 수입니다. 여기서 각 궤적의 길이는 SequenceLength
와 동일합니다.
NumStepsToLookAhead
— 정책 값 추정에 사용되는 미래 보상 수
1
(디폴트 값) | 양의 정수
정책 값 추정에 사용되는 미래 보상 수로, 양의 정수로 지정됩니다. 자세한 내용은 [1]의 7장을 참조하십시오.
크리틱에 순환 신경망을 사용할 경우 N-스텝 Q 러닝은 지원되지 않습니다. 이 경우 NumStepsToLookAhead
는 1
이어야 합니다.
ExperienceBufferLength
— 경험 버퍼 크기
10000
(디폴트 값) | 양의 정수
경험 버퍼 크기로, 양의 정수로 지정됩니다. 훈련 중에 에이전트는 버퍼에서 무작위로 샘플링된 경험의 미니 배치를 사용하여 업데이트를 계산합니다.
SampleTime
— 에이전트의 샘플 시간
1
(디폴트 값) | 양의 스칼라 | -1
에이전트의 샘플 시간으로, 양의 스칼라 또는 -1
로 지정됩니다. 이 파라미터를 -1
로 설정하면 이벤트 기반 시뮬레이션을 실행할 수 있습니다.
Simulink® 환경에서는 에이전트가 시뮬레이션 시간의 매 SampleTime
초마다 실행되도록 지정된 RL Agent 블록입니다. SampleTime
이 -1
이면 이 블록은 부모 서브시스템에서 샘플 시간을 상속합니다.
MATLAB® 환경에서는 환경이 진행될 때마다 에이전트가 실행됩니다. 이 경우 SampleTime
은 sim
또는 train
에 의해 반환되는 출력 경험의 연속된 요소 사이의 시간 간격입니다. SampleTime
이 -1
인 경우 반환되는 출력 경험의 연속된 요소 사이의 시간 간격은 에이전트 실행을 트리거하는 이벤트의 발생 시점을 반영합니다.
DiscountFactor
— 감가 인자
0.99
(디폴트 값) | 1보다 작거나 같은 양의 스칼라
훈련 중에 미래 보상에 적용할 감가 인자로, 1보다 작거나 같은 양의 스칼라로 지정됩니다.
객체 함수
rlDQNAgent | Deep Q-network (DQN) reinforcement learning agent |
예제
DQN Agent Options 객체 만들기
에이전트의 미니 배치 크기를 지정하는 rlDQNAgentOptions
객체를 만듭니다.
opt = rlDQNAgentOptions(MiniBatchSize=48)
opt = rlDQNAgentOptions with properties: UseDoubleDQN: 1 EpsilonGreedyExploration: [1x1 rl.option.EpsilonGreedyExploration] CriticOptimizerOptions: [1x1 rl.option.rlOptimizerOptions] BatchDataRegularizerOptions: [] TargetSmoothFactor: 1.0000e-03 TargetUpdateFrequency: 1 ResetExperienceBufferBeforeTraining: 0 SequenceLength: 1 MiniBatchSize: 48 NumStepsToLookAhead: 1 ExperienceBufferLength: 10000 SampleTime: 1 DiscountFactor: 0.9900 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.
버전 내역
R2019a에 개발됨R2022a: ResetExperienceBufferBeforeTraining
속성의 디폴트 값이 변경됨
ResetExperienceBufferBeforeTraining
의 디폴트 값이 true
에서 false
로 변경되었습니다.
새 DQN 에이전트를 만들 때 훈련 전에 경험 버퍼를 지우려면 ResetExperienceBufferBeforeTraining
을 true
로 지정해야 합니다. 예를 들어, 훈련 전에 점 표기법을 사용하여 이 속성을 설정합니다.
agent.AgentOptions.ResetExperienceBufferBeforeTraining = true;
또는 rlDQNAgentOptions
객체에서 이 속성을 true
로 설정하고 이 객체를 사용하여 DQN 에이전트를 만들 수 있습니다.
R2020a: DQN 에이전트에 대한 타깃 업데이트 방법 설정이 변경됨
DQN 에이전트에 대한 타깃 업데이트 방법 설정이 변경되었습니다. 다음과 같이 변경되었으며, 이에 따라 코드 업데이트가 필요합니다.
TargetUpdateMethod
옵션이 제거되었습니다. 이제 DQN 에이전트가TargetUpdateFrequency
및TargetSmoothFactor
옵션 값에 따라 타깃 업데이트 방법을 결정합니다.TargetUpdateFrequency
의 디폴트 값이4
에서1
로 변경되었습니다.
다음 타깃 업데이트 방법 중 하나를 사용하려면 TargetUpdateFrequency
속성과 TargetSmoothFactor
속성을 표시된 대로 설정하십시오.
업데이트 방법 | TargetUpdateFrequency | TargetSmoothFactor |
---|---|---|
평활화 | 1 | 1 보다 작음 |
주기적 | 1 보다 큼 | 1 |
주기적 평활화(R2020a에 새로 추가된 방법) | 1 보다 큼 | 1 보다 작음 |
TargetSmoothFactor
값 0.001
을 사용하여 평활화 업데이트를 수행하는 디폴트 타깃 업데이트 구성은 그대로 유지됩니다.
다음 표에는 rlDQNAgentOptions
의 일반적인 사용법과 새 옵션 구성을 사용하도록 코드를 업데이트하는 방법이 나와 있습니다.
권장되지 않음 | 권장 |
---|---|
opt = rlDQNAgentOptions('TargetUpdateMethod',"smoothing"); | opt = rlDQNAgentOptions; |
opt = rlDQNAgentOptions('TargetUpdateMethod',"periodic"); | opt = rlDQNAgentOptions; opt.TargetUpdateFrequency = 4; opt.TargetSmoothFactor = 1; |
opt = rlDQNAgentOptions; opt.TargetUpdateMethod = "periodic"; opt.TargetUpdateFrequency = 5; | opt = rlDQNAgentOptions; opt.TargetUpdateFrequency = 5; opt.TargetSmoothFactor = 1; |
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)