단원 홈
2단원 · 마무리

열일곱 차시를 한 장의 지도로

이 단원이 한 일은 하나입니다 — 규칙을 사람이 적는 대신 데이터에서 찾게 한 것. 그러자 새 물음이 줄줄이 따라왔습니다. 데이터는 세상을 닮았는가, 외운 것인가 이해한 것인가, 그리고 잘한다는 것을 무엇으로 재는가.

12인기02-01 ~ 02-06
🗺️

개념 지도

네 덩어리입니다 — 데이터를 고르고, 다듬고, 알고리즘을 고르고, 잰다.

규칙을 데이터에서 찾는다 1차시 — 낱말 2,497개를 다 써도 43/44에서 막힌다 📦 데이터를 고른다 2~3차시 세상을 닮았는가 3차시 — 전체 85%, 그런데 누구에겐 20% 🧹 다듬는다 4~6차시 — 빠진 값 · 튀는 값 · 단위 · 특성 🧮 알고리즘을 고른다 7차시 — 정답표가 있는가 가까운 것끼리 — k-NN 8차시 — 5차시의 거리를 쓴다 묶기 — k-평균 10차시 — 6회에 멈춘다 선 긋기 — 경사하강 9차시 — 오차가 줄어드는 쪽으로 📊 잰다 11~12차시 네 칸 — 정밀도 · 재현율 12차시 — '모두 정상'이 98.0%를 받는다 퍼셉트론 → 층을 하나 더 13~14차시 — XOR은 직선으로 안 된다 ★ 내 데이터로 학습시키고 잰다 15차시 — 코드는 그대로, 데이터만 바뀐다 네 칸으로 잰다 👁️ 본다 · 🗣 말한다 — 16~17차시
💡 지도를 한 문장으로 읽으면

규칙을 다 적을 수 없으니 데이터에서 찾게 했고(1차시), 그러려면 무엇을 맞히고 무엇으로 맞힐지부터 정해야 하며(2차시), 그 데이터가 세상을 닮았는지 봐야 합니다(3차시). 데이터를 다듬고(4~6차시) 알고리즘을 고르면(7~10차시) 이제 잘했는지 재야 하는데, 훈련 점수는 답이 아니고(11차시) 정확도 하나로도 모자랍니다(12차시). 직선으로 안 되는 문제는 층을 하나 더 쌓아 넘고(13~14차시), 마침내 그것을 진짜 데이터에 붙여 네 칸으로 잽니다(15차시).

📋

열일곱 차시 한 줄 정리

'남는 숫자'는 여러분이 직접 돌려서 얻은 값입니다.

차시한 줄로남는 숫자
1 규칙으로는 끝까지 못 간다. 낱말을 늘릴수록 정상 메일이 함께 잡힌다. 규칙 4개 72.7% · 조각 2,497개 전수 천장 43/44
2 무엇을 맞힐지와 무엇으로 맞힐지를 가르는 것이 첫 단추다. 「잔반 kg」을 넣으면 100% — 누수 · 합격선 1.98kg
3 전체 정확도는 다수의 성적이다. 소수는 그 뒤에 숨는다. 전체 85.0% = 밝은 92.2% · 어두운 20.0%
4 이상치 하나가 평균은 끌고 중앙값은 못 끈다. 1750cm 하나 · IQR과 z가 다른 답을 내는 값
5 단위를 안 맞추면 큰 숫자를 가진 특성이 거리를 독차지한다. 정규화 거리 0.5269 / 0.9686 / 1.0422 — 순위가 뒤집힌다
6 쓸모없는 특성은 무시되지 않는다. 훈련만 올리고 테스트를 내린다. 20일치 기준선 0.70kg → 0.32kg
7 정답표가 있는가 하나로 지도·비지도·강화가 갈린다. 늘 쓰기만 하면 1번 기계에 갇힌다
8 가까운 이웃에게 물어본다. k를 키우면 경계가 매끈해진다. 씨앗 55알 · k=1 훈련 100% / 시험 60.0%
9 오차가 줄어드는 쪽으로 조금씩 민다. 크게 밀면 튄다. 손실 5305.40 → 7.33 · y = 8.97x + 42.11
10 이름표 없이도 묶인다. 다만 어디서 시작하느냐로 답이 갈린다. K=3 · 6회에 멈춤(움직인 것 5번)
11 훈련 점수는 답이 아니다. k=1이면 반드시 100%다. k=1 훈련 100% / 시험 60.0% · 교차검증은 k=25를 고른다
12 정확도 하나로는 모자란다. 「모두 정상」이 98.0%를 받는다. 재현율 0.0% · 정확도 최고 기준점 78, F1 최고는 71
13 직선 하나로 나눌 수 있는 문제와 없는 문제가 있다. XOR — 1에폭 주기의 완전한 제자리걸음
14 층을 하나 얹으면 넘는다. 다만 씨앗에 따라 실패한다. 손실 0.262336 → 0.000383 · 은닉 2개는 30번 중 6번 실패
15 코드는 그대로, 데이터만 바꾼다. 그리고 네 칸으로 잰다. 테스트 정확도 80.6% · 기준선 65.3% · 천장 94.4%
16 작은 창을 밀며 무엇을 볼지 정한다. 다만 여기엔 학습이 없다. 144 → 100 → 25칸 · 무작위 필터는 손으로 정한 것의 1/3.7
17 다음 낱말을 맞히다 보면 문장이 나온다. 다만 두 낱말만 본다. 바이그램 새 문장 11 · 트라이그램은 6 (외운 것 9 → 14)
🔢

이 단원이 남긴 숫자 여섯

외우라는 뜻이 아닙니다. 왜 그 값인지 말할 수 있으면 이 단원을 이해한 것입니다.

43 / 44
낱말 조각 2,497개를 전부 시험해도 규칙이 닿는 최고. 한 건은 정상 메일이 스팸 제목을 통째로 품고 있어 영원히 못 가른다.
85 · 20
전체 85.0%인데 어두운 사진에서는 20.0%. 표집을 바꾸는 1,040가지를 다 해 봐도 격차를 없애면서 성능을 지키는 길은 없었다.
100 %
k=1일 때의 훈련 정확도. 자기 자신이 가장 가까운 이웃이니 당연하다. 당연한 100%는 아무것도 말해 주지 않는다.
98.0 %
환자가 2%뿐인 데이터에서 「모두 정상」이라 답할 때의 정확도. 재현율은 0.0% — 환자를 한 명도 못 찾았다.
6 / 30
은닉 2개짜리 신경망이 XOR 학습에 실패한 횟수. 은닉을 3개로 늘리면 30번 중 0번. 실패는 예외가 아니라 성질이다.
80.6 %
내가 만든 신경망의 테스트 정확도. 아무것도 안 하는 기준선이 65.3%이고 천장은 94.4%다 — 데이터에 잘못 적힌 날이 섞여 있어서.
⚠️

과장하지 않기 위해 — 이 단원이 하지 않은 것 셋

할 수 있게 된 것만큼, 아직 못 하는 것을 아는 것도 배움입니다.

16차시의 필터는 사람이 정했다

세로선 검출기의 아홉 숫자를 우리가 손으로 적어 넣었습니다. 진짜 합성곱 신경망은 저 아홉 숫자마저 데이터에서 배웁니다. 우리가 무작위 필터 12장을 만들어 봤을 때 손으로 정한 넉 장의 3.7분의 1밖에 못 했던 것을 기억하세요 — 좋은 필터를 찾는 일 자체가 학습입니다.

17차시의 바이그램은 딥러닝이 아니다

앞 낱말 하나만 보고 다음을 고르는 표입니다. 신경망이 아니에요. 그래서 「바람이 불면 창문을 열면 바람이 불면 창문을 닫는다」 같은 고리에 빠집니다. 트라이그램으로 늘리면 어긋남은 사라지지만 새 문장이 11개에서 6개로 줄고 외운 문장이 9개에서 14개로 늘었습니다 — 문맥을 넓히면 외우기 쉬워진다는 맞바꿈이 여기서도 나옵니다.

15차시에서 만든 신경망은 작다

층 둘, 은닉 노드 서넛입니다. "이제 딥러닝을 만들 줄 안다"가 아니라 "원리는 같고 규모가 다르다"가 맞는 말입니다. 다만 원리가 같다는 것이 작은 일은 아닙니다 — 예측하고, 틀린 만큼 되짚어 가중치를 밀고, 그것을 수백 번 되풀이하는 고리는 매개변수가 수천억 개인 모델에서도 똑같이 돕니다.

✍️

서·논술형 자기 점검

먼저 스스로 써 본 뒤에 예시 답안을 여세요.

1. 훈련 정확도가 100%인 모델을 보고했더니 선생님이 "그래서 쓸 수 있는 모델인가요?"라고 되물었습니다. 왜 그렇게 물었는지 설명하고, 무엇을 함께 보고해야 하는지 이 단원의 숫자를 들어 쓰시오. 12인기02-04

📖 예시 답안 훈련 정확도는 모델이 이미 본 데이터에서 잰 값이라, 외운 것과 이해한 것을 구별하지 못한다. 11차시에서 k=1인 k-NN은 훈련 정확도가 반드시 100%가 되는데, 자기 자신이 가장 가까운 이웃이라 늘 자기 이름표를 돌려주기 때문이다. 그런데 같은 모델의 시험 정확도는 60.0%였다 — 40%포인트 차이가 곧 '외웠다'는 증거다. 그러므로 훈련과 테스트를 갈라 두 값을 함께 보고해야 하고, 나아가 12차시에서 보았듯 정확도 하나로도 모자란다. 환자가 2%뿐인 데이터에서 「모두 정상」이라 답하면 정확도 98.0%를 받지만 재현율은 0.0%다. 네 칸(TP·FP·FN·TN)과 정밀도·재현율까지 함께 적어야 비로소 보고가 된다. 한 번의 분할만 믿어서도 안 된다 — 11차시의 교차검증은 그 한 번이 고른 k와 다른 값을 골랐다.

2. 어떤 얼굴 인식 서비스가 전체 정확도 85%라고 발표했습니다. 이 숫자만으로 안심할 수 없는 까닭을 3차시의 실험을 들어 설명하고, 편향을 줄이려 할 때 치러야 하는 대가를 함께 쓰시오. 12인기02-01

📖 예시 답안 전체 정확도는 집단 크기로 가중된 평균이라, 다수 집단의 성적이 숫자를 지배한다. 3차시의 실험에서 전체 85.0%는 밝은 사진 92.2%와 어두운 사진 20.0%가 9:1로 섞인 값이었다. 어두운 사진을 쓰는 사람에게 이 서비스는 다섯 번에 네 번 틀린다. 그러므로 집단별로 갈라 재지 않으면 아무것도 잰 것이 아니다.
대가도 분명하다. 표집 비율과 가중치를 바꾸는 1,040가지를 전부 시험했지만 "전체 90% 이상 + 격차 10%포인트 이내"를 만족하는 조합은 하나도 없었다. 격차를 0.2%포인트까지 줄인 설정은 전체가 52.8%로 떨어졌다 — 둘 다 못 맞히게 되어 '공평'해진 것이다. 다만 집단마다 따로 배우게 하자 어두운 사진 정확도가 사진을 한 장도 더 안 모으고 20.0%에서 89.0%로 뛰었다. 문제는 데이터의 양이 아니라 두 집단을 같은 자로 잰 것이었다.

3. 15차시에서 여러분은 14차시의 신경망 코드를 한 글자도 고치지 않고 진짜 데이터에 붙였습니다. 그것이 왜 중요한 경험인지 쓰고, 그럼에도 여러분이 만든 것과 실제 딥러닝 사이의 거리를 세 가지로 쓰시오. 12인기02-06 · 02-05

📖 예시 답안 코드를 고치지 않아도 됐다는 것은 알고리즘이 문제에 딸린 것이 아니라는 뜻이다. XOR 네 점을 배우던 그 train()이 240일치 급식 기록도 배웠다. 바뀐 것은 데이터의 모양뿐이다. 그래서 새 문제를 만나면 알고리즘을 새로 짜는 것이 아니라 데이터를 그 모양으로 옮기는 일부터 하게 된다 — 2차시에서 배운 '무엇을 맞히고 무엇으로 맞힐까'가 여기로 돌아온다.
거리 셋은 이렇다. ① 규모 — 우리 신경망의 매개변수는 열 개 남짓이고 데이터는 240일이다. 오늘날의 모델은 그보다 몇 자리 위다. ② 층 — 우리는 층 하나를 더 얹었을 뿐이다. '딥'러닝은 그 층이 훨씬 깊다. ③ 학습 시간과 계산 — 우리 코드는 몇 초면 끝나지만 큰 모델은 전용 장비로 며칠에서 몇 달을 돈다.
그럼에도 고리는 같다 — 예측하고, 틀린 만큼 되짚고, 가중치를 조금 밀고, 되풀이한다.
📊

성취기준 자가 평가

솔직하게 고르세요. 부족한 곳이 있어야 다음에 무엇을 볼지 정할 수 있습니다.

12인기02-01  문제에 필요한 데이터를 고르고, 그 데이터가 세상을 닮았는지 집단별로 갈라 잴 수 있다.

12인기02-02  빠진 값·튀는 값을 다루고, 단위를 맞추고, 쓸모없는 특성을 골라낼 수 있다.

12인기02-03  지도·비지도·강화를 구별하고, 문제에 맞는 알고리즘을 까닭을 대며 고를 수 있다.

12인기02-04  훈련과 테스트를 가르고, 네 칸(혼동행렬)으로 정밀도·재현율까지 보고할 수 있다.

12인기02-05  퍼셉트론과 다층 신경망의 구조를 설명하고, 왜 층을 더 쌓는지 말할 수 있다.

12인기02-06  신경망에 내 데이터를 넣어 학습시키고, 그 성능을 네 칸으로 평가할 수 있다.

🌉

3단원으로 넘기는 물음 셋

이 단원이 답하지 못한 것들입니다.

① 격차를 없앨 수 없다면, 누가 그 대가를 정하는가?

3차시에서 1,040가지를 다 시험해도 "성능도 지키고 격차도 없애는" 길은 없었습니다. 그러면 무엇을 얼마나 포기할지 누가 정합니까? 만드는 사람일까요, 쓰는 사람일까요, 아니면 그 결정에 걸린 사람일까요. 3단원이 이 물음을 정면으로 다룹니다.

② 12차시의 기준점을 옮기는 일은 누구의 몫인가?

같은 모델인데 기준점을 78에 두면 정확도가 최고가 되고, 71에 두면 F1이 최고가 됩니다. 암 검진처럼 놓치는 쪽이 훨씬 위험한 문제에서는 기준점을 낮춰야 하는데, 그러면 건강한 사람 수백 명이 재검사를 받습니다. 이 숫자 하나가 사람들의 하루를 바꿉니다.

③ 우리 신경망은 왜 그렇게 답했는지 말하지 못한다

1단원 12차시의 후향 추론은 밟은 규칙의 사슬이 그대로 설명이었습니다. 그런데 15차시의 신경망은 가중치 숫자만 있을 뿐, "왜 이 날을 많이 남는다고 봤는지" 말해 주지 않습니다. 설명하지 못하는 판단을 사람의 삶에 적용해도 되는가 — 3단원의 중심 물음입니다.