3.1 강화학습
강화학습은 순차적인 의사결정 문제를 해결하는 방법이다. 강화학습은 Fig. 2와 같이 환경과 에이전트로 구성되며 Markov decision process(MDP)로 모델링 된다[16]. MDP에서 $t$시점의 상태$(s,\: s\in S)$와 행동$(a,\: a\in A)$이 주어질 때, 다음 상태$(s')$로 갈 확률은 Markov
특성을 사용하면 이를 식 (3)과 같이 나타낸다.
그림 2. 강화학습에서의 에이전트-환경 상호작용
Fig. 2. The agent-environment interaction in reinforcement learning
환경은 $s$를 나타내는 정보를 만들어내고, 에이전트는 $s$를 관측하고 이를 바탕으로 $a$를 선택하여 환경과 상호작용하게 된다. 이때 에이전트가
$a$를 선택하는 방법을 정책$(\pi(a|s))$이라 한다. 에이전트가 환경에 $a$를 취하면 환경은 이 $a$를 바탕으로 식 (4)를 통해 $s'$으로 전이하고, 식 (5)에 의해 이에 따른 보상$(r)$이 에이전트에게 주어진다.
$s,\: a,\: r$이 주어지는 한 사이클을 타임 스텝이라 하고 $(s,\: a,\: r,\: s')$ 쌍을 경험 튜플이라 한다. 강화학습
문제는 에이전트가 매 타임 스텝에서 좋은 $a$를 선택하고 한 에피소드(episode)에서 받는 감가된 $r$의 총합인 반환 값$(G)$을 최대화하며,
식 (6)과 같이 나타낼 수 있다.
감가율$(\gamma\in[0,\: 1])$은 현재 타임 스텝에서의 가치를 계산할 때 미래 타임 스텝에서의 $r$을 작게 만들어 예측된 $G$에
대한 분산을 줄이는 역할을 한다.
강화학습은 여러 기준으로 구분할 수 있는데 알고리즘이 학습하는 주요 함수가 무엇인지 혹은 알고리즘이 현재 정책만을 사용하여 학습을 진행하는 지로 구분한다.
Fig. 3에서 학습 기능에 따른 강화 학습은 정책 기반 학습, 가치 기반 학습, 모델 기반 학습으로 구분할 수 있다.
본 논문에서 사용되는 가치 기반 학습은 강화학습을 통해 가치함수를 추정하고 이를 바탕으로 상태-행동 쌍을 평가하고 정책을 생성한다. 대표적인 알고리즘으로는
DQN, DDQN, dueling DDQN 등이 있다. 가치 기반 학습은 정책 기반 알고리즘보다 분산이 작아 표본 효율적이라는 장점이 있지만, 최적
정책으로의 수렴을 보장할 수 없고 이산적 행동 공간을 가진 환경에만 적용할 수 있다는 단점이 존재한다. 이외에도 가치 기반 학습에 정책 기반 학습을
결합한 Actor-critic 방법도 있다[17].
그림 3. 학습 기능에 따른 강화 학습의 분류
Fig. 3. Classification of reinforcement learning based on learning function
가치 기반 학습은 상태-가치함수 또는 행동-가치함수를 학습하는 방법으로, 학습을 통해 가치함수를 추정하고 이를 바탕으로 $(s,\: a)$ 쌍을
평가하고 정책을 생성한다.
상태-가치함수는 $V^{\pi}(s)$ 또는 $V$ 함수라 부르며 $s$에서 모든 $a$에 대하여 에이전트가 얻을 수 있는 $G$에 대한 기대치를
말하고 식 (7)과 같이 나타낼 수 있다.
행동-가치함수는 $Q^{\pi}(s,\: a)$ 또는 $Q$ 함수로 부르며 $s$에서 특정 $a$를 취했을 때, 에이전트가 얻을 수 있는 $G$에
대한 기대치를 말하고 식 (8)과 같이 나타낼 수 있다.
식 (7)과 식 (8)에 의해 $V^{\pi}(s)$는 식 (9)와 같이 나타나며, $V^{\pi}(s)$는 $s$에서 가능한 모든 $Q^{\pi}(s,\: a)$의 기댓값임을 의미한다.
또한 $V^{\pi}(s)$와 $Q^{\pi}(s,\: a)$를 이용하면 행동-이점 함수를 구할 수 있다. $A^{\pi}(s,\: a)$ 또는
$A$ 함수라 불리는 행동-이점 함수는 정책 $\pi$를 수행하는 동안 $s$에서 $a$를 취했을 때 얻을 수 있는 이점으로, 동일한 정책 $\pi$에서
$a$에 대한 가치와 $s$에 대한 가치의 차이를 의미한다. $A^{\pi}(s,\: a)$는 식 (10)과 같이 나타낼 수 있다.
$V$ 함수와 $Q$ 함수는 모두 행동에 대해서 표현된다. 이 두 함수가 최적의 상태일 때를 이상성이라 부른다. 즉 모든 $s$에 대하여 다른 정책들보다
반환값의 기댓값이 더 큰 상태를 의미한다. 최적 $V$ 함수$(V^{*}(s))$는 모든 상태에 걸쳐, 모든 정책에 대한 최대의 가치를 가지는 $V$
함수를 말하며 식 (11)과 같이 표현할 수 있다. 최적 $Q$ 함수$(Q^{*}(s,\: a))$는 모든 $(s,\: a)$ 쌍에 걸쳐 모든 정책에 대한 최대의 가치를
가지는 $Q$ 함수를 말하며 식 (12)와 같이 표현할 수 있다. 식 (11)과 식 (12)를 이용하면 이상적인 정책을 얻을 수 있다.
가치 기반 학습에서 에이전트가 $Q$ 함수에 대해 탐욕적으로 행동하는 것에는 한가지 문제가 있다. 바로 에이전트가 전체 상태-행동 공간을 충분히 탐험하지
못할 수도 있다는 점이다. 예를 들어 에이전트가 $s$에서 항상 동일한 $a$를 선택한다면 에이전트가 경험하지 못하는 $(s,\: a)$쌍들이 무수히
많이 존재할 것이다. 이러한 경우 경험하지 못한 $(s,\: a)$ 쌍에 대한 $Q$ 함수의 추정값이 임의로 초기화되기 때문에 정확하지 않을 것이다.
이러한 문제를 해결하기 위하여 학습 시에는 완전한 탐욕적 정책이 아닌 $\varepsilon$-탐욕적 정책을 사용한다. $\varepsilon$-탐욕적
정책이란 에이전트가 $1-\varepsilon$의 확률로는 탐욕적 정책을 택하고 $\varepsilon$의 확률로는 임의의 행동을 택하는 정책이다.
여기서 $\varepsilon$은 탐험 확률이라 하고 무작위성을 주어 에이전트가 다양한 $(s,\: a)$ 쌍을 경험하게 해준다. 하지만 이러한
방식에는 단점도 존재한다. 확률성이 존재하기 때문에 탐욕적 정책보다 좋지 않을 수 있다. 이러한 관계를 탐험-활용 균형이라 한다. 탐험-활용 균형을
적절히 조절하기 위해서는 학습 초반에는 적당히 큰 $\varepsilon$ 값을 설정하여 학습을 진행하여 에이전트가 빠르게 환경을 탐험할 수 있도록
하고 점점 $\varepsilon$을 감소시켜 많은 타임 스텝이 지난 후에는 활용에 초점을 맞추도록 하는 방식을 사용하면 된다[18].
3.2 딥러닝 기반 Q-learning
심층 강화학습 이전의 Q-learning은 $Q$ 함수를 테이블 형식으로 저장하여 학습하는 테이블 기반 방식을 사용한다. 이러한 방식은 $s$ 공간과
$a$ 공간이 커지게 되면 테이블의 크기 또한 함께 커지게 되어 실제 환경처럼 매우 복잡한 환경이 주어질 경우, 학습하는 것이 거의 불가능하다. 하지만
이후 딥러닝의 발전으로 테이블 대신 $Q$ 함수 자체를 근사하는 DQN과 같은 알고리즘들이 등장하며 이러한 문제를 해결할 수 있게 되었다.
3.2.1 DQN
DQN은 강화학습을 지도학습처럼 만들려는 시도에서 출발한다. 심층 강화학습은 두 가지의 문제를 갖고 있는데, 첫째는 데이터에 대한 IID(independent
and identically distribution) 가정의 불일치성이다[5]. 지도학습에 이용되는 최적화 기법은 보통 학습 데이터의 샘플들이 독립적이면서 동일한 분포를 가져야 하는데, 강화학습의 데이터 샘플은 순차적인 성향을
지니기 때문에 $t+1$ 시점에서의 샘플이 $t$ 시점에서의 샘플과 연관되어 독립적이지 않다. 또한 강화학습에서 행동을 생성하는 정책은 시간에 따라
계속 변화하기 때문에 이에 따라 샘플들의 분포도 따라 변화하여 샘플들이 동일한 분포를 띄지 않게 된다. 둘째는 타깃(target)이 고정되어 있지
않다는 점이다. 지도학습은 target label이 고정된 값으로 주어지는데, 식 (13)과 같이 $Q$ 테이블을 $\theta$를 가중치로 가진 신경망으로 나타낼 경우, 학습 스텝마다 예측 $Q$의 가중치가 변하면서 같은 가중치를 사용하는
타깃 또한 계속 변화하게 된다.
DQN은 이러한 문제들을 해결하기 위하여 1) Experience replay 기법을 사용한다. Experience replay는 여러 타임 스텝에
대한 경험 샘플을 replay buffer에 저장해 두었다가 샘플링 하는 방식으로 replay buffer의 크기가 적당히 크면 여기서 뽑아낸 데이터
샘플이 독립적이면서 동일한 분포를 띄게 되므로 첫 번째 문제를 해결할 수 있다. 2) Target network를 만들어 사용한다. 타깃이 고정되지
않고 계속 변화하므로 타깃을 고정하기 위하여 target network를 만들어 타깃을 고정한다. Target network와 최적화하려는 online
network는 같은 구조를 사용하고, 일정 타임 스텝마다 online network와 target network를 동기화 시키는 방식을 사용한다.
이러한 기법을 사용하면 타깃이 변화하기 전에 online network가 조금씩 타깃을 향해 움직일 수 있게 된다.
3.2.2 DDQN
DQN은 off-policy TD 학습 방식을 사용하여 추정 $Q$ 값의 최대를 찾는 연산을 수행한다. 이때 특정 $Q$ 값에 오차가 존재하면 $Q$
값의 최댓값에 편향이 발생하여 과대평가가 이루어지기 때문에 학습에 좋지 않은 영향을 끼칠 수 있다[6]. $Q$-value의 오차가 생기는 이유는 1) 신경망을 사용하기 때문에 함수의 완벽한 근사가 이루어지지 않을 수 있고, 2) 환경 자체에 노이즈가
포함될 수 있다. 또한 3) 에이전트가 환경을 완전히 탐험하지 않았을 수도 있다는 이유가 존재할 수 있다.
이러한 점을 개선한 DDQN은 $Q$ 값의 과대평가 문제를 해결하기 위하여 각기 다른 경험을 사용하여 2개의 $Q$ 함수를 학습한다. 첫 번째 $Q$
함수는 $Q$ 값을 최대로 만드는 행동을 선택하고, 두 번째 $Q$ 함수는 이 행동을 이용하여 $Q$-value를 계산한다. 이처럼 각기 다른 경험을
사용하여 학습된 $Q$ 함수는 $Q$ 값의 편향을 줄일 수 있다. 이와 같은 방식으로 학습할 경우, 학습을 위한 online network와 target
network가 각각 2개씩 필요하게 된다. 하지만 총 4개의 신경망을 학습시키는 것은 많은 시간이 소요되므로 실제 학습 시 online-network는
최적의 $Q$ 값을 갖게 하는 행동을 찾고 target-network를 사용하여 이 행동을 평가하는 방식으로, 총 2개의 신경망만을 사용한다. 이러한
방식은 target-network를 $Q$ 값 평가에 사용하여 안정적으로 타깃을 고정할 수 있게 한다.
3.2.3 Dueling DDQN
Dueling DDQN은 알고리즘이 아닌 신경망 구조를 변형하여 앞서 언급한 알고리즘들을 개선한 알고리즘이다. $Q$ 함수는 모든 행동이 공유하는
가치인 $V$ 함수와 각 행동이 갖는 가치인 $A$ 함수로 분리할 수 있다. 기존 DQN과 DDQN의 경우 $Q$ 함수를 행동별로 분리하여 학습하지만
사실 $V$ 함수는 모든 행동에 대하여 같은 값을 가지기 때문에 비효율적이다[7]. 이러한 비효율성을 해결하기 위해 제안된 dueling network는 두 개의 분류기를 가지는데, 하나는 $V$ 함수에 대한 분류기이고, 다른
하나는 $A$ 함수에 대한 분류기이다. 여기서 나온 두 개의 출력을 이용하면 효율적으로 $Q$ 함수를 근사할 수 있다. $Q$ 함수를 근사하는 방법은
식 (9)와 같지만, 실제로는 $V$ 함수와 $A$ 함수를 더한 값에서 $A$ 함수의 평균을 빼는 방식으로 $Q$ 함수를 근사하여 안정적인 최적화 과정을 수행할
수 있게 한다.
Dueling network는 $A$ 함수를 이용하여 $Q$ 함수를 추정하므로 유사한 가치를 가진 행동들이 많을 때 효과적이다. 신경망은 근사할 때
오차를 가지게 되는데 DQN과 DDQN의 신경망 구조는 상태-행동 쌍이 각자 나뉘어 있으므로 그에 따른 오차들도 잠재적으로 다른 성향을 띈다. $V$
함수는 특정 상태에서 모든 행동에 대한 $Q$ 함수의 일부이기 때문에 dueling network를 사용하게 되면 발생하는 함수의 오차와 분산을 줄일
수 있다.
3.3 Transformer 기반 Q-learning
Transformer는 다양한 분야에서 사용되는 딥러닝 모델이며 긴 시퀀스를 잘 모델링 할 수 있고 확장성이 뛰어나다는 장점을 가진 모델이다. 강화학습에서
신경망의 입력은 타임 스텝마다의 경험 튜플로 구성되므로 시퀀스가 있는 데이터라 볼 수 있기 때문에 본 논문에서는 DQN의 신경망 구조를 transformer와
결합하여 긴 순차데이터(sequential data)를 모델링할 수 있게 설계한 MTQN 방법을 제안한다.
3.3.1 Transformer
Transformer의 가장 큰 장점은 긴 시퀀스를 잘 모델링 할 수 있고 확장성이 뛰어나다는 점이다. Vanilla transformer는 인코더와
디코더로 구성되어 있으며 각각은 Multi-Head Self-Attention 모듈과 FFN 모듈로 구성된다. Transformer의 인코더는 소스
시퀀스를 인코딩하여 디코더로 보내주는 역할을 하고 디코더는 인코더에서 받은 정보를 바탕으로 타깃 시퀀스를 생성하는 역할을 한다. Transformer의
구조는 Fig. 4와 같다.
그림 4. Transformer의 구조
Fig. 4. The architecture of transformer
기존의 RNN은 단어의 위치에 따라 단어를 순차적으로 입력받아 처리하여 각 단어의 위치 정보를 가질 수 있다[19]. 하지만 transformer의 경우 단어를 순차적으로 받지 않고 문장 전체를 입력받기 때문에 순서에 대한 정보를 가지고 있지 않으므로 단어의 순서에
대한 정보를 제공하기 위하여 임베이딩 벡터에 positional encoding을 더하여 준다.
Transformer의 main 블록 내부의 연결은 residual 연결로 구성되어 있는데, 이는 모듈의 입력과 출력을 더하는 구조를 말한다. 이러한
연결 구조를 사용할 경우 여러 개의 계산 경로가 생기므로 다양한 관점에서 블록 계산을 수행하여 입력의 feature를 잘 추출할 수 있게 한다.
Multi-Head Self-Attention 모듈은 transformer의 핵심 구조로 Fig. 5(b)와 같다. Self-Attention 모듈은 입력으로 받은 시퀀스에서 어느 부분이 가장 중요한지를 판단하는 모듈로, 모델이 긴 시퀀스에서 feature를
더욱 잘 추출할 수 있게 한다. 입력 시퀀스 $X\in{R^{n\times d}}(n=sequence \ length,\: d=embedd \ dimension)$가
주어질 때, Self-Attention 모듈은 입력에 각각 $W_{Q}$, $W_{K}$, $W_{V}$를 행렬곱하여 $Q\in{R^{n\times
d_{q}}},\: K\in{R^{n\times d_{k}}},\: V\in{R^{n\times d_{v}}}$로 매핑한다. Q는 분석의 대상이
되는 단어에 대한 가중치 벡터, K는 각 단어가 쿼리에 해당하는 단어와 얼마나 연관이 되어있는지, V는 K의 의미를 나타내는 가중치 벡터라고 해석할
수 있다. Fig. 5(a)는 식 (14)와 같이 나타낼 수 있다. Fig. 5(a)의 마스크(mask)는 디코더 파트에서 사용하는 방식으로, 순차적 입력값이 아닌 전체 입력값을 한 번에 받는 transformer의 특성상 미래 시점의
데이터를 예측 과정에서 제외해주어야 하므로 마스킹(masking) 기법을 사용하여 미래 시점의 데이터에 대한 attention score가 0이 되도록
하는 방식이다.
여기서 $soft\max(\dfrac{QK^{T}}{\sqrt{D_{k}}})$는 attention score이다.
Attention score는 한 문장 내에서 특정 단어와 모든 단어와의 관련성의 정도를 나타내고 transformer 모델이 긴 시퀀스 입력을 잘
모델링할 수 있는 핵심 부분이다. 이러한 self-attention 모듈을 동시에 여러 번 수행하는 방식을 multi-head-attention이라
한다.
그림 5. 확장된 dot-product 어텐션과 multi-head 어텐션
Fig. 5. The scaled dot-product attention and multi-head attention
3.3.2 Memory transformer Q-learning
본 논문에서는 DQN의 신경망 구조를 transformer와 결합하여 성능을 개선하였다. 강화학습에서 신경망의 입력은 타임 스텝마다의 경험 튜플로
구성되므로 시퀀스가 있는 데이터라 볼 수 있다. ViT는 이미지 인식 작업에 transformer 모델을 적용하고, 이미지 데이터의 처리를 위해 이미지를
작은 패치(patch)로 나누고 각 패치를 일종의 단어처럼 취급하여 입력으로 사용한다[9]. 따라서 입력 데이터는 이미지이므로, ViT가 사용한 방식을 통해 시퀀스가 있는 데이터로 만들어 주었다. 강화학습은 무수한 타임 스텝 동안 시행착오를
겪으며 학습하는 방식이므로 이러한 긴 순차데이터를 잘 모델링 할 수 있는 transformer 구조를 사용하여 효과적이고 안정적으로 학습을 진행할
수 있도록 구성하였다. 또한 추가로 transformer의 residual connection 대신 LSTM, GRU와 유사한 gating mechanism을
사용하여 모델이 가지고 있는 메모리 벡터를 갱신할 수 있게 구성하였다[20]. Gate는 LSTM과 동일하게 구성하였고[21], 식 (15)와 같이 표현된다.
식 (15)는 총 4개의 gate로 구성되어 있는데, 먼저 $i_{t}$는 새로 들어오는 정보들 중 어떤 정보를 메모리에 업데이트할 것인가를 정하는 input
gate이다. $z_{t}$ gate는 어떤 정보를 얼만큼 업데이트 할 것인지 $\tan h$ 함수를 사용하여 정하고 이 $i_{t}$와 $z_{t}$
gate가 합쳐져 메모리를 업데이트할 준비를 한다. $f_{t}$는 forget gate로, sigmoid 함수를 사용하여 이전 메모리 벡터에서 삭제할
부분을 정해준다. 마지막으로 $c_{t+1}$은 나머지 3개의 gate에서 나온 값들을 조합하여 메모리를 적절히 업데이트하는 gate이다.
그림 6. Memory transformer의 구조
Fig. 6. The architecture of memory transformer
메모리 벡터는 초기에 0으로 초기화 되고 gate를 통과하며 계속 갱신된다. Gate의 구조는 Fig. 6(a)와 같다. 이러한 gating mechanism을 사용하였을 때 입력받은 경험 튜플뿐만 아니라 모델의 메모리(hidden state)를 타임 스텝마다
적절히 갱신하며 모델이 긴 시퀀스를 효과적인 모델링이 가능함을 시뮬레이션으로 보인다. 본 논문에서 제안하는 memory transformer의 구조는
Fig. 6(b)와 같고, MTQN의 구조는 Fig. 6(c)와 같다.