관리 메뉴

Fintecuriosity

[강화학습] 강화학습 완전 기본개념 본문

Artificial Intelligence/강화학습

[강화학습] 강화학습 완전 기본개념

DataHolic26 2020. 7. 8. 00:13

이번 글의 내용은 '기초부터 시작하는 강화학습 / 신경망 알고리즘(손민규 지음, 위키북스 DS 시리즈)'의 내용을 참조 및 정리 하였으며 저의 개인적인 인사이트 또한 추가된 점을 먼저 밝힙니다.

 


 

먼저 강화학습을 들었을때 직관적으로 어떠한 생각이 들까요?

 

저같은 경우에 처음 '강화학습'이란 들었을 때 게임에서 아이템을 강화하는 것처럼 부족한 부분을 보완하는 것이라고 직관적으로 생각했습니다.

 

 

그러면 본론으로 돌아가면 강화학습에서는 보상(Reward)과 벌칙(Punishment)를 먼저 정의해야 합니다. 직접적으로 정답을 미리주는 것이 아니라, 어떤 상태에서 취한 행동이면 보상을 주고, 잘못된 행동이라면 벌칙을 주는 것입니다.

 

학습대상은 시행착오(trial-and-error)를 통해서 스스로 벌칙을 최소화하고 보상을 최대화하도록 행동을 학습하게 됩니다. 여기에서 학습대상이 이용할 수 있는 정보는 보상뿐이기 때문에, 학습 목적에 맞는 보상을 설정하는 것이 매우 중요한 요소가 됩니다.

 

 

그럼 이해를 돕기위해 비디오 게임을 예로 들어보겠습니다. 강화학습에서는 학습하는 객체를 에이전트(Agent)라고 부릅니다. 위의 그림에서 에이전트(사람)는 동전을 넣고 레버를 조작하면서 천천히 내려오는 외계인을 미사일로 없애고 게임이 끝났을 때 최종 점수를 받게 됩니다. 처음에는 게임에 익숙하지 않은 에이전트가 외계인이 쏜 미사일에 맞아서 죽거나, 외계인을 다 죽이지 못하면 침공을 당해서 게임에서 낮은 점수를 기록하게 됩니다.

 

계속해서 투입되는 동전을 보면서 직감적으로 미사일을 맞으면 안 된다는 것과 시간 내에 외계인을 다 처치해야 한다는 사실을 인지하게 됩니다. 따라서 먼저 계속해서 투입되는 동전을 아까워하면서 미사일을 피하는 레버 조작에 익숙해지게 됩니다. 조작이 익숙해지면 외계인을 최대한 빠르게 전부 없애고 최고 점수를 얻기 위해서 레버 조작 방법을 익히게 되는 것입니다.

 

에이전트는 동전(벌칙)의 투입을 최소화하면서, 점수(보상)를 최대화하도록 레버조작이라는 행동을 학습하는 것입니다.

 

마지막으로 핵심을 설명드리면 강화학습은 직접적으로 정답을 주지는 않지만 주어진 보상을 최대화할 수 있도록 시행착오를 통해 행동을 최적화하는 것입니다.

 

 

긴 글 읽어주셔서 감사합니다.


References

 

[1] M. Son, "기초부터 시작하는 강화학습/신경망 알고리즘", 5-6 (2019) 

[2] 스페이스 인베이더, http://gym.openai.com/envs/SpaceInvaders-v0/