최근 수정 시각 : 2025-05-05 23:33:26

강화학습


[[컴퓨터공학|컴퓨터 과학 & 공학
Computer Science & Engineering
]]
[ 펼치기 · 접기 ]
||<tablebgcolor=#fff,#1c1d1f><tablecolor=#373a3c,#ddd><colkeepall><colbgcolor=#0066DC><colcolor=white> 기반 학문 ||수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(형태론 · 통사론 · 의미론 · 화용론 · 음운론) · 인지과학 ||
하드웨어 구성 SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · 바이오스 · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · NERF · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구 및 기타 논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영체제(멀티태스킹 · 프로세스 스케줄링 · 데드락 · 식사하는 철학자 문제 · 뮤텍스 · 세마포어 · 인터럽트) · 데이터베이스 · 컴퓨터 언어 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 어휘 분석 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 마크업 언어 · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크(네트워크 포트) · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템) · 난수생성

학습
행동학습 인지학습 기계학습심층학습
비연합학습 연합학습 사회학습 잠재학습 통찰학습 지도학습 비지도학습 강화학습
습관화 민감화 고전적 조건형성 도구적 조건형성


사람이 강화학습 알고리즘으로 걸음을 익힌다면 이런 식이 될 거다(3D 애니메이션)
1. 개요2. 상세3. 학습 알고리즘
3.1. Value based Algorithms3.2. Policy Gradient Algorithms3.3. 알고리즘 구현 참조 라이브러리
4. 활용5. 관련 용어6. 관련 문서

1. 개요

/ Reinforcement learning

강화학습은 동물의 학습 능력을 모방한 것으로, 특정 상태(state)에서 어떤 행동(action)을 취하는 것이 최적인지를 학습하는 것이다.

2. 상세

파일:RL_main.png

강화학습의 주요한 기원 중 하나는 MDP(Markov Decision Process)가 있다. MDP는 1960년대 제안된 방법으로, 확률적 의사결정 문제를 수학적으로 정의하기 위한 프레임워크로 이해할 수 있다. 어떤 상태 S에서 행동 A를 취하면 보상 R을 받는 구조를 통해 심리학의 보상 기반 학습 개념을 수학적으로 모델링하였다.

강화학습의 또 다른 기원으로는 벨만 방정식이 있다. 1950년대, 동적 프로그래밍을 비롯한 제어이론을 연구하던 미국의 응용수학자 리처드 E. 벨만은 제어 문제를 재귀적인 형태[1]로 정의하였으며, 이를 벨만 방정식이라고 불렀다. 당시에는 연료, 에너지, 시간 등 다양한 요소로 정의된 비용을 최소화하는 방식으로 문제를 해결하였다. 이러한 비용 최소화 문제를 보상 최대화 문제로 등가 변환하는 관점을 채택하는데 이것이 강화학습으로 연결된다.

이 두 이론이 결합된 것이 바로 강화학습의 이론적 기초가 된다. 즉, 보상 기반의 확률적 의사결정 문제를 벨만 방정식을 이용하여 재귀적으로 해석하는 것이 강화학습 이론의 수학적 핵심이라 할 수 있다.

강화학습을 구성하는 주요한 구성요소는 다음과 같다.
  • 에이전트(Agent): 강화학습 문제 상황에서 학습 혹은 행동의 주체가 되는 시스템을 말한다. 다음과 같은 하위 구성요소를 지닌다.
    • 상태(State, [math(s)]): 에이전트가 환경을 관찰한 결과
    • 행동(Action, [math(a)]): 환경을 관찰한 에이전트의 선택
    • 정책(Policy, [math(\pi(a|s))]): 상태에 따른 행동을 선택하는 전략
    • 가치 함수(Value function): 정책하에서 미래 보상의 기댓값
      • 상태 가치 함수(State Value Function, [math(V^{\pi}(s))]): 어떤 정책 [math(\pi)]를 따를 때, 상태 [math(s)]가 가지는 미래 보상의 기댓값.
      • 행동 가치 함수(Action Value Function, [math(Q^{\pi}(s, a))]): 어떤 정책 [math(\pi)]를 따를 때, 상태 [math(s)]에서 행동 [math(a)]를 선택할때 가지는 미래 보상의 기댓값
  • 환경(environments): 에이전트가 상호작용하는 외부 세계를 의미하며, 다음과 같은 구성요소로 정의된다.
    • 상태공간(State Space, [math(S)]): 환경이 정의하는, Agent가 가질 수 있는 모든 상태의 집합
    • 행동공간(Action Space, [math(A)]): 환경이 정의하는, Agent가 선택할 수 있는 모든 행동의 집합
    • 상태 전이 함수(State Transition Function, [math(P(s'|s, a))]): 에이전트가 상태 [math(s)]에서 행동 [math(a)]를 선택할 때, 다음 상태를 정의하는 함수
    • 보상 함수(Reward Function, [math(R(s, a))]): 에이전트가 상태 [math(s)]에서 행동 [math(a)]를 선택할 때, 그 결과로 제공될 보상을 정의하는 함수
      • 보상(Reward, [math(r)]): 보상함수의 결과값

강화학습은 행동을 취할 때마다 외부 환경에서 보상(reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다(지연된 보상). 이 때문에 문제의 난이도가 지도학습/비지도학습에 비해 대폭 상승하며, 시스템을 제대로 보상하는 것과 관련된 신뢰 할당 문제라는 난제가 여전히 연구원들을 괴롭히고 있다.

대표적으로 게임 인공지능을 만드는 것을 생각해볼 수 있다. 체스에서 현재 나와 적의 말의 배치가 state가 되고 여기서 어떤 말을 어떻게 움직일지가 action이 된다. 그리고 이러한 행동을 결정하는 함수를 정책함수라고 부른다. 상대 말을 잡게 되면 보상이 주어지는데, 상대 말이 멀리 떨어져 이동할 때 까지의 시간이 필요할 수 있으므로, 상대 말을 잡는 보상은 당장 주어지지 않는 경우도 생길 수 있다. 심지어는 그 말을 잡은 것이 전술적으로는 이익이지만 판세로는 불이익이라 다 끝났을 때 게임을 질 수도 있다(지연된 보상). 따라서 강화학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총 합이 최대화되도록 action을 선택해야 하며, 게다가 행동하는 플레이어는 어떤 행동을 해야 저 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하면서 가장 좋은 선택이 뭔지 action을 여러 방식으로 수행하며 고민해야 한다. 좋은 선택이 뭔지 action을 찾는 것을 탐색, 지금까지 나온 지식을 기반으로 가장 좋은 action을 찾아 그것을 수행하는 것을 활용한다고 하여, 강화학습을 푸는 알고리즘은 이 둘 사이의 균형을 어떻게 잡아야 할지에 초점을 맞춘다.

오래전부터 움직이는 모터, 로봇, 드론, 자율이동체 등 이 원하는 성능을 갖도록 고전적인 제어공학이 발전되어 왔다. 점차 시스템이 복잡해지고, 원하는 성능도 높아지면서, 고전적인 제어공학으로 해결하기 힘든 현실적인 제어 문제가 많이 등장하였다. 최근 기존 제어와 비슷한 피드백 형식으로 시스템을 학습하고 원하는 성능을 얻어내는 강화학습은 이런 도전적인 제어 문제 해결에 큰 역할을 하고 있다.

때문에 강화학습은 기존의 제어공학에서 유래하였고, 많은 아이디어를 공유한다. 강화학습에서 최적화대상으로 여겨지는 정책함수와 가치함수등이 이미 존재하는 제어이론에서 유래하였다. 때문에 강화학습을 뿌리부터 이해하기 위해서는 동적 프로그래밍, 벨만 방정식, 확률적 최적화 등 기존의 제어공학, 최적화 이론에 대한 지식이 필요하다. 다만 프로그래밍을 이용한 구현 자체는 이러한 지식이 없어도 될 수준이다.

강화학습을 배워보고 싶은 경우 참고할 수 있는 사이트들이다.
모두를 위한 RL강좌
CS234 강의
CS285 강의
팡요랩
OpenAI 블로그
OpenAI Spinning Up
혁펜하임

3. 학습 알고리즘

3.1. Value based Algorithms

가치 기반 강화학습에서는 신경망이 [math(Q(s, a))], 즉 상태 [math(s)]에서 보상을 최대화 하는 행동 [math(a^*)] 및 그때의 [math(Q(s,a^*))]를 예측한다. 일반적으로 불연속적인 행동에 대해서만 적용 가능하다.
  • Q-Learning: 정책을 직접 모델링하지 않고 행동 가치 함수 [math(Q)]를 학습시키는 것으로 명시적인 정책 함수 없이 최적 정책을 유도하는 방법. 정책 함수 없이 작동하기 때문에 off-policy 방식에 속한다.
  • SARSA: 이미 주어진 정책 함수에 따라 행동을 선택하고, 그 행동의 결과를 반영해 [math(Q)]함수를 업데이트하는 방식. 하나의 에피소드가 종료되면 이렇게 최적화된 [math(Q)]함수를 이용해서 정책함수를 업데이트 하고 다시 그 행동의 결과를 반영해 [math(Q)]함수를 업데이트하는 식으로 반복한다. 정책 함수가 정의되어야 작동하기 때문에 on-policy 방식에 속한다.
  • DQN: 구글 딥마인드에서 2013년에 제시한 방법이다. 기존의 Q러닝을 인공신경망을 통해 모델링하는 방식을 제시하였다. arxiv
  • Dueling DQN: DQN의 Q 함수를 [math(Q(s, a) = V(s) + A(s, a))] 로 분해하여, 더 안정적인 학습을 가능하게 한다. [math(a)]가 다양할수록 [math(Q(s,a))]를 학습하는데 사용 가능한 표본이 비교적 적어진다는 문제를, 어떤 행동 [math(a)]를 선택하더라도 [math(V(s))]를 학습하는데라도 도움이 될 수 있도록 했다고 생각하면 편리하다. arxiv

3.2. Policy Gradient Algorithms

정책 기반 알고리즘에서는 신경망이 정책 자체를 근사해 각 상태에서 어떤 행동을 취할 확률을 직접적으로 출력한다. 가위바위보와 같은 확률적 정책을 근사하는 것에 특히 유용하지만 학습이 불안정하다는 단점이 있다.
최근에는 가치 함수를 이용하는 방법보다 주목 받고 있는데, 정책함수를 근사한다는 점 때문에 이미 만들어진 모델을 튜닝하는데에 활용할 수 있기 때문이다. 정책 기반 강화학습을 통해 다룰 수 있는 범위는 기존의 제어 문제에서 LLM과 같은 범위로 확장되었고, 여기서 사전학습된 모델을 미세조정하는 단계에서 적극적으로 활용되고 있다.[2]
  • REINFORCE Algorithms
  • A2C(Advantage Actor-Critic)
  • A3C(Asynchronous Advantage Actor-Critic) A2C가 한개의 에이전트로 학습을 한다면, A3C는 여러 에이전트들을 가동시켜 비동기적('A'synchronous)으로 모델을 업데이트 하는 알고리즘이다. arxiv
  • ACER(Actor-Critic with Experience Replay) arxiv
  • TRPO(Trust Region Policy Optimization) arxiv
  • PPO(proximal policy optimization) 2017년 기준 SOTA에 속하는 알고리즘. on-policy 방식이며, discrete와 continuous한 환경 모두에서 사용 가능하다. TRPO 의 2차근사가 연산량과 구현 둘 다 힘들게 하기에, 1차 근사로도 TRPO의 근접하거나 그 이상의 성능을 내려 하는 것이 PPO의 특징으로, 'P'olicy 'O'ptimization을 'P'roximal하게 한다는 뜻으로 이름이 붙었다. 초창기에는 실제로 구현해보면 성능이 잘 나오지 않아서, parameter의 fine-tuning을 통해 얻어낸 결괏값이 아니냐는 의심을 받기도 했다. 2022년 이후로는 PPO를 활용한 RLHF 학습 루틴이 ChatGPT로 그야말로 초대박을 치면서 대접이 달라졌다. arxiv
  • DDPG 심층 결정론적 정책 경사법 알고리즘
  • SAC(Soft Actor Critic) arxiv

3.3. 알고리즘 구현 참조 라이브러리

  • Stable-Baselines: Tensorflow 기반 기본 강화학습 알고리즘들을 구현해놓았다.
  • Stable-Baselines3: PyTorch 기반 기본 강화학습 알고리즘들을 구현해놓았다.
  • CleanRL: 모듈 기반의 복잡한 구조를 멀리하고, 단 하나의 파일 당 한 알고리즘의 모든 것이 들어갈 수 있게 한다는 철학을 가진 강화학습 라이브러리이다.

4. 활용

4.1. 인공지능 로봇

파일:상세 내용 아이콘.svg   자세한 내용은 인공지능 로봇 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[인공지능 로봇#s-6.4|6.4]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[인공지능 로봇#|]][[인공지능 로봇#|]] 부분을
참고하십시오.

4.2. LLM

4.2.1. RLHF

파일:상세 내용 아이콘.svg   자세한 내용은 RLHF 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[RLHF#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[RLHF#|]][[RLHF#|]] 부분을
참고하십시오.
RLHF(Reinforcement Learning from Human Feedback)는 인간 피드백 기반 강화 학습이라고도 하며 LLM이 인간의 선호도나 지침을 더 잘 따르도록 훈련시키는 기계 학습 기법이다.

인간 평가자가 모델이 생성한 여러 결과물에 대해 선호도를 평가하고 순위를 매기면 이 피드백 데이터를 사용해 어떤 결과물이 더 좋은지를 판단하는 '보상 모델'을 학습시킨다. 이 보상 모델은 강화학습 루프에 통합되어 언어모델이 인간 평가자가 선호할 만한 응답을 생성하도록 미세 조정한다. 결과적으로 LLM의 유용성, 정직성, 무해성을 향상시키는 것을 목표로 한다.

4.2.2. RLVR

RLVR(Reinforcement Learning with Verifiable Rewards)는 검증 가능한 보상 신호를 활용해 LLM을 훈련하는 강화학습 기법이다. 모델의 출력이 사전에 정의된 정답 기준을 만족할 때만 보상을 부여하는 방식으로 명확한 정답 신호를 통해 모델의 성능을 향상시킨다.

RLVR은 이진적 보상 함수를 사용하기 때문에 모델이 올바른 답변을 생성하면 1의 보상을 받고, 틀리거나 기준에 맞지 않으면 0의 보상을 받는다. 이런 명확한 보상 구조를 통해 모델은 보다 객관적이고 신뢰할 수 있는 기준으로 훈련될 수 있다. 

RLVR을 통해 훈련된 모델 중 가장 최초의 것은 높은 확률로 OpenAI o1이나 OpenAI가 학습 프로토콜을 비밀에 부침으로써 RLVR이라는 명칭과 학습방법은 Tülu3#라는 무명의 모델에서 유래하게 되었다. 소위 딥시크 쇼크의 주역인 DeepSeek-R1도 같은 방식으로 훈련되었다.

4.3. 기타

2020년 국내에서 혈당만으로 필요한 인슐린양을 정확하게 계산하는 AI 알고리즘을 개발했는데 여기에 강화학습이 사용되었다. AI에게 주입한 인슐린양에 따른 혈당이 어떻게 변하는지 나타낸 데이터를 학습시켜 당뇨병 환자의 혈당 데이터를 입력했을 때 최적의 인슐린양을 찾도록 한 것. 논문 링크

5. 관련 용어

파일:상세 내용 아이콘.svg   자세한 내용은 강화학습/용어 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[강화학습/용어#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[강화학습/용어#|]][[강화학습/용어#|]] 부분을
참고하십시오.

6. 관련 문서



[1] [math(a_{n+1}=f(a_n))]의 형태로 소위 점화식이라 불리는 형태를 의미한다.[2] ChatGPTRLHF를 사용한 것이 대표적이다.