강화학습이란?
강화학습(Reinforcement Learning)은 에이전트가 환경과 상호작용하면서 스스로 학습하는 방식을 말합니다. 즉, 상태의 변화와 행동을 번갈아 수행하면서 목적을 달성하게 됩니다. 이는 다음 그림과 같이 표현할 수 있습니다.
위 그림의 순서는 다음과 같이 진행됩니다.
1) 에이전트는 현재 상태에서 어떠한 행동을 취하게 됩니다.
2) 그럼 환경은 행동에 따른 다음 상태와 보상을 에이전트에게 전달합니다.
3) 에이전트는 환경으로부터 받은 보상에 따라 다음 행동을 취하게 됩니다.
4) 위 과정을 반복하면서 에이전트는 최대의 보상을 얻는 행동을 계속해서 하게 됩니다.
스키너의 쥐 실험
미국의 심리학자인 B. F. 스키너(버러스 프레더릭 스키너)는 스키너 상자라는 동물 행동을 연구하는데 사용되는 실험 기구를 사용하여 쥐의 특정한 자극에 대한 특정한 반응을 관찰하는 실험을 진행하였습니다.
실험은 아래와 같이 진행됩니다.
1. 스키너 상자에 배고픈 상태의 쥐를 넣는다.
2. 쥐는 스키너 상자를 돌아다니다가 우연히 지렛대를 누르게 된다.
3. 지렛대를 누르자 먹이가 나온다.
4. 지렛대와 먹이의 상관관계를 모르는 쥐는 다시 상자 안을 돌아다닌다.
5. 다시 우연히 지렛대를 누른 쥐는 또 먹이가 나오는 것을 보고 지렛대를 누르는 행동을 자주 한다.
6. 이러한 과정이 반복되면서 쥐는 지렛대를 누르면 먹이가 나온다는 사실(지렛대와 먹이의 상관관계)을 학습한다.
즉, 강화는 에이전트가 이전에 배우지 않았지만 주어진 환경에서 어떤 행동을 시도함으로써 행동과 그에 따른 보상의 상관관계를 학습하는 것을 말합니다. 스키너의 쥐 실험에서 쥐는 지렛대와 먹이의 상관관계를 깨우친 것이 아니라, 단지 먹이(보상)를 많이 얻을 수 있는 행동을 한다는 것입니다. 스키너의 쥐 실험을 강화학습의 용어로 정리하면, 환경은 스키너 상자, 에이전트는 쥐, 행동은 지렛대를 누르는 것과 돌아다니는 것, 보상은 먹이로 볼 수 있습니다.
강화학습의 과업 예시
강화는 우리 주변에서도 쉽게 볼 수 있습니다. 사람도 새로운 무언가를 배울 때 사전지식이 없는 경우가 많습니다. 몇 가지 예시를 통해 강화의 의미를 이해해봅시다.
아이의 첫 걸음마 배우기
아이가 첫 걸음마를 배우는 상황을 생각해봅시다. 아이는 누군가에게 걷는 방법을 배우는 것이 아닙니다. 먼저 일어서는 방법을 여러 시행착오를 거치면서 학습하게 됩니다. 일어나게 되면 한 발자국을 딛게 되고, 중심을 잡고, 넘어지고, 일어서고, 다시 한 발자국 딛고, 중심을 잡고를 반복하며 점차 걷는 방법을 배워나가게 됩니다. 아이는 '내가 발을 몇 도 틀어서 바닥의 어떤 부분을 밟으면 걸을 수 있다'라는 것을 학습한 것이 아니라 일련의 행동을 반복하여 많은 시행착오를 거치면서 익숙하게 걷게 되는 것입니다.
자전거 타는 법 배우기
우리가 처음 두 발 자전거를 탄다고 생각해봅시다. 처음부터 우리가 자전거에서 넘어지지 않고 중심을 잘 잡으면서 탄 것이 아닙니다. 자전거에 한 발은 페달에 올리고 한 발은 바닥을 지지한 후에 페달을 돌림으로써 자전거는 출발하게 됩니다. 이 때 바닥에 둔 발은 얼른 페달에 올려 페달을 돌려주어야 합니다. 출발한 후에 중심잡는 방법은 어떻게 배우게 될까요? 우리는 중심을 잡을 때 '내 몸이 땅과 수직으로 서 있으니까 왼쪽으로 틀 때 약 10도정도 왼쪽으로 몸을 기울이면 되겠다' 라고 생각하면서 왼쪽으로 몸을 기울이는 것이 아닙니다. 우리는 단지 '왼쪽으로 몸을 살짝 기울이고 핸들을 왼쪽으로 틀었더니 왼쪽으로 가게 되는구나'라고 내가 한 행동으로 넘어지지 않는 보상과 다음 상태를 얻게 됩니다. 이렇게 우리의 일상 생활에서도 강화의 개념이 적용되어 있습니다.
강화의 예시는 이 두가지 뿐만 아니라 더 많이 우리의 일상생활 속에서 볼 수 있습니다.
강화학습의 응용
강화학습은 다양한 분야에 적용할 수 있습니다. 강화학습은 다음과 같은 분야에 응용하였으며 앞으로의 응용 가능성은 무궁무진하다고 생각됩니다.
스타크래프트와 같은 온라인 게임
드론 및 자동차의 자율주행, 생산 라인의 제어 등과 같은 제어 분야의 과업
바둑, 체스, 장기와 같은 게임
References
[1] 이웅원, 양혁렬, 김건우, 이영무, 이의령, '파이썬과 케라스로 배우는 강화학습: 내 손으로 직접 구현하는 게임 인공지능', 위키북스, 2020. ISBN : 9791158392017.
[2] 스키너 상자, ko.wikipedia.org/wiki/%EC%8A%A4%ED%82%A4%EB%84%88_%EC%83%81%EC%9E%90
[3] 오일석, 기계학습, 한빛아카데미, 2017. ISBN: 9791156641582.