1단원에서 무엇이 바뀌는가
규칙을 누가 만드느냐 — 그 하나가 바뀝니다.
| 1단원 — 탐색과 추론 | 2단원 — 학습 | |
|---|---|---|
| 규칙을 만드는 이 | 사람이 적는다 | 기계가 데이터에서 찾는다 |
| 필요한 것 | 문제를 상태·행동·목표로 옮길 눈 | 데이터, 그리고 그 데이터가 세상을 닮았는지 보는 눈 |
| 잘했는지 재는 법 | 최단인가 — 답이 정해져 있다 | 테스트 데이터에서 몇 %인가 — 답이 하나가 아니다 |
| 가장 큰 함정 | 어림을 부풀리면 최단을 잃는다 | 훈련 정확도 100%가 나쁜 소식일 수 있다 |
1차시가 그 전환을 몸으로 겪게 합니다. 스팸 필터를 규칙으로 직접 짜다가 실패합니다. 실패하는 것이 목적이에요 — 키워드를 늘릴수록 「장학금 무료 특강 안내」 같은 정상 메일이 함께 잡히거든요. 교과서를 만들며 후보 낱말 조각 2,497개를 전부 시험해 봤는데, 규칙으로 도달할 수 있는 최고는 44건 중 43건이었습니다. 100%는 원리적으로 불가능합니다.
1단원과 같습니다 — 모든 숫자는 실제로 돌려서 나온 값입니다. 게다가 이 단원은 시뮬레이터와 파이썬 코드가 같은 값을 냅니다. 화면에서 적은 값과 코드가 찍는 값이 다르면, 둘 중 하나를 잘못 만진 것입니다.
앞 차시의 코드가 뒤 차시의 도구가 된다
사슬이 넷 있습니다. 셋은 코드를 그대로 물려주고, 하나는 생각의 모양만 물려줍니다.
📐 거리 사슬 — 5차시 → 8차시 → 11차시
5차시에서 단위를 맞추고 거리를 재는 함수를 만듭니다(dist·minmax_fit).
8차시가 그 거리로 k-NN을 만들고, 11차시가 그 k-NN을 도구 삼아
과적합을 숫자로 봅니다.
📉 경사 사슬 — 9차시 → 13차시 → 14차시 개념만
9차시에서 '예측 → 오차 → 기울기 → 조금 밀기'라는 고리를 배웁니다. 13차시의 퍼셉트론도, 14차시의 역전파도 같은 모양의 고리를 돕니다. ⚠️ 다만 코드는 서로 다릅니다 — 계단 함수와 시그모이드는 기울기를 구하는 법이 아예 달라요. 이어지는 것은 고리의 모양이지 함수가 아닙니다.
🧠 신경망 사슬 — 14차시 → 15차시
14차시에서 만든 train()·forward()·predict()를
15차시가 한 글자도 고치지 않고 다시 싣습니다.
바뀌는 것은 데이터뿐이에요 — 그것이 15차시의 논지입니다.
📊 평가 사슬 — 11차시 → 12차시 → 15차시
11차시에서 훈련과 테스트를 가르고, 12차시에서 네 칸(혼동행렬)으로 다시 채점하는 법을 배웁니다. 15차시가 자기가 만든 신경망을 그 넷으로 잽니다.
뒤 차시의 코드 맨 위에
# ───── 8차시에서 가져온 부분 — 고치지 않는다 ───── 라고 적힌 덩어리가 있습니다.
브라우저의 파이썬은 페이지마다 새로 시작하므로,
앞 차시에서 만든 함수가 다음 쪽까지 살아 있지 않거든요. 그래서 매번 다시 싣습니다.
그 덩어리는 앞 차시와 글자 하나까지 같습니다 — 두 쪽을 나란히 놓고 비교해 보세요.
⚠️ 다만 경사 사슬은 다릅니다. 9차시·13차시·14차시는 고리의 모양만 같고
코드는 서로 다릅니다. 퍼셉트론은 계단 함수를, 14차시는 시그모이드를 쓰거든요 —
기울기를 구하는 방법 자체가 다릅니다.
이 단원의 성취기준
여섯 기준에 17차시를 3·3·4·2·2·3으로 나누어 배정했습니다.
인공지능에서 데이터의 중요성을 이해하고, 문제 해결에 필요한 데이터를 선정하여 수집한다.
1~3차시수집한 데이터를 문제 해결에 적합한 형태로 전처리한다.
4~6차시다양한 기계학습 알고리즘의 특성을 이해하고, 문제 해결에 적합한 알고리즘을 선정한다.
7~10차시기계학습을 적용한 모델을 구현하고 성능을 평가한다.
8~9 · 11~12차시인공신경망의 개념과 구조를 이해하고, 딥러닝의 활용 분야를 탐색한다.
13~15 · 17차시딥러닝을 활용하여 실생활 및 다양한 학문 분야의 문제를 해결하고, 성능을 평가한다.
15~17차시12인기02-06이 못박은 동사는 "문제를 해결하고, 성능을 평가한다"입니다.
읽고 이해하는 것으로는 채울 수 없어요. 15차시가 그 동사를 수행하는 자리입니다 —
14차시에서 만든 신경망을 한 글자도 고치지 않고 가져와, 데이터만 실제 문제로 바꾸고,
12차시의 네 칸으로 잽니다. 이 차시를 건너뛰면 단원 전체가 기준을 못 채웁니다.
차시 목록
한 차시는 40분입니다 — 여는 장면 5분 · 개념 12분 · 손으로 15분 · 정리 8분.
규칙을 다 적을 수 있을까 — 스팸 필터를 짜 보고 포기하기
낱말 조각 2,497개를 전부 시험해도 44건 중 43건에서 막힙니다. 100%는 왜 불가능할까요.
02-01✉️ 규칙 편집기🐍 전수 탐색무엇을 맞히고, 무엇으로 맞힐까 — 급식 잔반으로 배우는 문제 정의
「잔반 kg」을 특성에 넣으면 정확도가 100%가 됩니다. 왜 그것이 반칙인지 직접 밟아 봅니다.
02-01🧺 특성 고르기 판🐍 상관계수·기준선데이터가 세상을 닮지 않으면 — 전체 85%가 누구에겐 20%
표집을 바꾸는 1,040가지를 다 해 봐도 격차를 없애면서 성능을 지키는 길은 없습니다.
02-01⚖️ 표집 저울🐍 집단별 정확도빠진 값과 튀는 값 — 키가 1750cm인 학생을 어떻게 할까
버릴까 채울까 둘까. 넷을 다 해 보고 평균과 중앙값이 다르게 흔들리는 것을 봅니다.
02-02📋 데이터 표 편집기🐍 IQR·z 점수센티미터와 걸음 수를 나란히 — 단위를 맞추는 일
정규화 하나로 가장 가까운 이웃이 뒤바뀝니다. 여기서 만든 거리 함수를 8·11·15차시가 씁니다.
02-02📐 정규화 산점도🐍 거리 함수출석 번호로 시험 점수를 맞힐 수 있을까 — 쓸모 있는 특성 고르기
쓸모없는 특성은 그냥 무시되지 않습니다. 훈련만 오르고 테스트가 내려갑니다.
02-02🎛️ 특성 스위치판🐍 상관 순위정답표가 있는가 — 학습을 가르는 하나의 질문
지도·비지도·강화. 상벌만으로 배우는 격자를 직접 돌려 정답표 없이 배우는 것을 봅니다.
02-03🤖 상벌로 배우는 격자🐍 시행착오가까운 것끼리 — 이웃 몇 명에게 물어볼 것인가
k를 키우면 판정 경계가 매끈해집니다. 5차시의 거리 함수를 그대로 받아 k-NN을 완성합니다.
02-03·04🌱 씨앗 판별기🐍 k-NN 구현선을 긋는 법을 스스로 — 손실이 줄어드는 쪽으로
직선이 조금씩 움직여 정답에 닿습니다. 학습률을 크게 하면 발산하는 것도 직접 봅니다.
02-03·04🧭 경사하강 재생기🐍 경사하강법이름표 없이 묶다 — 중심이 스스로 걸어가는 알고리즘
중심을 어디에 찍느냐로 답이 갈립니다. 엉뚱한 답으로 수렴하는 경우를 직접 만들어 봅니다.
02-03🎯 k-평균 재생기🐍 k-평균 구현외운 것인가 이해한 것인가 — 훈련 정확도 100%라는 나쁜 소식
k=1이면 훈련 정확도가 반드시 100%입니다. 자기 자신이 가장 가까운 이웃이니까요.
02-04📉 두 곡선 실험실🐍 훈련/테스트정확도 98%짜리 쓸모없는 모델 — 네 칸으로 다시 채점하기
「전부 아니라고 답하기」가 98%를 받습니다. 정밀도와 재현율이 그것을 잡아냅니다.
02-04🎛 네 칸 판🐍 혼동행렬직선 하나로 나눌 수 있는가 — 가중치를 밀면 경계가 움직인다
AND도 OR도 됩니다. 그런데 XOR은 어떻게 밀어도 안 됩니다. 직접 확인해 보세요.
02-05⚖️ 퍼셉트론 저울🐍 학습 규칙층을 하나 더 — 직선으로 안 되던 것을 넘는 법
층을 하나 얹으면 경계가 굽습니다. 다만 씨앗에 따라 학습이 실패하기도 합니다.
02-05🧠 2층 신경망 학습기🐍 역전파내 데이터로 학습시키고 성능을 잰다 — 만든 것을 처음으로 평가한다
이 단원의 산출물. 14차시 코드를 한 글자도 고치지 않고 진짜 데이터를 먹인 뒤, 12차시의 네 칸으로 잽니다.
02-06·05★ 단원 산출물🎛️ 학습 관제판🐍 학습·평가기계가 본다 — 작은 창을 밀며 무엇을 찾는가
3×3 필터를 손으로 채워 밀어 봅니다. 다만 여기엔 학습이 없습니다 — 그 차이가 오늘의 논점입니다.
02-06🔍 필터 밀기 판🐍 합성곱·풀링기계가 듣고 말한다 — 다음 낱말 맞히기가 만들어 낸 것
두 낱말만 보고 다음을 고릅니다. 잘 되는 자리와 무너지는 자리를 둘 다 봅니다.
02-06·05🗣 다음 낱말 판🐍 바이그램단원 정리 — 열일곱 차시를 한 장의 지도로
개념 지도 · 남긴 숫자 · 서·논술형 자기 점검 · 성취기준 자가 평가 · 3단원으로 넘기는 물음.
02-01 ~ 02-06시작하기 전에
1단원을 마치고 왔다면 준비물은 같습니다.
남의 라이브러리를 쓰지 않습니다
이 단원의 코드에는 numpy도 scikit-learn도 없습니다.
k-NN도 경사하강법도 신경망도 여러분이 읽을 수 있는 파이썬 수십 줄로 되어 있어요.
model.fit() 한 줄보다 이쪽이 원리를 남깁니다.
같은 코드를 여러 번 다시 만납니다
5차시의 거리 함수가 8차시에, 8차시의 k-NN이 11차시에, 14차시의 신경망이 15차시에 글자 하나까지 똑같이 다시 나옵니다. 반복이 아니라 한 번 만든 것을 계속 쓰는 것이 이 단원의 문법입니다.
숫자를 적어 두세요
시뮬레이터를 돌릴 때마다 정확도·손실 같은 값을 공책에 적습니다. 확인 문제 여섯 개 중 둘은 그 표를 보고 답하는 것이라, 적어 두지 않으면 다시 돌려야 합니다.