Q-러닝Q-Learning
행동마다 기대 점수를 적어 두고 고쳐 가는 방법
- Q-러닝은 상황마다, 행동마다 기대 점수를 적어 둔 표를 만들고 그 숫자를 고쳐 가는 방법이에요.
- 한 칸의 숫자는 "이 상황에서 이 행동을 고르면 앞으로 받을 점수가 대략 얼마"라는 뜻이에요.
- 갱신할 때는 받은 점수에 다음 상황에서 가장 좋은 칸의 숫자를 얹어, 원래 값과 조금씩 섞어요.
- 표가 채워지면 정책은 저절로 정해져요. 지금 상황의 줄에서 숫자가 가장 큰 칸을 고르면 돼요.
- 상황과 행동의 가짓수가 커지면 표로는 감당이 안 돼요. 그 표를 신경망이 대신 기억하게 만든 것이 DQN이에요.
목차
1비유로 이해하기
극장 사무실 벽에 상영표 한 장이 붙어 있어요. 세로에는 시간대가, 가로에는 걸 수 있는 영화 종류가 적혀 있고, 칸마다 숫자가 하나씩 연필로 쓰여 있어요. 저녁 일곱 시 줄의 액션 칸에는 8, 가족 칸에는 5, 낮 두 시 줄에서는 순서가 뒤집혀 있죠. 이 숫자는 그 시간에 그 영화를 걸면 얼마나 잘될지 적어 둔 짐작이에요. 어제 실제 관객 수가 나오면 해당 칸의 숫자를 지우고 조금 올리거나 조금 내려 다시 써요. 몇 달이 지나면 표는 꽤 믿을 만해지고, 편성은 간단해져요. 그 시간대 줄에서 가장 큰 숫자를 고르면 되니까요.
2자세히 알아보기
칸 하나에 담긴 뜻
표의 한 칸은 상황 하나와 행동 하나가 만나는 자리예요. 거기 적힌 숫자는 지금 당장 받을 점수가 아니라 이 행동을 고른 뒤 끝까지 갔을 때 받게 될 점수의 총합에 대한 짐작이에요. 그래서 당장은 손해여도 나중이 좋은 행동의 칸은 숫자가 높아요.
처음에는 모든 칸이 0이거나 아무 숫자로 채워져 있어요. 표가 엉터리인 상태에서 시작해도 괜찮아요. 해 보고 받은 점수로 조금씩 고쳐 나가면 숫자들이 서서히 제자리를 찾아가요. 표가 자리를 잡으면 방침은 따로 배울 필요가 없어요. 지금 줄에서 가장 큰 칸을 고르는 것이 곧 방침이에요.
숫자를 고치는 방법
한 번 행동할 때마다 네 가지가 손에 들어와요. 어떤 상황이었는지, 무엇을 골랐는지, 점수를 얼마 받았는지, 그리고 어떤 상황으로 넘어갔는지예요. 이 넷으로 방금 고른 칸의 숫자를 고쳐요.
먼저 새 짐작을 만들어요. 방금 받은 점수에, 넘어간 상황의 줄에서 가장 큰 칸의 숫자를 조금 깎아 더한 값이에요. 그다음 원래 적혀 있던 숫자와 이 새 짐작을 섞어요. 통째로 갈아 끼우지 않고 한 걸음에 조금씩만 옮기는 이유는, 한 번의 결과에 운이 섞여 있기 때문이에요. 얼마나 옮길지 정하는 값을 학습률이라고 불러요.
왜 다음 줄의 최고값을 끌어올까요
끝에서 점수를 주는 문제를 떠올려 보세요. 처음에는 마지막 칸 하나만 숫자가 올라가요. 그런데 그 앞 칸을 고치려고 보면 넘어간 상황이 바로 그 마지막 칸이 있는 줄이에요. 그 줄의 최고값이 끌려와 앞 칸의 숫자도 올라가요. 이런 식으로 좋은 소식이 끝에서부터 한 칸씩 거슬러 번져요.
여기에 중요한 성질이 하나 있어요. 끌어오는 것은 다음 줄의 최고값이지 실제로 다음에 무엇을 골랐는지가 아니에요. 그래서 학습하는 동안 엉뚱한 행동을 잔뜩 시험해 봐도, 표는 여전히 가장 좋은 방침 쪽으로 자라요. 마음껏 헤매면서도 최선을 배울 수 있는 이유예요.
표를 채우려면 해 봐야 해요
한 번도 골라 보지 않은 칸의 숫자는 처음 값 그대로 남아 있어요. 늘 가장 큰 칸만 고르면 처음에 우연히 높았던 칸만 계속 고르게 되고, 그 옆의 더 좋은 칸은 영원히 확인되지 않아요. 그래서 학습 중에는 일부러 가끔 아무 칸이나 골라 봐요.
처음에는 아무 칸이나 고르는 비율을 높게 두었다가 표가 자리를 잡을수록 줄여 가는 방식이 흔해요. 헤매는 구간을 충분히 거쳐야 표가 고르게 채워지고, 그래야 마지막에 고른 큰 숫자를 믿을 수 있어요.
표가 감당 못 할 만큼 커질 때
Q-러닝의 한계는 표 크기예요. 칸 수는 상황의 가짓수에 행동의 가짓수를 곱한 만큼 늘어나요. 스무 칸짜리 격자에서 네 방향을 고르는 문제라면 여든 칸이면 되지만, 화면 그림을 그대로 상황으로 삼으면 칸 수가 헤아릴 수 없이 많아져요.
게다가 표는 칸마다 따로예요. 옆 칸이 아무리 비슷한 상황이어도 배운 것이 옮겨 가지 않아요. 이 두 가지 때문에 상황이 조금만 복잡해져도 표 방식은 무너져요. 그래서 칸을 하나씩 적어 두는 대신, 상황을 넣으면 각 행동의 숫자를 짐작해 내주는 신경망을 두게 됐어요. 그것이 DQN이에요.
3조금 더 정확하게
Q-러닝(Q-Learning)은 상태와 행동의 짝에 대한 행동 가치를 학습하는 방법이에요. 갱신식은 지금 값에, 받은 보상과 다음 상태의 최대 행동 가치를 할인해 더한 목표값의 차이를 학습률만큼 반영하는 형태예요. 목표값을 만들 때 실제로 고른 행동이 아니라 최댓값을 쓰기 때문에 오프폴리시 방법으로 분류돼요. 모든 짝을 충분히 자주 겪고 학습률을 알맞게 줄여 가면 최적 행동 가치로 수렴한다는 것이 증명돼 있어요.
비유가 어긋나는 지점도 있어요. 상영표는 사람이 보기 좋으라고 만든 표지만 Q-표의 칸 수는 사람이 눈으로 훑을 수 있는 규모를 금세 넘어서요. 또 상영표의 숫자는 그 시간대의 성적만 담지만, Q값에는 그 뒤에 이어질 모든 결과가 깎여서 함께 들어가 있어요. 그리고 극장은 지난 성적을 그대로 적으면 되지만 Q-러닝은 아직 확정되지 않은 자기 짐작을 근거로 자기를 고쳐요. 그래서 초반의 숫자들은 한동안 상당히 어긋나 있어요.
4직접 해보기
5흔한 오해
Q값이 방금 받을 점수를 뜻한다고 생각하기 쉽지만, 실제로는 그 행동 뒤에 이어질 점수까지 깎아서 더한 총합의 짐작이에요.
표가 완성되어야 쓸 수 있다고 여기기 쉽지만, 실제로는 채워 가는 도중에도 계속 그 표를 보며 행동하고 동시에 고쳐 나가요.
Q-러닝과 DQN은 다른 방법이라고 믿기 쉽지만, 실제로는 같은 방식의 표를 신경망이 대신 기억하게 바꾼 것이 DQN이에요.
7한 줄 요약
그러니까Q-러닝은 상황마다 행동마다 기대 점수를 적어 두고 해 본 결과로 그 숫자를 조금씩 고쳐 가는 방법이에요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02