안녕하세요, coding your life, '코딩 오페라'입니다. 오늘 알아볼 내용은 '강화 학습 개요'입니다.
저의 경우 2016년 알파고와 이세돌의 바둑 대결로 인해 인공지능에 관심이 많이 생기기 시작했고 이후 구글의 딥마인드 팀에서 발표한 DQN논문 특히 아타리사의 '브레이트 아웃' 게임을 하는 것을 보고 많은 감명을 받아 '강화 학습'이라는 학문에 많은 관심을 갖게 되었습니다. 그래서 오늘부터는 강화 학습에 대해 차분히 정리를 해보도록 하겠습니다.
저는 '파이썬과 케라스로 배우는 강화학습'이라는 책을 읽으면서 독학을 하였습니다. 이 글은 이 책을 참고하여 제작합니다.(광고 아닙니다!!)
1. 강화학습의 개념
강화학습의 기본적인 개념은 행동심리학에서 나왔습니다. 스키너는 쥐 실험을 통해 동물이 행동과 그 결과 사이의 관계를 학습한다는 것을 확인하여 '강화 이론(Reinforcement Theory)'을 만들었습니다. 즉 이전에 배우지 않았지만 직접 시도하면서 행동과 그 결과로 나타나는 좋은 보상 사이의 상관관계를 학습하는 것입니다.
흔히 강화학습을 통해 스스로 학습하는 컴퓨터를 에이전트(agent)라고 합니다. 이러한 에이전트는 위 그림과 같이 어떠한 환경에서 액션을 취하면서 보상을 받아 학습을 합니다.
2. 순차적 행동 결정 문제
강화학습은 순차적으로 결정을 내려야 하는 문제에 적합합니다. 이러한 '순차적 행동 결정 문제'는 아래와 같이 구성되어있습니다.
- 상태(state) : 에이전트가 현재 있는 상태를 의미합니다. 정적인 요소뿐만 아니라 동적인 요소(공의 속도, 가속도 등)도 이에 포함됩니다. '관찰'이라고 생각하면 됩니다.
- 행동(action) : 에이전트가 취할 수 있는 행동을 말합니다.
- 보상(reward) : 강화학습의 가장 핵심적인 요소로 에이전트가 학습할 수 이는 유일한 정보입니다. 보상으로 인해 에이전트는 자신의 행동들을 평가할 수 있습니다.
- 정책(policy) : 우리가 최종적으로 구해야 할 답이 정책입니다. 모든 상태에 대해 에이전트가 어떤 행동을 해야 하는지 정해놓은 것이 정책 입니다.
2016년 알파고는 강화학습 알고리즘을 기반으로 이세돌 9단을 상대로 이겼습니다. 그동안 바둑은 경우의 수가 무한대에 가까워 알고리즘을 개발하기가 어려웠는데 이 사건을 통해 상태가 아무리 많더라도 문제를 풀 수 있다는 것을 증명한 것입니다. 저는 이러한 강화 학습 알고리즘은 이제 모든 우리 생활에 적용 및 응용이 가능하다고 생각합니다. 때문에 앞으로 이 분야에 대해 열심히 배워볼 생각입니다. 여러분도 앞으로 저와 함께 강화 학습을 배워보시지요.
오늘은 강화학습의 개요에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다.현재 저는 인공지능 및 코딩관련 블로그, 유튜브와 오픈채팅방도 운영중인데, 링크를 아래 달아놨으니, 인공지능에 대해 서로 배우고 정보공유하고 싶으신 분들은 꼭 참여부탁드리겠습니다. 저는 여러분의 인생을 코딩해드릴 “coding your life” 코딩오페라입니다. 다음시간에 만나요 안녕!
코딩오페라 유튜브 채널
https://www.youtube.com/@codingopera9945
코딩오페라 인공지능, 코딩 오픈 카카오톡방
https://open.kakao.com/o/ggxse9sg
코딩오페라 카카오톡 오픈프로필
https://open.kakao.com/o/sH7qSH9d
'강화학습' 카테고리의 다른 글
6. [강화학습] 큐러닝(Q-learning) (0) | 2022.03.25 |
---|---|
5. [강화학습] 살사(SARSA) (0) | 2022.03.25 |
4. [강화학습] 몬테카를로 예측(Monte-Carlo Prediction) (0) | 2022.03.24 |
3. 강화학습 동적 프로그래밍(Dynamic Programming) (0) | 2022.03.24 |
2. 강화학습 MDP(Markov Decision Process) (0) | 2022.03.21 |