trainer_type - 학습에 사용할 강화학습 기법 (기본값=ppo) - ppo, sac, poca 설정 가능
batch_size - 네트워크를 한번 학습할 때 몇개의 데이터를 이용할 것인가? - 일반적으로 continuous action 알고리즘 값을 크게 설정 (128 ~ 2048) - Discreate action 알고리즘은 값을 작게 설정 (32~512)
buffer_size - 네트워크 학습하기 위해 저장하는 전체 데이터의 수 (2048~409600) - buffer_size 클수록 안정적인 학습 수행 가능하지만 많은 데이터를 사용하므로 큰 메모리를 차지하게 된다.
learning_rate - 기본값 = 3e-4 (일반적으로 1e-5 ~ 1e3으로 설정한다) - 학습을 위한 초기 학습률. - 값이 너무 크면 학습이 최적으로 수렴되지 못하고 값이 너무 작으면 시간이 오래 소요된다. - 학습이 불안정하거나 보상이 지속적으로 증가하지 않는 경우 일반적으로 감소시킨다.
learning_rate_schedule - 기본값 = linear (PPO), constant (SAC) - 시간이 변함에 따라 learning rate를 어떻게 변경할지 결정. - PPO의 경우 max step까지 학습률을 감소시키는 경우에 더 안정적으로 학습이 수렴. - SAC의 경우 전체 학습과정 동안 학습률을 유지하여 자연스럽게 큐 함수값이 수렴할때까지 학습.
Hyperparameters_PPO:
beta - 기본값 = 5e-3 (일반적으로 1e-4 ~ 1e-2 설정) - 값이 높을수록 랜덤 행동을 더 많이 함 (=많은 탐험을 수행)
epsilon - 기본값 = 0.2 (일반적으로 0.1 ~ 0.3 설정) - 학습을 얼마나 빠르게 할지 결정 - 값이 낮을수록 안정적이지만 느리게 학습
lambd - 기본값 - 0.95 (일반적으로 0.9 ~ 0.95 설정) - Generalized Advantage Estimate의 Regularization 파라미터 (해당 값이 작으면 현재 추정한 가치에 더욱 의존하며 반대의 경우 환경을 통해 받은 실제 보상에 의존한다. 적절하게 설정해야 안정적인 학습이 가능하다)
num_epoch
- 기본값 = 3 (일반적으로 3-10으로 설정) - Epoch: buffer의 모든 data를 batch로 학습 수행 1회 = 1 epoch. - 값이 클수록 안정적이지만 느린 학습 수행.
Network Settings_Deep Learning:
normalize - Vector observation 입력 데이터를 정규화할지 결정. - 복잡하고 연속적인 문제의 경우 normalization이 도움이 될 수 있지만 간단하고 이산적인 문제에는 성능이 저할될 수 있음.
hidden_units - 인공신경망의 각 층에서 사용할 노드의 개수를 결정.
num_layers - 인공신경망을 몇 층으로 사용할지 구조를 결정.
vis_encode_type - Visual observation 입력을 인코딩할 딥러닝 모델 결정. - 기본값: simple. - nature_cnn, resnet, match3, fully connected 등 설정 가능.
Reward_signals:
strength - 환경에서 제공하는 보상에 strength를 곱해서 보상의 범위 조저리. - 일반적으로 1로 설정.
gamma - 감마율로 미래에 받을 보상을 얼마나 고려할지 결정. - 값이 높을수록 미래에 받을 것으로 에측되는 보상의 비율을 높게 결정. - 일반적으로 0.8 ~ 0.995 정도의 값으로 설정.
Hyperparameters:
keep_checkpoints - 기본값 = 5 - 유지할 모델 체크포인트의 최대 숫자 → 해당 숫자를 넘어서 체크 포인트가 저장되는 경우 가장 오래된 것을 삭제하고 추가
max_steps - 기본값 = 500000 (일반적으로 5e5 ~ 1e7로 설정) - 학습 과정을 끝내기 전까지 몇 스텝 동안 진행할지 결정.
time_horizon - 기본값 = 64 (일반적으로 32 ~ 2048로 설정) - Buffer에 데이터를 저장하기 전에 몇 스탭동안 데이터를 수집할지 결정. - 자주 보상을 받는 환경에서는 낮게 설정하는 것이 좋음. - 행동의 sequence를 다 포함할 수 있을 만큼 크게 설정하는 것이 좋음.
summary_freq - 기본값 = 50000, 몇 스탭마다 한번씩 학습 통계를 기록할지 결정한다.