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 r | Student 예측 c | 제곱오차 |
|---|---|---|---|---|
| A | Aa | -1 | 0.3 | 1.69 |
| A | Ab | +1 | 0.3 | 0.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 복원 가능성 |
|---|---|
| A | 80% |
| B | 20% |
이 결과를 바탕으로 \(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은 다음과 같이 정의한다.
\(c\)는 학습 중인 adapter의 출력이다. \(d\)는 기준까지 남은 거리(아직 줄일 수 있는 몫)이고, \(e\)는 \(r\)까지 남은 거리(전체 오차)다.
- \(r=v_{\text{teacher}}-v_{\text{base}}\): teacher residual
- \(c\): 학습 중인 adapter의 출력
- \(d\): 기준 \(m(h)\)까지 남은 거리(아직 줄일 수 있는 몫)
- \(e\): \(r\)까지 남은 거리(전체 오차)
손실은 다음과 같다.
설명 비율은 adapter가 \(r\)을 얼마나 줄였는지로 정의한다.
1.1 \(\beta_{lr}\): R이 0으로 떨어지고, 설명 비율은 9.4%
| step | d | e | R | r 설명 비율 |
|---|---|---|---|---|
| 0 | 0.00294 | 0.0322 | 0.131 | 0.0% |
| 1,000 | 0.00142 | 0.0306 | 0.055 | 4.8% |
| 3,000 | 0.00018 | 0.0294 | 0.011 | 8.7% |
| 130,000 | 0.00015 | 0.0291 | 0.0054 | 9.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\) (공개) | 1957 | 97.9% | – |
| \(\beta_{lr}\) | 1962 | 98.1% | +0.2%p |
2. 왜 9.4%에서 멈추는가? → 기준인 \(\alpha\)가 9.3%다
| adapter | r 설명 비율 | \(\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)\)로만 쓴다.
| 작은 adapter | R의 기준 | teacher 쪽 손실 가중 | R 평균 | r 설명 비율 | \(\alpha\)와의 cosine | 성공률 |
|---|---|---|---|---|---|---|
| \(\beta_{gt}\) | 없음 | 0 | – | 8.2% | 0.96 | 97.7% |
| \(\beta_{lr}\) | \(\alpha\) (9.3%) | 0.105 | 0.005 | 9.4% | 0.98 | 98.1% |
| \(\beta_{lrprobe}\) | 큰 adapter(83%) | 0.93 | 0.83 | 11.5% | 0.97 | 98.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을 더 잘 예측하게 된 것인지부터 확인한다.
| adapter | r 쪽 가중 (R + 0.1 teacher) | 설명 비율 (train) | 설명 비율 (test) |
|---|---|---|---|
| \(\beta_{gt}\) | 0 | 8.248% | 7.922% |
| \(\beta_{lr}\) | 0.106 | 9.419% | 8.507% |
| \(\beta_{pfd}\) | 0.6 | 10.610% | 8.496% |
| \(\beta_{lrprobe}\) | 0.927 | 11.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%에서 멈추는 이유가 입력의 한계로 결정짓기 아래 내용을 확인한다.
- adapter가 충분히 학습되지 않았거나
- adapter의 입력에 r을 예측할 정보가 부족하다.
4.1 가설 1: 덜 학습되었는가? → 아니다
\(\alpha\)와 같은 입력, 같은 구조의 예측기를 새로 만들고, 다른 loss들을 제거하고 \(r\)만 맞추도록 학습했다.
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: 입력에 정보가 부족한가? → 그렇다
공개 adapter는 이 경로의 맨 끝인 \(v_{\text{base}}\) token(7D)만 본다.
이번에는 같은 경로의 더 앞쪽 정보인 hidden state \(h\)를 입력으로 준다.
| 입력 | 파라미터 | 설명 비율 |
|---|---|---|
| \(v_{\text{base}}\) token (7D) + τ | 1.19M | 9.0% |
| hidden token (1024D) + τ | 1.71M | 79.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가 도달하는 지점은 대략 다음과 같다.
그런데 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}\) | 기존 PFD | 0.6 (고정) | – | 53.3% | 97.4% |
| wide \(\beta_{gt}\) | hidden 1024D | GT만 학습 | – | −30.4% | 97.9% |
| wide \(\beta_{lr}\) | hidden 1024D | R 가중치 사용 | 0.64 | 77.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. 결론
| adapter | R이 출력을 바꿀 수 있는가 | 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수식의 문제도 있다)
Comment