[기계학습개론] Reinforcement Learning - Q Learning, Q Table

 

강화학습(Reinforcement Learning) 완전 정복: Q-러닝으로 최적의 행동 전략 배우기 🚀

지난 시간에는 시퀀스 데이터 속 숨겨진 상태와 그 변화를 모델링하는 Hidden Markov Model(HMM)에 대해 깊이 있게 탐구해 보았다. HMM이 상태(state)와 관측(observation), 그리고 이들 간의 전이(transition)를 다루며 시계열 데이터의 이해를 도왔다면, 오늘 우리가 배울 강화학습(Reinforcement Learning, RL)은 한 걸음 더 나아가, 에이전트(agent)가 특정 환경(environment) 내에서 어떻게 행동(action)해야 보상(reward)을 최대로 얻을 수 있는지, 즉 최적의 정책(policy)을 학습하는 패러다임이다. 강화학습은 로봇 제어, 자원 관리, 금융 투자, 맞춤형 콘텐츠 추천 등 우리 생활과 산업 곳곳에서 혁신을 이끌고 있는 핵심 기술이다.


강화학습이란 무엇인가?: 보상을 향한 여정 🗺️

강화학습의 핵심 아이디어는 마치 우리가 어릴 적 시행착오를 통해 세상을 배우는 과정과 유사하다. 주인공인 에이전트는 주어진 환경 속에서 특정 행동을 취한다. 그 행동의 결과로 환경은 에이전트에게 새로운 상태와 함께 보상(긍정적이거나 부정적일 수 있다)을 제공한다. 에이전트의 유일한 목표는 이러한 상호작용을 수없이 반복하면서, 장기적으로 받게 될 총 보상(누적 보상)을 최대화하는 최적의 정책을 스스로 학습하는 것이다. 여기서 정책이란, 각 상태에서 어떤 행동을 선택하는 것이 가장 좋은지를 알려주는 일종의 전략 지도와 같다.

Overview of Reinforcement Learning

이 과정은 다음과 같은 순환 루프로 요약할 수 있다:

  1. 에이전트는 현재 상태 s를 관찰한다.
  2. 정책에 따라 행동 a를 선택하고 수행한다.
  3. 환경은 새로운 상태 s로 변하고, 에이전트에게 즉각적인 보상 r을 준다.
  4. 에이전트는 이 경험(s,a,r,s)을 바탕으로 정책을 업데이트한다.
  5. 1~4 과정을 반복하며 누적 보상을 최대화하는 정책을 학습한다.

Q-러닝: 행동의 '가치'를 학습하여 최적 정책 찾기 💡

강화학습 문제를 푸는 다양한 알고리즘 중, Q-러닝(Q-learning)은 특히 강력하고 널리 사용되는 핵심 알고리즘이다. Q-러닝은 모델 프리(Model-Free) 학습 방식에 속하는데, 이는 환경이 어떻게 작동하는지에 대한 명시적인 모델(예: 상태 전이 확률 P(ss,a)이나 보상 함수 R(s,a))을 알지 못하더라도, 에이전트가 직접 환경과 상호작용하며 얻는 경험만으로 최적의 정책을 학습할 수 있다는 의미이다.

Q-러닝의 심장에는 Q-함수(Q-function) 또는 상태-행동 가치 함수(state-action value function)라고 불리는 Q(s,a)가 있다.

Q(s,a)는 현재 상태 s에서 특정 행동 a를 했을 때, 그 이후부터 받을 것으로 기대되는 미래의 총 누적 보상의 기댓값을 의미한다. 여기서 중요한 점은 단순히 즉각적인 보상만을 의미하는 것이 아니라, 해당 행동 이후에 이어질 모든 미래 경로에서 얻게 될 보상들의 합을 나타낸다는 것이다. 즉, 그 행동이 장기적으로 얼마나 '좋은지(quality)'를 나타내는 값이다.

Frozen Lake World (OpenAI GYM)

예를 들어, "얼음 호수(Frozen Lake)" 게임 환경에서 특정 상태 s1에 있을 때, 가능한 행동들의 Q 값이 다음과 같다고 하자:


이 경우, 현재까지 학습된 바에 따르면 상태 s1에서는 오른쪽(RIGHT)으로 이동하는 것이 가장 높은 장기적 가치를 지닌다고 판단할 수 있다. Q-러닝은 이렇게 각 상태-행동 쌍에 대한 Q 값을 학습하고, 일반적으로 각 상태에서 Q(s,a) 값이 가장 높은 행동 a를 선택하는 정책 \(\pi^*(s)=argmax_aQ(s,a)\) 이 최적 정책이 된다.




Q-테이블: Q 값의 저장과 업데이트 메커니즘 ⚙️

가장 기본적인 Q-러닝 구현은 Q-테이블(Q-table)을 사용하는 것이다. 이는 모든 가능한 상태(state)와 행동(action) 쌍에 대한 Q 값을 저장하는 일종의 표이다. 예를 들어, Frozen Lake 환경이 4x4 격자로 총 16개의 상태를 가지고 각 상태에서 상, 하, 좌, 우 4가지 행동이 가능하다면, Q-테이블은 16행 4열의 크기를 가지게 된다.

1. 초기화: 학습 시작 시점에는 모든 Q 값을 0으로 (또는 작은 임의의 값으로) 초기화한다. 아직 아무것도 모르는 백지상태에서 시작하는 것이다.

Learning Q(s, a): Table

2. 학습 과정 (Q 값 업데이트): 에이전트는 환경과 상호작용하며 경험(s,a,r,s′)을 쌓고, 이 경험을 바탕으로 Q-테이블의 값을 점진적으로 업데이트한다.

특정 상태 s에서 행동 a를 수행하여 즉각적인 보상 r을 받고 새로운 상태 s′에 도달했다고 가정해보자. 이때 Q(s,a)는 다음과 같은 아이디어로 업데이트된다:

Q(s,a)←새로운 정보 (현재 보상 + 미래 상태에서 얻을 수 있는 최대 가치)

Learning Q(s, a)

예시를 통해 살펴보자 (결정론적 환경 가정):

  • Frozen Lake의 목표 지점(G)에 도달하기 직전의 상태를 s14라고 하자. s14에서 오른쪽(aright)으로 이동하여 목표에 도달하고 보상 +1을 받았다면, Q(s14,aright)는 현재 받은 보상 과 목표 지점 이후의 미래 가치(여기서는 종료 상태이므로 0)를 더해 약 1로 업데이트될 수 있다. ()

  • 만약 그 이전 상태 s13에서 오른쪽(aright)으로 이동하여 s14에 도달했고, 이때 즉각적인 보상은 0이었다고 하자. Q(s13,aright)는 즉각 보상 과, 다음 상태 s14에서 취할 수 있는 모든 행동들 중 가장 큰 Q 값 (즉, maxQ(s14,a))을 더하여 업데이트된다. 만약 s14에서 가능한 행동들의 Q 값이 이라면, 이 된다. 따라서 로 업데이트될 수 있다.


이러한 업데이트 과정을 수많은 시행착오(many trials)를 통해 반복하면 Q-테이블의 값들은 점차 실제 최적의 Q 값에 수렴하게 된다. 충분한 학습 후에는 이 Q-테이블을 보고 각 상태에서 어떤 행동을 해야 가장 큰 누적 보상을 얻을 수 있는지, 즉 최적 정책을 알 수 있게 된다.

Success!



탐험(Exploration)과 이용(Exploitation) 사이의 균형 잡기 🧭

Q-러닝 학습 과정에서 에이전트는 중요한 딜레마에 직면한다. 바로 탐험(Exploration)이용(Exploitation) 사이의 균형이다.

  • 이용(Exploitation): 현재까지 학습된 Q 값을 바탕으로 가장 좋아 보이는 행동 (Q 값이 가장 높은 행동)을 선택하는 것이다. 이는 단기적으로 보상을 극대화하려는 전략이다.
  • 탐험(Exploration): 현재 Q 값이 가장 높지 않더라도, 다른 가능한 행동들을 시도해보는 것이다. 이는 아직 발견하지 못한 더 좋은 경로를 찾거나, 현재 Q 값의 정확도를 높이는 데 도움이 된다.

마치 평소에 가장 빠르다고 알려진 익숙한 길로만 다니는 것(이용)과, 주말에 혹시 더 좋은 길이 있을까 싶어 새로운 길을 탐색해보는 것(탐험)에 비유할 수 있다. 학습 초기에는 다양한 경험을 통해 환경에 대한 이해를 넓히는 탐험이 중요하며, 학습이 진행될수록 학습된 지식을 활용하는 이용의 비중을 높이는 것이 효과적이다.

이 균형을 맞추기 위한 대표적인 전략이 입실론-그리디(Epsilon-greedy, ε-greedy) 방법이다.

  1. 작은 확률 값 입실론(ϵ, 예: 0.1)을 설정한다.
  2. ϵ의 확률로, 현재 상태에서 가능한 행동 중 하나를 무작위로 선택한다 (탐험).
  3. 의 확률로, 현재 Q 값이 가장 높은 행동 \(argmax_aQ(s,a)\)을 선택한다 (이용).

학습이 진행됨에 따라 ϵ 값을 점차 줄여나가는 감쇠 입실론-그리디(decaying Epsilon-greedy) 방법을 사용하면, 초기에는 탐험을 적극적으로 하다가 점차 이용의 비중을 늘려나갈 수 있다. (예: )

또 다른 전략은 Q 값에 무작위 노이즈를 더하여 행동을 선택하는 것이다: \(a=argmax_a(Q(s,a)+random\:noise)\). 이 역시 시간에 따라 노이즈 크기를 줄여나갈 수 있다.




미래 가치의 현재화: 할인된 미래 보상 (Discounted Future Reward) 🕰️

강화학습에서 에이전트는 장기적인 누적 보상을 최대화하려 한다. 하지만 일반적으로 시간적으로 더 가까운 미래의 보상이 먼 미래의 보상보다 더 가치 있거나 확실하다고 간주된다. 이를 반영하기 위해 할인율(discount factor, , 감마) 개념이 도입된다.

Learning Q(s, a) with discounted future reward

γ는 0과 1 사이의 값을 가지며 (예: ), 미래의 보상을 현재 시점에서 얼마나 할인하여 평가할지를 결정한다. 이면 에이전트는 오직 즉각적인 보상만 고려하고, γ가 1에 가까울수록 먼 미래의 보상까지 중요하게 생각한다. Q-러닝은 이 할인율을 사용하여 미래 보상의 현재 가치를 계산하고 Q 값을 업데이트한다.

Discounted Future Reward 



불확실한 세상에서의 학습: 확률적 환경과 학습률 (Learning Rate) 🎲

지금까지 설명한 Q-러닝의 기본 아이디어는 특정 상태에서 특정 행동을 했을 때 항상 동일한 다음 상태와 보상을 얻는 결정론적(Deterministic) 환경에서 잘 작동하며 수렴성이 증명되어 있다(Tom Mitchell, Machine Learning).

하지만 실제 대부분의 환경은 확률론적(Stochastic)이거나 비결정론적(non-deterministic)이다. 즉, 동일한 상태에서 동일한 행동을 하더라도 내부적인 무작위성 때문에 다른 다음 상태로 가거나 다른 보상을 받을 수 있다. 예를 들어, Frozen Lake에서 바람이 불어 의도와 다른 방향으로 미끄러질 수 있다면 이는 확률론적 환경이다.

Deterministic VS Stochastic

결정론적 환경을 가정한 단순한 Q-업데이트 방식(\(\hat{Q}(s,a)\leftarrow r+\gamma max_{a'}\hat{Q}(s',a')\))은 이런 확률론적 환경에서는 직접적으로 잘 작동하지 않을 수 있다. 행동의 결과가 불확실하기 때문에, 한 번의 경험으로 얻은 값만으로 \(\hat{Q}(s,a)\)를 완전히 대체해버리면 학습이 불안정해질 수 있다.

Problem of basic Q-updating method

이러한 확률론적 환경에 대처하기 위해 학습률(Learning Rate, α, 알파)이 도입된다.

학습률 α는 0과 1 사이의 값을 가지며, 새로운 경험으로부터 얻은 정보를 기존의 Q 값에 얼마나 반영할지를 조절하는 역할을 한다. 즉, 새로운 정보로 Q 값을 업데이트할 때, 그 정보를 100% 반영하는 것이 아니라 α만큼만 반영하고, 나머지 (1−α)만큼은 기존의 Q 값을 유지하는 것이다. 이는 마치 "한 명의 멘토(새로운 경험) 말만 전적으로 따르는 대신, 여러 멘토(과거 경험과 새로운 경험)의 조언을 조금씩 참고하여(Listen to Q(s') just a little bit) 자신의 지식(Q(s))을 점진적으로 업데이트(Update Q(s) little bit)하는" 것과 같다.

학습률과 할인율을 모두 포함한 Q-러닝의 업데이트 규칙은 다음과 같다:

Learning with learning rate

여기서 부분을 시간차 오차(Temporal Difference error, TD error)라고 부른다. 이는 새롭게 추정된 목표 Q 값 (\[r+\gamma\cdot max_a'Q(s',a')\])과 현재 Q 값(\(Q(s,a)\)) 사이의 차이를 의미하며, 학습률 α는 이 오차를 현재 Q 값에 얼마나 반영할지를 결정한다. 이 방식을 통해 Q-러닝은 확률론적 환경에서도 안정적으로 학습하고 최적 Q 값으로 수렴할 수 있게 된다.




맺음말: Q-러닝, 스스로 학습하는 지혜의 시작 🌟

Q-러닝은 상태-행동 가치 함수인 Q-함수를 학습하여 최적의 정책을 찾아내는 강력한 강화학습 기법이다. 에이전트는 환경과의 끊임없는 상호작용을 통해 보상을 받고, Q-테이블이라는 기억 장소에 각 행동의 가치를 저장하고 업데이트한다. 이 과정에서 탐험과 이용의 균형을 맞추는 지혜, 미래 보상을 현명하게 평가하는 할인율, 그리고 불확실성 속에서 점진적으로 배워나가는 학습률은 Q-러닝을 더욱 정교하고 효과적으로 만드는 핵심 요소들이다.

HMM이 시퀀스 데이터의 '이해'에 중점을 두었다면, Q-러닝을 포함한 강화학습은 그 이해를 바탕으로 '최적의 행동'을 학습하는 능동적인 학습 방법론이라고 할 수 있다. 오늘 배운 Q-러닝의 작동 원리에 대한 깊이 있는 이해는 앞으로 마주할 더 복잡하고 다양한 강화학습 문제들을 해결하는 데 든든한 초석이 될 것이다. 스스로 학습하고 발전하는 인공지능을 향한 여정에 Q-러닝은 중요한 이정표임이 틀림없다. 이것으로 기계학습개론 강의도 모두 마무리되었다!



추천글:

[기계학습개론] Semi-Supervised Learning (SSL) - Self-training / Generative Model based / Margin based / Graph based

[기계학습개론] Active Learning: 제한된 리소스에서 최대의 성능을 이끌어내는 법

[기계학습개론] Sequential Learning - Hidden Markov Model(Viterbi, Forward-Backward, Baum-Welch algorithm)

hyeon_B

안녕하세요! AI 기술을 이용해 더 나은 세상을 만들어 나가고 싶은 과기원생 Hyeon이라고 합니다. 저는 앞으로 인공지능 시대에는 지식을 '활용'하는 능력이 중요해질 것이라고 생각합니다. 대부분의 일들은 인공지능이 뛰어난 모습을 보이지만, 인공지능은 데이터로 부터 연관관계를 학습하기 때문에 지식들을 새로 통합해서 활용하는 능력이 부족합니다. 인공지능이 뉴턴 전에 만들어졌다면 사과가 떨어지는 이유에 대답하지 못했을 것이고, 아인슈타인 전에 만들어졌다면 중력이 어떻게 생기는지 설명하지 못했을 것입니다. 따라서 앞으로 우리는 '본질'을 탐구하고 그 본질로부터 다른 곳에 적용하며 인공지능을 현명하게 활용해야 할 것입니다. 함께 인공지능 시대를 준비합시다!

댓글 쓰기

다음 이전

POST ADS1

POST ADS 2