풀링은 위치 3비트를 버린다
풀링은 이미지 쪽에서 온 부품이다. 고양이가 세 픽셀 옆으로 가도 고양이니까, 작은 이동에 흔들리지 않는 표현을 만들려고 쓴다.
다음 글자를 맞히는 일에서는 자리가 전부다. 그러면 풀링이 여기서 무엇을 하는지 따로 재 봐야 한다.
풀링이 하는 계산
창 w 안의 값들 중 제일 큰 것을 고르거나 (최대풀) 평균을 내는 것 (평균풀) 이다.
가중치가 없으니 파라미터를 안 먹는다.
보폭을 w 로 주면 길이가 w 분의 1 로 줄고, 보폭 1 로 주면 길이가 그대로다.
어느 쪽이든 왼쪽으로만 채우면 인과성은 지킨다.
사는 것: 한 글자 밀어도 덜 바뀐다
4편에서 쓴 합성곱 첫 층의 출력을 가져와서, 글을 한 글자 밀어 다시 계산하고 줄인 표현끼리 얼마나 다른지 잰다.
창 넓이 2 4 8
최대풀 0.730 0.403 0.220
평균풀 0.720 0.410 0.231
그냥 뽑기 1.168 1.166 1.160
풀링 없이 w 칸마다 하나씩 뽑기만 하면 한 글자 밀렸을 때 1.16 이다. 상대
노름이 1을 넘었으니 원래 것과 사실상 상관이 없다는 뜻이다.
최대풀을 씌우면 0.730, 0.403, 0.220 으로 내려간다. 창이 넓을수록 덜
흔들린다. 이게 풀링이 사는 것이고, 이미지에서 쓰는 이유다.
내는 것: 위치 log2(w) 비트
대가는 창 안 어디였는지다. 최대풀 출력은 값 하나뿐이라 어느 자리가 이겼는지가 안 남는다.
얼마나 버려지는지는 셀 수 있다. 이긴 자리의 분포를 내면
창 넓이 이긴 자리 분포 엔트로피 / 최대
2 0.632 0.368 0.95 / 1.00
4 0.301 0.231 0.236 0.232 1.99 / 2.00
8 각 자리 0.120 ~ 0.129 3.00 / 3.00
거의 완전한 균등이다. 창 8에서 엔트로피가 3.00 비트로 최대치와 소수점 둘째
자리까지 같다. 버려지는 3비트가 다른 어디서도 못 되찾는 3비트라는 뜻이다.
어느 자리가 이길지에 규칙성이 있었다면 엔트로피가 3보다 낮았을 것이다.
이 과제에서는
거래가 남는지는 학습시켜 보면 된다. 4편의 합성곱에 층마다 보폭 1 풀링을 끼우고
- 보폭이 1이라 길이가 안 줄고 파라미터도 안 늘어난다 - 다른 것은 다 고정한다.
수용장 채널 파라미터 최소 검증 (시드 3개) 중앙값
풀링 없음 17 171 639,273 1.8748 1.8709 1.8695 1.8709
최대풀 2 21 171 639,273 2.0047 1.9726 1.9628 1.9726
최대풀 4 29 171 639,273 2.1446 2.1409 2.1060 2.1409
평균풀 4 29 171 639,273 2.1518 2.1458 2.1342 2.1458
통제 (같은 창 29) 29 171 639,273 1.8987 1.9033 1.8922 1.8987
채널도 파라미터도 다섯 다 똑같다. 그런데 최대풀 4를 넣으면 1.8709 에서
2.1409 로 0.27 나빠진다.
창이 넓어진 탓이 아니다
보폭 1 풀링도 수용장은 늘린다. 창 w 짜리 풀링을 네 층에 넣으면 4(w-1) 만큼
늘어나므로, 최대풀 4는 수용장이 17 이 아니라 29 다. 5편에서 창을 넓히면
나빠진다고 했으니 그 몫이 섞여 있다.
그래서 통제를 같이 돌렸다. 풀링 없이 팽창만으로 수용장을 29 로 맞춘 것이고,
채널과 파라미터는 역시 같다.
풀링 없음 (창 17) 1.8709
통제 (창 29, 풀링 없이) 1.8987 창을 넓힌 몫 +0.0278
최대풀 4 (창 29) 2.1409 풀링 자체 몫 +0.2422
풀링 자체가 낸 값이 창이 넓어진 값의 8.7 배다. 수용장 혼동은 작다.
최대와 평균이 구분이 안 된다
2.1409 와 2.1458 이고 시드 범위가 2.1060~2.1446 대 2.1342~2.1518 로
겹친다. 무엇을 고르느냐가 아니라 고른다는 것 자체가 값이다.
말이 된다. 둘 다 창 안 w 개를 하나로 뭉개고, 뭉개는 규칙이 최대든 평균이든
자리 정보는 똑같이 사라진다.
남는 것
여기서는 층마다 풀링을 넣었다. 마지막 층에만 넣거나 두 층 걸러 넣으면 값이 줄 것이다 - 안 쟀다.
보폭 w 로 줄이는 쪽도 학습으로는 안 재 봤다. 길이가 줄면 자리마다 예측을
내려고 다시 늘려야 하는데, 그 구조를 만들면 비교가 다른 얘기가 된다.
그리고 이 결론은 자리가 답인 과제에 붙어 있다. 글 전체를 하나로 분류하는 일이었다면 - 이 글이 코드인가 산문인가 같은 - 자리를 버리는 것이 오히려 도움이 됐을 것이다. 그 과제를 안 만들어 봤다.
그래서
- 풀링은 창 안 값들을 하나로 뭉갠다. 가중치가 없어 파라미터를 안 먹는다
- 사는 것은 불변성이다. 한 글자 밀었을 때 표현 변화가
1.16에서 창 8 최대풀의0.22로 내려간다 - 내는 것은 위치다. 이긴 자리의 엔트로피가 창 8에서
3.00비트로 최대치와 같다 - 버려지는 3비트가 어디서도 못 되찾는 3비트다 - 이 과제에서는 손해다.
1.8709에서2.1409로0.27오른다 - 그중 창이 넓어진 몫은
+0.0278뿐이고 풀링 자체가+0.2422다.8.7배 - 최대와 평균이 구분 안 된다. 뭉갠다는 것 자체가 값이다
Comments