혼동하기 쉬운 점과 요약
토론 1. 속이 복잡한 신경망은 열 줄짜리 표보다 많은 것을 낼 수 있나
라벨을 넣고 그림을 받는 MLP(파라미터 204,304개)와, 라벨마다 그림 한 장을 적은 열 줄짜리 표가 있다. 둘 다 같은 입력에 늘 같은 그림을 내놓는다면, 내놓을 수 있는 그림은 어느 쪽이 더 많은가?

라벨을 넣고 그림을 받는 MLP는 파라미터가 204,304개예요. 라벨마다 그림 한 장씩 적어 둔 열 줄짜리 표와 놓고 보면, 내놓을 수 있는 그림은 어느 쪽이 더 많을까요?

MLP 쪽 아닐까요? 숫자 20만 개로 된 함수면, 784칸 그림 열 장을 적은 표, 숫자 7,840개보다 훨씬 많은 걸 담을 수 있을 것 같아요.

그럼 「3」을 다섯 번 넣어 볼까요? 다섯 장이 어떻게 나와요?

이 MLP는 안에 무작위가 없으니까 다섯 번 다 같은 그림이에요. 계산 순서가 같으면 소수점 끝자리까지 같아요.

그럼 「0」부터 「9」까지 넣으면 열 장이고, 그다음엔 넣을 게 없네요. 입력이 열 가지뿐이니까… 파라미터가 많아도 나오는 그림은 열 장을 못 넘어요.

그 열 장을 미리 뽑아 표에 적어 두고 MLP를 지우면, 누가 차이를 알아챌 수 있을까요?

아무도 못 알아채요. 같은 입력에 같은 답이면 속이 무엇이든 입력 가짓수만큼 줄이 있는 표와 같아요. 파라미터 20만 개는 그 열 장을 계산하는 데 쓰였을 뿐이고요.

자판기도 속 기계가 아무리 복잡해도 버튼이 다섯 개면 나오는 음료는 다섯 가지잖아요. 음료 가짓수를 늘리려면 기계를 키울 게 아니라 버튼을 늘리거나, 안에 무작위를 넣어야겠네요.
토론 2. 무작위로 고르면 새것이 나오나
무작위 찾아보기는 부를 때마다 다른 3을 내놓는다. 부를 때마다 다르면 새 그림인가?

무작위 찾아보기는 부를 때마다 다른 3을 내놓아요. 민준 학생, 이 생성기가 지금까지 없던 3을 내놓을 수 있을까요?

6,131장 가운데 아무거나 고르니까 매번 처음 보는 3이 나오잖아요. 그 정도면 새 그림이라고 해도 되지 않을까요?

「처음 보는」은 누구에게 처음이에요? 나온 3과 가장 가까운 학습 그림의 거리는요?

저한테는 처음 보는 거지만… 학습 그림에서 꺼냈으니 거리는 0이에요. 학습 데이터에는 다 이미 있던 그림이네요.

그럼 부르는 횟수를 늘리면 어때? 6,131번보다 훨씬 많이 부르면.

그러면 겹치는 게 늘어날 뿐이고, 6,131장 밖의 그림은 한 번도 안 나와. 무작위가 고르는 건 「어느 그림을 꺼낼까」뿐이니까.

그럼 무작위가 새것을 낳으려면 무엇을 골라야 할까요? 키른베르거의 표를 떠올려 봐요.

키른베르거는 곡 전체를 한꺼번에 고르지 않고 자리마다 마디를 골라 이어 붙였어요. 그래서 조합이 어느 악보에도 없던 곡이 됐고요. 무작위를 무엇에 쓰느냐가 갈랐네요. 꺼내는 곳이 학습 데이터 그대로면 새로움은 0이에요.

뷔페에서 접시를 아무리 다르게 담아도 뷔페에 없는 음식은 안 나오는 거랑 같네요. 접시마다 조합은 달라도 음식 하나하나는 다 진열대에 있던 거고요.
혼동하기 쉬운 점
| 혼동하기 쉬운 생각 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 정답이 여럿인 문제에서 제곱 오차가 가장 작은 답이 실제로 나오는 답이라고 봄 | 1 | 제곱 오차를 가장 작게 하는 답은 정답들의 평균(조건부 평균)이고, 평균은 한 번도 일어나지 않는 답일 수 있다 |
| 손실을 절댓값 오차로 바꾸면 평균 그림 문제가 풀린다고 봄 | 2 | 중앙값도 칸마다 따로 고른 값이다. 칸들이 함께 정하는 장치가 없으면 획이 끊기거나 사라진 그림이 나온다 |
| 분류기도 그림 MLP처럼 정답들의 평균을 낸다고 봄 | 3 | 분류기는 정답 여럿을 확률 분포로 담고, 거기서 뽑으면 실제 정답 하나가 나온다 |
| 조건 사이 분산을 빼먹고, 조건 안 분산만으로 오차를 셈 | 4 | 전체 분산 = 조건 사이 분산 + 조건 안 분산. 두 반 점수는 25 + 100 = 125 |
| 자료를 늘리면 조건을 알아도 남는 오차가 줄어든다고 봄 | 4 | 조건 안 분산은 같은 조건 안에서 답끼리 다른 정도라, 조건만으로는 줄지 않는다 |
| 라벨을 무작위로 붙이면 라벨 사이 분산이 커진다고 봄 | 5 | 라벨마다의 평균이 모두 전체 평균에 가까워져, 라벨 사이 분산은 0 가까이로 준다 |
| 신경망을 키우고 오래 학습하면 라벨 → 그림 손실이 계속 준다고 봄 | 6 | 라벨만 받는 함수는 라벨 안 분산(MNIST 41.80) 아래로 내려갈 수 없다. 큰 신경망은 평균을 더 정확히 그릴 뿐이다 |
| 규칙이 복잡한 결정적 생성기는 표보다 많은 것을 낸다고 봄 | 토론 1 | 같은 입력에 같은 답이면 입력 가짓수만큼 줄이 있는 표와 같다 |
| 무작위로 고르면 새것이 나온다고 봄 | 토론 2 | 무작위로 꺼내도 꺼내는 곳이 학습 데이터면 새로움은 0이다 |
| 무작위로 뽑을 때 겹칠 확률을 작게 봄 | 8 | 6,131장에서 100번이면 겹칠 확률이 0.556이다(생일 문제) |
| 서로 다른 그림이 많으면 새 그림이 많다고 봄 | 8 | 다양성은 생성한 그림끼리, 새로움은 학습 그림과 비교한다. 따로 잰다 |
| 학습 그림과의 거리만 멀면 좋은 생성기라고 봄 | 9 | 평균 그림과 섞은 그림도 거리는 멀다. 선명함(그럴듯함)을 함께 봐야 한다 |
요약
MLP는 정답이 하나일 때 잘 맞힌다. 분류기를 뒤집어 라벨을 넣고 그림을 맞히게 하면, 같은 라벨에 정답 그림이 여럿이라 제곱 오차로 배운 MLP는 정답들의 평균(조건부 평균)을 내놓고, 그림에서는 그것이 흐린 평균 그림이다. 평균이 지운 것은 라벨 안 분산이다. MNIST에서 그림의 분산 합 52.73 가운데 라벨 사이 분산은 10.93(21%)뿐이고 41.80은 라벨을 알아도 남는다. 이 라벨 안 분산은 데이터 자체에 들어 있는 내재적 확률성이라, 신경망을 아홉 배로 키우고 세 배 오래 학습해도 손실은 41.83에서 멈춘다. 그림이 라벨을 거의 정하는 분류와 달리 라벨은 그림을 조금만 정하므로, 생성은 본래 뽑기다. 같은 입력에 늘 같은 답을 내는 생성기는 입력 가짓수만큼 줄이 있는 룩업 테이블이고, 학습 그림을 무작위로 꺼내는 생성기는 다양하지만 새로움이 0인 암기다. 바라는 생성기는 다양하고, 선명하고, 학습 그림에서 진짜 새 그림만큼 떨어져 있어야 한다.
flowchart LR A["분류기: 그림 → 라벨<br/>정답 하나"] --> B["뒤집기: 라벨 → 그림<br/>정답 여럿"] B --> C["제곱 오차의 답 = 조건부 평균<br/>흐린 평균 그림"] C --> D["라벨 사이 분산 21%<br/>라벨 안 분산 79%"] D --> E["내재적 확률성<br/>키워도 줄지 않는다"] E --> F["생성은 뽑기다"] F --> G["결정적 생성기 = 룩업 테이블"] F --> H["무작위 찾아보기 = 암기<br/>다양하지만 새로움 0"] G --> I["다양 · 선명 · 새로움<br/>셋을 함께"] H --> I
정리 연습문제
물음. 라벨 「3」을 넣으면 그림을 내놓도록 MLP를 제곱 오차로 학습했다. 학습이 잘 끝났을 때 MLP는 어떤 그림을 내놓는가?
- [ ] 학습 그림 가운데 가장 흔한 3 하나 〔틀림: 제곱 오차를 가장 작게 하는 답은 정답들의 평균이다. 평균은 학습 그림 가운데 하나가 아니다.〕
- [x] 3 그림들의 평균인 흐린 그림 〔맞음: 같은 라벨에 정답 그림이 여럿이면 제곱 오차의 답은 조건부 평균이고, 그림에서는 흐린 평균 그림이 된다.〕
- [ ] 매번 다른 3 〔틀림: 같은 입력에는 늘 같은 출력을 낸다. 라벨이 같으면 그림도 같다.〕
물음. 라벨 → 그림 MLP가 흐린 평균 그림을 내놓는다. 무엇을 바꿔야 실제로 있을 법한 3이 나오는가?
- [ ] 손실을 절댓값 오차로 바꾼다 〔틀림: 절댓값 오차의 답인 중앙값도 칸마다 따로 고른 값이다. 칸들이 함께 정하지 않으면 획이 끊기거나 사라진 그림이 나온다.〕
- [ ] 신경망을 키우고 더 오래 학습한다 〔틀림: 라벨만 받는 함수의 손실은 라벨 안 분산 아래로 내려갈 수 없다. 큰 신경망은 평균 그림을 더 정확히 그릴 뿐이다.〕
- [x] 생성을 뽑기로 바꿔, 같은 라벨에도 다른 그림이 나오게 한다 〔맞음: 라벨은 그림을 조금만 정한다. 나머지 생김새는 생성기가 여러 가능성 가운데 골라야 한다.〕
물음. 두 반 학생의 시험 점수에서 반 사이 분산이 25, 반 안 분산이 100이다. 학생의 반만 알고 그 반의 평균으로 점수를 짐작하면, 남는 평균 제곱 오차는?
- [ ] 125 〔틀림: 125는 반을 모를 때의 전체 분산이다. 반을 알면 반 사이 분산 25는 지워진다.〕
- [x] 100 〔맞음: 전체 분산은 반 사이 분산과 반 안 분산의 합이고, 반을 알아도 반 안 분산은 남는다.〕
- [ ] 25 〔틀림: 25는 반을 알면 지워지는 부분이다. 남는 것은 같은 반 안에서 학생끼리 다른 정도다.〕
- [ ] 학생을 더 많이 모으면 0에 가까워진다 〔틀림: 반 안 분산은 같은 반 안에서 점수끼리 다른 정도라, 자료를 늘려도 줄지 않는다.〕
물음. 같은 라벨에는 늘 같은 그림을 내놓는 생성기가 있다. 속은 아주 복잡한 신경망이다. 라벨 열 가지를 넣어 얻을 수 있는 서로 다른 그림은 몇 장인가?
- [ ] 속이 복잡하니 셀 수 없이 많다 〔틀림: 속이 아무리 복잡해도 같은 입력에 같은 답을 낸다. 입력이 열 가지면 답도 열 가지다.〕
- [x] 많아야 10장 〔맞음: 결정적인 생성기는 입력 가짓수만큼 줄이 있는 룩업 테이블과 같다.〕
- [ ] 학습한 그림 수만큼 〔틀림: 내놓는 그림의 수는 넣을 수 있는 입력의 가짓수가 정한다. 학습 그림 수와는 상관없다.〕
물음. 바라는 생성기에 대한 말 가운데 맞는 것은?
- [ ] 학습 그림을 무작위로 꺼내 주면 새 그림이 나온다 〔틀림: 무작위로 꺼내도 꺼내는 곳이 학습 데이터라 새로움은 0이다.〕
- [ ] 생성한 그림끼리 서로 많이 다르면 새 그림도 많다 〔틀림: 다양성은 생성한 그림끼리 비교하고, 새로움은 학습 그림과 비교한다. 둘은 따로 잰다.〕
- [ ] 학습 그림과의 거리만 멀면 좋은 생성기다 〔틀림: 평균 그림을 섞은 흐린 그림도 학습 그림과 멀다. 선명함도 함께 봐야 한다.〕
- [x] 다양하고, 선명하고, 학습 그림에서 진짜 새 그림만큼 떨어져 있어야 한다 〔맞음: 셋 가운데 하나만 보면 암기나 흐린 평균 그림도 좋은 생성기로 보인다.〕
막힌 곳
라벨 「3」은 그림의 분산 합 가운데 21%만 정하고, 나머지 79%는 생성기가 골라야 한다. 그런데 지금까지 만든 생성기는 둘 다 그 79%를 고르지 못했다. 결정적인 MLP는 열 줄짜리 표였고, 무작위 찾아보기는 학습 그림을 고르는 데만 무작위를 썼다. 획의 자리, 기울기, 굵기처럼 라벨이 정하지 못한 생김새를 생성기가 고르게 하려면, 그 생김새를 정해 줄 값이 라벨 곁에 함께 들어가야 하지 않을까? 그렇다면 그 값은 무엇이어야 하고, 학습 그림마다 그 값을 어디서 얻을까? 라벨은 그림마다 사람이 붙여 주었지만, 획의 생김새를 적은 값을 붙여 준 사람은 없다.