Search
💪🏻

FeUdal Network

생성일
2025/07/08 05:55
태그
강화학습
작성자
FuN은 2개의 계층으로 구성된 Hierarchical Reinforcement Learning 구조이며, architecture의 상단은 manager, 하단은 worker를 의미한다.
Manager (high-level hierarchy)
환경의 state를 관찰하여 goal embedding gtRdg_t \in \mathbb{R}^d 생성한다. 이 goal은 worker가 앞으로 일정 step 단위로 high-level goal을 설정한다. 이는 agent가 도달해야 할 방향을 나타낸다.
Worker (low-level hierarchy)
manager가 정한 goal 을 따라 environment에서 행동(micro action)을 수행한다. manager로부터 받은 goal과 state history를 기반으로 action을 출력한다.
→ manager는 worker에게 방향을 제시하고, worker는 그 방향대로 행동한다.
Figure 추가 설명
1.
zt=fenc(xt)z_t​=f_{enc}​(\text{x}_t​)
sts_t 는 state xt\text{x}_t의 embedding 된 것이며, subgoal인 gtg_t도 같은 embedding space에 있는 vector이다. 이렇게 embedding하는 이유는 high dimension input도 처리할 수 있도록 하기 위함이다. ztz_t를 embedding space에서 state표현으로 사용한다. 따라서 FuN의 manager는 단순히 “너는 이 상태로 가”라고 말하지 않는다.
gt=zt+cztg_t=z_{t+c}−z_t
와 같이 embedding state ztz_t에서 앞으로 어떤 방향으로 가야 하는지를 벡터로 제시한다. 즉, 이 goal gtg_t는 embedding space 상에서의 δ\delta, 즉 방향이다.
따라서 “embedding space에서, 앞으로 이런 방향으로 움직여봐” 라고 간접적으로 유도하여 worker가 얼마나 잘 따라갔는지를 평가할 수 있다.
2.
k=16d=256k = 16 \ll d = 256
d=256d = 256 : embedding vector의 dimension 수. state embedding ztR256z_t \in \mathbb{R}^{256}, goal gtR256g_t \in \mathbb{R}^{256}
k=16k = 16 : manager가 subgoal 를 생성할 때 사용하는 goal subspace의 dimension
256 → 16 이 되는건 single linear layer를 거침으로써 dimension이 축소된다.
3.
manager에서의 gt=UtwtRdg_t = U_t w_t ∈ \mathbb{R}^d
manager는 goal vector를 그대로 주지 않고, single linear layer를 거쳐 low-dimensional representation wtRkw_t \in \mathbb{R}^k 를 준다. 이를 projection matrix UtRd×kU_t \in \mathbb{R}^{d \times k}에 곱하여 full goal vector gtRdg_t \in \mathbb{R}^d를 얻는다.
4.
worker에서의 UtRA×kU_t ∈ \mathbb{R}^{|\mathcal{A}| \times k}
각 action마다 Q-value를 추정하는 방식을 사용한다. 이때 각 action마다 goal 방향에 따른 utility를 측정하게 되고, action의 개수만큼 score를 생성한다.
→ 따라서, worker의 output은 action 개수 A|\mathcal{A}|만큼의 score를 만들고, 이때 각 score는 wtRkw_t \in \mathbb{R}^k에 대응되므로 A×k|\mathcal{A}| \times k matrix가 나온다.
FuN 의 진행 방식
1.
Manager는 몇 step마다 하나의 goal vector gtg_t를 생성한다
2.
이 goal은 embedding space 상에서 방향을 의미함
3.
Worker는 이 goal을 보고 다음 행동들을 결정
4.
Worker가 tt+ct \sim t+c 동안 실행한 결과가 실제 zt+cztz_{t+c} - z_t와 얼마나 잘 맞는지를 intrinsic reward로 측정한다.
5.
Manager는 이 reward로만 학습된다. (즉, worker로부터 gradient를 직접 받지 않음)

왜 manager의 goal을 직접 학습하지 않고 gradient flow를 끊는가?

FuN의 구조는 fully differentiable 하다. 원칙적으로 worker의 policy gradient가 manager까지 gradient flow를 통해 전달될 수 있다.
하지만 manager의 high-level goal을 직접적으로 gradient로 학습하게 되면, manager의 high-level goal (gtg_t)이 단지 worker의 행동 결과에 따라 수동적으로 학습될 수 있다. 이런 경우 manager가 능동적으로 좋은 goal을 생성한다고 보장할 수 없다. 따라서 worker의 gradient가 manager까지 흘러가지 않도록 gradient flow를 끊고 간접적으로 학습 방식을 사용한다.

Manager의 learning: Transition Policy Gradient

Notation
dcosd_{cos} : cosine similarity
sts_t: 현재 state embedding
st+cs_{t+c}: c step 이후의 state embedding
gt(θ)g_t(\theta) : manager가 생성한 goal
AtMA_t^M : manager의 advantage function
gt=AtMdcos(st+cst,gt(θ))whereAtM=RtVtM(xt,θ)\nabla g_t = A_t^M \nabla d_{cos}(s_{t+c} - s_t, g_t(\theta)) \quad \text{where} \quad A_t^M = R_t - V_t^M(x_t, \theta)
즉, goal 방향으로 실제로 잘 움직였다면 → positive advantage → manager의 goal을 더 강화
반대로 잘 못 움직였다면 → negative advantage → goal 방향을 수정
Notation
sts_t : 현재 시점의 state embedding
sti_{t-i}: 과거 state embedding
gtig_{t-i}: 과거 시점에 manager가 설정한 goal
dcos(a,b)d_{\text{cos}}(a, b): 두 벡터 간 cosine similarity
CC : 과거 몇 스텝을 고려할 것인지 (horizon)
rtI=1Ci=1Cdcos(ststi,gti)r_t^I=\frac{1}{C}∑_{i=1}^Cd_{cos}(s_t−s_{t−i},g_{t−i})
worker는 manager가 생성한 goal 방향으로 잘 이동했는지를 기준으로 intrinsic reward를 받는다.
Notation
RtWR_t^W: 환경에서 주어진 외적 reward
RtIR_t^I : manager가 설정한 goal과의 alignment에 기반한 intrinsic reward
α\alpha : intrinsic reward의 가중치를 조절하는 hyperparameter
RtW=Rt+αRtIR_t^W = R_t + \alpha R_t^I
worker는 환경의 reward만을 사용하는 것이 아니라 (Rt)(R_t), manager의 goal를 따르는 정도도 비례한 reward를 더하여 학습한다. (αRtI)(\alpha R_t^I)