콘텐츠로 이동
Data Prep
상세

DL 기초 (Deep Learning Fundamentals)

신경망의 기본 구성 요소와 학습 메커니즘. LLM/VLM을 이해하기 위한 핵심 개념.

왜 DL 기초가 필요한가

개념 LLM/VLM 연결
신경망 Transformer는 특수한 형태의 신경망
역전파 모든 딥러닝 학습의 기반
활성화 함수 GELU, SiLU 등 현대적 활성화
최적화 AdamW, 학습률 스케줄링
배치 정규화 Layer Norm, RMSNorm의 기원
가중치 초기화 안정적인 학습의 출발점
정규화 기법 Dropout, Weight Decay

토픽 목록

신경망 기초 (Neural Network Basics)

학습 메커니즘 (Learning Mechanism)

활성화 함수 (Activation Functions)

최적화 (Optimization)

정규화 (Normalization & Regularization)

신경망 발전 역사

1958: Perceptron (단층)
       |
1986: MLP + Backpropagation
       |
1998: CNN (LeNet)
       |
2012: AlexNet (GPU 학습)
       |
2014: GAN, VGG, GoogLeNet, Dropout
       |
2015: ResNet (잔차 연결), Batch Normalization
       |
2017: Transformer (Attention is All You Need)
       |
2018: BERT, GPT
       |
2020+: GPT-3, LLaMA, Gemini, Claude

핵심 수식 요약

개념 수식
선형 변환 \(z = Wx + b\)
ReLU \(f(x) = \max(0, x)\)
GELU \(f(x) = x \cdot \Phi(x)\)
Softmax \(\sigma(z)_i = \frac{e^{z_i}}{\sum_j e^{z_j}}\)
Cross-entropy \(L = -\sum y \log(\hat{y})\)
Chain rule \(\frac{\partial L}{\partial w} = \frac{\partial L}{\partial z} \cdot \frac{\partial z}{\partial w}\)
He Init \(W \sim \mathcal{N}(0, \sqrt{2/n_{in}})\)
Weight Decay \(w \leftarrow (1 - \lambda\eta)w - \eta\nabla L\)

학습 흐름

README diagram 1

PyTorch 기본 구조

import torch
import torch.nn as nn

class SimpleNet(nn.Module):
    def __init__(self, input_dim, hidden_dim, output_dim):
        super().__init__()
        self.fc1 = nn.Linear(input_dim, hidden_dim)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(hidden_dim, output_dim)

    def forward(self, x):
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

# 학습 루프
model = SimpleNet(784, 256, 10)
optimizer = torch.optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)
criterion = nn.CrossEntropyLoss()

for epoch in range(epochs):
    for batch_x, batch_y in dataloader:
        optimizer.zero_grad()          # 기울기 초기화
        output = model(batch_x)        # 순전파
        loss = criterion(output, batch_y)
        loss.backward()                # 역전파
        torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)  # Gradient Clipping
        optimizer.step()               # 파라미터 업데이트

디버깅 빠른 참조

문제 확인 사항 해결책
Loss가 안 줄어듦 학습률, 데이터, 초기화 LR 조정, 데이터 확인
NaN 발생 기울기 폭발, 나눗셈 오류 Gradient Clipping, eps 추가
과적합 Train↓ Val↑ Dropout, Weight Decay, 데이터 증강
기울기 소실 깊은 층 기울기≈0 ReLU, 잔차 연결, 정규화
죽은 뉴런 ReLU 출력이 항상 0 Leaky ReLU, 적절한 초기화

참고 자료

교재 및 강의 - Deep Learning (Goodfellow, Bengio, Courville) - CS231n: CNNs for Visual Recognition - CS224n: NLP with Deep Learning - 3Blue1Brown - Neural Networks

실습 - PyTorch Tutorials - d2l.ai - Dive into Deep Learning

논문 - Attention Is All You Need (Transformer) - Deep Residual Learning (ResNet) - Batch Normalization - Adam Optimizer