반응형

핵심 정리

DQN의 Experience Replay는 에이전트가 경험한 state, action, reward, next state 묶음을 replay buffer에 저장해 두고, 학습할 때 무작위로 다시 꺼내 쓰는 방법입니다. 연속된 경험의 상관관계를 줄이고 같은 경험을 여러 번 활용하는 데 목적이 있습니다.

  • 강화학습 데이터는 시간 순서대로 이어져 있어서 바로 학습하면 인접 샘플끼리 상관이 강할 수 있습니다.
  • Replay buffer는 이전 경험을 저장해 두는 메모리 역할을 합니다.
  • 학습 시에는 buffer에서 mini-batch를 무작위로 뽑아 DQN을 업데이트합니다.
  • 무작위 샘플링은 특정 에피소드나 최근 상태에만 과하게 맞는 문제를 줄이는 데 도움이 됩니다.
  • TD error와 target Q-value를 계산할 때도 저장된 경험 묶음이 학습 샘플이 됩니다.

Experience Replay의 핵심은 경험을 에피소드 순서 그대로만 쓰지 않고 섞어서 다시 학습한다는 점입니다. DQN이 Q-Learning과 신경망을 결합한다는 배경까지 같이 보면 replay buffer가 왜 필요한지 더 잘 보입니다.

이어서 볼 글

 

여기보고 공부중.. 전체적으로 매우 쉽게 잘 풀어서 설명된듯하다.

Experience Replay

이 개념이 알듯말듯하다..

에피소드안에서만 셔플하는지 막무가내로 글로벌로 셔플하는지 등..

>> 이부분은 나중에 확인해보니 에피소드를 떠나서 막무가내로 셔플한다고 보면 된다.

그것도 그렇고 셔플하지 않으면 문제라고 하는데 이것도 잘 이해가 안된다.

replay buffer는 또 뭐였지??

음.. 위의 그림을 봐도 여전히 모르겠다.

어떤단위로 어떻게 셔플하는지 감이 안와~

reducing correlation between experiences

음.. 이거는 좀 감이 오는거 같기도 하다.. 이게 에피소드 기반이다보니까..

특정 state는 거의 방문하지 않는걸로 인해서 오는 학습손해(?)가 있겠네..

이건 그러면 일반적인 딥러닝과는 좀 다른 강화학습의 특징으로 봐야하겠네..

여기에도

DNN is easily overfitting current episodes. Once DNN is overfitted, it’s hard to produce various experiences.

위처럼 설명이 되어 있는데.. 헷갈린다.. 한번 오버피팅되면 왜 못빠져나오는지.. 그게 DNN의 특징인지 DQN의 특징인지..

허허.. 이부분도 전혀모르겠네..

TD Error 부분은 간신히 이해가 갈것도 같은데.. 외쪽텀인 정답에 해당하는 Q_target을 어떻게 구하는건지 모르겠다.오른쪽텀인 current prediected Q-val은 뭐 그냥 NN의 아웃풋이니까 트리비얼하고..

그리고 이걸 값자기 gradient에다가 곱하는데 왜 곱하는지 전혀모르겠네 ㅋㅋ

에러에다가 gradient를 곱하면 change가 되는건가?

반응형

+ Recent posts