https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html
0. 기계학습
데이터에서 특성을 추출하고, 이를 기반으로 모델을 학습하여 예측, 분류, 군집화 등의 작업을 수행한다. [1] 표현자(representation) : 데이터의 특성을 선택 및 유도하여 유효성을 확인한다. [2] 평가(evaluation) : 구축한 모델의 정확도를 나타낸다. [3] 최적화(optimization) : 실제 모델을 만들 때 필요한 방법, 학습 과정에 대응한다. 최적화를 이루기 위해서는 목적 함수를 정의해야 한다. 목적 함수는 보통 실측값과, 예측치의 차이들을 모두 제곱해서 더한 것으로 정의된다.
1. 강화학습
(1) agent of RL
강화학습의 agent(행위자)의 구성 요소는 크게 3가지다. [1] Policy란 주어진 상태에서 어떤 행동을 취할지 말해주는, 상태를 행동에 연결짓는 함수다. 크게 결정론적 정책과 확률적 정책으로 나뉜다. 전자는 하나의 행동만 출력하고 후자는 해당 상태에 대한 행동들의 확률 분포를 출력한다. [2] Value function이란 특정 상태, 행동을 취했을 때 이후 받게 될 모든 보상들의 가중합 예측 함수다. 감가율을 조정함으로써 앞선 보상과, 뒤에 받을 보상 간의 중요도를 나타낼 수 있다. [3] Model이란 환경의 다음 상태, 보상이 어떨지에 대한 agent의 예상이다. 크게 상태 모델, 보상 모델로 나뉜다.
(2) Model free vs Model based
RL 알고리즘의 첫번째 구분은 환경에 대한 model의 존재 여부다. [1] Model이 존재하면, Planning(계획)이 가능하다. Model이 존재한다는 것은 자신의 행동에 따라서 환경이 어떻게 바뀔지 안다는 의미로, 실제 행동 전 미리 변화를 예상하고 최적의 행동을 계획하여 실행할 수 있다는 장점을 가진다. 그러나 실제로 model을 정확히 알아내기가 어렵다는 한계를 가진다. [2] Model이 존재하지 않는 경우를 model-free라고 부른다. 모델을 사용할 때의 이점을 포기하지만, 구현과 조정이 더 쉬울 때가 많다.
Model free 방식은 크게 2가지의 접근법을 가진다. [1] Policy Optimization은 πθ(a∣s)로 표현하며 목적 함수 J(πθ)에 대해 경사 상승법을 직접 적용하거나 간접적으로 적용하여 파라미터 θ를 최적화한다. 이 최적화는 on-policy에서 거의 항상 수행된다. 즉, 각 업데이트가 정책의 가장 최신 버전 기반의 행동 데이터만 사용한다. 정책 최적화는 또한 일반적으로 온-폴리시 가치 함수 의 근사자
Policy Optimization과 Q-Learning 간의 트레이드 오프를 알아보자. Policy Optimization은 원칙적이고, 원하는 것을 직접 최적화할 수 있다. stable, reliable하게 해준다. 반면 Q-Learning은 Qθ을 훈련함으로써 성능을 간접적으로 최적화하기 때문에 덜 stable한 경향이 있다. 그러나 샘플 효율적인 이점, 즉 데이터를 더 효과적으로 사용할 수 있다는 이점을 가진다. 이 둘을 함께 사용하는 알고리즘으로는 DDPG, SAC 등이 있으며 이점만을 활용하여 사용하였다.
Model based 방식은 다양하다. [1] Pure Planning이라 함은 MPC(Model-Predictive Control)과 같이 명시적인 정책 없이, 순수 계획 기술을 사용하는 것이다. MPC에선 각 시간마다 agent가 환경을 관찰하고 모델에 관하여 최적의 계획을 계산한다. agent는 계획의 첫번째 행동만 취하고, 나머지는 다 버린다. 환경과 상호작용하기 전에 매번 새로운 계획을 계산한다. [2] Expert Iteration은 명시적 표현 πθ(a∣s)을 사용 및 학습한다. agent는 몬테 카를로와 같은 플래닝 알고리즘을 사용하여 현재 정책에서 샘플링을 통해 후보 행동들을 생성한다. 정책만 사용했을 때보다 더 나은 행동을 생성하므로 정책에 대해 '전문가'다. 다음 정책은 출력과 더 유사한 행동을 취하도록 업데이트된다. [3] Data Augmentation for Model-free Methods는 모델 없는 강화 학습 알고리즘을 사용하여 정책 또는 Q함수를 훈련한다. 이들은 agent를 업데이트할 때 실제 경험을 가상의 경험으로 보강하거나, 가상의 경험만 사용한다. [4] Embedding Planning loops into Policies, 플래닝 과정을 정책에 직접 서브루틴으로 포함한다.
2. MDP
(1) MDP
강화학습 문제는 가치함수와 기대 보상으로 이루어진 MDP(Markov Decision Process)로 모델링할 수 있다. MDP란 4개 요소로 구성된 튜플(S, A, P, R)이다. S는 상태 집합으로 구성된 유한 개의 상태 공간이다. A는 행동 집합으로 구성된 유한 개의 행동 공간이다. P는 전이 함수 transition function으로서 행동 A를 통해 상태 S에서 상태 S'로 변환될 확률을 의미한다. P(S', S, A) = P(S' | S, A)에서 전이함수는 S와 A가 주어졌을 때 S'가 발생할 조건부 확률이다. R은 보상함수로서 상태 S에서 행동 A를 수행한 후 상태 S'로 변환되는 과정에서 얻는 가치를 결정한다.
MDP 정의에 따르면 전이함수와 보상함수는 현재 상태에 의해서만 결정되며, 이전에 방문한 상태의 시퀀스의 영향을 받지 않는다. 이 특성을 마코브 특성 Markov property라 한다. MDP의 최종 목표는 누적 보상을 최대화하는 폴리시 π를 찾는 것이다.
-> 실제로는 유한 개의 이전 상태를 대상으로 MDP라고 가정하고 문제를 푼다. 이런 시스템을 부분적으로 관측 가능하다고 표현하며, 상태는 관측, observation이라고 한다.
(2) Policy
Policy는 주어진 상태에서 취해야 할 행동을 선택하며, 결정론적 또는 확률론적으로 구분할 수 있다. 확률적 폴리시는 at ~ π(.|st) 라고 한다. 행동 분포를 고려해야 할 때 사용되며, 예를 들어 노이즈가 반영된 행동을 시스템에 반영하는 경우가 있다. 일반적으로 확률적 폴리시는 범주형 또는 가우시안 형태를 갖는다. 가우시안의 경우 평균과 표준 편차를 parameter로 하는 가우시안 분포에서 행동을 샘플링할 수 있다. 또한 파라미터로 이뤄진 폴리시는 문자 θ로 정의한다. [1] On-policy란 에이전트라 정책을 따라 환경과 상호 작용하는 것이고, [2] Off-policy란 에이전트가 이전에 수집한 데이터를 사용하여 다른 정책을 학습하는 것이다. (재사용)
(3) discount factor, return
MDP에서 폴리시를 실행할 때 발생하는 상태와 행동의 순서를 궤도라고 한다. 각 궤도에서 행동의 결과로 일련의 보상이 수집된다. 이러한 보상을 return이라 한다. 종료되지 않는 환경에서 보상 공식을 구하기 위해 감가율, discount factor가 도입된다. 가중치를 감가율이라 하고, 기호 γ∈[0, 1] 이다.
(4) 가치함수
return은 궤도 가치에 대한 정보를 제공한다. 가치함수는 상태, 행동 등의 단일 요소의 품질에 대한 정보를 제공한다. [1] 상태가치함수는 가치함수라고도 하며 V로 표기한다. 상태를 입력으로 받고 해당 상태의 가치를 출력한다. [2] 행동가치함수는 큐 함수 Q function라고도 하며 Q로 표기한다. 상태와 행동을 입력으로 받고 해당 상태에서 행동에 대한 가치를 출력한다.
(5) 밸만 방정식
상태-가치 V와 행동-가치 Q는 폴리시 π를 따르는 궤도를 실행한 다음, 얻은 값의 평균을 계산해 추정한다. 밸만 방정식은 행동-가치 함수와 상태-가치 함수를 반복적으로 정의해 후속 상태로부터 추정이 가능하다. 이를 사용하여 해당 궤도를 끝까지 운영할 필요 없이, 현재 시점에 획득한 보상과 다음 시점의 가치만으로 현재 시점의 가치(상태-가치, 행동-가치)를 업데이트할 수 있다.
(6) DP알고리즘
완벽한 환경 모델을 받아 최적의 폴리시를 산출한다. 다음 상태의 기대가치를 사용해 현재 상태의 가치를 추정 및 개선한다. DP는 벨만 방정식을 이용해 V*와 Q*를 추정한다.
3. Policy Optimization, Q-Learning
DQN(2013) -> A2C, A3C(2016) -> DDPG(2015) -> PPO(2017) -> TD3, SAC(2018) 순서.
(1) Q-learning
Q-learning은 DP와 마찬가지로 폴리시의 가치함수를 추정하는 [1] 폴리시 평가, 이전 단계에서 얻은 추정치를 사용해 폴리시를 개선하는 [2] 폴리시 개선으로 이뤄진다. Q-러닝은 모두 원-스텝, 테이블 구조의 TD 알고리즘으로 가치함수를 추정하고 폴리시를 최적화한다. (TD란 경험에서 최적의 폴리시를 학습하는 시간차 학습을 의미한다)
-> how to solve exporation problem? 고정된 틀을 깨고 좋은 결과를 얻으려면 환경을 탐색하는 것이 중요하며 이를 통해 더 나은 폴리시를 찾을 수 있을지 확인해야 한다. 탐색 exploration 과 발견(현재 이용 가능한 최선의 정책에 따라 행동하는 것)은 입실론 그리디 정책에 의해 조정된다.
Q-러닝은 Off policy 알고리즘이다. Off policy란 이전 경험을 사용해 폴리시를 개선할 수 있다. 환경과 상호작용해 경험 데이터를 수집하는 폴리시와 상관 없이 업데이트 수행이 가능하다. 환경과 상호작용하는 폴리시를 행동 폴리시 behavior policy, 실제로 개선되는 폴리시를 타깃 폴리시 target policy라고 한다.
(2) Policy Optimization
목적 함수를 정의한다. 목적 함수를 최대화하는 방향으로 네트워크의 파라미터를 업데이트한다. 정책 기반 강화학습의 목표는 목적 함수 J(θ)를 최대화하는 파라미터 θ를 찾는 것이다. 이를 위해 목적 함수의 gradient를 계산한다.
출처 : https://dreamgonfly.github.io/blog/rl-taxonomy/
'LAB > RL, IRL' 카테고리의 다른 글
강화학습(3) 코드 실습 : Q-learning, DQN (0) | 2024.01.30 |
---|---|
강화학습(2) DQN, Double DQN, Deuling DQN (1) | 2024.01.30 |
GAIL (0) | 2023.07.18 |
DGAIL 코드 분석(DDPG.py) (0) | 2023.07.17 |
역강화학습(1) 역강화학습 기술 동향 (0) | 2023.06.22 |