게시글
질문&답변
2024.05.14
(PPO 실습 2) total_loss 구하는 코드에서 action entropy 는 어떻게 계산된 것인지 궁금합니다.
용곤님 안녕하세요! 말씀해주신대로 PPO에서 action entropy값을 손실함수로 사용할 수 있습니다. 다만 해당 값은 선택적인 부분이라고 생각하고, 강의 환경들에서 clipped surrogate objective 값만 가지고 학습이 잘 되어서 생략하였습니다! 감사합니다.
- 0
- 1
- 170
질문&답변
2023.01.02
DQN 학습 및 저장 모델 불러오기 속도 문의
안녕하세요!수강해주셔서 감사합니다!설명해주신 내용으로는 정확한 원인을 파악하기는 어려울 것 같은데요, 혹시 train/test 영상 캡쳐가 가능하다면 도움이 될 것 같습니다!말씀해주신 내용을 토대로 의심이 가는 부분이 있다면, DQN 알고리즘은 학습을 진행할 때 train_start_step이 지나고 난 후 부터 매 스텝마다 train_model 함수를 통해 네트워크 최적화를 진행하는데요. 이때 이미지 데이터를 통해 학습을 진행하기 때문에 만약 GPU가 없는 머신이라면 test 보다 느려질 수 있을 것 같습니다. 그게 아니라면 학습을 진행할 때 프레임이 끊겨서 보이는데요, 이에 따라 느리게 보일 수 있을 것 같습니다.감사합니다 (_ _)
- 1
- 1
- 335
질문&답변
2022.10.12
A2C 알고리즘을 드론 환경에 적용하려면
원준님 안녕하세요! 그리드 월드에서 사용한 A2C를 드론 환경에 적용해보시려고 하는 것 같은데요.현재 그리드 월드는 discrete action 환경이고 드론 환경은 continuous action 환경입니다.따라서 그리드 월드 환경에서 사용한 A2C는 discrete action 기반으로 구현돼있어, 바로 continuous action 환경인 드론에 바로 적용하기는 어려운 상황인데요. 드론에 A2C 알고리즘을 적용하기 위해서 두가지 방법이 있을 것 같습니다.첫번째 방법은 정석대로 기존에 discrete action 기반의 A2C를 continuous action 기반으로 수정하는 것이 있습니다. 이 방법을 적용하기 위해서는 Actor 네트워크에서 확률을 뽑는 것이 아니라, 평균과 표준편차를 구해 가우시안 샘플링을 해야 합니다. 이와 관련해서 학습 코드도 수정해야 하구요. (참고)두번째 방법은 코드 수정을 최소화하기 위해 드론 환경을 (-1, 0, 0), (0, -1, 0), (0, 0, -1), (1, 0, 0), (0, 1, 0), (0, 0, 1) 이렇게 6개의 discrete action 으로 구성돼있다고 간주하는 것입니다. 이 방법을 적용하기 위해서 action space를 6으로 정의하고 action 을 후처리하여 환경에 넣어주는 코드만 작성하면 될 것 같습니다.두번째 방법을 적용하기 위해 올려주신 코드에서 아래와 같이 수정해주면 될 것 같습니다. (수정이 필요한 부분만 작성하였습니다.)... ... # 파라미터 값 세팅 부분 action_size = 6 ... ... # Main 함수 부분 state = dec.obs[0] action = agent.get_action(state, train_mode) action_support = np.concatenate([-np.eye(action_size//2) , np.eye(action_size//2)], axis=0) real_action = action_support[action[0]] action_tuple = ActionTuple() action_tuple.add_continuous(real_action) env.set_actions(behavior_name, action_tuple) env.step() dec, term = env.get_steps(behavior_name) done = len(term.agent_id) > 0 reward = term.reward if done else dec.reward next_state = term.obs[0] if done else dec.obs[0] score += reward[0] if train_mode: # 학습 수행 actor_loss, critic_loss = agent.train_model(state, action[0], [reward], next_state, [done]) actor_losses.append(actor_loss) critic_losses.append(critic_loss) ... ... 추가로 궁금하신게 있다면 편하게 물어봐주세요.감사합니다 :)
- 1
- 1
- 714
질문&답변
2022.08.31
스크립트 실행 중 파일 경로 관련 오류가 떠서 질문드립니다
안녕하세요!test_mode의 time_scale 설정은 잘 해주신것 같은데요~혹시 TEST START 는 출력되는지 궁금합니다~! 만약 이 문구도 출력이 되지 않았다면 train_mode가 True 임을 의심해봐야할 거 같은데요. 그럼에도 불구하고 train_mode가 False인데 같은 현상이 계속 일어난다면 time.sleep을 이용해야할 것 같습니다...!
- 0
- 2
- 376
질문&답변
2022.08.27
학습된 모델로 게임 저장하기
안녕하세요!학습된 모델이 플레이 하는 영상을 저장하는 것은 따로 ml-agents의 기능을 이용하는 것이 아니고, 별도의 녹화 툴을 이용해서 진행하였습니다.감사합니다 :)
- 1
- 1
- 175