스터디·강의로 활용하기

먼저 읽을 장 0.3 학습 경로

혼자 하는 학습은 두 곳에서 잘 무너진다. 하나는 꾸준함이다. 정해진 날짜와 기다리는 사람이 없으면 계획은 쉽게 밀린다. 다른 하나는 검증이다. 자기 설명의 빈틈과 자기 코드의 버그는 자기 눈에 가장 안 보인다. 이 책의 통과 기준 가운데 일부(동료 리뷰, 문서 산출물의 검토)는 처음부터 다른 사람을 전제로 쓰여 있다.

이 장은 이 로드맵을 스터디 그룹이나 강의에서 쓰는 방법, 그리고 혼자 학습할 때 다른 사람의 눈을 빌리는 방법을 정리한다. 참조 등급의 장이므로, 모임을 꾸리거나 강의를 준비할 때 필요한 절을 찾아 읽으면 된다.

학습 목표

  • 이 로드맵으로 스터디 그룹이나 강의를 운영하는 방법을 안다
  • 혼자 학습할 때의 점검 방법을 정한다

네 가지 모임 형식

모임의 형식은 목적에 따라 고른다. 한 가지 형식만 반복하면 그 형식이 확인하지 못하는 역량이 계속 비어 있게 된다.

형식 목적 준비 진행 남는 것
개념 발표 설명(2) 수준을 확인한다 발표자가 장 하나의 핵심 개념을 정리한다 발표자가 자료를 최소한으로 보며 설명하고, 듣는 사람은 "왜"를 묻는다 질문 목록과 답하지 못한 질문
구현 실습 구현(3)·검증(4) 수준을 확인한다 모두가 장의 실습과 연습문제를 미리 시도한다 서로의 코드를 화면에 띄워 비교하고, 테스트가 확인하지 않는 부분을 찾는다 고친 코드와 리뷰 의견
실패 분석 원인을 찾는 능력을 기른다 각자 실패 하나(자기 실험 또는 장의 실패 사례)를 재현 가능한 형태로 가져온다 증상만 보여 주고 다른 사람이 원인을 추측한 뒤, 네 축(이론·구현·연구·운영)으로 분류한다 실패 기록과 진단 절차
논문·분야 적용 확장(5) 수준으로 넘어간다 그 주의 장이 쓰이는 논문이나 분야 사례 하나를 고른다 논문의 주장과 실험을 대응시키고, 장에서 배운 실패 사례가 그 논문에 해당하는지 따진다 한 쪽짜리 요약과 남은 의문

개념 발표에서 피할 것. 슬라이드를 읽는 발표는 발표자에게도 듣는 사람에게도 인지(1) 수준을 넘지 못한다. 좋은 개념 발표는 발표자가 "이 개념이 없으면 무엇이 막히는가"에서 시작하고, 듣는 사람이 수식의 각 기호가 무엇인지 물을 수 있어야 한다. 발표자가 답하지 못한 질문은 실패가 아니라 다음 모임의 재료다.

실패 분석이 특히 쓸모 있는 이유. 실패는 혼자 볼 때보다 여럿이 볼 때 원인이 빨리 좁혀진다. 사람마다 익숙한 축이 다르기 때문이다. 학습 손실이 발산하는 실패를 보고, 수학에 익숙한 사람은 학습률과 곡률을, 엔지니어는 전처리 버그를, 서버를 관리해 본 사람은 라이브러리 버전을 먼저 의심한다. 0.1장에서 본 네 축이 사람 사이에 나뉘어 있는 셈이다.

운영 주기와 역할

역할. 한 번의 모임에는 세 역할이 있다.

  • 발표자: 그 주의 장을 맡아 핵심 개념을 설명하거나 실패를 가져온다.
  • 리뷰어: 발표와 코드를 미리 보고, 빠진 가정·검증되지 않은 주장·테스트가 확인하지 않는 부분을 짚는다. 리뷰어의 목표는 틀린 곳을 찾는 것이 아니라 확인되지 않은 곳을 찾는 것이다.
  • 실습 진행자: 실습과 연습문제를 모임 전에 직접 끝까지 해 보고, 막히는 지점과 환경 문제를 미리 파악해 진행을 돕는다.

역할은 매주 돌아가며 맡는다. 같은 사람이 계속 발표만 하면, 그 사람의 설명 능력만 자라고 나머지 사람은 듣는 사람으로 남는다.

주기. 주간과 격주 중 하나를 고른다.

주기 맞는 경우 주의할 점
주간 모두가 주에 일정 시간을 꾸준히 낼 수 있다. 한 주에 장 하나 실습까지 끝내지 못한 채 모임에 오는 일이 늘기 쉽다. 실습을 미리 끝내지 못했으면 발표를 미루는 규칙을 둔다
격주 직장·연구와 병행한다. 2주에 장 하나 또는 두 개 사이가 길어 흐름이 끊긴다. 중간 주에 짧은 비동기 점검(코드 링크 공유)을 둔다

한 번의 모임은 예를 들어 다음처럼 짠다. 시간 배분은 모임에 맞게 조정한다.

  1. 지난주 통과 기준 점검: 각자 통과한 것과 못 한 것
  2. 그 주의 형식(개념 발표·구현 실습·실패 분석·논문 적용)
  3. 리뷰어의 의견과 토론
  4. 다음 주 역할과 범위 확인

혼자 학습할 때. 함께할 사람이 없어도 다른 사람의 눈을 빌리는 방법이 있다.

  • 학습 노트 공개. 장마다 노트와 실습 코드를 공개 저장소에 올린다. 공개된다는 사실만으로 설명과 코드를 더 꼼꼼히 쓰게 된다. 0.4장의 역량 지도와 성장 기록도 같은 저장소에 둔다.
  • 리뷰 요청. 온라인 커뮤니티나 지인에게 특정 질문을 붙여 리뷰를 요청한다. "봐 주세요"보다 "이 gradient 유도에서 셋째 줄이 맞는지", "이 분할에서 누수가 있는지"처럼 범위를 좁히면 답을 받기 쉽다.
  • 구술 설명. 장 하나를 마치면 자료 없이 5분 동안 핵심을 설명하는 것을 녹음하고 다시 듣는다. 막힌 곳, "그러니까"로 넘어간 곳이 설명(2) 수준의 빈칸이다.
  • 가상의 리뷰어. 자기 코드와 보고서를 다음 날 리뷰어의 역할로 다시 읽는다. 장의 실패 사례를 체크리스트로 쓴다.

점검과 피드백

모임이 발표로만 채워지면, 모두가 들었지만 아무도 확인하지 않은 상태가 된다. 점검은 세 가지를 함께 쓴다.

통과 기준과 퀴즈 결과 공유. 사이트의 내 PC에서 진도를 파일(JSON)로 내보낼 수 있다. 집필 시점의 사이트 기준으로, 장마다 문항별 정답 여부와 시도 횟수, 연습문제 통과 여부, 통과 기준 체크, 직접 고른 장 상태, 복습 목록이 담긴다. 모임 전에 이 파일을 공유하면 누가 어느 장의 어느 목표에서 막혔는지 한눈에 보인다. 다만 이 파일은 증명이 아니라 기록이다. 사이트에는 로그인과 서버 채점이 없고, 퀴즈 정답과 테스트가 공개되어 있다. 진도 파일은 무엇을 이야기할지 정하는 출발점으로 쓰고, 실제 확인은 아래 두 방법으로 한다.

코드 리뷰. 실습 코드를 서로 리뷰할 때는 다음을 확인한다.

  • 새 환경에서 README의 명령만으로 실행되는가?
  • 테스트가 있고, 테스트가 확인하지 않는 경우(빈 입력, 다른 shape, 다른 seed)에도 동작하는가?
  • 배열에 shape 주석이, 물리량에 단위가 있는가?
  • 결과 숫자를 만든 설정과 seed가 기록되어 있는가?
  • 장의 실패 사례에 해당하는 실수가 없는가?

구술 설명. 진도 파일과 코드로는 설명(2) 수준을 확인할 수 없다. 모임에서 무작위로 한 사람을 골라 그 주의 학습 목표 하나를 자료 없이 설명하게 하는 방법이 가장 직접적이다. 미리 누가 될지 모르게 하면 모두가 준비한다.

강의 교재로 쓸 때

트랙·부 단위로 강의 계획 짜기. 강의는 트랙 하나 또는 부 몇 개를 단위로 짜는 것이 좋다. 트랙에는 핵심 질문, 도달 목표, 졸업 과제가 이미 정해져 있어 강의의 목표와 기말 과제로 그대로 쓸 수 있다. 예를 들어 확률·통계적 추론 트랙의 졸업 과제(같은 회귀 문제를 MLE·MAP·베이지안·GP로 풀고 예측분포를 비교한 보고서)는 한 학기 강의의 기말 프로젝트가 된다. 장 머리의 "먼저 읽을 장"으로 수강생에게 필요한 사전 지식을 확인하고, 빠진 선수 장은 첫 주에 자가 진단(0.4장)으로 점검한다.

실습과 퀴즈의 배치. 장의 요소를 강의 흐름에 다음처럼 나눌 수 있다.

요소 강의에서의 자리 이유
본문 중간의 예측 퀴즈 수업 전 또는 수업 시작 예측을 먼저 하게 해 수업에서 확인할 질문을 만든다
위젯·코드 셀 수업 중 시연과 함께 조작 같은 화면에서 수식과 결과를 연결한다
개념 퀴즈 수업 직후 자기 점검 학습 목표별로 빈칸을 확인한다
연습문제 과제 공개 테스트로 즉시 피드백을 받는다
통과 기준의 산출물 평가 대상 문서·코드·구술로 평가한다

연습문제의 테스트와 해답은 공개되어 있으므로, 연습문제 통과 여부를 성적의 근거로 쓰지 않는다. 연습문제는 학습 도구로 쓰고, 성적은 통과 기준의 산출물, 연습문제를 변형한 과제, 구술 설명으로 매긴다.

라이선스와 출처 표기. 이 책의 본문·퀴즈·그림·데이터는 CC BY 4.0, 코드(실습·연습문제·사이트)는 MIT 라이선스다. 강의 자료로 복제·수정·배포할 수 있고 상업적 이용도 허용되지만, CC BY 4.0은 출처를 밝힐 것을 요구한다. 저장소의 LICENSE-CONTENT가 권하는 표기는 다음과 같다.

"AI for Science Roadmap" by pjmbatman and contributors,
https://github.com/pjmbatman/ai-research-roadmap-book, CC BY 4.0

내용을 고쳐서 쓴 경우에는 고쳤다는 사실도 함께 밝힌다. 책 안에 다른 출처의 그림이나 자료가 있으면 그 자료는 원래의 라이선스를 따르므로, 해당 자료에 표시된 출처와 라이선스를 확인한다. 라이선스의 정확한 조건은 저장소의 LICENSE, LICENSE-CONTENT와 Creative Commons의 원문을 기준으로 한다.

로드맵에 돌려주기

이 책은 오픈소스이고, 모임은 책을 개선할 재료를 가장 많이 만드는 곳이다. 여러 사람이 같은 장을 읽으면 오류와 빈틈이 빨리 드러난다.

모임에서 발견한 것 돌려주는 방법
틀린 설명·수식·코드·퀴즈 정답·깨진 링크 저장소에 "내용 오류" 이슈를 연다. 위치(장 번호와 절), 무엇이 틀렸는지, 근거를 적는다
실제로 겪은 실패 장의 실패 사례 절에 pull request로 더한다. 실제로 겪었거나 재현 가능한 것만
오개념을 드러내는 좋은 질문 장의 quiz.toml에 문항으로 제안한다. 학습 목표 하나에 연결하고, 오답마다 왜 틀렸는지 적는다
더 나은 설명이나 예시 해당 절에 pull request를 보낸다
새 분야의 사례 새 분야의 부는 먼저 이슈로 제안한다. 분야별 부의 뼈대(분야 기초 → 데이터 → 대표 문제와 모델 → 평가와 함정)를 따른다

기여 절차는 저장소의 CONTRIBUTING.md에 있다. 요약하면 큰 변경은 이슈로 먼저 제안하고, 변경한 뒤 저장소의 검사를 통과시키고, 한 pull request에는 한 주제만 담는다. 다음은 집필 시점의 검사 명령이다.

# 저장소 루트에서 (집필 시점 예시)
python3 scripts/book.py check

기여한 내용은 저장소와 같은 라이선스로 공개된다. 확인하지 않은 논문·수치를 쓰지 않는다는 원칙도 그대로 적용된다.

실습

한 트랙(또는 한 부)을 6–10주 스터디 계획표로 만든다. 계획표에는 주차별 장, 형식, 실습, 역할이 들어간다. 다음은 세 사람(A, B, C)이 7부(선형대수와 기하)의 필수 장을 8주 동안 하는 예다.

주차 장 형식 실습 발표자 리뷰어 실습 진행자
1 7.1 벡터공간과 선형사상 개념 발표 장의 실습 A B C
2 7.2 아핀 구조와 비선형성 구현 실습 연습문제 fold-affine-layers, relu-breakpoints B C A
3 7.3 행렬의 네 부분공간과 rank 개념 발표 장의 실습 C A B
4 7.4 내적·노름·직교성·사영 구현 실습 장의 실습 A B C
5 7.5 고윳값과 대칭행렬 실패 분석 각자 고윳값 계산에서 겪은 실패 하나 B C A
6 7.6 SVD·PCA·저랭크 근사 구현 실습 장의 실습 C A B
7 7.7 텐서와 einsum 실패 분석 shape 버그 하나씩 가져오기 A B C
8 정리 논문·분야 적용 7부 내용이 핵심인 논문 하나 요약 전원 전원 —

계획표를 만든 뒤 다음을 정한다.

  1. 점검 방식. 매 모임 전 진도 파일 공유, 코드 리뷰 체크리스트, 구술 설명 중 무엇을 쓸지.
  2. 통과 기준을 못 채웠을 때의 규칙. 예: 실습을 끝내지 못한 사람은 그 주 발표를 다음 주로 미룬다.
  3. 돌려주기. 모임에서 발견한 오류와 실패 사례를 누가, 언제 이슈로 정리할지.

혼자 학습한다면 역할 열 대신 "공개할 노트", "리뷰를 요청할 질문", "구술 설명 녹음" 열을 둔다.

실패 사례

  • 발표만 하고 실습·검증이 없는 스터디. 매주 한 사람이 발표하고 나머지가 듣는 모임은 몇 주가 지나도 아무도 구현(3) 수준에 이르지 못한다. 발표 주 사이에 구현 실습과 실패 분석을 끼워 넣고, 실습을 끝내지 않은 사람은 발표하지 않는 규칙을 둔다.
  • 진도를 장 수로만 세는 것. "이번 달에 장 여섯 개를 했다"는 기록은 통과 기준을 몇 개 만족했는지 말해 주지 않는다. 진도는 통과 기준의 산출물과 역량 지도의 칸 변화로 센다.
  • 진도 파일이나 연습문제 통과를 실력의 증명으로 쓰는 것. 답과 테스트가 공개된 상태에서 이것들은 학습 기록일 뿐이다. 구술 설명과 코드 리뷰를 함께 쓴다.
  • 출처 없이 강의 자료로 쓰는 것. CC BY 4.0은 자유로운 재사용을 허용하지만 출처 표기를 조건으로 한다. 슬라이드에 그림을 가져올 때마다 출처를 붙인다.

통과 기준

  • 6–10주 스터디 계획표 또는 개인 학습 계획표를 문서로 만든다. 주차별 장·형식·실습·역할(혼자라면 공개할 노트·리뷰 질문)이 들어 있다.
  • 계획표에 점검 방식(진도 파일·코드 리뷰·구술 설명 중 최소 두 가지)과 통과 기준을 못 채웠을 때의 규칙을 적는다.