README.md

Download
markdown 113 lines 3.4 KB
  1# Deep_Learning 예제
  2
  3Deep_Learning ν΄λ”μ˜ λ ˆμŠ¨μ— ν•΄λ‹Ήν•˜λŠ” μ‹€ν–‰ κ°€λŠ₯ν•œ 예제 μ½”λ“œμž…λ‹ˆλ‹€.
  4
  5## 폴더 ꡬ쑰
  6
  7```
  8examples/
  9β”œβ”€β”€ pytorch/                      # PyTorch κ΅¬ν˜„
 10β”‚   β”œβ”€β”€ 01_tensor_autograd.py     # ν…μ„œ, μžλ™ λ―ΈλΆ„
 11β”‚   β”œβ”€β”€ 02_neural_network.py      # MLP, XOR 문제
 12β”‚   β”œβ”€β”€ 03_backprop.py            # μ—­μ „νŒŒ μ‹œκ°ν™”
 13β”‚   β”œβ”€β”€ 04_training.py            # ν•™μŠ΅ 루프, μ˜΅ν‹°λ§ˆμ΄μ €
 14β”‚   β”œβ”€β”€ 05_cnn_basic.py           # CNN 기초
 15β”‚   β”œβ”€β”€ 06_cnn_advanced.py        # ResNet, VGG
 16β”‚   β”œβ”€β”€ 07_transfer_learning.py   # 전이 ν•™μŠ΅
 17β”‚   β”œβ”€β”€ 08_rnn_basic.py           # RNN
 18β”‚   β”œβ”€β”€ 09_lstm_gru.py            # LSTM, GRU
 19β”‚   β”œβ”€β”€ 10_transformer.py         # Transformer
 20β”‚   └── ...
 21β”‚
 22└── numpy/                        # NumPy 순수 κ΅¬ν˜„
 23    β”œβ”€β”€ 01_tensor_basics.py       # ν…μ„œ, μˆ˜λ™ λ―ΈλΆ„
 24    β”œβ”€β”€ 02_neural_network_scratch.py  # MLP μˆœμ „νŒŒ
 25    β”œβ”€β”€ 03_backprop_scratch.py    # μ—­μ „νŒŒ 직접 κ΅¬ν˜„
 26    β”œβ”€β”€ 04_training_scratch.py    # SGD 직접 κ΅¬ν˜„
 27    └── 05_conv2d_scratch.py      # ν•©μ„±κ³± 직접 κ΅¬ν˜„
 28```
 29
 30## PyTorch vs NumPy κ΅¬ν˜„ 비ꡐ
 31
 32| 레슨 | PyTorch | NumPy | 비ꡐ 포인트 |
 33|------|---------|-------|------------|
 34| 01 | μžλ™ λ―ΈλΆ„ | μˆ˜λ™ λ―ΈλΆ„ | `backward()` vs 직접 계산 |
 35| 02 | `nn.Module` | 클래슀 직접 | μˆœμ „νŒŒ ꡬ쑰 |
 36| 03 | `loss.backward()` | 체인 λ£° κ΅¬ν˜„ | μ—­μ „νŒŒ 원리 |
 37| 04 | `optim.Adam` | SGD 직접 κ΅¬ν˜„ | μ˜΅ν‹°λ§ˆμ΄μ € 원리 |
 38| 05 | `nn.Conv2d` | for 루프 | ν•©μ„±κ³± μ—°μ‚° |
 39| 06+ | PyTorch only | - | λ³΅μž‘λ„λ‘œ 인해 μƒλž΅ |
 40
 41## μ‹€ν–‰ 방법
 42
 43### ν™˜κ²½ μ„€μ •
 44
 45```bash
 46# κ°€μƒν™˜κ²½ 생성
 47python -m venv dl-env
 48source dl-env/bin/activate
 49
 50# PyTorch μ„€μΉ˜ (CUDA 지원)
 51pip install torch torchvision torchaudio
 52
 53# 기타 νŒ¨ν‚€μ§€
 54pip install numpy matplotlib
 55```
 56
 57### μ‹€ν–‰
 58
 59```bash
 60# PyTorch 예제
 61cd Deep_Learning/examples/pytorch
 62python 01_tensor_autograd.py
 63
 64# NumPy 예제
 65cd Deep_Learning/examples/numpy
 66python 01_tensor_basics.py
 67```
 68
 69## ν•™μŠ΅ μˆœμ„œ
 70
 71### 1단계: 기초 (PyTorch + NumPy 비ꡐ)
 72```
 73pytorch/01 ←→ numpy/01  # ν…μ„œ, λ―ΈλΆ„
 74pytorch/02 ←→ numpy/02  # 신경망 μˆœμ „νŒŒ
 75pytorch/03 ←→ numpy/03  # μ—­μ „νŒŒ
 76pytorch/04 ←→ numpy/04  # ν•™μŠ΅
 77```
 78
 79### 2단계: CNN (기초만 NumPy)
 80```
 81pytorch/05 ←→ numpy/05  # CNN 기초 (ν•©μ„±κ³± 이해)
 82pytorch/06              # CNN 심화 (PyTorch only)
 83pytorch/07              # 전이 ν•™μŠ΅ (PyTorch only)
 84```
 85
 86### 3단계: μ‹œν€€μŠ€ λͺ¨λΈ (PyTorch only)
 87```
 88pytorch/08  # RNN
 89pytorch/09  # LSTM, GRU
 90pytorch/10  # Transformer
 91```
 92
 93## NumPy κ΅¬ν˜„μ˜ ν•™μŠ΅ κ°€μΉ˜
 94
 951. **01-02**: ν…μ„œ μ—°μ‚°κ³Ό μˆœμ „νŒŒκ°€ λ‹¨μˆœ ν–‰λ ¬ κ³±μž„μ„ 이해
 962. **03**: μ—­μ „νŒŒκ°€ 체인 룰의 반볡 μ μš©μž„μ„ 이해
 973. **04**: 경사 ν•˜κ°•λ²•μ˜ κ°€μ€‘μΉ˜ μ—…λ°μ΄νŠΈ 원리 이해
 984. **05**: 합성곱이 ν•„ν„°μ˜ μŠ¬λΌμ΄λ”© μœˆλ„μš°μž„μ„ 이해
 99
100## NumPy κ΅¬ν˜„μ΄ μ–΄λ €μš΄ μ‹œμ 
101
102- **CNN 심화**: Skip Connection, Batch Normalization
103- **RNN/LSTM**: μ‹œκ°„ μΆ• μ—­μ „νŒŒ(BPTT), 게이트 ꡬ쑰
104- **Transformer**: Multi-Head Attention, μœ„μΉ˜ 인코딩
105
106β†’ 이 μ‹œμ λΆ€ν„° PyTorch만 μ‚¬μš©ν•˜μ—¬ 싀전에 집쀑
107
108## 참고 자료
109
110- [PyTorch νŠœν† λ¦¬μ–Ό](https://pytorch.org/tutorials/)
111- [CS231n (Stanford CNN)](http://cs231n.stanford.edu/)
112- [3Blue1Brown Neural Networks](https://www.3blue1brown.com/topics/neural-networks)