PFD 논문 연구 실험


0. R의 문제

\(R=\frac{(m(h)-c)^2}{E[(r-c)^2\mid H=h]}\) 분모는 Student가 동일한 입력 \(h\)를 받았을 때 발생할 수 있는

모든 Teacher residual r에 대한 평균 오차.

예를 들어 Student가 입력 A를 받았다고 하자.

Student 입력실제 상태Teacher residual rStudent 예측 c제곱오차
AAa-10.31.69
AAb+10.30.49

Student는 Aa와 Ab를 구분하지 못하기 때문에 두 경우 모두 0.3을 출력 원래 분모는 두 오차의 평균

\(E[(r-c)^2\mid A] =\frac{1.69+0.49}{2} =\boxed{1.09}\)

이것이 원래 사용해야 하는 평균 오차

실제 학습 데이터에 다음 표본 하나만 있다고 생각해 보자.

\(H=A,\quad r=+1\) → Student는 A를 보고 0.3을 예측한다.

그러면 계산할 수 있는 오차는 \(e=(1-0.3)^2=\boxed{0.49}\) 뿐이다.

문제는 같은 A에서 \(r=-1\)이 나올 수도 있다는 사실을 이 표본 하나로는 알 수 없다는 것이다.

따라서 원래 분모인 1.09를 직접 계산할 수 없다.

원래 계산해야 할 값은: \(R=\frac{d}{\underbrace{1.09}_{\text{평균 오차}}}\)

실제로 사용한 값: \(R=\frac{d}{\underbrace{0.49}_{\text{표본 하나의 오차}}}\)

만약 분자가 \(d=0.09\) 라면,

\(R_{\text{원래}}=\frac{0.09}{1.09}\approx\boxed{0.083} \\[0.5em] R_{\text{r= 1 | H}}=\frac{0.09}{0.49}\approx0.184\)

같은 입력 A인데도 R이 0.083에서 0.184로 달라진다.

반대로 \(r=-1\)인 표본을 받았다면 \(e=(-1-0.3)^2=\boxed{1.69}\)

\(R_{\text{r=-1 | H}}=\frac{0.09}{1.69}\approx0.053\)

이 된다.

원래 동일한 입력 A에 대해서는 R이 하나여야 하는데, 어떤 Teacher residual이 관측되었느냐에 따라 R이 0.053 또는 0.184로 달라지는 문제가 발생한다.

정리하면 원래 R은 동일한 입력에서 발생할 수 있는 여러 r의 평균 오차로 계산해야 하지만, 실제로는 관측된 r하나의 오차만 사용하므로 같은 입력이라도 r이 +1인지 −1인지에 따라 R값이 달라져 학습 목표가 왜곡될 수 있는 문제가 생긴다.

따라서 R은

① 학습할 때마다 R이 달라짐

같은 입력에 대하여 Adapter가 학습하면서 c가 변하므로 R도 계속 변한다.

② 같은 입력이어도 R이 달라짐

입력 A에서 r=-1이 나올 수도 있고 r=+1이 나올 수도 있다.

그런데 R이 r에 의존하므로 같은 입력 A에도 서로 다른 r이 나올 수도 있다.

결국 모델이 어떤 정답을 더 중요하게 학습해야 하는지가 우연히 관측된 r에 따라 달라진다.

그래서 이를 해결하기 위해서는 학습 전에 계산되어서 고정된 값 → 그래야 가중치가 어디를 얼마나 믿을만 한지 정할 수 있기 때문

그래서 Adapter를 학습하기 전에 별도의 예측기를 이용해 각 입력에서 Teacher residual을 얼마나 복원할 수 있는지 정해놔야 한다.

예를 들어,

Student 입력Teacher residual 복원 가능성
A80%
B20%

이 결과를 바탕으로 \(R(A)=0.8,\; R(B)=0.2\) 라고 미리 정한다.

그리고 학습 중에는 R을 변경하지 않는다.

Adapter가 학습하면서 예측값 c는 계속 달라진다.

하지만 R은 고정한다. 예를 들어, 어뎁터의 출력 c가 \(c(A):0.1\rightarrow0.5\rightarrow0.8\)

로 변하더라도 \(\boxed{R(A)=0.8}\) 을 유지한다.

즉, 학습 진행도와 관계없이 A라는 입력에 대한 복원 가능성을 일정하게 평가해야한다.

1. R로 학습했지만 R은 0으로 떨어지고, 설명 비율은 9.4%

1.1 방법

이름adapter입력R의 기준 \(m(h)\)
\(\beta_{lr}\)R 가중치로 새로 학습한 small adapter\(\alpha\)와 동일 (action token 7D + timestep)\(\alpha\)의 출력

R은 다음과 같이 정의한다.

\[R=\frac{d}{e},\qquad d=\|m(h)-c\|^2,\qquad e=\|r-c\|^2\]

\(c\)는 학습 중인 adapter의 출력이다. \(d\)는 기준까지 남은 거리(아직 줄일 수 있는 몫)이고, \(e\)는 \(r\)까지 남은 거리(전체 오차)다.

  • \(r=v_{\text{teacher}}-v_{\text{base}}\): teacher residual
  • \(c\): 학습 중인 adapter의 출력
  • \(d\): 기준 \(m(h)\)까지 남은 거리(아직 줄일 수 있는 몫)
  • \(e\): \(r\)까지 남은 거리(전체 오차)

손실은 다음과 같다.

\[\mathcal{L}=(1-R)\,\|v_{\text{GT}}-v_{\text{final}}\|^2+R\,\|r-c\|^2+0.1\,\|v_{\text{teacher}}-v_{\text{final}}\|^2,\\v_{\text{final}}=v_{\text{base}}+c\]

설명 비율은 adapter가 \(r\)을 얼마나 줄였는지로 정의한다.

\[\text{Explained Ratio}=1-\frac{\sum_i\|r_i-\hat\delta_i\|^2}{\sum_i\|r_i\|^2}\]

1.1 \(\beta_{lr}\): R이 0으로 떨어지고, 설명 비율은 9.4%

stepdeRr 설명 비율
00.002940.03220.1310.0%
1,0000.001420.03060.0554.8%
3,0000.000180.02940.0118.7%
130,0000.000150.02910.00549.4%

\(d\)는 3,000 step 만에 0.00294 → 0.00018로 줄었다. \(\beta\)가 금방 \(\alpha\)와 거의 같은 출력을 내게 된 것이다.

반면 \(e\)는 거의 그대로다. 분자 \(d\)만 줄고 분모 \(e\)는 거의 줄지 않으니 R이 0으로 떨어졌다.

따라서 거의 \(v_{\text{GT}}\)를 기준으로 학습되었다.

adapter성공 / 2,000 ep성공률\(\alpha\) 대비
\(\alpha\) (공개)195797.9%–
\(\beta_{lr}\)196298.1%+0.2%p

2. 왜 9.4%에서 멈추는가? → 기준인 \(\alpha\)가 9.3%다

adapterr 설명 비율\(\alpha\)와의 cosine
\(\alpha\) (공개)9.3%1
\(\beta_{lr}\)9.4%0.98
  • \(\beta_{lr}\)이 0.1%크게 나온건 많이 학습하면서 더 학습 데이터에 편향되었던게 아닐까 싶다.

\(\beta_{lr}\)은 R의 기준인 \(\alpha\)에 금방 도달했다.

기준인 \(\alpha\) 자체가 \(r\)을 9.3%밖에 설명하지 못하고, \(\beta_{lr}\)은 그 \(\alpha\)와 거의 같은 출력(cosine 0.98)에서 멈췄다.

3. 추가적으로 확인했더니 무엇으로 학습해도 adapter는 같은 지점으로 수렴한다

그렇다면 기준을 바꾸거나 학습 목표를 바꾸면 다른 곳에 도달할까? 같은 adapter(같은 구조, 같은 7D 입력)를 세 가지 방식으로 학습해 비교했다.

  • \(\beta_{gt}\): 정답 action만으로 학습 (\(\mathcal{L}=|v_{\text{GT}}-v_{\text{final}}|^2\), teacher를 전혀 보지 않음)
  • \(\beta_{lr}\): R을 조금 씀 (기준 \(\alpha\), R 평균 0.005)
  • \(\beta_{lrprobe}\): R을 많이 쓰고 입력은 \(\beta_{lr}\)동일 (기준 \(m(h)\)을 \(r\)의 83%를 설명하는 큰 adapter로 바꿈
    • 큰 adapter: hidden state(1024D)와 timestep을 입력으로 받아 \(r\)만 예측하도록 별도로 학습한 estimator. \(\beta_{lrprobe}\)의 R을 계산할 때 기준 \(m(h)\)로만 쓴다.
작은 adapterR의 기준teacher 쪽 손실 가중R 평균r 설명 비율\(\alpha\)와의 cosine성공률
\(\beta_{gt}\)없음0–8.2%0.9697.7%
\(\beta_{lr}\)\(\alpha\) (9.3%)0.1050.0059.4%0.9898.1%
\(\beta_{lrprobe}\)큰 adapter(83%)0.930.8311.5%0.9798.3%

cosine은 sample마다 출력 벡터의 cosine similarity를 구해 평균한 값이다. 성공률은 α(97.9%)와 거의 비슷하다.

  • R의 크기가 다르다. \(\beta_{lrprobe}\)는 기준이 강해서 R이 0.83으로 유지되고, teacher 쪽 가중이 \(\beta_{lr}\)의 약 9배다.
  • 그런데 출력은 모두 비슷하다. 세 adapter 모두 \(\alpha\)와 cosine 0.96–0.98이고, 설명 비율도 8–12%에 머문다. 성공률도 비슷하다.

따라서 이 adapter는 정답 action만으로 학습하든, R을 조금 쓰든, R을 많이 쓰든 항상 같은 지점으로 수렴한다. R을 쓰든 안 쓰든 같은 곳에 수렴하고, 기준을 바꿔도 마찬가지다. 그 지점이 r의 약 9%라는 것은 기준 \(\alpha\)의 문제가 아니라 이 adapter 자체가 도달할 수 있는 한계로 보인다.

4. 왜 r의 약 9%에서 멈추는가? → adapter 입력의 한계

3절에서 작은 adapter는 학습 목표나 R과 상관없이 같은 지점으로 수렴했다. 그런데 r쪽 손실 무게를 키우면 학습 데이터에서는 설명 비율이 조금씩 오른다. 이 증가분이 실제로 r을 더 잘 예측하게 된 것인지부터 확인한다.

adapterr 쪽 가중 (R + 0.1 teacher)설명 비율 (train)설명 비율 (test)
\(\beta_{gt}\)08.248%7.922%
\(\beta_{lr}\)0.1069.419%8.507%
\(\beta_{pfd}\)0.610.610%8.496%
\(\beta_{lrprobe}\)0.92711.530%7.756%

adapter는 모두 같은 구조, 같은 7D 입력, 같은 train 같은 학습 설정(130,200 step)으로 학습했다.

  • train에서는 r쪽 무게를 키울수록 설명 비율이 8.248%에서 11.530%로 단조롭게 오른다.
  • 그런데 학습에 쓰지 않은 test에서는 7.756–8.507%로 평평하고, 더 좋은 기준을 사용한 \(\beta_{lrprobe}\)가 오히려 가장 낮다.

즉 r쪽 가중을 키워서 늘어난 몫은 학습 데이터의 r을 외운 몫이고, 처음 보는 데이터의 r은 더 예측하지 못한다. adapter가 r을 따라가려 해도 입력에서 r을 읽어 낼 방법이 없다는 신호다.

9%에서 멈추는 이유가 입력의 한계로 결정짓기 아래 내용을 확인한다.

  1. adapter가 충분히 학습되지 않았거나
  2. adapter의 입력에 r을 예측할 정보가 부족하다.

4.1 가설 1: 덜 학습되었는가? → 아니다

\(\alpha\)와 같은 입력, 같은 구조의 예측기를 새로 만들고, 다른 loss들을 제거하고 \(r\)만 맞추도록 학습했다.

\[\mathcal{L}=\|r-\hat\delta\|^2\]

MSE의 최소해는 입력 \(u\)가 주어 졌을 때 \(r\)의 평균 \(E[r\mid u]\)다. 따라서 이 예측기의 설명 비율이 이 입력으로 낼 수 있는 상한이다.

예측기보지 않은 episode
r만 학습한 예측기 (같은 입력·구조)8.9%
공개 adapter \(\alpha\)9.2%

\(r\)만 직접 맞추도록 학습해도 9% 근처이다. 이 예측기는 1,000–2,750 step에서 이미 수렴했고, 그 뒤로는 더 학습해도 오르지 않았다. 덜 배운 것이 아니라 이 입력으로 배울 수 있는 만큼은 이미 다 배운 상태다.

4.2 가설 2: 입력에 정보가 부족한가? → 그렇다

\[h\,(1024\text{D})\xrightarrow{\text{action head}}v_{\text{base}}\,(7\text{D})\xrightarrow{\text{adapter}}\hat\delta\,(7\text{D})\]

공개 adapter는 이 경로의 맨 끝인 \(v_{\text{base}}\) token(7D)만 본다.

이번에는 같은 경로의 더 앞쪽 정보인 hidden state \(h\)를 입력으로 준다.

입력파라미터설명 비율
\(v_{\text{base}}\) token (7D) + τ1.19M9.0%
hidden token (1024D) + τ1.71M79.4%

파라미터 차이 0.52M은 입력층이 크기 때문에 나오는 차이다.

구조를 고정한 채 입력만 바꿨는데 설명 비율이 9%에서 79%로 오른다.

따라서 r을 예측할 수 있는 정보는 student의 hidden state에 이미 들어 있지만, action head를 거쳐 7D으로 압축되면서 adapter 입력에서는 제외된다.

4.3 그래서 R은 결과를 바꿀 수 없다

Teacher loss

Teacher Loss는 다음과 같다. \(L_{\text{teacher}}=\|v_{\text{teacher}}-v_{\text{final}}\|^2\)

Teacher residual \(r\)은 다음과 같이 정의한다.

\(r=v_{\text{teacher}}-v_{\text{base}}\)

이를 이항하면

\(v_{\text{teacher}}=v_{\text{base}}+r\)

\( v_{\text{final}}=v_{\text{base}}+c\)

따라서 \( L_{\text{teacher}} = \|(v_{\text{base}}+c)-(v_{\text{base}}+r)\|^2 = \|v_{\text{base}}+c-v_{\text{base}}-r\|^2 =\|c-r\|^2 \)

최종적으로 \(L_{\text{teacher}}=\|c-r\|^2\)

Teacher MSE Loss는 두 값의 차이가 작아지도록 학습하기 때문에 c를 r방향으로 당긴다.

GT loss

GT MSE loss 항은 정답 쪽으로 당긴다.

\(L_{\text{GT}}=\|v_{\text{final}}-v_{\text{GT}}\|^2\) 이고 \( v_{\text{final}}=v_{\text{base}}+c\) 를 대입하면

\(L_{\text{GT}}=\|v_{\text{base}}+c-v_{\text{GT}}\|^2\)

그런데 Backbone이 Freeze했음으로 \(v_{\text{base}}=\operatorname{sg}(f_\theta(x))\)

\(L_{\text{GT}}=\|\text{sg}(v_{\text{base}})+c-v_{\text{GT}}\|^2 = \|c-(v_{GT}-v_{\text{base}})\|^2 \)

따라서 GT Loss가 c를 GT 보정 방향으로 당긴다고 해석할 수 있다.

MSE로 학습한 adapter는 입력 \(u\)가 주어졌을 때 목표의 평균을 출력하므로, 작은 adapter가 도달하는 지점은 대략 다음과 같다.

\[c^*(u)\approx(1-\lambda)\,E[v_{\text{GT}}-v_{\text{base}}\mid u]+\lambda\,E[r\mid u],\qquad \lambda=\text{r 쪽 가중의 비율}\]

그런데 7D 입력 \(u\)로 보면 두 조건부 평균값이 거의 같다.

예측기학습 목표추정하는 값\(\alpha\)와의 거리²
\(\beta_{gt}\)GT만\(E[v_{\text{GT}}-v_{\text{base}}\mid u]\)\(E[\|\beta_{gt}(u)-\alpha(u)\|^2]=0.00030 \)
\(r\)만 학습한 예측기 (4.1)r만\(E[r\mid u]\)\(E[\|\beta_{lr}(u)-\alpha(u)\|^2]=0.00012\)

gt와 r을 둘 다 loss로 사용한 adpater의 크기 \(|\alpha|^2\approx0.003\)이다.

다른 목표로 학습한 두 예측기가

두 평균이 거의 같은 점이므로, R을 어떻게 써도 거의 같은 점이 나온다.

R은 loss의 가중치를 바꿀 뿐, 입력에 없는 정보를 만들어 내지 못한다.

정리하면, 작은 adapter가 \(r\)의 약 9%에서 멈추는 것은 학습 부족(가설 1) 때문이 아니라 adapter가 보는 7D 입력에 \(r\)의 정보가 없기 때문(가설 2)이다. R은 이 한계를 넘을 수단이 아니다.

5. 입력을 넓히면? → R은 작동하지만 성공률이 떨어진다

그렇다면 adapter 입력을 넓히면 R이 의미를 가질까? 이번에는 학습되는 adapter 자체의 입력을 hidden state(1024D)로 넓히고, 같은 손실들로 학습했다. R의 기준은 3절의 큰 estimator다.

adapter입력학습 방식R 평균r 설명 비율 (train)성공률 (전체)
wide \(\beta_{pfd}\)기존 PFD0.6 (고정)–53.3%97.4%
wide \(\beta_{gt}\)hidden 1024DGT만 학습–−30.4%97.9%
wide \(\beta_{lr}\)hidden 1024DR 가중치 사용0.6477.8%94.2%

성공률은 2,000 episode 기준이다.

wide_gt의 설명 비율이 음수인 것은 출력이 r과 반대 방향으로 간다는 뜻이다.

  • 입력을 넓히자 adapter가 teacher를 실제로 따라간다. 기존 PFD 방식으로 53%, R을 쓰면 R이 0.64로 유지되면서 78%까지 따라간다.
  • 그런데 teacher를 많이 따라갈수록 성공률이 떨어진다. 설명 비율이 −30% → 53% → 78%로 오르는 동안 성공률은 97.9% → 97.4% → 94.2%로 내려간다.
  • 반면 GT만 학습한 \(\text{wide}\;\beta_{gt}\)는 떨어지지 않았다.

즉 입력을 넓힌 것이 아니라 teacher를 따라간 것이 문제다.

6. 왜 teacher를 따라가면 손해인가? → teacher가 따라갈 만한 대상이 아니다

미래 frame출력정답 loss
student가림 (마스킹)\(v_{\text{base}}\) → adapter가 더해 \(v_{\text{final}}\)받음
teacher다 봄\(v_{\text{teacher}}\)받지 않음

teacher는 student와 같은 가중치로, 미래 frame까지 모두 보게 돌린 것이다. 그런데 이 가중치는 미래 frame을 가린 student 상태에서만 정답 action을 맞추도록 학습되었고, privileged 정보(미래 frame)를 보면서 정답 action을 맞추도록 학습된 적은 한 번도 없다.

그래서 정답 오차가 student의 3.04배다.

따라서 teacher를 따라갈수록 정답에서 멀어지고, 5절처럼 성공률이 떨어진다.

7. 결론

adapterR이 출력을 바꿀 수 있는가teacher를 따라가면결과
작은 adapter (7D 입력)없다. 입력이 r의 약 9%만 담는다따라갈 수 없다무엇으로 학습해도 같은 지점에 수렴, 성공률 동일
넓은 adapter (hidden 1024D 입력)있다. r을 78%까지 따라간다정답에서 멀어진다성공률 하락 94.2%

첫째, 작은 adapter에서는 R이 바꿀 수 있는 것이 없다.

  • \(\beta_{lr}\)은 R의 기준인 \(\alpha\)와 같은 지점에 금방 도달했고, 그 순간 R은 0이 되었다(2절).
  • 기준을 강한 estimator로 바꿔 R을 크게 유지하거나(0.83), R 없이 정답만으로 학습해도 출력은 모두 \(\alpha\)와 cosine 0.96–0.98로 같은 지점에 수렴했다(3절).
  • r쪽 가중을 키우면 학습 데이터에서만 설명 비율이 조금 오르고, 처음 보는 데이터에서는 오르지 않는다. 같은 구조에서 \(r\)만 직접 맞춰도 8.9%가 한계지만, 입력을 hidden state로 키우면 79.4%까지 오른다.
  • 9%에서 멈추는 원인은 학습 부족이 아니라 adapter가 보는 7D 입력에 r의 정보가 없기 때문이다(4절).
  • R은 loss의 가중치를 바꿀 뿐, 입력에 없는 정보를 만들어 내지 못한다.

둘째, 입력을 넓히면 R은 작동하지만, teacher가 따라갈 만한 대상이 아니다.

  • 입력을 hidden state로 넓히자 R이 0.64로 유지되며 teacher를 78%까지 따라갔다.
  • 그런데 성공률은 97.9%에서 94.2%로 떨어졌다. 반면 입력을 넓히고 정답만 학습한 모델은 성공률이 떨어지지 않았다(5절).
  • teacher는 따로 학습된 모델이 아니라, student와 같은 백본을 미래 frame까지 보게 돌린 출력이다. 이 백본은 미래 frame을 가린 상태에서만 정답 action으로 학습되었고, 미래 frame을 보면서 정답을 맞추도록 학습된 적은 없다. 그래서 teacher의 정답 오차는 student의 3.04배다(6절).
  • 따라서 teacher를 따라갈수록 정답에서 멀어진다.

정리하면, 작은 adapter에서는 teacher를 따라갈 수 없고, 넓은 adapter에서는 따라갈 수 있지만 따라가면 성능이 나빠진다. 따라서 현재 PFD 구조에서 R 기반 학습은 효과를 낼 수 없다. 원인은 R이 가정한 두 전제(“adapter가 teacher를 따라갈 수 있다”, “teacher를 따라가는 것이 이득이다”)가 성립하지 않는 데 있다.

(그리고 0번절에서 말했던 R수식의 문제도 있다)