층을 쌓아도 안 늘었다
11편은 답을 못 하고 끝났다. 커널 5짜리 4층 CNN 은 수용장이 17 이라 거리 16
까지 닿는데 실제로 푸는 것은 12 까지다. 네 자가 왜 남는지 못 밝혔다.
후보는 두 개 적어 두었다. 상한에서 층 하나 몫만큼 빠진다 (상한 - (k-1))
와 상한의 일정 비율이다 (0.75 x 상한). 4층 커널5 에서는 둘 다 12 라
구별이 안 되니 깊이를 바꾸면 갈린다고 했다.
바꿔 봤다. 둘 다 틀렸고, 갈라진 것은 내가 본 축이 아니었다.
상한을 세 가지 값으로, 두 가지 방법으로
같은 예산 637k 에 커널과 층을 바꿔 상한을 16, 24, 32 로 만든다. 각
상한마다 층을 쌓아 만든 것과 커널을 키워 만든 것을 하나씩 둔다.
구성 커널 층 채널 파라미터 상한 층하나 예측 75% 예측
k5 x4 5 4 171 639,273 16 12 12
k3 x8 3 8 156 636,744 16 14 12
k5 x6 5 6 140 635,760 24 20 18
k3 x12 3 12 128 636,900 24 22 18
k5 x8 5 8 122 639,370 32 28 24
k9 x4 9 4 128 633,828 32 24 24
과제는 10편·11편의 복사다. 무작위 L 자, 구분자, 같은 L 자. 채점하는 자리는
전부 정확히 L 자 전을 되짚으므로 L 이 곧 거리다. 1000걸음, 시드 2개, 찍으면
ln(20) = 2.9957 이다.
거리마다 학습을 다시 해야 하니 이분 탐색으로 끊기는 자리를 찾았다.
판정 규칙을 조였다
처음에는 시드 2개의 중앙값이 2.0 아래면 푼 것으로 했다. 그러다 k5 x8 의
거리 13 이 0.0111 과 3.0004 로 나왔다. 중앙값은 1.51 이라 통과인데
실제로는 둘 중 하나만 푼 것이다.
규칙을 두 시드 다 2.0 아래로 조였다. 그러면 이분 탐색이 지나간 길이 더
이상 유효하지 않으므로, 확정 통과한 제일 먼 자리부터 확정 실패한 제일 가까운
자리까지 한 자씩 다시 채웠다.
이렇게 갈리는 자리가 여섯 구성 중 둘이었다 - k5 x8 의 13, k9 x4 의 22.
붕괴는 날카롭지만 딱 한 자리 폭으로 시드가 갈리는 구간이 있다.
결과
구성 커널 층 상한 실제로 푼 거리 상한 대비
k3 x8 3 8 16 7 0.44
k3 x12 3 12 24 8 0.33
k5 x4 5 4 16 12 0.75
k5 x6 5 6 24 12 0.50
k5 x8 5 8 32 12 0.38
k9 x4 9 4 32 21 0.66
층은 값을 못 한다
커널 5 짜리 세 개를 보자. 층을 4, 6, 8 로 쌓아 상한을 16, 24, 32 로
두 배 만들었다.
실제로 푼 거리가 12, 12, 12 다. 한 자도 안 움직였다.
커널 3 쪽도 같다. 층을 8 에서 12 로 늘려 상한을 16 에서 24 로 키웠는데
7 에서 8 로 한 자 늘었다. 층 넷을 더 쌓아 상한을 여덟 자 넓히고 한 자를
얻었다.
“수용장이 모자라면 층을 더 쌓아라” 는 흔한 조언이다. 이 과제에서 그것은 상한만 늘리고 쓸 수 있는 거리는 안 늘린다.
커널은 값을 한다
같은 값을 커널로 정렬하면 다르다.
커널 실제로 푼 거리 층 수
3 7, 8 8, 12
5 12, 12, 12 4, 6, 8
9 21 4
커널 3 에서 5 로 갈 때 7.5 에서 12, 5 에서 9 로 갈 때 12 에서
21 이다. 두 구간 다 커널 한 칸에 2.25 자씩이다.
층 수가 4 에서 12 까지 흩어져 있고 상한이 16 에서 32 까지 흩어져 있는데도
점이 커널 축에 선다.
다만 커널 값이 세 개뿐이다. 2.25 는 세 점에 맞춘 기울기이지 법칙이 아니다.
순서와 무관함은 재 놓은 것이고, 식은 아니다.
채널 수도 아니다
예산이 고정이라 층을 쌓으면 채널이 깎인다. 그래서 채널이 진짜 원인일 수 있는데, 숫자가 그걸 부정한다.
k3 x8 은 채널 156 인데 7 이고, k5 x6 은 채널 140 인데 12 다.
채널이 더 많은 쪽이 더 짧다.
경로 수는 여기서 또 죽는다
11편은 경로 수로 설명하려다 반증됐다. 여기서 더 세게 죽는다.
k3 x8 의 경로는 6561 개고 거리별로 종 모양이다. 꼭대기가 거리 8 로
1107 개, 거리 7 이 1016 개다.
거리 7 은 풀고 거리 8 은 못 푼다. 경로가 제일 많은 자리에서 끊긴다.
경로 수가 능력을 정한다면 꼭대기가 제일 잘 돼야 한다.
걸음 수 때문은 아니다
깊은 구성이 나쁘게 나오면 제일 먼저 의심할 것은 1000걸음 안에 못 배웠다는 것이다. 그래서 1000걸음에서 못 푼 바로 그 거리를 3000걸음으로 다시 돌렸다.
구성 거리 1000걸음 3000걸음
k5 x4 13 3.0009 2.9989 2.9977
k3 x8 8 3.0003 2.9985 2.9988
둘 다 걸음을 세 배로 줘도 찍기다. 끊기는 자리는 학습 예산이 아니라 구조에 붙어 있다.
그래서 무엇인가
모른다.
배제된 것은 늘었다. 수용장 상한이 아니고 (두 배로 키워도 안 움직인다), 깊이가 아니고 (8층이 4층보다 낫지도 나쁘지도 않다), 경로 수가 아니고 (꼭대기에서 끊긴다), 채널 수가 아니고 (많은 쪽이 짧다), 걸음 수가 아니다.
남은 것은 커널 폭 하나다. 왜 커널 폭이 그 값을 정하는지는 못 밝혔다.
설계할 때 뜻하는 것
수용장 공식은 닿을 수 있는 자리를 준다. 그 숫자로 “거리 d 의 의존을 잡으려면
수용장을 d 이상으로” 라고 설계하면, 이 과제에서는 여섯 번 중 여섯 번 모자란다.
제일 나은 것이 0.75, 제일 나쁜 것이 0.33 이다.
그리고 모자란 만큼을 층으로 메우면 안 채워진다. 커널을 키우는 쪽만 채워진다. 같은 예산에서 커널을 키우면 채널이 깎이니 공짜도 아니다.
남는 것
한 과제다. 복사는 정확히 한 자리만 필요하고 그 자리가 어디인지도 정해져 있다. 글자 예측처럼 여러 자리를 조금씩 쓰는 과제에서 같은 값이 나오는지는 안 쟀다. 5편이 언어에서 잰 것은 손실이지 쓸 수 있는 거리가 아니다.
커널 값이 3, 5, 9 세 개다. 커널 7 이나 11 을 넣어 2.25 가 유지되는지
보면 식으로 내놓을 수 있는지가 갈린다. 안 했다.
시드는 2개다. 경계에서 시드가 갈리는 자리가 둘 있었으므로, 표의 값은 “여기까지는 두 시드 다 된다” 이지 “여기 다음은 절대 안 된다” 가 아니다.
팽창은 안 건드렸다. 5편의 팽창판은 상한 125 에서 거리 60 을 푸는데
(11편), 그게 상한 대비 0.48 이라 이 표와 같은 범위다. 팽창판의 끊기는 자리는
문맥이 128 자라 못 잰다.
그래서
- 같은 예산
637k에 커널과 층을 바꿔 수용장 상한을16,24,32로 만든 여섯 구성에서, 복사 거리를 이분 탐색해 끊기는 자리를 찾았다 - 커널 5 는 층이
4,6,8이고 상한이16,24,32인데 전부12다. 상한을 두 배로 키우는 동안 한 자도 안 늘었다 - 커널 3 은 층을
8에서12로 늘려7에서8로, 한 자 늘었다 - 11편에 적어 둔 후보 둘 다 틀렸다. “층 하나 몫” 은
14,20,22,28을 예측했고 실측은7,12,8,12다. “상한의 75%” 도 마찬가지다 - 커널로 정렬하면
3→7.5,5→12,9→21로 한 칸에2.25자씩 이다. 세 점에 맞춘 기울기이므로 법칙으로 내놓지 않는다 - 채널 수가 아니다 -
k3 x8은 채널156에7,k5 x6은 채널140에12다 - 경로 수도 아니다 -
k3 x8은 경로가 제일 많은 거리8(1107개) 에서 끊기고1016개짜리 거리7은 푼다 - 판정을 시드 중앙값에서 두 시드 다 로 조였다.
k5 x8의 거리13이0.0111과3.0004로 갈려서다 - 왜 커널 폭이 정하는지는 못 밝혔다
Comments