게이트 하나를 없앤 쪽이 이겼다
2편에서 LSTM 은 게이트 세 개로 셀 상태를 지킨다는 것을 봤다. GRU 는 같은 일을 게이트 두 개로 하고 셀 상태를 따로 두지도 않는다. 뭘 버렸는데 1편에서 잊는 속도가 거의 같았고, 7편에서는 손실이 더 낮다.
GRU 한 걸음
gi = W_ih @ x + b_ih # 세 덩어리
gh = W_hh @ h + b_hh
r = sigmoid(gi_r + gh_r) # 리셋 게이트
z = sigmoid(gi_z + gh_z) # 갱신 게이트
n = tanh(gi_n + r * gh_n) # 후보. r 이 옛 상태 쪽에만 곱해진다
h = z * h + (1 - z) * n
마지막 줄이 LSTM 의 c = f * c + i * g 자리인데 모양이 다르다. LSTM 은 남길
양 f 와 넣을 양 i 를 따로 정하고, GRU 는 z 하나로 둘 다 정한다.
z 만큼 남기고 나머지 1 - z 만큼 넣는다.
r 은 LSTM 에 없는 것이다. 후보를 만들 때 옛 상태를 얼마나 볼지 정한다. 그러니
GRU 는 “LSTM 에서 게이트 하나를 뺀 것” 이 아니라 다르게 짠 것이다.
2편처럼 학습된 가중치로 손으로 돌려서 nn.GRU 와 최대 7.90e-07 차이로 같은
것을 확인하고, 아래 숫자는 거기서 꺼냈다.
평균 5% 50% 95%
갱신 z 0.405 0.032 0.370 0.883
리셋 r 0.629 0.120 0.690 0.971
LSTM 은 그 둘을 따로 쓴다
묶어도 괜찮은 이유로 제일 그럴듯한 것은, LSTM 도 사실은 i 를 대충 1 - f 로
쓰고 있어서 자유도가 놀고 있다는 것이다. 그러면 GRU 가 묶어도 잃는 게 없다.
재 보면 아니다.
i 와 (1 - f) 의 상관, 값 1,331,200 개 전체 +0.071
유닛별 상관 최소 -0.629 중앙 +0.052 최대 +0.768
상관 0.5 넘는 유닛 13개 / 325
i + f 의 평균 (묶여 있으면 1.0) 1.156
왼쪽 그림에서 점들이 점선 위에 안 몰리고 사각형을 채운다. 두 게이트의 2차원
분포를 각자의 주변분포 곱과 대 보면 어긋남이 최대 칸당 0.175% 다 - 거의 완전한
독립이다.
LSTM 은 자유도를 놀리지 않는다. 실제로 따로 쓴다.
그런데도 진다
따로 쓰는데도 7편에서 GRU 가 1.6449, LSTM 이 1.6776 이다. 남은 설명은
폭이다. 게이트가 셋이면 같은 예산으로 상태를 더 크게 잡을 수 있다.
LSTM 게이트 4개 폭 325 4 x 325² = 422,500
GRU 게이트 3개 폭 381 3 x 381² = 435,483
같은 63만 예산에서 GRU 가 17.2% 넓다. 그래서 GRU 를 LSTM 과 같은 폭 325
로 묶어 다시 돌렸다. 상태 크기가 같아지는 대신 파라미터는 오히려 적어진다.
파라미터 최소 검증 (시드 3개) 중앙값
GRU 폭 381 635,835 1.6449 1.6503 1.6276 1.6449
GRU 폭 325 489,675 1.6498 1.6624 1.6611 1.6611
LSTM 폭 325 637,550 1.6776 1.6737 1.6785 1.6776
폭을 맞춰도 GRU 가 이긴다. 그것도 파라미터를 23.2% 덜 쓰고서다. 시드
범위가 1.6498~1.6624 대 1.6737~1.6785 로 겹치지도 않는다.
이득이 정확히 반반으로 갈린다.
LSTM 폭 325 1.6776
GRU 폭 325 1.6611 구조가 사는 것 0.0165
GRU 폭 381 1.6449 폭이 사는 것 0.0162
절반은 게이트를 어떻게 짰느냐에서 오고, 절반은 게이트를 하나 덜 두어서 넓힐 수 있게 된 데서 온다.
잊는 속도는 GRU 가 더 빠르다
오른쪽 그림이다. 유닛별 게이트에서 반감기를 뽑으면
최소 중앙 최대
LSTM f 0.59 0.98 2.99
GRU z 0.45 0.75 1.89
GRU 가 전 구간에서 더 짧다. 2편에서 LSTM 유닛 중 열 자 넘게 붙드는 것이 하나도 없다고 했는데, GRU 는 두 자 넘는 것도 없다.
더 빨리 잊는 쪽이 더 잘한다. 8편에서 망각 게이트를 열어 도달을 늘렸을 때 손실이 나빠진 것과 같은 방향이다. 이 과제에서 오래 붙드는 것은 이득이 아니다.
남는 것
리셋 게이트 r 이 무엇을 하는지는 안 봤다. 평균이 0.629 로 반쯤 열려 있는데,
그것을 1 로 고정하면 무엇이 나빠지는지 재면 r 의 값을 알 수 있다. 안 쟀다.
그리고 “구조 절반, 폭 절반” 은 폭 325 한 점에서 잰 것이다. 폭을 더 넓히거나 좁히면 비율이 달라질 수 있다.
이 편의 모형도 전부 1층이다. 재귀를 2층으로 쌓으면 게이트 수와 폭의 거래가 어떻게 되는지는 이 시리즈에서 안 다룬다.
그래서
- GRU 한 걸음은
h = z·h + (1-z)·n이다. LSTM 이f와i로 따로 정하던 것을z하나로 정한다 - 리셋 게이트
r은 LSTM 에 없다. GRU 는 게이트를 뺀 LSTM 이 아니라 다르게 짠 것이다 - 손으로 돈 것과
nn.GRU가 최대7.90e-07차이다 - LSTM 은
i와1-f를 따로 쓴다. 상관+0.071,i + f평균1.156, 2차원 분포가 독립에서 벗어난 최대가 칸당0.175% - 그런데도 진다. 폭을
325로 맞추면 GRU 가1.6611, LSTM 이1.6776이고 GRU 쪽이 파라미터를23.2%덜 쓴다. 시드 범위가 안 겹친다 - 이득이 반반이다. 구조에서
0.0165, 폭에서0.0162 - 유닛별 반감기가 GRU
0.45~1.89자로 LSTM0.59~2.99자보다 짧다. 더 빨리 잊는 쪽이 더 잘한다
Comments