분류 전체보기 223

강화학습 9 - DQN: 화면을 보고 행동을 고르는 신경망

이전에 배운 Q-learning은 $Q(s,a)$ 값을 표에 하나하나 적어가며 학습했습니다. 이제 그 표를 신경망으로 바꿔봅시다. 상태를 입력하면 각 행동의 $Q$ 값을 출력하는 신경망 — 이것이 DQN(Deep Q-Network)의 핵심 아이디어입니다. 말은 간단하지만, "Q-learning의 표를 신경망으로 바꾸기"만 해서는 학습이 제대로 되지 않습니다. 2015년 DeepMind의 연구자들은 이 단순한 아이디어를 실제로 안정적으로 작동하게 만들기 위해 두 가지 핵심 장치를 추가했고, 그 결과가 바로 이번 글에서 배울 DQN 알고리즘입니다.비유의 한계: "표를 신경망으로 바꾼다"는 설명은 직관적이지만, 이 교체가 왜 그렇게 어려운 문제를 일으키는지는 비유만으로는 잘 드러나지 않습니다. 아래 에서 그 ..

머신러닝 2026.10.19

강화학습 8 - 표가 너무 커질 때: 함수 근사

먼저 만나는 이야기시험을 앞둔 두 학생이 있습니다. 학생 A는 지난 10년간 나온 기출문제 1,000개를 통째로 외웠습니다. 시험에 정확히 그 문제가 나오면 완벽하게 풀지만, 숫자만 살짝 바뀐 새로운 문제가 나오면 전혀 손을 대지 못합니다. 학생 B는 문제를 100개만 풀었지만, 그 안에서 "이런 유형은 이렇게 접근한다"는 규칙과 원리를 이해했습니다. 처음 보는 문제라도 비슷한 유형이면 어느 정도 풀어낼 수 있습니다. 지금까지 글에서 다룬 표(table) 기반 방법들은 학생 A와 같습니다. $Q(s,a)$ 값을 상태-행동 쌍마다 개별 칸에 정확히 저장하고 기억합니다. 이 방법은 상태가 몇십, 몇백 개일 때는 잘 작동하지만, 상태가 수백만 개이거나(예: 체스판의 모든 배치) 심지어 연속적이어서 개수를 셀 ..

머신러닝 2026.10.19

강화학습 7 - SARSA와 Q-learning

절벽 옆으로 난 좁은 길을 걸어야 하는 상황을 상상해 보세요. 절벽에 바짝 붙어 걸으면 목적지까지 가장 빠르지만, 조금이라도 실수하면 떨어집니다. 반면 절벽에서 한참 떨어져 안전하게 돌아가면 시간은 더 걸리지만 훨씬 안전합니다. 두 종류의 여행자가 있다고 해봅시다. 여행자 A는 "내가 지금 실제로 따르고 있는(가끔 실수도 하는) 걸음걸이 습관"을 그대로 반영해 안전한 경로를 배웁니다. 실수로 가끔 헛디딜 수 있다는 것을 알고 있으므로, 절벽에서 좀 떨어진 안전한 길을 선호하게 됩니다. 여행자 B는 "내가 실수하지 않고 완벽하게 걸었다면 어땠을까"를 상상하며 배웁니다. 실수 가능성은 고려하지 않고 이론적으로 가장 빠른 길, 즉 절벽에 바짝 붙은 길을 선호합니다. 이번 글에서 배울 SARSA가 여행자 A(자..

머신러닝 2026.10.15

강화학습 6 - 시간차 학습 (기다리지 않고 배우기)

장거리 자동차 여행을 떠올려 보세요. 내비게이션은 "목적지까지 앞으로 3시간 20분 남았습니다"라고 예상 도착 시간을 알려줍니다. 그런데 다음 휴게소를 지날 때, 내비게이션은 "이제 2시간 55분 남았습니다"로 예상치를 업데이트합니다. 중요한 점은, 내비게이션이 여행이 완전히 끝날 때까지 기다리지 않고, 바로 다음 지점(휴게소)에 도착하는 순간 예상치를 즉시 고쳐 쓴다는 것입니다. 그것도 "실제로 도착해서 걸린 시간"이 아니라, "지금까지 걸린 시간 + 휴게소에서부터 다시 추정한 남은 시간"을 이용해서 말이죠. 이번 글에서 배울 시간차 학습(Temporal Difference learning, TD)이 정확히 이런 방식으로 작동합니다. 에피소드가 끝날 때까지 기다리는 몬테카를로 방법과 달리, TD는 한 ..

머신러닝 2026.09.30

강화학습 5 - 몬테카를로 (끝까지 경험하고 배우기)

먼저 만나는 이야기한 학기 동안 여러 번의 모의고사를 치른 학생을 생각해 봅시다. 이 학생은 "내가 이 문제 유형에서 평균적으로 몇 점을 받는가"를 알고 싶습니다. 정확한 채점 기준(환경의 규칙)을 몰라도, 단지 "이번 시험에서 이 유형 문제를 몇 개 맞혔는지"를 여러 번의 시험에 걸쳐 기록하고 평균을 내면 됩니다. 시험을 많이 치를수록 그 평균은 점점 진짜 실력에 가까워집니다. 몬테카를로(Monte Carlo, MC) 방법이 정확히 이렇게 작동합니다. 환경의 전이확률이나 보상함수를 몰라도, 에피소드를 여러 번 끝까지 진행해보고 그 결과(리턴)들의 평균을 내는 것만으로 가치함수를 추정합니다. "몬테카를로"라는 이름은 카지노로 유명한 모나코의 지역 이름에서 따온 것으로, 무작위 시행을 반복해 답을 근사하는..

머신러닝 2026.09.30

강화학습 4 - 동적 계획법 (환경을 알 때)

내비게이션 앱이 목적지까지의 최단 시간을 계산하는 방식을 떠올려 보세요. 앱은 목적지에서부터 거꾸로 계산합니다. "목적지까지 남은 시간은 0분"이라는 사실에서 출발해, 목적지 바로 앞 교차로들의 "남은 시간"을 계산하고, 그 다음 교차로들의 "남은 시간"을 또 계산하는 식으로 지도 전체에 정보를 퍼뜨립니다. 이렇게 하려면 앱이 도로 지도(어느 교차로가 어디로 연결되고, 각 구간에 얼마나 걸리는지)를 이미 완전히 알고 있어야 합니다. 이번 글에서 배울 동적 계획법(dynamic programming, DP)이 정확히 이런 방식으로 작동합니다. 앞에서 배운 MDP의 전이확률 $P$와 보상함수 $R$을 에이전트가 완전히 알고 있다고 가정하고, 목표(종료 상태)로부터 정보를 거꾸로 전파해 모든 상태의 정확한 가..

머신러닝 2026.09.27

강화학습 3 - 가장 단순한 강화학습: 멀티암드 밴딧

카페 앞에 처음 보는 자동판매기 다섯 대가 나란히 서 있다고 상상해 보세요. 각 자판기는 같은 값을 받지만, 눌렀을 때 나오는 음료의 "만족도"가 자판기마다 다르고, 여러분은 그 만족도를 미리 알 수 없습니다. 여러분에게 100번의 기회가 주어진다면, 어떤 순서로 어떤 자판기를 눌러야 총 만족도를 가장 높일 수 있을까요? 한 번씩 다 눌러보고 가장 좋았던 자판기만 계속 누를까요(활용)? 아니면 가끔은 다른 자판기도 다시 눌러볼까요(탐색)? 이 문제가 바로 멀티암드 밴딧 (multi-armed bandit) 문제입니다. "밴딧"이라는 이름은 카지노의 슬롯머신을 "one-armed bandit(외팔이 강도)"이라고 부르던 데서 유래했고, 팔(arm)이 여러 개(multi-armed)인 슬롯머신을 상상하면 됩..

머신러닝 2026.09.21

강화학습 2 - MDP라는 강화학습의 지도

내비게이션 앱을 켜고 목적지를 입력하면, 앱은 지금 여러분이 있는 위치(상태)와 가능한 경로들(행동)을 보고, 각 경로의 예상 소요 시간(비용, 즉 음의 보상)을 계산해 최선의 경로(정책)를 추천합니다. 이때 중요한 사실이 하나 있습니다. 내비게이션은 "여러분이 어떻게 지금 위치까지 왔는지"는 신경 쓰지 않습니다. 고속도로로 왔든, 국도로 왔든, 지금 이 교차로에 서 있다는 사실만 알면 다음 경로를 똑같이 추천합니다. 이 성질 — "미래를 결정하는 데 과거 전체가 아니라 현재 상태만 있으면 충분하다" — 이 바로 이번 글의 핵심인 마르코프 성질(Markov property)입니다. 이 성질을 만족하는 문제를 수학적으로 정리한 틀이 마르코프 결정과정(Markov Decision Process, MDP)입니..

머신러닝 2026.09.18

강화학습 1 - 강화학습은 무엇을 배우는가?

강아지에게 "앉아"를 가르친다고 상상해 보세요. 여러분은 강아지의 다리를 손으로 잡고 "이렇게 접어"라고 알려주지 않습니다. 대신 강아지가 우연히 엉덩이를 바닥에 붙이는 순간 간식을 주고 "잘했어!"라고 칭찬합니다. 몇 번 반복하면 강아지는 "앉는 행동 → 간식"이라는 관계를 스스로 알아채고, 다음부터는 "앉아"라는 말을 들으면 점점 더 빠르고 정확하게 앉게 됩니다. 이 훈련 과정에는 강화학습의 모든 재료가 대부분 들어 있습니다.배우는 주체(강아지) → 에이전트(agent)강아지를 둘러싼 세계(집, 여러분, 간식) → 환경(environment)지금 강아지가 서 있는지, 앉아 있는지, 엎드려 있는지 → 상태(state)강아지가 취할 수 있는 몸짓 → 행동(action)간식이나 칭찬(또는 무반응) → 보상..

머신러닝 2026.09.17

강화학습 0 - 보상을 따라 스스로 배우는 기계

여러분이 자전거를 처음 배우던 날을 떠올려 보세요. 누군가 옆에서 "지금 핸들을 3도 왼쪽으로, 페달은 초당 1.2바퀴로 밟으세요"라고 정답을 알려주지 않았을 겁니다. 대신 여러분은 넘어지고, 휘청거리고, 가끔은 몇 초간 똑바로 나아가면서 "아, 이렇게 하니까 덜 넘어지는구나"를 몸으로 익혔습니다. 아무도 정답을 알려주지 않았지만, "넘어졌다"와 "잘 나아갔다"라는 결과만으로 여러분은 점점 나아졌습니다. 이 시리즈에서 다루는 강화학습(reinforcement learning, RL)은 바로 이런 방식으로 배우는 ai 컴퓨터 프로그램을 만드는 방법입니다. 반면 우리가 흔히 먼저 배우는 지도학습(supervised learning)은 완전히 다른 방식으로 배웁니다. 고양이와 개 사진을 수만 장 보여주면서 "..

머신러닝 2026.09.17