DQNDeep Q-Network

Q값 표를 신경망이 대신 기억하게 만든 방법

핵심 정리
  • DQN (Deep Q-Network, 심층 Q 신경망)은 행동마다의 기대 점수를 표 대신 신경망이 기억하게 만든 방법이에요.
  • 상황을 넣으면 각 행동의 값이 한 번에 나와요. 한 번도 겪지 않은 상황에도 비슷한 상황을 근거로 값을 짐작해 줘요.
  • 겪은 일을 창고에 쌓아 두었다가 무작위로 꺼내 섞어서 다시 학습해요. 연달아 본 장면끼리 쏠리는 것을 막는 장치예요.
  • 목표로 삼는 값은 잠시 고정해 둔 사본에서 가져와요. 기준이 매 걸음 흔들리면 학습이 요동치기 때문이에요.
  • 화면 그림을 그대로 받아 게임을 익히는 일이 이 방법으로 처음 널리 통했고, 이후 강화학습의 기본 뼈대가 됐어요.
목차

1비유로 이해하기

삼만 석짜리 공연장의 좌석마다 값을 매긴다고 해 볼게요. 자리 하나하나에 숫자를 적은 종이를 붙이려면 종이가 삼만 장 필요하고, 새 공연장이 지어지면 처음부터 다시 붙여야 해요. 그래서 실제로는 그렇게 하지 않아요. 층, 무대까지의 거리, 시야가 가리는 정도 같은 몇 가지만 넣으면 값이 나오는 기준을 만들어 둬요. 표는 사라지고 기준만 남죠. 이러면 아직 값을 매겨 본 적 없는 자리도 곧바로 값이 나오고, 옆자리끼리는 비슷한 값이 나와요. 팔린 결과를 보고 기준을 조금씩 손보면 전체 자리의 값이 한꺼번에 나아져요. DQN이 하는 일이 이 기준 만들기예요.

2자세히 알아보기

칸을 적는 대신 값을 내주는 기계

표 방식은 상황 하나와 행동 하나가 만나는 자리마다 숫자를 따로 적어요. 상황이 화면 그림처럼 복잡해지면 칸 수가 감당할 수 없이 불어나고, 대부분의 칸은 한 번도 채워지지 않은 채 남아요.

DQN은 이 표를 신경망으로 갈아 끼워요. 지금 상황을 넣으면 고를 수 있는 행동마다의 값이 한 줄로 나와요. 행동이 네 가지면 숫자 네 개가 한꺼번에 나오고, 그중 가장 큰 쪽을 고르면 그게 행동이 돼요. 값을 고칠 때도 칸 하나를 지우고 다시 쓰는 대신, 신경망 안의 값들을 조금씩 밀어서 그 상황의 출력이 목표에 가까워지게 만들어요.

비슷한 상황끼리 배운 것이 옮겨 가요

표 방식의 가장 큰 손해는 칸끼리 남남이라는 점이었어요. 옆 칸이 아무리 비슷한 상황이어도 배운 것이 옮겨 가지 않았죠. 신경망은 반대예요. 비슷하게 생긴 상황은 비슷한 값을 내놓아요. 한 자리에서 배운 것이 그 근처 자리 전체로 번져요.

덕분에 겪어 본 적 없는 상황에서도 그럴듯한 값이 나와요. 처음 보는 화면 앞에서도 어느 정도 말이 되는 행동을 고를 수 있는 이유예요. 물론 짐작이라 틀리기도 해요. 겪은 적 없는 낯선 상황일수록 값이 엉뚱하게 나올 수 있어요.

겪은 일을 쌓아 두었다가 섞어서

한 판을 진행하며 겪는 장면들은 앞뒤가 딱 붙어 있어요. 방금 본 화면과 다음 화면이 거의 같죠. 이런 장면만 순서대로 학습에 넣으면 신경망이 최근 몇 초에만 맞춰지고 앞서 배운 것을 잊어버려요.

그래서 겪은 일을 하나씩 창고에 넣어 둬요. 어떤 상황이었고 무엇을 골랐고 점수를 얼마 받았고 어디로 넘어갔는지를 한 묶음으로요. 학습할 때는 창고에서 무작위로 한 줌을 꺼내 써요. 서로 시점이 다른 장면들이 섞이니 쏠림이 줄고, 한 번 겪은 일을 여러 번 다시 꺼내 쓰니 알뜰해지기도 해요.

기준을 잠시 붙들어 두는 이유

값을 고칠 때 목표로 삼는 숫자는 다음 상황에서 가장 큰 값이에요. 그런데 그 값도 같은 신경망이 내놓는 숫자예요. 고치는 대상과 목표가 같은 몸에 있으면 한쪽을 밀 때마다 다른 쪽도 따라 움직여요. 자를 밀면서 그 자로 길이를 재는 꼴이라 값이 걷잡을 수 없이 튀어요.

그래서 사본을 하나 떠 두고 목표값은 그 사본에서만 가져와요. 사본은 한동안 그대로 두었다가 이따금 최신 상태로 갈아 끼워요. 기준이 잠시 멈춰 있는 동안 학습이 안정돼요. 창고에서 섞어 꺼내기와 이 사본 두기가 DQN을 실제로 쓸 만하게 만든 두 가지 장치예요.

무엇이 달라졌을까요

뼈대는 Q-러닝 그대로예요. 받은 점수에 다음 상황의 가장 큰 값을 깎아 더한 것을 목표로 삼고, 지금 값을 그쪽으로 조금 옮겨요. 달라진 것은 값을 어디에 담느냐예요. 표에서 신경망으로 옮기면서 상황의 가짓수라는 한계가 풀렸어요.

대신 새 문제도 생겼어요. 신경망이 내놓는 값은 짐작이라 실제보다 부풀기 쉽고, 학습이 어긋나면 되돌아오지 않기도 해요. 값을 고르는 쪽과 재는 쪽을 나누거나, 상황 자체의 값과 행동별 차이를 따로 배우게 하거나, 창고에서 꺼낼 때 배울 것이 많은 장면을 더 자주 꺼내는 식의 보완이 뒤이어 나왔어요.

3조금 더 정확하게

DQN은 행동 가치 함수를 신경망으로 근사하고, 경험 재생 버퍼와 타깃 네트워크를 함께 써서 학습을 안정시킨 방법이에요. 손실은 목표값과 현재 출력의 차이로 잡고 경사하강법으로 줄여요. 여기서 목표값은 받은 보상에 타깃 네트워크가 내놓은 다음 상태의 최대 값을 할인해 더한 값이에요. 화면 픽셀을 입력으로 받을 때는 앞단에 합성곱 층을 두고, 움직임을 알기 위해 최근 몇 장면을 겹쳐 넣어요. 행동이 셀 수 있는 가짓수여야 쓸 수 있어서, 핸들 각도처럼 이어진 값에는 다른 계열의 방법을 써요.

비유가 어긋나는 지점도 있어요. 좌석 값 기준은 사람이 항목을 골라 만들지만, DQN은 무엇을 볼지조차 스스로 정해요. 어떤 화소 무늬가 중요한지 알려 주지 않아도 학습 과정에서 찾아내요. 또 좌석 값은 팔린 결과라는 확실한 답이 있지만, DQN이 맞추려는 목표는 자기 사본이 내놓은 또 다른 짐작이에요. 짐작을 보고 짐작을 고치는 구조라, 잘못 흘러가면 값 전체가 함께 어긋나기도 해요.

4직접 해보기

5흔한 오해

  • DQN이 Q-러닝을 대체한 새 이론이라고 생각하기 쉽지만, 실제로는 같은 갱신 방식을 쓰면서 값을 담는 곳만 표에서 신경망으로 바꾼 거예요.

  • 신경망을 쓰면 표 방식보다 언제나 낫다고 여기기 쉽지만, 실제로는 상황이 몇십 가지뿐인 문제에서는 표가 더 빠르고 안정적이에요.

  • DQN은 어떤 행동에도 쓸 수 있다고 믿기 쉽지만, 실제로는 고를 수 있는 행동이 셀 수 있는 가짓수일 때만 쓸 수 있어요.

7한 줄 요약

그러니까DQN은 행동마다의 기대 점수를 적어 두던 표를 신경망으로 바꿔, 겪어 보지 못한 상황에서도 값을 짐작하게 만든 방법이에요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02