-
카테고리
-
세부 분야
딥러닝 · 머신러닝
-
해결 여부
미해결
강의 외 질문입니다. Env 내부 action에 대한 질문입니다.
22.03.01 16:19 작성 조회수 143
0
답변을 작성해보세요.
0
멀티코어
지식공유자2022.03.02
안녕하세요 김유석님.
김유석님 말씀대로 이 강의의 최종 목적은 자신만의 env를 만드는 것입니다. 자신만의 env는 본 강의에서 설명드리는 카트폴 예제와 같이 자신이 해결하고자 하는 문제에 적합한 동작을 하고 또한 동작을 설명하는 state, action, reward를 가지고 있는 프로그램입니다. 강화학습 알고리즘은 env에서 나오는 state를 가지고 정책인공신경망과 가치인공신경망을 학습합니다. env는 정책신경망에서는 나오는 action을 가지고 프로그램을 실행해서 그 결과에 따른 다음 state와 reward를 반환하는 방식입니다. 강화학습 알고리즘과 env가 이렇게 동작하는 것을 이해하는 것이 본 강의의 목적입니다.
김유석님이 질의하신 내용에 대해서는 정답은 없습니다. env 내부에서 특정 action에 대한 제한을 걸었을 때 좋은 성능을 얻을 수도 있습니다. 행동을 제한하는 방법은 다양합니다. 이 부분은 김유석님께서 방법론을 고민하셔야 할 것 같습니다. 하지만, 강화학습 알고리즘 기초 이론과 학습 과정에 따르면 특정 action에 대한 강제적인 제한을 두는 것 보다는 reward를 사용하는 방법이 좋을 것 같습니다. 내가 제한하고자 하는 행동에 보다 작은 reward를 주는 것이죠.
그리고 state에 대한 문제인데 env에서 state를 설계할 때 state는 환경을 설명하기 위한 충분한 정보를 가지고 있어야 합니다. 예를 들어 강화학습을 주식 시장에 적용하고자 할 때, env가 주식매매프로그램이고 state는 시가, 고가, 저가, 종가, 거래량 그리고 action은 매수(1), 매도(2), 대기(0) 이라 할 때 정상적인 학습이 되지 않을 것을 확인할 수 있습니다. 즉 프로그램에서 사용하는 state인 시가, 고가, 저가, 종가, 거래량이 주식매매 판단에 충분한 정보를 제공하지 못하기 때문입니다. 만약에 구리가격이 포스코 주가와 아주 밀접한 연관이 있다는 가정을 해보겠습니다.(이런면 좋겠죠^^) 이 상황에서는 state에 구리가격을 넣고 학습하면 학습이 정상적으로 이루어지고, 학습된 모델로 매매 프로그램을 실행하면 돈을 잘 벌 수 있겠죠. 이렇듯 state는 해결하고자하는 문제를 충분히 설명할 수 있는 변수를 사용해야 합니다.
강화학습을 실무에 적용할 때 PPO와 같은 강화학습 알고리즘을 직접 만들기 보다는 미리 개발되어 있는 패키지를 사용합니다. 저 같은 경우는 Stable Baselines3를 사용하고 있습니다. 참고하시기 바랍니다.
감사합니다.
답변 1