date: 2021-10-14 22:00:00
강화라는 개념을 처음 제시한 학자인 스키너의 실험(행동심리학)을 이해하면 강화학습이 무엇인지 알 수 있다.
1. 굶긴 쥐를 상자에 넣는다.
2. 쥐는 돌아다니다가 우연히 상자 안에 있는 지렛대를 누르게 된다.
3. 지렛대를 누르자 먹이가 나온다.
4. 지렛대를 누르는 행동과 먹이와의 상관관계를 모르는 쥐는 다시 돌아다닌다.
5. 그러다가 우연히 쥐가 다시 지렛대를 누르면 쥐는 이제 먹이와 지렛대 사이의 관계를 알게 되고 점점 지렛대를 자주 누르게 된다.(강화)
6. 이 과정을 반복하면서 쥐는 지렛대를 누르면 먹이(보상)를 먹을 수 있다는 것을 학습한다.
위 과정을 통해 쥐가 지렛대를 누르는 행동을 하게 되면 먹이이라는 보상을 받게 된다.
쥐는 지렛대를 눌렀을때 왜 먹이가 나오는건지 이해한것은 아니지만 지렛대를 밟을 때 마다 먹이가 나온다는것을 여러 시행착오(Trial and Error)를 통해 알게 되고 강화가 된다.
따라서 이해를 못하더라도 행동과 행동의 결과를 보상으로 연결할 수 있다.
에이전트(agent)가 여러 행동(action)을 통해 환경(environment)를 순차적으로 탐색하면서 얻는 보상(reward)들의 합을 최대화 하는 "최적 행동양식", 또는 "최적 정책"을 학습히는 것이다.
강화학습을 풀기위해서는 결국 컴퓨터 프로그래밍으로 알고리즘을 짜야 한다.
그런데 프로그램이 문제를 풀기위해서는 그 문제가 수학적으로 정의가 되어야 한다.
따라서 우리는 강화학습과 같은 순차적 행동 결정 문제에 대해서 MDP(Markov Decision Process)로 정의해서 알고리즘을 만들 수 있다.
다음 포스트에는 MDP 에 대해서 설명을 할 예정이다.
제가 올린 글에서 잘못된 부분이 있으면 제 메일로 연락주세요!
*Reference : 파이썬과 케라스로 배우는 강화학습
이승수의 저작물인 이 저작물은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.