강화학습은 왜 자꾸 흔들릴까
강화학습을 처음 구현하면 이상한 일을 자주 겪습니다. 어제는 잘 되던 코드가 오늘은 실패합니다. 같은 알고리즘인데 어떤 랜덤 시드에서는 에이전트가 금방 똑똑해지고, 다른 시드에서는 끝까지 벽만 들이받습니다. 하이퍼파라미터를 아주 조금 바꿨을 뿐인데 학습 곡선이 하늘로 솟았다가 갑자기 바닥으로 떨어지기도 합니다.
이런 현상은 단순히 구현을 못해서 생기는 문제가 아닙니다. 강화학습 자체가 본질적으로 흔들리기 쉬운 구조를 가지고 있기 때문입니다.
지도학습에서는 보통 데이터셋이 먼저 정해져 있습니다. 고양이 사진과 강아지 사진이 있고, 모델은 그 데이터를 보며 분류 규칙을 배웁니다. 물론 지도학습도 어렵지만, 적어도 학습 중에 데이터셋의 사진들이 모델의 행동 때문에 갑자기 바뀌지는 않습니다.
강화학습은 다릅니다. 에이전트가 행동을 바꾸면, 에이전트가 보게 되는 상태도 바뀝니다. 상태가 바뀌면 경험 데이터가 바뀌고, 데이터가 바뀌면 다시 학습 방향이 바뀝니다. 즉 강화학습에서는 모델이 배우는 동안 시험 문제 자체가 계속 변합니다.
이 장의 핵심은 하나입니다. 강화학습은 알고리즘만 안다고 잘 되지 않습니다. 실험을 어떻게 설계하고, 결과를 어떻게 읽고, 실패를 어떻게 디버깅하느냐가 알고리즘만큼 중요합니다.

데이터 분포가 계속 바뀌는 문제
강화학습에서 에이전트는 환경과 상호작용하면서 데이터를 만듭니다. 이 데이터는 보통 다음과 같은 묶음으로 기록됩니다.
상태 → 행동 → 보상 → 다음 상태
문제는 이 데이터가 고정되어 있지 않다는 점입니다. 정책이 바뀌면 행동이 바뀌고, 행동이 바뀌면 방문하는 상태가 바뀝니다. 방문하는 상태가 바뀌면 에이전트가 배우는 데이터의 분포도 바뀝니다.
간단한 미로 게임을 생각해 봅시다. 처음 에이전트는 거의 무작위로 움직입니다. 그래서 시작점 주변, 벽 근처, 막다른 길에서 많은 데이터를 모읍니다. 그러다 우연히 출구 근처까지 가는 방법을 조금 배웁니다. 이제 에이전트는 예전보다 더 자주 미로의 중간 지점과 출구 근처를 방문합니다. 그러면 학습 데이터의 중심도 시작점 주변에서 출구 근처로 이동합니다.
겉으로 보면 좋은 일입니다. 하지만 여기에는 위험도 있습니다. 에이전트가 어느 순간 잘못된 습관을 배우면, 그 잘못된 습관 때문에 특정 상태만 반복해서 방문할 수 있습니다. 그러면 다른 가능성을 탐색할 데이터가 줄어듭니다. 데이터가 줄어들면 잘못된 습관을 고칠 기회도 줄어듭니다. 마치 잘못 든 골목에서 "여기가 세상의 전부인가 보다"라고 믿어 버리는 셈입니다.
이것을 비정상성 문제라고 부릅니다. 여기서 비정상성은 이상하다는 뜻이 아니라, 학습 데이터의 분포가 시간에 따라 고정되어 있지 않다는 뜻입니다. 강화학습에서는 에이전트가 곧 데이터 수집자이기 때문에, 모델의 현재 실력이 다음 학습 데이터의 품질을 결정합니다.
이 점은 DQN, Actor-Critic, PPO 모두에 영향을 줍니다. DQN에서는 경험 재생으로 데이터의 시간적 쏠림을 완화하려고 했고, 타깃 네트워크로 목표값이 너무 빠르게 흔들리는 문제를 줄이려 했습니다. PPO에서는 정책이 한 번에 너무 멀리 바뀌지 않도록 clipping을 사용했습니다. 서로 다른 기법처럼 보이지만, 큰 방향은 같습니다. 강화학습의 변화가 너무 빠르면 학습이 무너지기 때문에, 변화를 천천히 만들려는 장치들입니다.
에이전트는 자기 발자국 위에서 배운다
강화학습의 어려움은 "내가 만든 데이터로 내가 다시 배운다"는 구조에서 나옵니다. 이것은 강력한 장점이기도 하지만, 동시에 위험한 피드백 루프가 됩니다.
예를 들어 에이전트가 어떤 행동을 우연히 많이 선택했다고 해 봅시다. 그러면 그 행동에 대한 경험이 많아집니다. 경험이 많아지면 그 행동의 가치 추정이 더 자주 업데이트됩니다. 운이 좋아 초반에 보상이 조금 높게 잡히면, 에이전트는 그 행동을 더 자주 선택합니다. 그러면 또 그 행동에 대한 데이터가 늘어납니다.
좋은 행동이라면 문제가 없습니다. 하지만 운 좋게 좋아 보였을 뿐인 행동이라면 이야기가 달라집니다. 에이전트는 실제로 좋은 전략이 아니라, 초반 경험의 우연에 갇힐 수 있습니다.
탐험과 활용의 딜레마가 여기서 다시 등장합니다. 충분히 탐험하지 않으면 에이전트는 좁은 경험에 갇힙니다. 반대로 너무 많이 탐험하면 이미 배운 좋은 전략을 제대로 활용하지 못합니다. 강화학습의 실전 난이도는 바로 이 균형에서 시작됩니다.
특히 신경망을 함께 쓰면 문제가 더 복잡해집니다. 신경망은 본 적 없는 상태에 대해 그럴듯한 값을 예측합니다. 이것을 함수 근사라고 합니다. 함수 근사는 큰 상태 공간을 다루게 해 주는 강력한 도구입니다. 하지만 어떤 상태에서 잘못 배운 값이 비슷한 다른 상태의 예측까지 흔들 수 있습니다. 하나의 작은 오차가 넓게 번질 수 있는 것입니다.
그래서 강화학습은 종종 도미노처럼 무너집니다. 가치 추정이 조금 틀어지고, 정책이 그 틀어진 값을 믿고 행동하며, 그 행동이 다시 편향된 데이터를 만들고, 편향된 데이터가 가치 추정을 더 틀어지게 만듭니다.
보상이 희소하면 배울 단서가 사라진다
에이전트는 보상을 통해 배웁니다. 그런데 보상이 너무 드물게 주어지면 문제가 생깁니다.
미로에서 출구에 도착했을 때만 +1 보상을 주고, 나머지 모든 순간에는 0을 준다고 해 봅시다. 작은 미로라면 괜찮을 수 있습니다. 하지만 미로가 조금만 커져도 에이전트는 출구를 거의 찾지 못합니다. 출구를 찾지 못하면 보상은 계속 0입니다. 보상이 계속 0이면 어떤 행동이 좋았는지 나빴는지 알 수 없습니다.
이런 상황을 보상이 희소하다고 말합니다. 희소한 보상은 강화학습을 어렵게 만드는 대표적인 원인입니다. 에이전트 입장에서는 어두운 방 안에서 손전등 없이 출구를 찾는 것과 비슷합니다. 출구에 도착해야만 불이 켜지는데, 불이 켜지기 전까지는 어느 방향이 좋은지 아무런 단서가 없습니다.
이때 흔히 보상 설계를 바꿉니다. 예를 들어 출구에 가까워질수록 작은 보상을 주거나, 벽에 부딪히면 작은 벌점을 줄 수 있습니다. 이렇게 하면 에이전트는 완전한 성공을 하기 전에도 어느 정도 방향 감각을 얻습니다.
하지만 여기에도 함정이 있습니다. 보상을 잘못 설계하면 에이전트는 우리가 원한 행동이 아니라, 보상을 쉽게 얻는 행동을 배웁니다.
예를 들어 로봇에게 "앞으로 이동한 거리"에 보상을 준다고 합시다. 우리는 로봇이 안정적으로 걷기를 기대합니다. 그런데 에이전트는 넘어지면서 몸통을 앞으로 던지는 방법을 배울 수도 있습니다. 거리만 보면 보상을 받기 때문입니다. 게임에서 점수를 보상으로 주면 에이전트가 실제 승리와 무관한 점수 벌이 행동만 반복할 수도 있습니다.
강화학습에서 에이전트는 착하지도 나쁘지도 않습니다. 그저 보상을 최대화하려고 합니다. 그래서 보상 함수는 에이전트에게 쓰는 계약서와 같습니다. 모호하게 쓰면 에이전트는 그 빈틈을 파고듭니다.
잘못된 보상은 엉뚱한 천재를 만든다
강화학습의 재미있는 점은 에이전트가 종종 인간이 예상하지 못한 방법을 찾는다는 것입니다. 이것은 창의성처럼 보일 때도 있고, 꼼수처럼 보일 때도 있습니다.
문제는 둘의 차이가 보상 함수 안에서만 결정된다는 점입니다. 에이전트가 어떤 행동을 했을 때 보상을 많이 받는다면, 그 행동은 에이전트에게 좋은 행동입니다. 인간이 보기에 이상하거나 위험하거나 무의미하더라도 말입니다.
그래서 보상 설계에서는 "무엇을 보상할 것인가"만큼 "무엇을 보상하지 말아야 하는가"도 중요합니다. 목표를 너무 단순하게 정의하면 에이전트는 목표의 그림자만 쫓을 수 있습니다.
대표적으로 다음과 같은 문제가 생깁니다.
실제 목표와 보상 지표가 어긋난다.
단기 보상을 얻기 위해 장기 성과를 망친다.
환경의 허점을 이용해 의도하지 않은 행동을 반복한다.
벌점을 피하려고 아예 행동하지 않는 전략을 배운다.
마지막 항목은 특히 자주 나타납니다. 예를 들어 실수를 하면 큰 벌점을 주는 환경에서, 에이전트가 "아무것도 하지 않기"를 배울 수 있습니다. 인간은 적극적으로 문제를 해결하길 바라지만, 에이전트는 움직이지 않으면 벌점을 피할 수 있다고 판단합니다.
이런 현상은 나중에 LLM의 RLHF를 볼 때도 중요합니다. 언어 모델에 인간 피드백을 바탕으로 보상을 주면, 모델은 인간이 선호할 만한 답변을 만들려고 합니다. 그런데 보상 모델이 "길고 공손한 답변"에 높은 점수를 주는 경향을 갖고 있다면, 모델은 내용의 정확성보다 그럴듯한 말투를 과도하게 배울 수 있습니다. 즉 보상은 모델을 정렬하는 도구이지만, 잘못 설계되면 그럴듯한 착시도 만들 수 있습니다.
하이퍼파라미터는 작은 손잡이가 아니다
강화학습을 실험하다 보면 하이퍼파라미터의 영향이 생각보다 크다는 사실을 알게 됩니다. 하이퍼파라미터는 모델이 직접 학습하는 값이 아니라, 사람이 미리 정해 주는 설정값입니다. 학습률, 할인율, 배치 크기, 탐험 비율, 엔트로피 보너스, 업데이트 횟수 같은 것들이 여기에 속합니다.
지도학습에서도 하이퍼파라미터는 중요합니다. 하지만 강화학습에서는 더 민감하게 작동하는 경우가 많습니다. 이유는 단순합니다. 하이퍼파라미터가 모델의 학습뿐 아니라 데이터 수집 방식까지 바꾸기 때문입니다.
학습률이 너무 크면 정책이 한 번에 크게 바뀝니다. 정책이 크게 바뀌면 데이터 분포도 크게 바뀝니다. 그러면 방금 전까지 유효했던 가치 추정이 갑자기 맞지 않게 됩니다. 반대로 학습률이 너무 작으면 학습이 너무 느려져서, 충분한 성능에 도달하기 전에 실험을 포기하게 될 수 있습니다.
탐험 비율도 마찬가지입니다. 너무 낮으면 초반에 발견한 행동에 갇히고, 너무 높으면 좋은 행동을 배워도 계속 무작위로 흔들립니다. 할인율이 너무 낮으면 장기 목표를 보지 못하고, 너무 높으면 먼 미래의 불확실한 보상까지 크게 반영해 추정이 불안정해질 수 있습니다.
PPO에서는 clipping 범위, advantage 정규화, 한 번 모은 데이터로 몇 번 업데이트할지, 미니배치 크기를 어떻게 정할지 등이 모두 결과에 영향을 줍니다. clipping은 정책 업데이트를 안정적으로 만들기 위한 장치지만, 너무 강하게 막으면 학습이 거의 움직이지 않고, 너무 느슨하면 PPO의 장점이 약해집니다.
강화학습의 하이퍼파라미터는 작은 손잡이가 아닙니다. 자동차의 핸들, 가속 페달, 브레이크가 동시에 연결된 조작판에 가깝습니다. 하나를 돌리면 다른 것들의 의미도 함께 바뀝니다.
랜덤 시드와 환경 버전이라는 복병
강화학습 논문이나 예제를 따라 했는데 결과가 다르게 나올 때가 있습니다. 이때 가장 먼저 확인해야 할 것 중 하나가 랜덤 시드입니다.
랜덤 시드는 무작위성을 재현하기 위한 시작 번호입니다. 같은 시드를 쓰면 보통 같은 난수 흐름이 만들어집니다. 강화학습에서는 초기 신경망 가중치, 탐험 행동, 환경의 초기 상태, 샘플링 순서 등이 모두 무작위성의 영향을 받을 수 있습니다.
초반 몇 번의 우연한 성공이 학습 방향을 바꿀 수 있습니다. 어떤 시드에서는 에이전트가 초반에 좋은 경로를 우연히 발견하고 빠르게 성장합니다. 다른 시드에서는 계속 나쁜 상태만 방문하다가 학습 신호를 거의 얻지 못합니다. 그래서 강화학습 결과를 볼 때는 하나의 시드만 믿으면 위험합니다.
환경 버전도 중요합니다. 같은 이름의 환경이라도 버전에 따라 종료 조건, 보상 계산 방식, 관측값 범위, 물리 시뮬레이션 세부 설정이 달라질 수 있습니다. CartPole 같은 간단한 환경에서도 최대 에피소드 길이나 성공 기준이 바뀌면 학습 곡선의 의미가 달라집니다.
실전에서는 다음 정보를 함께 기록해야 합니다.
알고리즘과 주요 하이퍼파라미터
랜덤 시드 목록과 실행 횟수
환경 이름과 버전
라이브러리 버전과 실행 장치
평가 방식과 에피소드 수
이런 기록은 귀찮아 보이지만, 강화학습에서는 실험의 일부입니다. 코드만 저장해도 충분하지 않습니다. 어떤 조건에서 그 코드가 성공했는지 함께 남겨야 합니다.
학습 곡선 하나만 믿으면 위험하다
강화학습 결과를 볼 때 가장 흔히 보는 그래프는 평균 에피소드 보상입니다. 한 에피소드 동안 받은 보상을 합산하고, 여러 에피소드의 평균을 그린 것입니다. 그래프가 올라가면 에이전트가 좋아지고 있는 것처럼 보입니다.
하지만 평균 에피소드 보상만으로는 충분하지 않습니다.
첫째, 평균은 실패를 숨길 수 있습니다. 어떤 에이전트가 10번 중 5번은 크게 성공하고 5번은 완전히 실패한다고 해 봅시다. 평균 보상은 그럴듯해 보일 수 있지만, 실제로는 안정적인 정책이 아닙니다.
둘째, 보상은 환경 설계에 따라 왜곡될 수 있습니다. 보상은 높지만 목표를 제대로 달성하지 못하는 경우가 있습니다. 앞에서 본 것처럼 에이전트가 보상 함수의 빈틈을 이용하면 평균 보상은 좋아지는데 실제 행동은 이상할 수 있습니다.
셋째, 학습 중 보상과 평가 보상은 다를 수 있습니다. 학습 중에는 탐험을 위해 일부러 무작위 행동을 섞을 수 있습니다. 평가할 때는 탐험을 줄이고 현재 정책이 실제로 얼마나 잘하는지 확인해야 합니다. 학습 중 그래프만 보면 정책의 순수한 성능을 오해할 수 있습니다.
따라서 안정성을 판단할 때는 여러 지표를 함께 봐야 합니다.
평균 에피소드 보상: 전체적으로 보상이 증가하는지 본다.
성공률: 실제 목표를 달성한 비율을 본다.
보상의 분산: 성능이 들쭉날쭉한지 확인한다.
에피소드 길이: 오래 버티는 것이 좋은 환경인지, 빨리 끝내는 것이 좋은 환경인지에 맞게 해석한다.
여러 시드의 평균과 범위: 특정 운에만 의존한 결과인지 확인한다.
예를 들어 CartPole에서는 평균 보상이 높다는 말이 대체로 오래 버틴다는 뜻입니다. 하지만 어떤 게임에서는 오래 버티는 것이 좋은 전략이 아닐 수도 있습니다. 미로에서는 빨리 목표에 도착하는 것이 중요하고, 거래 환경에서는 단기 수익보다 위험 조정 성과가 중요할 수 있습니다. 지표는 환경의 목표와 함께 해석해야 합니다.
성공률은 행동의 언어로 결과를 말해 준다
평균 보상이 숫자의 언어라면, 성공률은 행동의 언어에 가깝습니다. 에이전트가 정말로 우리가 원한 일을 해냈는지를 직접 묻기 때문입니다.
Grid World에서는 목표 지점에 도착했는지를 볼 수 있습니다. 로봇 팔 환경에서는 물체를 잡았는지, 원하는 위치로 옮겼는지를 볼 수 있습니다. 언어 모델에서는 사람이 선호하는 답변을 골랐는지, 유해한 요청을 거절했는지, 사실성을 유지했는지를 볼 수 있습니다.
물론 성공률도 완벽하지 않습니다. 성공과 실패를 나누는 기준이 너무 거칠면 학습의 미세한 변화를 놓칠 수 있습니다. 예를 들어 로봇이 목표 지점에 1cm 못 미쳐 실패한 경우와 완전히 반대 방향으로 간 경우가 모두 실패로 기록될 수 있습니다. 그래서 평균 보상과 성공률은 함께 보는 편이 좋습니다.
좋은 평가는 하나의 숫자를 찾는 일이 아닙니다. 에이전트의 행동을 여러 각도에서 비추는 일입니다. 보상 그래프는 올라가는데 성공률이 낮다면 보상 설계를 의심해야 합니다. 성공률은 높은데 보상의 분산이 크다면 특정 상황에서만 잘하는 정책일 수 있습니다. 여러 시드 중 일부만 성공한다면 알고리즘이 아니라 실험 조건에 민감한 것일 수 있습니다.
강화학습 디버깅은 탐정 일에 가깝다
강화학습 디버깅은 일반적인 프로그램 디버깅과 느낌이 다릅니다. 코드에 문법 오류가 없고, 텐서 모양도 맞고, 손실 함수도 계산되는데, 에이전트가 전혀 배우지 않을 수 있습니다. 이때는 "어디가 틀렸나"보다 "무엇이 학습 신호를 망가뜨리고 있나"를 추적해야 합니다.
먼저 무작위 정책의 성능을 확인해야 합니다. 무작위로 행동했을 때 평균 보상이 어느 정도인지 알아야, 학습된 정책이 실제로 나아졌는지 판단할 수 있습니다. 그다음 보상이 예상대로 들어오는지 확인합니다. 목표에 도착했는데 보상이 안 들어오거나, 벽에 부딪혔는데 벌점이 없거나, 종료 조건이 잘못되어 있다면 아무리 좋은 알고리즘도 소용없습니다.
작은 환경에서 먼저 테스트하는 것도 중요합니다. 큰 환경에서 바로 실험하면 실패 원인을 찾기 어렵습니다. Grid World처럼 단순한 환경에서 알고리즘이 기본적으로 작동하는지 확인한 뒤, 더 복잡한 환경으로 옮기는 편이 안전합니다.
학습 곡선이 너무 요동친다면 학습률을 낮추거나, 배치 크기를 늘리거나, 업데이트 횟수를 줄여 볼 수 있습니다. 탐험이 부족해 보이면 탐험 비율이나 엔트로피 보너스를 조정할 수 있습니다. 가치 추정이 불안정하다면 보상 스케일, advantage 정규화, 타깃 네트워크, 클리핑 같은 안정화 장치를 확인해야 합니다.
다만 중요한 원칙이 있습니다. 한 번에 너무 많은 것을 바꾸지 않는 것입니다. 여러 설정을 동시에 바꾸면 무엇이 효과를 냈는지 알 수 없습니다. 강화학습 실험은 작은 가설을 세우고 하나씩 확인하는 방식으로 진행해야 합니다.
재현 가능한 실험을 만드는 습관
강화학습에서 재현성은 선택 사항이 아닙니다. 특히 어떤 결과가 정말 알고리즘 덕분인지, 운 좋은 시드 덕분인지 구분하려면 실험을 반복할 수 있어야 합니다.
가장 기본적인 습관은 실험 설정을 남기는 것입니다. 코드 저장소에 최종 코드만 남기는 것으로는 부족합니다. 실행할 때 사용한 설정값, 환경 버전, 시드, 평가 방법을 함께 기록해야 합니다. 가능하면 실험 이름도 의미 있게 붙이는 것이 좋습니다. test1, final_final, real_final 같은 이름은 나중에 아무것도 설명해 주지 못합니다.
또 하나의 좋은 습관은 학습 중간의 모델을 저장하는 것입니다. 강화학습은 마지막 모델이 항상 최고라는 보장이 없습니다. 어느 시점에는 잘하던 정책이 이후 업데이트에서 망가질 수 있습니다. 따라서 일정 간격으로 체크포인트를 저장하고, 평가 성능이 가장 좋은 모델을 따로 보관하는 편이 좋습니다.
결과는 가능한 한 여러 시드로 확인해야 합니다. 하나의 그래프가 아니라 여러 그래프의 평균과 범위를 함께 보는 것이 좋습니다. 그래프의 굵은 선은 평균 성능을, 주변의 옅은 영역은 시드별 변동성을 나타내게 할 수 있습니다. 옅은 영역이 넓다면 알고리즘이 민감하다는 뜻입니다. 평균이 좋아 보여도 변동성이 너무 크면 실전에서는 위험할 수 있습니다.
안정성은 느리게 좋아지는 능력이다
강화학습을 공부하다 보면 더 빠르게, 더 높게, 더 강하게 학습시키고 싶어집니다. 보상 그래프가 가파르게 올라가면 기분이 좋습니다. 하지만 안정적인 강화학습에서 중요한 것은 순간적인 최고점이 아닙니다. 여러 조건에서 무너지지 않고 꾸준히 좋아지는 능력입니다.
PPO가 중요한 이유도 여기에 있습니다. PPO는 가장 화려한 아이디어라서가 아니라, 정책을 한 번에 너무 크게 바꾸지 않도록 하면서 실전에서 비교적 안정적인 학습을 가능하게 했기 때문에 널리 쓰였습니다. 강화학습의 역사는 종종 "더 강한 업데이트"보다 "덜 망가지는 업데이트"를 찾는 과정이었습니다.
안정적인 학습을 위해서는 다음 질문을 계속 던져야 합니다.
데이터 분포가 갑자기 바뀌고 있지 않은가?
보상은 실제 목표를 제대로 반영하는가?
탐험이 너무 적거나 너무 많지는 않은가?
하나의 랜덤 시드에만 의존하고 있지 않은가?
평균 보상 외에 성공률과 변동성도 확인했는가?
이 질문들은 알고리즘보다 더 실전적입니다. 강화학습을 잘한다는 것은 단지 Q-learning, DQN, PPO의 이름을 아는 것이 아닙니다. 에이전트가 왜 배우지 못하는지, 왜 갑자기 무너지는지, 왜 어떤 설정에서만 성공하는지를 차분히 추적할 수 있다는 뜻입니다.
다음 단계: 직접 작은 세계를 만든다
지금까지 우리는 강화학습의 주요 개념을 이론적으로 살펴보았습니다. 상태, 행동, 보상, 정책, 가치 함수에서 시작해 Q-learning, DQN, Policy Gradient, Actor-Critic, Advantage, PPO까지 이어 왔습니다. 이제 중요한 전환점에 도착했습니다.
강화학습은 읽기만 해서는 완전히 잡히지 않습니다. 에이전트가 실제로 움직이고, 실패하고, 보상을 받고, 조금씩 나아지는 과정을 직접 봐야 합니다. 그래야 학습 곡선이 왜 흔들리는지, 보상 설계가 왜 중요한지, 탐험이 부족하면 어떤 일이 생기는지 몸으로 이해할 수 있습니다.
다음 장부터는 작은 실습 프로젝트로 들어갑니다. 먼저 Grid World를 만들 것입니다. 격자 위에 에이전트를 놓고, 목표 지점과 장애물을 정하고, 행동과 보상을 설계합니다. 이 작은 세계는 단순하지만 강화학습의 거의 모든 핵심을 담고 있습니다.
에이전트는 상태를 봅니다. 행동을 선택합니다. 보상을 받습니다. 다음 상태로 이동합니다. 그리고 장기 보상을 높이는 전략을 배웁니다.
이제 우리는 그 과정을 코드와 실험으로 직접 확인할 준비가 되었습니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.