학습 경로
먼저 읽을 장 0.2 이 책을 읽는 법
0.2장에서 책의 지도를 읽는 법을 배웠다. 지도는 길이 어떻게 이어져 있는지 보여 주지만, 어느 길로 갈지는 정해 주지 않는다. 같은 지도 위에서도 물리학 박사과정생과 추천 시스템을 만들던 ML 엔지니어는 전혀 다른 길을 간다. 첫째는 이미 미분방정식과 측정 오차를 알지만 데이터 누수와 baseline을 모르고, 둘째는 그 반대다.
이 장은 지도 위에 길을 긋는 법을 다룬다. 먼저 목차 순서와 학습 순서가 왜 다른지 보고, 이 책이 권하는 다섯 단계의 나선형 경로를 정리한 뒤, 독자의 배경과 관심 분야에 따라 경로를 조정한다. 이 장의 실습에서 만드는 3개월 계획은 오리엔테이션 트랙의 졸업 과제 중 하나다.
학습 목표
- 다섯 단계의 나선형 학습 순서를 이해한다
- 자신의 배경에 맞는 경로를 고른다
목차 순서와 학습 순서는 다르다
목차는 지식의 분류, 학습 경로는 훈련의 순서다. 목차는 비슷한 주제를 한곳에 모은다. 그래야 필요할 때 찾을 수 있고, 장과 장 사이의 의존을 관리할 수 있다. 그러나 비슷한 주제를 한꺼번에 배우는 것이 좋은 훈련 순서는 아니다. 선형대수 10개 장(7부)을 연달아 읽으면, 그 내용이 어디에 쓰이는지 모르는 채로 수십 시간을 보내게 된다.
레이어는 '무엇에 기대는가', 단계는 '언제 처음 만나는가'. 이 책에는 순서를 정하는 축이 두 개 있다.
| 축 | 질문 | 정하는 것 |
|---|---|---|
| 레이어 × 트랙 | 깊이 이해하려면 무엇이 먼저 필요한가? | 장의 선수 지식, 책의 부 순서 |
| 단계 | 언제 처음 만나고, 언제 깊이 배우는가? | 개인의 학습 순서, 단계별 산출물 |
두 축을 섞으면 "레이어가 낮은 것을 먼저 다 끝낸다"는 계획이 나온다. 수학(L1)이 딥러닝(L2)보다 아래 레이어이므로 수학을 다 끝내고 딥러닝을 시작한다는 계획이다. 레이어 규칙이 말하는 것은 그런 순서가 아니다. 레이어 규칙은 "딥러닝 장을 깊이 이해하려면 수학 장이 필요하다"는 뜻이지, "수학 장을 다 읽기 전에는 딥러닝 장을 펼치면 안 된다"는 뜻이 아니다.
얕게 먼저, 깊게 나중에. 선수 지식 그래프에서 이 차이가 숫자로 보인다. 집필 시점의 목차 기준으로, 17.5장(학습 루프 해부: forward → loss → backward → update)의 선수 지식을 끝까지 거슬러 올라가면 24개 장이 나온다. 미분, 최적화, 확률, 목적함수 설계, PyTorch 기초가 모두 들어 있다. 반면 1.5장(첫 번째 연구 파이프라인 완주하기)이 기대는 장은 1.3장과 1.1장, 둘뿐이다. 그런데 두 장은 같은 학습 루프를 다룬다. 1.5장은 루프를 한 번 돌려 보는 장이고, 17.5장은 루프를 단계마다 뜯어보는 장이다.
그래서 이 책의 경로는 1단계에서 딥러닝 학습 루프를 먼저 얕게 경험하고, 2단계에서 그 수학을 깊이 배우고, 3단계에서 같은 루프를 신뢰할 수 있는 코드로 다시 만든다. 같은 대상을 점점 깊은 도구로 다시 만나는 이 방식을 나선형 학습이라 한다.
다섯 단계 나선형 경로
이 책이 권하는 경로는 다섯 단계다. 단계마다 목표, 대표 장, 산출물이 있다. 산출물은 31.1장(단계별 종합 프로젝트)의 프로젝트 A–H와 대응한다. 아래 장 목록은 각 단계의 대표 장이고, 공식 필수 목록이 아니다. 자신의 배경에 따라 다음 절에서 빼거나 더한다. 대표 장이 기대는 선수 장이 목록에 없으면(예: 17.5장은 14.3장 목적함수 설계에, 18.1장은 17.1장 신경망의 구성 요소에 기댄다) 장 머리의 "먼저 읽을 장"을 따라 함께 읽는다.
1단계: 작은 연구 파이프라인을 완주한다. 목표는 데이터에서 결과 보고까지 한 번 끝까지 가 보는 것이다. 완벽하게 하는 것이 아니라 끝까지 가는 것이 목표다.
- 연구의 지도: 1.1 AI 연구의 생애주기 · 1.3 문제를 수학적으로 정의하기 · 1.5 첫 번째 연구 파이프라인 완주하기
- 작업대: 2.1 Linux와 셸의 기초 · 2.3 SSH와 원격 접속 · 3.3 Python 환경 관리 · 4.1 Git의 모델과 기본 작업
- 코드: 5.1 Python 언어의 핵심 · 5.3 NumPy·pandas·SciPy
- 데이터와 baseline: 15.1 데이터의 의미와 구조 · 15.3 전처리와 탐색적 분석 · 15.4 데이터 분할과 누수 방지 · 16.1 기준 모델의 철학
- PyTorch 기초: 17.2 PyTorch 텐서와 autograd · 17.3 nn.Module과 모델 구성
- 산출물: 프로젝트 A(회귀·분류 baseline). 같은 분할·같은 metric으로 baseline과 작은 신경망을 비교한 한 쪽짜리 보고서.
1단계에서는 선수 지식을 다 통과하지 않은 장(예: 17.2장은 8.4장 자동미분에 기댄다)에도 들어간다. 이때는 "사용법을 익히는" 수준으로 읽고, 통과 기준 중 할 수 있는 것만 한다. 나머지는 2–3단계에서 돌아와 채운다.
2단계: 구현을 수학·통계로 설명한다. 1단계에서 "왜 이렇게 되는지 모르고 썼던 것"을 수식으로 설명할 수 있게 된다.
- 선형대수: 7.1–7.6(벡터공간부터 SVD·PCA까지)
- 미분: 8.1 다변수 미분 · 8.2 행렬 미분 · 8.4 자동미분과 역전파
- 수치: 9.1 부동소수점과 수치 오차
- 최적화: 10.1 최적화 문제의 구조 · 10.3 1차 최적화 방법 · 10.4 적응적 방법과 학습 레시피
- 확률·통계: 11.1–11.5 · 12.1 추정량의 성질 · 12.2 우도와 최대우도 · 12.3 분포 기반 문제 정의 · 14.1 엔트로피·교차엔트로피·KL
- 연구 질문: 23.1 문헌 탐색과 지식 관리 · 23.2 논문 읽는 법 · 23.4 연구 질문과 가설. 자기 연구 질문의 초안을 여기서 세워 두면 이후 단계에서 무엇을 깊이 배울지 고르는 기준이 된다.
- 산출물: 프로젝트 B(NumPy 기반 작은 신경망). forward, gradient, optimizer를 직접 구현하고 수치미분으로 검증한다.
3단계: 신뢰할 수 있는 연구 코드를 만든다. 목표는 "한 번 돌아간 코드"를 "다른 사람이 같은 숫자를 다시 얻는 코드"로 바꾸는 것이다.
- 코드 구조: 6.1 연구 프로젝트 구조 · 6.3 설정 관리 · 6.4 CLI 설계 · 6.5 로깅과 오류 처리 · 6.6 테스트와 디버깅 · 3.4 의존성과 패키징
- 데이터: 15.5 데이터셋 버전·문서화·라이선스 · 16.6 모델 선택과 평가
- 학습: 17.4 Dataset과 DataLoader · 17.5 학습 루프 해부 · 17.6 평가·추론·체크포인트 · 17.8 학습 모니터링과 대시보드 · 17.9 학습 실패 진단
- 실험과 통계: 22.1 실험 추적과 결과 관리 · 22.2 재현성 · 12.4 구간 추정·가설 검정·부트스트랩 · 12.5 모델 비교의 통계
- 불확실성: 21.1 불확실성 정량화 · 21.2 예측분포와 구간의 평가
- 산출물: 프로젝트 C(PyTorch 연구 템플릿), D(과학 데이터 예측: group·시간 분할, 조건별 평가), E(확률적 예측 모델: 예측분포·calibration).
4단계: 기존 연구를 재현하고 확장한다. 남이 쓴 논문의 숫자를 다시 얻고, 무엇이 그 숫자를 만들었는지 ablation으로 분리한다.
- 아키텍처: 18.1 귀납적 편향과 아키텍처 선택 · 18.2 CNN · 18.3 순환 모델과 상태공간 모델 · 18.4 Attention과 Transformer · 18.5 언어모델과 LLM의 기초
- 논문: 23.3 논문 재현(2단계에서 읽은 23.1–23.2를 실제 논문에 적용한다)
- 실험 규모: 22.3 실험 자동화와 하이퍼파라미터 탐색 · 22.4 Profiling과 학습 효율화
- 과학 머신러닝: 9.6 ODE 수치해법 · 24.1 물리 모델과 학습 문제 · 24.5 하이브리드 모델과 대리모델
- 산출물: 프로젝트 F(논문 재현 보고서), G(같은 과학 문제에서 물리·데이터·하이브리드 모델 비교).
5단계: 독립 연구를 수행한다. 자기 질문을 세우고, 공정하게 비교하고, 다른 사람이 재현할 수 있게 공개한다.
- 연구 질문과 주장: 2단계에서 세운 질문(23.4)을 다듬고 23.5 실험 설계 · 23.6 결과 분석과 주장의 범위 · 23.7 연구 기록과 연구 노트
- 전달: 23.8 논문 작성 · 23.9 Figure와 Table 제작 · 23.10 발표와 학술 소통 · 23.12 연구 윤리와 오픈 사이언스
- 과학과의 접점: 23.13 도메인 과학자와의 협업 · 25.3 능동 학습과 베이지안 실험 설계 · 고른 분야의 부(26–30부)
- 공개: 31.2 오픈소스·데이터·벤치마크로 기여하기 · 31.3 역량 평가와 다음 단계
- 산출물: 프로젝트 H(독립 연구). 가설, 공정한 비교, 논문 초안, 공개 가능한 재현 패키지.
단계는 엄격히 끝나고 다음이 시작되는 것이 아니다. 3단계를 하다가 2단계의 확률 장으로 돌아가는 것은 자연스럽다. 다만 각 단계의 산출물 없이 다음 단계로 넘어가지 않는다. 산출물이 다음 단계의 출발점이기 때문이다. 3단계의 연구 템플릿(프로젝트 C)이 없으면 4단계의 논문 재현을 매번 빈 폴더에서 시작해야 한다.
배경별 경로
다섯 단계는 아무 배경 없이 시작하는 독자를 기준으로 했다. 이미 가진 것이 있다면 그만큼 빼고, 빈 곳에 더한다. 무엇을 이미 가졌는지는 짐작이 아니라 0.4장의 자가 진단으로 확인한다.
AI를 배우는 과학자·공학자. 분야 지식, 실험·시뮬레이션 경험, 수학의 일부를 이미 가졌다. 막히는 곳은 대개 연구 소프트웨어와 ML의 평가 관행이다.
- 먼저: 연구 소프트웨어 공학(5–6부)과 머신러닝 핵심(15–17부). 특히 15.4장(분할과 누수), 16.1장(기준 모델), 16.6장(모델 선택과 평가), 17.9장(학습 실패 진단).
- 건너뛰며: 수리 기초는 익숙한 부분을 건너뛴다. 예를 들어 수치해석을 업으로 해 온 공학자는 9부 대부분을 자가 진단으로 확인만 하고 넘어간다. 다만 ML에서 새로 쓰이는 부분(자동미분 8.4장, 확률적 최적화 10.3–10.4장, 엔트로피와 KL 14.1장)은 익숙한 분야와 이름이 같아도 확인한다.
- 나중에: 자기 분야의 부(26–30부)는 오히려 마지막에 읽는다. 이미 아는 분야를 ML 연구자의 관점에서 보면 평가 기준과 누수 함정이 새롭게 보인다.
과학을 배우는 AI 연구자. ML·딥러닝과 코드는 이미 가졌다. 막히는 곳은 시뮬레이터, 불확실성, 물리 기반 모델, 분야의 데이터와 평가 기준이다.
- 먼저: 수치해석(9부: 9.1, 9.2, 9.6, 9.7), 확률적 추론(12.3장, 13.1장, 13.7장), 신뢰성의 불확실성 장(21.1–21.2장).
- 그다음: 과학 머신러닝(24–25부). 필수인 24.1장, 24.5장, 24.6장, 25.3장부터.
- 마지막으로: 분야 하나를 깊게. 고른 분야의 부를 처음부터 끝까지 읽는다.
- 건너뛰며: 17–18부의 PyTorch와 아키텍처 장은 자가 진단으로 확인만 한다. 단, 18.1장(귀납적 편향)과 18.6장(그래프 신경망)은 과학 모델의 대칭성(24.8장)으로 이어지므로 다시 읽을 가치가 있다.
학부·대학원 입문자. 다섯 단계를 순서대로 따른다. 1단계의 작업대(2–4부)에서 시간이 많이 걸려도 정상이다. 서버와 환경에서 막히는 것은 대부분의 입문자가 처음 겪는 벽이다. 단계마다 산출물을 공개 저장소에 남기면, 그 저장소가 그대로 포트폴리오가 된다.
이미 연구 중인 사람. 다섯 단계를 처음부터 따르지 않는다. 0.4장의 역량 지도에서 가장 낮은 칸을 찾고, 그 칸을 채우는 장만 골라 읽는다. 연구 중인 사람에게 흔히 비어 있는 칸은 실험의 재현성(22.1–22.2장), 모델 비교의 통계(12.5장), 주장의 범위(23.6장)다. 이미 쓰고 있는 코드와 진행 중인 연구가 실습의 재료가 된다.
분야 선택
과학 분야별 응용 트랙은 다섯 분야를 다룬다.
| 부 | 분야 | 분야 기초 장 | 평가와 함정 장 |
|---|---|---|---|
| 26부 | 물리·공학 시뮬레이션 | 26.1 | 26.5 |
| 27부 | 지구·기후 | 27.1 | 27.4 |
| 28부 | 화학·재료 | 28.1 | 28.5 |
| 29부 | 생명과학 | 29.1 | 29.5 |
| 30부 | 에너지·배터리 | 30.1 | 30.3 |
분야별 부는 같은 뼈대를 따른다: ML 연구자를 위한 분야 기초 → 데이터 → 대표 문제와 모델 → 평가와 함정. 그래서 한 분야를 깊게 마치면 다른 분야의 부도 같은 순서로 빠르게 읽을 수 있다. 에너지·배터리(30부)는 다른 분야보다 깊게, 앞의 거의 모든 트랙을 한 분야에 통합하는 사례 연구로 쓰여 있다.
분야를 고르기 전에 공통 방법론을 먼저. 물리 기반·하이브리드 모델, 대리모델, 시스템 식별, 역문제, 실험 설계는 분야를 가리지 않는다. 과학 머신러닝 트랙(24–25부)에서 이 방법을 먼저 익히면, 분야별 부에서는 "이 분야에서는 이 방법이 어떻게 변형되는가"에 집중할 수 있다. 반대로 분야별 부부터 읽으면 분야마다 같은 방법을 다른 이름으로 다시 배우게 된다.
무엇을 기준으로 고르는가. 흥미만으로 고르기보다 다음을 함께 본다.
- 데이터에 접근할 수 있는가. 공개 데이터셋이 있거나, 함께 일하는 연구실이 데이터를 가지고 있는가.
- 함께 검토해 줄 도메인 과학자가 있는가. 분야의 평가 기준과 함정을 알려 줄 사람이 있으면 시행착오가 크게 준다(23.13장).
- 이미 가진 지식과 이어지는가. 화학을 전공했다면 28부, 기상 데이터를 다뤄 왔다면 27부가 출발점이 된다.
기간은 계획 범위, 진도는 산출물
학습 계획에는 기간이 필요하다. 하지만 기간은 계획을 세우는 범위이지 진도의 기준이 아니다. 같은 3개월이라도 주에 몇 시간을 쓰는지, 무엇을 이미 아는지에 따라 도달하는 곳이 전혀 다르다. 아래 표는 학부 고학년 수준의 수학과 약간의 프로그래밍 경험이 있는 독자를 가정한 대략의 범위다.
| 기간(계획 범위) | 단계 | 대표 산출물 |
|---|---|---|
| 1–2개월 | 1단계 | 다른 사람이 같은 명령으로 같은 숫자를 다시 얻는 첫 파이프라인과 한 쪽짜리 보고서(프로젝트 A) |
| 3–6개월 | 2–3단계 | 수치미분으로 검증한 NumPy 신경망(B), 설정·테스트를 갖춘 PyTorch 연구 템플릿(C), group·시간 분할을 지킨 과학 데이터 예측(D) |
| 6–12개월 | 3–4단계 | 예측분포와 calibration 평가(E), 논문 재현 보고서(F), 물리·데이터·하이브리드 비교(G) |
| 12–24개월 | 5단계 | 독립 연구의 논문 초안과 공개 재현 패키지(H) |
진도를 확인할 때는 "몇 개월이 지났는가"가 아니라 "이 단계의 산출물이 있는가"를 묻는다. 계획보다 늦어졌다면 산출물의 범위를 줄이고(예: 데이터셋 하나로), 기간을 늘리지 않고 끝까지 간다. 범위를 줄인 산출물이라도 끝까지 간 것이, 범위가 넓은 미완성보다 다음 단계에 더 쓸모 있다.
실습
자신의 배경과 연구 주제에 맞춰 다음 3개월의 경로를 문서로 작성한다. 0.1장 실습에서 쓴 연구 문단과 막히는 지점 목록을 출발점으로 쓴다.
- 출발 단계를 정한다. 다섯 단계 중 지금 어디서 시작하는지 정하고 이유를 한 줄로 쓴다. 0.4장의 자가 진단을 아직 하지 않았다면 잠정으로 정하고, 진단 후 고친다.
- 배경별 경로를 적용한다. 이 장의 네 가지 배경 중 자신에 가장 가까운 것을 고르고, 그 경로에 따라 건너뛸 장과 먼저 볼 장을 표시한다.
- 주차별 장 목록을 만든다. 12주를 3–4개의 구간으로 나누고, 구간마다 장 목록과 산출물을 적는다.
| 구간 | 주차 | 장 | 산출물 | 확인 방법 |
|---|---|---|---|---|
| (예) 1 | 1–3 | 1.1, 1.3, 2.1, 3.3, 4.1 | 서버에서 돌아가는 환경과 Git 저장소 | 새 셸에서 환경을 다시 만들어 smoke test 통과 |
| (예) 2 | 4–7 | 5.3, 15.1, 15.3, 15.4, 16.1 | 공개 데이터의 baseline 두 개와 분할 비교 | 무작위·그룹 분할 점수 표 |
| (예) 3 | 8–12 | 1.5, 17.2, 17.3 | baseline과 작은 MLP 비교 보고서 | 다른 사람이 같은 명령으로 같은 숫자를 얻음 |
- 산출물마다 확인 방법을 적는다. "이해한다", "익힌다"로 끝나는 항목이 있으면 산출물로 다시 쓴다.
- 분야와 공통 방법론의 순서를 정한다. 3개월 안에 분야별 부까지 가지 않더라도, 어느 분야를 고를지와 그 전에 볼 과학 머신러닝 장을 적어 둔다.
실패 사례
- 기간을 진도의 기준으로 삼는 것. "3개월이 지났으니 2단계는 끝났다"고 판단하면, 산출물 없이 다음 단계로 넘어가 빈칸이 쌓인다. 반대로 "아직 2개월밖에 안 됐으니 다음 단계는 이르다"며 이미 산출물을 낸 단계에 머무는 것도 같은 실수다. 진도는 산출물로 판단한다.
- 경로 없이 흥미 있는 장만 골라 읽는 것. 확산 모델, neural operator, foundation model 같은 장은 흥미롭지만, 그 장들이 기대는 필수 장 없이 읽으면 수식을 따라가기만 하고 직접 구현하지 못한다. 흥미는 경로를 고르는 이유가 될 수 있지만 경로를 대신하지 못한다.
- 모든 배경별 경로를 동시에 따르는 것. 과학자 경로와 AI 연구자 경로의 장을 모두 계획에 넣으면 3개월 계획이 30개 장을 넘는다. 자신에게 가장 가까운 배경 하나를 고르고, 빈칸은 자가 진단으로 더한다.
- 산출물의 범위를 줄이지 않고 기간만 늘리는 것. 계획이 늦어질 때 기간을 계속 늘리면 끝나지 않는 프로젝트가 된다. 범위를 줄여 끝까지 가는 것을 먼저 한다.
통과 기준
- 3개월 경로를 문서로 남긴다. 문서에는 출발 단계와 그 이유, 고른 배경별 경로, 구간별 장 목록·산출물·확인 방법(구간 3개 이상)이 들어 있다.
- 계획의 모든 산출물이 "이해한다"가 아니라 확인 가능한 결과물(코드·표·보고서·통과한 테스트)로 쓰여 있다.
- 스터디 동료나 지도교수에게 계획을 보여 주고 받은 의견과, 그에 따라 고친 점을 문서 끝에 적는다.