딥러닝 프레임워크/강화학습

강화학습

Zoo_10th 2024. 4. 30.

1. 강화학습 기본 개념

1-1. 강화학습이란

강화학습은 인공지능의 한 분야로, 에이전트가 환경과의 상호작용을 통해 스스로 학습하며 최적의 결정을 내리는 방법을 배우는 과정이다. 에이전트는 행동을 선택하고, 그 결과로 환경에서 보상을 받으며, 이 보상을 사용해 더 나은 행동 선택을 위한 학습을 진행한다. 이러한 프로세스는 주로 시행착오를 통해 진행되며, 목표는 최대한의 긍정적 보상을 누적하는 것이다.

1) 강화학습의 구성

 에이전트(Agent) : 학습을 실행하는 주체로, 결정을 내리고 행동을 수행한다.
② 환경(Environment) : 에이전트가 상호작용하며 행동의 결과를 경험하는 곳이다.
 상태(State) : 환경의 현재 상태를 설명하는 정보이다.
④ 행동(Action) : 에이전트가 선택할 수 있는 행동의 집합이다.
 보상(Reward) : 에이전트의 행동에 대한 즉각적인 피드백으로, 보상의 크기는 에이전트가 얼마나 잘 행동했는지를 나타낸다.
⑥ 정책(Policy) : 상태에 따라 어떤 행동을 할지 결정하는 에이전트의 전략이다.
⑦ 가치(Value) : 특정 상태에서 시작하여 앞으로 받을 수 있는 보상의 총합에 대한 기대값이다.
⑧ 모델(Model) : 환경의 동작 방식을 에이전트가 이해하고 예측하는데 사용하는 내부 표현이다.

2) 강화학습의 활용

① 자율 주행 자동차 : 강화학습은 자동차가 실시간으로 주변 환경을 인식하고, 이에 맞춰 최적의 운전 결정을 내리는 데 사용된다.
② 게임 : 알파고와 같은 고급 전략 게임이나 비디오 게임에서 강화학습은 복잡한 게임 환경 내에서 최적의 전략을 배우는 데 활용된다.
③ 로보틱스 : 로봇들이 주어진 태스크를 수행하며 필요한 동작과 행동을 스스로 학습할 수 있도록 하는데 강화학습이 적용된다.
④ 재고 관리 및 물류 : 수요 예측, 재고 최적화 등에 강화학습을 활용하여 더 효율적인 물류 및 재고 관리 시스템을 구축할 수 있다.
⑤ 금융 분야 : 주식이나 다른 금융 상품의 자동 매매 시스템에서 강화학습을 이용해 최적의 매매 전략을 개발하고 실행할 수 있다.

1-2. 확률과정

환경의 불확실성과 시간에 따른 상태 변화를 모델링하여 에이전트가 최적의 결정을 내릴 수 있도록 돕는다. 이를 통해 에이전트는 확률적 환경 속에서도 효과적인 학습과 의사결정을 할 수 있다.

1) 확률

확률 은 어떤 사건이 발생할 가능성을 수치로 표현한 것이다. 이는 특정 사건이 발생할 빈도를 나타내며, 일반적으로 0과 1 사이의 값으로 표현된다. 0은 사건이 절대 발생하지 않음을, 1은 사건이 반드시 발생함을 의미한다. 확률은 짧은 기간 동안에는 랜덤으로 보일 수 있지만, 장기적으로 보면 특정 패턴이나 규칙성을 드러내는 경향이 있다. 예를 들어, 동전을 던지는 경우 장기간에 걸쳐 약 50%의 확률로 앞면이 나오게 된다.

2) 조건부 확률

조건부 확률은 특정 사건 B가 발생했다는 조건 하에 다른 사건 A가 발생할 확률을 의미한다. 수학적으로 표현하면  P(A|B)로 나타내며, 이는 "사건 B가 주어졌을 때 사건 A의 확률"을 의미한다. 예를 들어, 바깥이 비가 오는 날에 우산을 챙겨 갈 확률은 비가 오지 않는 날보다 높을 것이다. 조건부 확률은 이런 상황에서 어떤 사건의 발생 여부가 다른 사건의 발생 확률에 어떻게 영향을 미치는지를 분석하는 데 사용된다.

3) 확률 과정

확률 과정은 시간에 따라 변화하는 무작위 현상을 수학적으로 모델링한 것이다. 이는 시간의 흐름에 따라 그 값이 확률적으로 변화하는 하나 이상의 랜덤 변수들의 집합으로 구성된다. 확률 과정은 다양한 분야에서 매우 중요한 역할을 하며, 예를 들어 금융 시장에서 주식 가격의 변동, 기상학에서 기온 변화 예측 등에 사용된다. 확률 과정은 그 자체가 시간에 따른 변화를 포함하므로, 이를 통해 미래의 불확실성을 수치적으로 예측하고 분석할 수 있다.

1-3. 마르코프 연쇄

 - 마르코프 속성

마르코프 속성은 미래의 상태가 오직 현재 상태에만 의존하여 결정되고, 과거의 상태는 고려되지 않는 특성을 말한다. 이 속성을 갖는 시스템을 '메모리가 없는' 시스템이라고도 한다. 수학적으로, 마르코프 속성은 다음과 같이 표현된다.

확률이 과거 상태와는 무관하게 현재 상태에만 의존한다는 것을 나타낸다.

 - 마르코프 연쇄

마르코프 연쇄는 이러한 마르코프 속성을 가진 확률 과정을 말한다. 마르코프 연쇄에서는 각 시간 단계에서 시스템의 상태가 이산적으로 변할 수 있으며, 미래의 상태는 현재 상태에 의해서만 결정된다. 마르코프 연쇄의 정의에는 다음과 같은 요소들이 포함된다

① 상태 공간(State Space, S): 가능한 모든 상태의 집합이다.

② 전이 매트릭스(Transition Matrix, P): 상태 간의 전이 확률을 나타내는 행렬이다.

 - 환경과 에피소드

  * 에피소드 : 일련의 연속된 상태의 변화

  * 환경 : 전체 에피소드의 모음

1-4. 마르코프 보상과정

1) 마르코프 보상 과정

마르코프 보상 과정은 마르코프 연쇄를 확장하여 각 상태의 변화에 따른 보상과 감가율(γ)을 포함한다. 이를 통해 시간이 지남에 따라 발생하는 상태 변화의 가치를 평가할 수 있다.

2) 감가율 (Discount Factor, γ)

감가율 γ는 미래의 보상을 현재 가치로 환산할 때 사용되는 비율이다. 감가율은 0과 1 사이의 값으로 설정되며, 값이 낮을수록 미래의 보상을 더 크게 할인한다. 예를 들어, 장기적인 결과보다는 단기적인 결과를 더 중요하게 여기는 상황에서는 낮은 감가율을 사용할 수 있다.

3) 마르코프 보상 함수

마르코프 보상 과정에서는 각 상태에 대한 보상 함수 R(s)가 정의된다. 이는 시간 t에서 상태 s일 때 다음 시간 t+1에서 받을 수 있는 보상의 기대값을 나타낸다.

4) 반환값 (Return, G)

반환값 G는 특정 타임스텝 t에서 시작하여 에피소드가 종료될 때까지 받을 수 있는 누적 보상의 할인된 합계입니다. 각 단계에서의 보상 R_t와 감가율 γ를 사용하여 계산한다.

여기서 T는 에피소드의 종료 시간이다.

5) 상태가치 함수( V(s) )

상태가치 함수 V(s)는 특정 상태 s에서 시작해 얻을 수 있는 기대 반환값을 나타낸다. 이 함수는 벨만 방정식을 사용하여 재귀적으로 표현될 수 있다.

2. 강화학습 기본 알고리즘

2-1. 마르코프 결정과정 (MDP)

1) 마르코프 결정과정

마르코프 결정과정(Markov Decision Process, MDP)은 마르코프 보상 과정(Markov Reward Process, MRP)에 행동(Action)과 정책(Policy)을 추가하여 확장한 개념이다. MDP는 결정을 내리는 데 필요한 모든 요소를 포함하는 프레임워크로, 강화학습에서 중심적인 역할을 한다.

2) 에이전트

MDP에서 에이전트는 환경 속에서 행동을 하는 주체로, 정책에 따라 선택된 행동을 수행한다. 에이전트가 특정 상태에서 행동을 취하면, 상태 전이 확률 P에 따라 다음 상태로 이동하게 된다. 이는 에이전트의 행동이 환경에 어떤 영향을 미치는지를 나타낸다.

3) 정책

정책 π 는 특정 상태에서 어떤 행동을 취할 확률을 정의한다. 이는 상태에서 행동으로의 매핑이며, 모든 가능한 행동에 대해 확률의 총합은 1이 되어야 한다. 예를 들어, 네 가지 행동이 가능한 상태에서 각 행동을 선택할 확률을 정책을 통해 정의할 수 있다.

4) 행동가치 함수 (Q 함수)

행동가치 함수, 또는 Q 함수는 특정 상태에서 특정 행동을 취했을 때 기대할 수 있는 반환값(return)의 합을 나타낸다. 

R_(t+1)은 다음 시간 스텝에서 받을 보상, Γ 는 감가율, S_(t+1) 과 A_(t+1) 은 다음 상태와 행동이다.

5) 최적가치 함수

최적상태가치함수 v^s 는 모든 정책 중에서 가장 높은 반환값을 주는 정책을 따랐을 때의 상태가치를 나타낸다. 최적행동가치함수 q^(s, a) 는 모든 정책 중에서 가장 높은 반환값을 주는 정책을 따랐을 때의 행동가치를 나타낸다.

6) 최적정책

최적정책은 주어진 상태에서 최적행동가치함수를 최대화하는 행동을 선택함으로써 최대의 가치를 얻을 수 있게 하는 정책이다. 최적정책은 일반적으로 각 상태에서 최적가치를 실현할 수 있는 행동을 높은 확률로 선택하도록 구성된다.

2-2. 다이나믹 프로그래밍

 

REINFORCEjs: Gridworld with Dynamic Programming

GridWorld: Dynamic Programming Demo Policy Evaluation (one sweep) Policy Update Toggle Value Iteration Reset Cell reward: (select a cell) ### Setup This is a toy environment called **Gridworld** that is often used as a toy model in the Reinforcement Learni

cs.stanford.edu

1) 다이나믹 프로그래밍

다이나믹 프로그래밍(Dynamic Programming, DP)은 마르코프 결정과정(MDP)을 해결하기 위한 강력한 모델 기반(Model Based) 방법론이다. DP는 전체 문제를 작은 부분 문제로 나누고, 각 부분 문제를 해결한 결과를 저장하여 중복 계산을 방지함으로써 효율적으로 최적의 해결책을 찾는다.

2) 정책 평가 (Policy Evaluation)

정책 평가는 현재 정책 π에 대한 각 상태의 가치를 계산하는 과정이다.

① 초기화: 각 상태의 가치함수 V(s)를 임의의 초기값(예: 0)으로 설정한다.

② 반복 계산: 각 상태에 대해 다음 가치함수를 반복적으로 계산한다.

③ 수렴: V(s)가 수렴할 때까지 2단계를 반복한다.

3) 정책 제어 (Policy Improvement)

정책 제어는 계산된 가치 함수를 바탕으로 새로운, 보다 나은 정책을 찾는 과정이다.

① 탐욕적 선택: 각 상태 s에 대해 가치 함수를 최대화하는 행동을 선택한다. 즉, 각 상태에서 다음과 같은 탐욕적인 행동을 선택한다.

② 정책 업데이트: 새로운 정책 π'를 현재 정책 π로 설정한다.

③ 반복: 새로운 정책에 대해 정책 평가를 다시 수행하고, 이를 통해 다시 정책 제어를 진행한다.

4) 종결 조건

정책 제어와 정책 평가를 반복적으로 수행하면서 정책이 더 이상 변하지 않을 때, 즉 π = π'가 될 때까지 과정을 반복한다. 이렇게 최적의 정책을 찾는 과정을 종종 "정책 반복"이라고 한다. 이는 최적의 정책과 최적의 가치 함수를 동시에 찾아내는 강력한 방법이다. 다이나믹 프로그래밍은 모델 기반이어서 환경의 전체 상태 전이 확률과 보상 함수를 미리 알고 있어야 한다. 이 정보를 바탕으로 DP는 강화학습 문제에서 최적의 정책을 체계적으로 탐색할 수 있다.

2-3. 몬테카를로 방법

몬테카를로 방법은 모델프리(model-free) 환경에서 마르코프 결정과정(MDP)을 해결하는 데 사용되는 통계적인 접근 방식이다. 이 방법은 복잡한 문제에서 정확한 수학적 계산 대신 확률적인 샘플링을 통해 값을 추정한다.

1) 특징 및 활용

① 에피소드 기반: 몬테카를로 방법은 시작과 종료가 명확한 에피소드 단위에서 가장 잘 작동한다. 에이전트는 각 에피소드를 통해 경험을 쌓고, 이 데이터를 사용하여 정책이나 가치 함수를 평가한다.

② 모델프리: 이 방법은 환경의 동적인 모델(예: 상태 전이 확률이나 보상 함수)에 대한 사전 지식이 없이도 작동한다. 대신, 에이전트의 경험을 직접적으로 사용하여 학습한다.

③ 근사적 결과: 몬테카를로 방법은 확률적 샘플링을 통해 근사적인 결과를 제공한다. 이 방법은 복잡한 환경에서 실제로 일어날 수 있는 다양한 시나리오를 고려하여 평균적인 결과를 추출하는 데 유용하다.

2) 핵심 구성 요소

① 반환값 계산: 각 에피소드가 종료될 때까지 받는 보상의 총합을 계산하고, 이를 사용하여 가치 함수를 추정한다.

② 정책 평가와 개선: 에이전트의 경험을 기반으로 현재 정책의 효과를 평가하고, 보다 높은 반환값을 제공하는 행동을 우선시하는 방향으로 정책을 개선한다.

3) 기법

① 에피소드별 샘플링: 각 에피소드에서 에이전트의 행동과 그 결과로 나타나는 보상을 추적한다.

② 평균 반환값 계산: 샘플링된 데이터를 기반으로 각 상태 또는 상태-행동 쌍의 평균 반환값을 계산하여 가치 함수 또는 행동가치 함수를 업데이트한다.

4) 장점 및 단점

① 유연성: 몬테카를로 방법은 다양한 환경에서 적용 가능하며, 복잡한 동적 모델이 필요 없다.

② 단순성: 구현이 상대적으로 간단하며, 큰 수의 샘플을 통해 결과의 정확도를 향상시킬 수 있다.

③ 변동성: 샘플링 과정에서의 무작위성으로 인해 결과의 변동성이 크게 나타날 수 있다.

④ 수렴 속도: 에피소드가 길거나 복잡할 경우, 충분한 수의 에피소드를 샘플링하기 전까지는 결과가 불안정할 수 있다.

2-4. TD(Temporal Difference Learning)과 SARSA

1) TD (Temporal Difference Learning)

시간차 학습 또는 TD 학습은 강화학습에서 매우 중요한 방법론 중 하나다. 이 방법은 에피소드가 완료되기를 기다리지 않고, 각 단계마다 바로 가치 함수를 업데이트한다. 이는 몬테카를로 방법과 다이나믹 프로그래밍의 중간 형태로 볼 수 있다. TD 학습은 실시간으로 경험을 반영하며, 각 시간 스텝에서 예측된 가치와 실제 받은 보상을 비교하여 가치 함수를 조정한다.

 - TD 학습의 기본 수식

① V(S_t)는 시간 t에서의 상태 S_t의 가치 추정이다.
② α는 학습률(learning rate)이다.
③ R_(t+1)은 시간 t에서 t+1로 이동하며 받은 보상이다.
④ γ는 감가율(discount factor)이다.

⑤ V(S_(t+1))는 다음 상태 S_(t+1)의 가치 추정이다.

2) SARSA (State-Action-Reward-State-Action)

SARSA는 TD 학습을 기반으로 한 on-policy 학습 알고리즘이다. 이 알고리즘에서 에이전트는 현재 상태와 행동에서 시작하여 보상을 받고 다음 상태로 이동한 뒤 선택할 다음 행동을 결정한다. SARSA의 핵심은 다음 행동 또한 현재 정책에서 파생된 것이라는 점이다.

 - SARSA의 학습 수식

① Q(S_t, A_t)는 현재 상태 S_t와 행동 A_t에서의 행동 가치 함수이다.
② 나머지 변수들은 위 TD 학습의 변수와 유사하다.

SARSA는 에이전트가 실제로 경험하는 경로를 따라 학습하며, 다음 행동 A_(t+1)을 현재 정책에 따라 선택한다. 이 점이 Q-learning과 다른 주요 차이점으로, Q-learning은 다음 상태에서 가능한 최대 가치 행동을 선택하여 학습한다.

3) 차이점

① TD 학습은 상태의 가치를 직접 업데이트하는 방식이다.
② SARSA는 특정 상태-행동 쌍의 가치를 업데이트하며, 선택된 행동이 실제 정책을 따르는 방식으로 진행된다. SARSA는 자신이 선택할 행동에 기반하여 가치를 업데이트하는 on-policy 알고리즘이라 할 수 있다.

2-5. Q-Learning

1) 온 폴리시(On-policy)와 오프 폴리시(Off-policy)

① 온 폴리시 (On-policy) 방법은 학습 과정에서 에이전트가 평가하고 있는 정책을 직접 실행하여 데이터를 수집하는 방식이다. 즉, 학습과 실행에서 동일한 정책을 사용한다. 이 방법은 학습 중인 정책의 질적인 평가와 개선을 동시에 수행할 수 있다. SARSA는 대표적인 온 폴리시 알고리즘의 예다.
② 오프 폴리시 (Off-policy) 방법은 학습 과정에서 에이전트가 실행하는 정책과는 다른 정책을 평가하는 방식이다. 이 방법은 에이전트가 다양한 행동을 탐색하면서도, 다른 정책의 가치를 동시에 평가할 수 있어 유연하다. Q-Learning은 오프 폴리시 방식으로, 최적의 행동가치 함수를 학습하는데 초점을 맞춘다.

2) Q-Learning

Q-Learning은 경험을 쌓을 때 다음 행동을 현재 정책에 따라 선택하는 것이 아니라, Q값을 최대로 만드는 행동을 선택한다. 이 접근법은 에이전트가 최적의 행동을 학습하도록 유도하며, 이로 인해 에이전트는 최적의 경로를 빠르게 찾아갈 수 있다.

 - Q-Learning의 업데이트 공식

① α는 학습률이다.
② γ는 감가율이다.
③ max_(a)Q(S_(t+1), a)는 다음 상태에서 가능한 모든 행동 중 최대 Q값을 선택한다.

Q-Learning은 학습 과정에서 에이전트의 현재 정책과 상관없이 항상 최대 가치를 갖는 행동을 선택함으로써, 최적의 정책을 추정한다. 이 오프 폴리시 접근 방식은 강화학습에서 매우 효과적이며, 다양한 환경에서 강력한 성능을 발휘할 수 있다.

3. 강화학습 실습

3-1. DQN 알고리즘 (Deep Q-Network)

1) DQN 알고리즘 개요

DQN (Deep Q-Network)은 강화학습에서 Q-Learning 방법을 인공신경망으로 확장한 가치기반의 학습 알고리즘이다. 전통적인 Q-Learning에서는 상태-행동 쌍에 대한 가치함수(Q-function)를 테이블 형태로 저장하지만, DQN은 이를 대규모 복잡한 환경에서 스케일링 가능하도록 신경망을 이용해 가치 함수를 근사하다. 이를 통해 정책을 간접적으로 결정할 수 있다.

2) 탐험과 탐욕

탐험 (Exploration) 은 에이전트가 다양한 상태와 행동을 경험하게 하여 환경에 대한 정보를 넓히는 과정이다. 탐욕 (Exploitation) 은 현재 알려진 정보를 바탕으로 최대의 보상을 얻기 위해 최적의 행동을 선택하는 과정이다. 이 두 과정 사이의 균형을 맞추는 것이 중요한데, 초기 학습 단계에서 지나치게 탐욕적인 행동을 취하면 에이전트가 가능한 모든 행동을 충분히 탐색하지 못하는 문제가 발생할 수 있다.

3) 입실론 탐욕 정책 (Epsilon-Greedy Policy)

입실론 탐욕 정책은 탐험과 탐욕 사이의 균형을 맞추기 위해 사용되는 전략이다. 이 정책에 따르면, 대부분의 경우 최적의 행동을 선택하지만, 일정 비율(입실론)의 확률로 무작위 행동을 선택한다. 이 입실론 값은 시간이 지남에 따라 점차 감소하여, 학습이 진행됨에 따라 탐욕적 행동을 더 자주 취하게 된다.

4) 리플레이 메모리 (Experience Replay)

DQN에서는 에이전트가 환경을 탐험하며 얻은 경험을 리플레이 메모리라는 데이터 저장소에 저장한다. 이 메모리는 다양한 시간에 걸쳐 얻은 경험을 저장하여, 학습 과정에서 무작위로 추출하여 사용함으로써 학습 데이터 간의 시간적 상관관계를 줄인다. 이는 학습 과정의 안정성과 효율성을 향상시킨다.

5) DQN의 핵심 구성요소

① 신경망을 이용한 Q-함수 근사: 상태-행동 쌍의 가치를 예측하기 위해 사용된다.
② 입실론 탐욕 정책: 탐험과 탐욕의 균형을 맞추기 위해 사용된다.
③ 리플레이 메모리: 학습 안정성을 보장하며, 학습 데이터의 시간적 연관성 문제를 해결한다.
④ 타겟 신경망: 학습 중 일정 주기마다 메인 신경망의 가중치를 복사하여 업데이트의 안정성을 증가시킨다.

DQN 알고리즘은 복잡한 환경에서도 높은 성능을 보이며, 강화학습의 적용 범위를 대폭 확장하는 데 중요한 역할을 했다. 이 알고리즘은 비디오 게임, 로봇 제어 등 다양한 분야에서 성공적으로 사용되고 있다.

 

728x90

댓글