강화 학습(Reinforcement Learning)[#1]
강화 학습(Reinforcement Learning)
강화 학습 시리즈는 '바닥부터 배우는 강화 학습' 책을 공부하고, 또 공부하면서 느낀 점을 정리한 내용의 포스팅입니다. 해당 시리즈는 강화학습(Reinforcement Learning)에 대한 내용을 최대한 쉽게 풀어서 설명하는 것을 목표로 하고 있습니다.
1. 강화 학습이란?
본 책에서는 강화 학습에 대해
“순차적 의사결정 문제에서 누적 보상을 최대화하기 위해 시행착오를 통해 행동을 교정하는 학습 과정”
이라고 정의를 내리고 있습니다.
위의 정의가 어려우시다면, 좀 더 쉽게 풀어
“시행착오를 통해 발전해 나가는 과정”
으로 정의를 내릴 수 있습니다.
강화 학습의 정의에서 중요한 키워드는 바로 “순차적 의사결정”, “누적 보상” 그리고 “시행착오”입니다. 그렇다면 이 세 가지 키워드가 무엇일까요?
1.1 강화 학습
강화 학습을 쉽게 이해하기 위해 먼저 아기가 걸음마를 배우는 이야기를 예로 들어보겠습니다.
아기는 걸음마를 배울 때 아무런 정보도 없이 걷는 것을 시도합니다.
물론 얼마 못 가 넘어지겠지만, 아기는 일어나 다시 걸음마에 도전합니다. 그렇게 아기는 걷고, 넘어지고, 다시 걷다 넘어지는 것을 반복합니다.
처음에는 자세도 불안정하고, 한 발자국도 못가 넘어지지만 어느 순간 자세가 안정해지며, 더 이상 넘어지지 않고 걷는 법을 깨우칩니다.
여기서 중요한 점은 아무도 아기에게 걷는 법을 알려준 적이 없다는 것입니다. 그럼에도 불구하고 스스로 조금씩 깨우치게 되는 것이죠. 즉 아기는 시행착오를 통해 학습하고 있는 겁니다.
그리고 이러한 시행착오trial and error 를 통해 학습하는 것이 바로 강화 학습이라고 할 수 있습니다.
여기서 위의 강화 학습의 정의를 다시 가져와보겠습니다.
“순차적 의사결정 문제에서 누적 보상을 최대화하기 위해 시행착오를 통해 행동을 교정하는 학습 과정”
아기의 걸음마 예를 통해 시행착오를 통해 행동을 교정하는 학습 과정이라는 것이 무엇인지를 알아봤습니다.
그렇다면 “순차적 의사결정”과 “누적 보상”은 무엇일까요?
1.2 순차적 의사결정 문제
강화 학습을 통해 풀고자 하는 문제는 바로 순차적 의사결정 문제입니다. 그렇다면 순차적 의사결정 문제란 무엇일까요?
책에서는 쉽게 이해할 수 있도록 샤워를 하는 상황을 예로 들어 설명하였습니다.
여러분은 샤워를 할 때 어떤 단계를 거치나요? 대략적으로 다음과 같은 4단계를 거칠 것입니다.
- 옷을 벗는다.
- 샤워를 한다.
- 물기를 닦는다.
- 옷을 입는다.
그리고 이 4단계는 반드시 순서에 맞게 이루어져야 합니다. 만일 순서가 뒤바뀌면 어떻게 될까요?
4(옷을 입는다) → 2(샤워를 한다) → 3(물기를 닦는다) → 1(옷을 벗는다) ▶ 옷을 입고 샤워를 한다니요....
3(물기를 닦는다) → 2(샤워를 한다) → 1(옷을 벗는다) → 4(옷을 입는다) ▶ 씻기도 전에 물기를 닦을 수 없죠.
이처럼 아무리 간단한 과정이라 하더라도 이를 성공적으로 마치기 위해서 우리는 몇 가지 의사결정을 순차적으로 해 주어야 합니다.
무언가 목적을 위해 어떠한 행동(=의사결정)을 하고, 행동으로 인해 상황이 변하고, 변한 상황에서 또다시 행동을 하고
상황_1 → 행동_1 → 상황_2 → 행동_2 ….
이처럼 각 상황에 따라 앞서 한 행동이 다음 상황에 영향을 끼치며, 목적에 다다르기 위해서는 일련의 행동을 잘 선택해야 하는 문제가 바로 순차적 의사결정 문제라고 할 수 있습니다.
1.3 보상
본 책에서는 보상에 대해 아래와 같이 정의하였습니다.
강화 학습에서의 보상이란 에이전트가 의사결정을 얼마나 잘하고 있는지 알려주는 신호입니다. 그리고 강화 학습의 목적은 의사결정 과정에서 받는 보상의 총합, 즉 누적 보상을 최대화하는 것입니다.
위의 아기의 걸음마 예를 가져와 보겠습니다.
이 문제에서 아기가 넘어지지 않고 1m를 갈 때마다 +1이라는 식으로 보상을 정해보겠습니다. 1m당 +1점의 보상이 있다면, 누적 보상을 최대화하기 위해 자연스레 넘어지지 않고 최대한 걸어 나가는 것이 학습의 목적이 됩니다. 그리고 보상을 통해 아기는 행동을 교정할 방향에 대한 방향성을 얻게 됩니다.
만약 위의 예제에서 보상이 없다면 어떻게 될까요? 학습의 목적이 사라지니 애기는 아무것도 배울 수 없을 겁니다. 그래서 보상은 강화 학습을 이해하는 데 있어서 가장 중요한 개념이며, 보상이 없다면 그 어떤 것도 배울 수 없습니다.
1.3.1 보상의 3가지 특징
강화 학습을 이해하는데 가장 중요한 개념이 보상이라고 했습니다. 그럼 보상은 어떠한 특징이 있을까요?
본 책에서는 총 3가지의 특징을 설명합니다.
- 보상의 의미 = 어떻게 NO, 얼마나 YES
보상의 첫 번째 특징은 “어떻게”가 아니라 “얼마나”를 나타낸다는 것입니다. 즉 에이전트가 어떠한 행동을 하면 해당 행동에 대해 “얼마나” 잘하고 있는지를 알려줄 뿐, 어떻게 행동을 해야 더 높은(좋은) 보상을 받을 수 있는지는 알려주지 않는다는 의미입니다.
방법을 알려주지 않는다면 어떻게 학습을 할 수 있는 것일까요? 이 문제의 정답은 바로 수많은 시행착오입니다.
에이전트는 수많은 시행착오를 겪으며 어떠한 행동을 해야 더 높은 보상을 받을 수 있는지를 기억합니다. 그리고 누적 보상을 최대화한다는 강화 학습의 목적에 따라 더 높은 보상을 받을 수 있는 행동들을 선택해 실행하며 학습을 진행합니다.
- 보상은 스칼라
보상의 두 번째 특징은 바로 스칼라Scala 라는 점입니다. 스칼라라는 개념이 생소하신 분들을 위해 간단하게 설명하자면 크기라는 정보만 가지고 있는 숫자라고 생각하시면 됩니다.
그리고 크기라는 정보만 갖고 있기에 보상은 한 번에 하나의 목표밖에 설정할 수 없습니다. 그렇다면 어떻게 다수의 목표를 나타낼 수 있을까요?
정답은 바로 가중치(중요도)를 두는 방법입니다.
쉽게 예를 들자면 한 학생이 학교생활을 잘하고 싶다고 합니다.
이 경우 강화 학습의 목표는 바로 학교생활을 잘하는 것입니다.
하지만 학교생활을 잘한다는 것은 너무 모호하지요? 여기서 학교생활을 잘 할 수 있는 요소를 몇개 추가해보겠습니다.
학교생활을 잘 한다 = 공부 + 친구 + 연애
위처럼 학교생활을 잘한다는 것을 정의를 해보았습니다.
가중치를 둔다는 것은 쉽게 말해 각 요소에 중요도를 매긴다는 의미입니다.
저는 공부에 50%, 친구에 30%, 연애에 20%라고 중요도를 매겨보겠습니다.
그렇다면
y(학교생활을 잘한다) = 0.5a(공부) + 0.3b(친구) + 0.2c(연애)
라고 표현할 수 있겠죠?
이처럼 각 요소별 가중치(중요도)를 두어 보상을 표현할 수 있습니다.
- 희소하고 지연된 보상
마지막 특징으로는 보상은 희소할 수 있으며 또 지연될 수 있습니다.
이 특징이 무슨 뜻인가 하면, 만약 강화 학습을 할 때, 매 행동들에게 보상을 줄 수 있다면, 모든 행동에 대한 보상을 알기에 학습은 굉장히 쉬워질 것입니다.
하지만 대부분의 경우 모든 행동에 대해 보상을 줄 수가 없습니다.
이러한 경우 일정한 행동 이후 보상을 얻는다면(예 : 10번의 행동을 하고 보상을 하나 얻는 경우), 학습 시 어떠한 행동을 했을 때 어느 정도 보상을 받을 수 있는지의 관계 여부를 알기 힘들어집니다.
그렇기에 적절히 보상을 주는 것이 더욱 중요해지는 이유입니다.
마치며
이번 포스팅에서는 강화 학습에 대한 기본적인 개념과 강화 학습에서 사용하는 용어들에 대해 소개하였습니다.
다음 포스팅에서는 이에 이어 강화학습에서 아주 중요한 요소인 환경에 대해 설명하고, 환경과 에이전트 간의 관계, 더 나아가 강화 학습의 기본이 되는 마르코프 결정 프로세스(MDP)에 대해 설명하겠습니다.
http://www.yes24.com/Product/Goods/92337949
바닥부터 배우는 강화 학습 - YES24
강화 학습 기초 이론부터 블레이드 & 소울 비무 AI 적용까지강화 학습을 모르는 초보자도 쉽게 이해할 수 있도록 도와주는 입문서다. 현업의 강화 학습 전문가가 직접 설명해 강화 학습에 가장
www.yes24.com