ai-whys
License: Apache 2.0
PRs Welcome
체계적인 AI 학습 로드맵: 39개 실험, 17개 노트를 통해 선형 회귀부터 BERT까지, Q-learning부터 PPO까지, 모든 알고리즘을 처음부터 구현하고 각 '왜(why)'를 명확히 설명합니다.
저자: 저우 하오양 (Shanghai Jiao Tong University AI College 박사 과정) · 교류 환영: [email protected] · PR 제출, Issue 제기도 환영합니다.
架构图
39개 실험
총 39개의 실험이 있으며, 번호는 두 개의 노트에 명시된 실험 선언과 일치합니다(dl.md 실험 1–33 및 39, rl.md 실험 34–38). 각 실험은 세 가지 요소로 구성되어 있습니다: 수학적 유도 노트 (dl.md / rl.md), Excalidraw 삽화 (pics/), 실행 가능한 코드 (code/) — 아래 목록에서 각 실험별로 노트 원문과 코드의 바로가기 링크를 제공합니다:
기초
- 선형 회귀 (MBGD) — 노트 / 처음부터 직접 작성 / PyTorch 구현
- Softmax 회귀 (MBGD) — 노트 / 처음부터 직접 작성 / PyTorch 구현
- Dropout — 노트 / 코드
컨볼루션 네트워크 (Convolutional Network)
- 교차 상관(Cross-correlation) — 노트 / 코드
- 패딩과 스트라이드 — 노트 / 코드
- 1×1 컨볼루션 (완전 연결층(Fully Connected Layer) 등가 검증) — 노트 / 코드
- 다중 입력/출력 채널 — 노트 / 코드
- 풀링 레이어(Pooling Layer) — 노트 / 코드
- LeNet — 노트 / 코드
- AlexNet — 노트 / 코드
- VGG — 노트 / 코드
- NiN — 노트 / 코드
- GoogLeNet — 노트 / 코드
정규화와 병렬 처리 (Normalization and Parallelization)
- 배치 정규화 (Batch Normalization) — [노트](dl.md#실험14batch-normalization의 구체적 구현) / 처음부터 손으로 작성 / PyTorch 구현
- ResNet — [노트](dl.md#실험15resnet의 구체적 구현) / 코드
- 다중 GPU 데이터 병렬화 (Multi-GPU Data Parallel) — [노트](dl.md#실험16데이터 병렬화의 구체적 구현) / 처음부터 손으로 작성 / PyTorch 구현
자연어 처리 (Natural Language Processing)
- 순차 모델 (Sequence Model) — [노트](dl.md#실험17순차 모델의 구체적 구현) / 코드
- 텍스트 전처리 (Text Preprocessing) — [노트](dl.md#실험18텍스트 전처리의 구체적 구현) / 코드
- 지프프의 법칙 검증 (Zipf's Law Verification) — [노트](dl.md#실험19지프프의 법칙 검증) / 코드
- 텍스트 순차 데이터 준비 (Text Sequence Data Preparation) — [노트](dl.md#실험20텍스트 순차 데이터의 준비) / 코드
- RNN — [노트](dl.md#실험21rnn의 구체적 구현) / 처음부터 손으로 작성 / PyTorch 구현
- GRU — [노트](dl.md#실험22gru의 구체적 구현) / 처음부터 손으로 작성 / PyTorch 구현
- LSTM — [노트](dl.md#실험23lstm의 구체적 구현) / 코드
- 심층 순환 신경망 (Deep Recurrent Neural Network) — [노트](dl.md#실험24깊은 순환 신경망의 구체적 구현) / 코드
- 양방향 LSTM 오용 사례 (Misuse Case of Bidirectional LSTM) — [노트](dl.md#실험25bidirectional_lstm의 잘못된 사용 사례) / 코드
- 기계 번역 데이터셋 (Machine Translation Dataset) — [노트](dl.md#실험26기계 번역 데이터셋 로드) / 코드
- 인코더-디코더 아키텍처 (Encoder-Decoder Architecture) — [노트](dl.md#실험27인코더-디코더 아키텍처의 인터페이스) / 코드
- seq2seq — [노트](dl.md#실험28seq2seq 구현) / 코드
- 비매개변수 어텐션 (Nadaraya-Watson) — [노트](dl.md#실험29비매개변수 어텐션 메커니즘의 구현) / 코드
- 두 가지 어텐션 점수 함수 (Two Attention Score Functions) — [노트](dl.md#실험30두 가지 attention-score-function의 구현) / 코드
- Bahdanau 어텐션 seq2seq — [노트](dl.md#실험31어텐션 메커니즘을 seq2seq에 적용) / 코드
- 다중 헤드 어텐션 (Multi-Head Attention) — [노트](dl.md#실험32다중 헤드 어텐션의 구현) / 코드
Transformer — [노트](dl.md#실험33transformer의 구현) / 코드**
39. BERT (MLM + NSP 사전 학습) — [노트](dl.md#실험39bert-pretraining-phase의 구현) / 코드 / 데이터 파이프라인 / 사전 학습 루프
강화 학습 (Reinforcement Learning)
- Q-learning — [노트](rl.md#실험34q-learning의 구현) / 코드
- DQN — [노트](rl.md#실험35dqn-의 구현) / 코드
- REINFORCE — [노트](rl.md#실험36reinforce-의 구현) / 코드
- Actor-Critic — [노트](rl.md#실험37actor-critic-의 구현) / 코드
- PPO (gymnasium 최신 API로 마이그레이션됨) — [노트](rl.md#실험38ppo-의 구현) / 코드
이 프로젝트는 누구에게 적합한가
- AI를 체계적으로 배우고 싶지만 어디서부터 시작해야 할지 모르는 학부생 — 복잡하게 이론을 미리 공부할 필요 없이, 실험 1 → 39 순서대로 따라가기만 하면 심층 학습(Deep Learning)과 강화 학습(Reinforcement Learning) 입문 과정이 완성됩니다.
- 곧 대학원에 진학하는 학생 — 이것을 입학 전 자가 점검 목록으로 활용하세요. 각 실험 뒤에 숨겨진
저장소 작성자(仓库作者)가 입문부터 상하이교통대학교 AI 학원 직박사 과정까지 거치는 경로가 바로 이 로드맵입니다. 이것은 꾸며낸 개요가 아니라, 한 단계씩 밟아온 발자국입니다. 만약 이것이 당신의 '왜?'라는 질문을 풀어주는 데 도움이 되었다면, Star를 눌러 응원해 주세요.
기타 자료 (其他材料)
- dl.md: 심층 학습(深度学习) 노트로, 17개 장으로 구성되어 있으며, 『실습 중심의 심층 학습』과 연계됩니다. 선형 회귀 → CNN/ResNet → RNN/GRU/LSTM → 어텐션/Transformer/BERT까지 다룹니다.
- rl.md: 강화 학습(强化学习) 노트로, 『실습 중심의 강화 학습』과 연계되며 (현재 지속 업데이트 중입니다).
- dl_and_rl.svg / dl_and_rl.excalidraw: 학문 전반의 구조도입니다. SVG 벡터 버전과 Excalidraw 편집 가능 원본 파일이 제공됩니다. 이를 통해 DL과 RL 지식이 어떻게 하나의 흐름으로 연결되는지 확인할 수 있습니다 (
pics/arch.png는 동일한 그림의 PNG 추출물입니다).
- pics/: 30장의 오리지널 삽화 (Excalidraw로 제작)
실행 환경 (运行环境)
- Python 3.14를 사용하며, 가상 환경 관리는 uv 사용을 권장합니다.
- 의존성 설치:
uv pip install -r requirements.txt
- 심층 학습 부분은 PyTorch에 의존하며; 강화 학습 부분은 gymnasium 최신 버전 API로 마이그레이션되었습니다.
- 주의:
d2l 패키지는 torch/numpy에 대해 비교적 엄격한 버전 고정(version pin)을 요구합니다. 만약 이미 설치된 PyTorch와 충돌한다면, uv pip install d2l --no-deps 명령어로 개별 설치를 사용하세요.
라이선스 및 감사 (许可证与致谢)
본 프로젝트는 Apache License 2.0으로 오픈소스를 채택했으며, 자세한 내용은 NOTICE를 참고하십시오.
코드는 전적으로 오리지널이 아니며, 다음과 같이 감사를 표합니다:
노트(dl.md / rl.md)와 삽화(pics/)는 본 프로젝트의 오리지널 콘텐츠입니다.
본 프로젝트는 독립적인 학습 프로젝트이며, 상기 서적의 저자나 출판사와 어떠한 제휴 또는 보증 관계도 없습니다.