안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 'Master.M'입니다.
오늘 알아볼 내용은 '연속적인 A2C'입니다.
저의 경우 2016년 알파고와 이세돌의 바둑 대결로 인해 인공지능에 관심이 많이 생기기 시작했고 이후 구글의 딥마인드 팀에서 발표한 DQN논문 특히 아타리사의 '브레이트 아웃' 게임을 하는 것을 보고 많은 감명을 받아 '강화 학습'이라는 학문에 많은 관심을 갖게 되었습니다. 그래서 오늘부터는 강화 학습에 대해 차분히 정리를 해보도록 하겠습니다.
저는 '파이썬과 케라스로 배우는 강화 학습'이라는 책을 읽으면서 독학을 하였습니다. 이 글은 이 책을 참고하여 제작합니다.(광고 아닙니다!!)
저번 시간에 저희는 이산적인 A2C에 대해 알아보았습니다. 혹시 못 보신 분들은 아래 링크를 참고하시기 바랍니다. 우리의 일상생활에서는 이산적인 상황보다, 연속적인 상황이 많습니다. 예를 들어 "자동차의 핸들을 시계방향으로 20도 회전한다."와 같이 말입니다.
https://codingopera.tistory.com/30
이러한 연속적인 상황을 만들어주려면 첫 번째로 이산적인 행동을 여러 개 만들어주면 됩니다. 이론상은 가능하지만 이 방법은 비효율적입니다. 그 이유는 행동이 많아지기 때문입니다. 자동차의 핸들을 시계방향으로 20도 꺾는 것과 20.1도 꺾는 것은 실제로는 별 차이가 없지만, 에이전트는 전혀 다른 행동으로 인식하기 때문에 연산량이 많아지는 것입니다. 두 번째로는 행동을 연속적인 분포로 만드는 것입니다. 여기서는 평균과 표준편차를 이용하여 연속적 확률 분포를 정책으로 만드는데, 평균은 얼마나 밀어야 하는지를, 표준편차는 얼마나 탐험할 것인지를 결정합니다. 이러한 정규분포 형태의 정책을 표현하려면 정책이 별개로 있어야 하는데, 때문에 DQN이 아닌 A2C 알고리즘이 적합합니다.
정리를 하자면
<연속적인 행동>
1. 이산적인 행동을 여러개 만들어준다.
- 행동의 수가 많아 연산량이 많아진다.
- 비효율적이다.
2. 행동을 연속적인 분포로 만들어준다.
- 평균을 얼마나 행동해야 하는지
- 표준편차는 얼마나 탐험할 것인지를 결정한다.
지금 까지 저희는 '연속적인 A2C'에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다. 궁금한 사항 혹은 앞으로 다루어 주었으면 좋을 주제가 있으시면 댓글 남겨주시면 감사하겠습니다. 저는 '코딩 오페라'의 'Master.M'이었습니다. 감사합니다.
'강화학습' 카테고리의 다른 글
12. [강화학습] A3C (0) | 2022.05.23 |
---|---|
10. [강화학습] A2C (0) | 2022.04.26 |
9. [강화학습] REINFORCE (0) | 2022.04.26 |
8. [강화학습] DQN(카트폴) (0) | 2022.04.05 |
7. [강화학습] 딥살사(Deep SARSA) (0) | 2022.04.04 |