Chapter 01

인공지능 · 머신러닝 · 딥러닝

1.1 세 가지 개념의 관계

뉴스에서 매일 접하는 "AI", "머신러닝", "딥러닝"이라는 단어. 이 세 개념은 서로 독립적인 것이 아니라 러시아 인형 마트료시카처럼 포함 관계에 있습니다. 가장 큰 바깥쪽 인형이 인공지능(Artificial Intelligence)이고, 그 안에 머신러닝(Machine Learning)이 들어 있으며, 머신러닝 안에 딥러닝(Deep Learning)이 위치합니다.

┌──────────────────────────────────────────────────┐ │ 인공지능 (AI) │ │ "기계가 인간처럼 사고하는 모든 기술" │ │ │ │ ┌──────────────────────────────────────────┐ │ │ │ 머신러닝 (ML) │ │ │ │ "데이터에서 패턴을 스스로 학습" │ │ │ │ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ │ │ 딥러닝 (DL) │ │ │ │ │ │ "심층 신경망으로 학습" │ │ │ │ │ └──────────────────────────────────┘ │ │ │ └──────────────────────────────────────────┘ │ └──────────────────────────────────────────────────┘

1.2 인공지능(AI)이란?

인공지능은 인간의 학습, 추론, 지각, 판단 능력을 컴퓨터로 구현하려는 기술 전체를 아우르는 가장 넓은 개념입니다. 1956년 다트머스 회의에서 존 매카시가 처음 이 용어를 사용했습니다. 초기에는 규칙 기반 시스템(Rule-based System)으로 전문가의 지식을 직접 프로그래밍하는 방식이었습니다. "만약 체온이 38도 이상이면 열이 있다고 판단하라"처럼 사람이 모든 규칙을 일일이 작성해야 했기 때문에 복잡한 현실 문제에 한계가 있었습니다.

1.3 머신러닝(ML)이란?

머신러닝은 명시적으로 규칙을 프로그래밍하지 않고, 데이터로부터 스스로 패턴을 학습하는 기법입니다. 전통적인 프로그래밍이 "입력 + 규칙 → 결과"라면, 머신러닝은 "입력 + 결과 → 규칙"을 추출합니다. 의사결정 트리, 랜덤 포레스트, SVM, k-최근접 이웃 등 다양한 알고리즘이 있으며, 데이터의 특성(Feature)을 사람이 직접 설계해줘야 하는 경우가 많습니다. 예를 들어 고양이 사진을 분류하려면 "귀의 모양", "수염의 길이" 같은 특성을 사람이 정의해야 합니다.

1.4 딥러닝(DL)이란?

딥러닝은 머신러닝의 하위 분야로, 인공 신경망(Artificial Neural Network)을 여러 층으로 깊게(Deep) 쌓아 학습하는 기법입니다. 딥러닝의 가장 혁명적인 점은 특성을 자동으로 추출한다는 것입니다. 고양이 사진을 수만 장 보여주면, 신경망이 스스로 "귀 모양", "눈의 형태", "털의 패턴" 같은 특성을 발견합니다. 사람이 특성을 설계할 필요가 없어졌기 때문에, 이미지·음성·자연어 같은 비정형 데이터에서 압도적인 성능을 보입니다.

구분전통적 프로그래밍머신러닝딥러닝
규칙사람이 직접 작성데이터에서 학습데이터에서 학습
특성(Feature)사람이 정의사람이 설계자동 추출
데이터 양불필요중간대량 필요
컴퓨팅 자원적음중간GPU/TPU 필요
비정형 데이터매우 어려움제한적강력함

1.5 딥러닝이 주목받는 이유

딥러닝 이론 자체는 1980~90년대에 이미 존재했지만, 세 가지 조건이 갖춰지면서 2010년대 이후 폭발적으로 성장했습니다. 첫째는 빅데이터의 폭증입니다. 인터넷, 스마트폰, IoT 기기가 매일 생성하는 데이터가 학습 재료가 되었습니다. 둘째는 GPU(그래픽 처리 장치)의 발전입니다. 원래 게임용으로 설계된 GPU가 대규모 병렬 연산에 적합하여 신경망 학습 시간을 수십 배 단축시켰습니다. 셋째는 알고리즘의 혁신입니다. ReLU 활성화 함수, 드롭아웃, 배치 정규화, 어텐션 메커니즘 등의 기법이 학습을 안정적이고 효율적으로 만들었습니다.

역사적 전환점 — 2012년 ImageNet 이미지 인식 대회에서 제프리 힌턴 교수팀의 딥러닝 모델 AlexNet이 기존 방식의 오류율을 절반 이상 줄이며 압도적 1위를 차지했습니다. 이 사건이 현재의 AI 붐을 촉발한 결정적 계기입니다.
Chapter 02

생물학적 뉴런에서 인공 뉴런으로

2.1 뇌의 신경망 구조

인간의 뇌에는 약 860억 개의 뉴런(신경세포)이 있으며, 각 뉴런은 수천에서 수만 개의 다른 뉴런과 시냅스를 통해 연결되어 있습니다. 뉴런의 동작 원리는 놀라울 정도로 단순합니다. 수상돌기(Dendrite)를 통해 다른 뉴런으로부터 전기 신호를 받아들이고, 이 신호들의 합이 일정 임계값을 넘으면 축삭돌기(Axon)를 통해 다음 뉴런으로 신호를 전달합니다. 신호의 합이 임계값에 못 미치면 신호를 전달하지 않습니다.

[다른 뉴런들] [다음 뉴런] │ ▲ ▼ │ ┌─────────┐ ┌──────────┐ ┌────────┐ │ 수상돌기 │───▶│ 세포체 │───▶│ 축삭돌기│ │(Dendrite)│ │(Cell Body)│ │ (Axon) │ └─────────┘ └──────────┘ └────────┘ 입력 수신 신호 합산 출력 전송 임계값 초과 시 신호 발화!

2.2 인공 뉴런(Artificial Neuron)의 탄생

1943년 워런 매컬러(Warren McCulloch)와 월터 피츠(Walter Pitts)는 생물학적 뉴런의 원리를 수학적으로 모델링한 최초의 인공 뉴런을 제안했습니다. 인공 뉴런은 여러 입력값(x)에 각각의 가중치(w)를 곱한 후 모두 더하고, 편향(b)을 더한 뒤, 활성화 함수(f)를 통과시켜 출력값(y)을 생성합니다.

y = f(w₁x₁ + w₂x₂ + w₃x₃ + ... + wₙxₙ + b)

y = f(Σ wᵢxᵢ + b)

여기서 각 요소의 역할은 다음과 같습니다.

요소생물학적 대응역할
입력(x)수상돌기로 받는 신호데이터 값 (이미지 픽셀, 텍스트 등)
가중치(w)시냅스의 연결 강도각 입력의 중요도. 학습을 통해 조정됨
편향(b)뉴런의 발화 임계값활성화 기준점 조절
합산(Σ)세포체의 신호 합산가중치 × 입력의 총합
활성화 함수(f)임계값 비교 & 발화출력 여부와 크기를 결정
출력(y)축삭돌기의 출력 신호다음 뉴런 또는 최종 결과

2.3 학습이란 "가중치를 찾는 과정"

딥러닝에서 "학습(Training)"이란 결국 최적의 가중치(w)와 편향(b) 값을 찾아가는 과정입니다. 처음에 가중치는 임의의 숫자로 초기화되며, 모델이 예측한 결과와 실제 정답의 차이(오차)를 줄이는 방향으로 가중치를 반복적으로 조정합니다. 이 과정을 수만~수억 번 반복하면 점차 정확한 예측을 하게 됩니다. 학생이 틀린 문제를 다시 풀면서 실력이 늘어가는 것과 비슷합니다.

핵심 요약 — 딥러닝 모델의 "지능"은 코드에 있는 것이 아니라, 학습을 통해 조정된 수백만~수조 개의 가중치 숫자에 담겨 있습니다. 모델 파일의 대부분은 이 가중치 값들의 집합입니다.
Chapter 03

퍼셉트론과 다층 신경망

3.1 퍼셉트론 (Perceptron)

1957년 프랭크 로젠블래트(Frank Rosenblatt)가 발명한 퍼셉트론은 가장 단순한 형태의 인공 신경망입니다. 입력층과 출력층만 있는 단층 구조로, 입력값에 가중치를 곱하여 합산한 뒤 임계값을 넘으면 1(참), 넘지 않으면 0(거짓)을 출력합니다. 퍼셉트론은 AND, OR 같은 간단한 논리 연산을 학습할 수 있었습니다.

그러나 1969년 마빈 민스키(Marvin Minsky)는 저서 "Perceptrons"에서 단층 퍼셉트론이 XOR(배타적 논리합) 문제를 풀 수 없다는 것을 수학적으로 증명했습니다. XOR은 두 입력이 다를 때만 참인 연산으로, 직선 하나로는 참과 거짓을 분리할 수 없는 비선형 문제입니다. 이 한계가 알려지면서 인공 신경망 연구는 1970~80년대 긴 겨울(AI Winter)을 겪게 됩니다.

문제x₁x₂출력단층 퍼셉트론
AND000해결 가능 ✓
010
100
111
XOR000해결 불가 ✗
011
101
110

3.2 다층 퍼셉트론 (MLP: Multi-Layer Perceptron)

XOR 문제의 해결책은 뉴런 층을 여러 개 쌓는 것이었습니다. 입력층(Input Layer)과 출력층(Output Layer) 사이에 은닉층(Hidden Layer)을 추가하면 비선형 문제를 풀 수 있습니다. 이것이 다층 퍼셉트론(MLP)이며, 현대 딥러닝의 기본 구조입니다.

입력층 은닉층 1 은닉층 2 출력층 (x₁)──────(h₁)──────(h₄)──────(y₁) │ ╲ ╱ │ ╲ ╱ │ ╲ ╱ │ ╲ ╱ │ ╲ ╱ │ ╲ ╱ │ ╱ ╲ │ ╱ ╲ │ ╱ ╲ │ ╱ ╲ │ ╱ ╲ │ ╱ ╲ (x₂)──────(h₂)──────(h₅)──────(y₂) │ ╲ ╱ │ ╲ ╱ │ ╲ ╱ │ ╲ ╱ │ ╱ ╲ │ ╱ ╲ │ ╱ ╲ │ ╱ ╲ (x₃)──────(h₃)──────(h₆) 3개 입력 3개 뉴런 3개 뉴런 2개 출력

3.3 "깊다(Deep)"의 의미

딥러닝에서 "딥(Deep)"은 은닉층이 2개 이상으로 깊게 쌓인 신경망을 의미합니다. 은닉층이 많을수록 더 복잡하고 추상적인 특징을 학습할 수 있습니다. 예를 들어 이미지를 인식하는 깊은 신경망에서 초기 층은 엣지(경계선)나 색상 같은 저수준 특징을, 중간 층은 눈·코·입 같은 부분적 형태를, 깊은 층은 "고양이 얼굴" 같은 고수준 개념을 학습합니다.

용어 정리 — "완전 연결 층(Fully Connected Layer)" 또는 "Dense Layer"는 한 층의 모든 뉴런이 다음 층의 모든 뉴런과 연결된 구조를 말합니다. 가장 기본적인 신경망 구조이며, CNN이나 RNN 같은 특수 구조의 기반이 됩니다.

3.4 간단한 신경망 코드 맛보기

Python (PyTorch)
import torch
import torch.nn as nn

# 간단한 3층 신경망 정의
class SimpleNet(nn.Module):
    def __init__(self):
        super().__init__()
        self.layer1 = nn.Linear(784, 256)   # 입력 784 → 은닉 256
        self.layer2 = nn.Linear(256, 128)   # 은닉 256 → 은닉 128
        self.layer3 = nn.Linear(128, 10)    # 은닉 128 → 출력 10
        self.relu = nn.ReLU()

    def forward(self, x):
        x = self.relu(self.layer1(x))
        x = self.relu(self.layer2(x))
        x = self.layer3(x)
        return x

model = SimpleNet()
print(model)
Chapter 04

활성화 함수의 세계

4.1 왜 활성화 함수가 필요한가?

만약 활성화 함수 없이 뉴런을 쌓으면 어떻게 될까요? 가중치를 곱하고 더하는 연산(선형 변환)을 아무리 많이 반복해도 결과는 여전히 선형 변환입니다. 즉 100층을 쌓아도 1층과 수학적으로 동일합니다. 활성화 함수는 신경망에 비선형성(Non-linearity)을 부여하여, 직선으로는 표현할 수 없는 복잡한 패턴을 학습할 수 있게 합니다.

4.2 주요 활성화 함수 비교

Sigmoid (시그모이드)

출력을 0과 1 사이로 압축합니다. "확률"처럼 해석할 수 있어 이진 분류의 출력층에 자주 사용됩니다. 하지만 입력값이 매우 크거나 작으면 기울기가 거의 0에 가까워지는 기울기 소실(Vanishing Gradient) 문제가 발생하여, 은닉층에서는 잘 사용하지 않습니다.

σ(x) = 1 / (1 + e⁻ˣ)    출력 범위: (0, 1)

Tanh (하이퍼볼릭 탄젠트)

출력을 -1과 1 사이로 압축합니다. Sigmoid와 비슷하지만 출력의 중심이 0이어서 학습이 약간 더 안정적입니다. 그러나 역시 기울기 소실 문제가 존재합니다.

tanh(x) = (eˣ - e⁻ˣ) / (eˣ + e⁻ˣ)    출력 범위: (-1, 1)

ReLU (Rectified Linear Unit)

현대 딥러닝에서 가장 많이 사용되는 활성화 함수입니다. 양수는 그대로 통과시키고, 음수는 0으로 만듭니다. 계산이 매우 간단하고 기울기 소실 문제를 크게 완화합니다. 다만 음수 입력에 대해 항상 0을 출력하는 죽은 뉴런(Dying ReLU) 문제가 가끔 발생합니다.

ReLU(x) = max(0, x)    출력 범위: [0, ∞)

Leaky ReLU / PReLU

죽은 뉴런 문제를 해결하기 위해, 음수 영역에서도 작은 기울기(보통 0.01)를 부여합니다. PReLU(Parametric ReLU)는 이 기울기 값도 학습을 통해 자동으로 결정합니다.

LeakyReLU(x) = max(0.01x, x)

Softmax (소프트맥스)

다중 클래스 분류의 출력층에 사용됩니다. 모든 출력값을 0~1 사이의 확률로 변환하며, 합이 1이 됩니다. "개 70%, 고양이 25%, 새 5%" 같은 확률 분포를 만들어냅니다.

4.3 활성화 함수 선택 가이드

위치권장 활성화 함수이유
은닉층 (일반)ReLU빠르고 기울기 소실 완화
은닉층 (고급)Leaky ReLU, GELU, SiLU죽은 뉴런 방지, Transformer에서 GELU 선호
출력층 - 이진 분류Sigmoid0~1 확률 출력
출력층 - 다중 분류Softmax클래스별 확률, 합=1
출력층 - 회귀없음 (Linear)제한 없는 실수 출력 필요
기울기 소실 문제 — Sigmoid와 Tanh는 입력값이 극단적일 때 기울기가 거의 0이 됩니다. 역전파 과정에서 이 작은 기울기가 곱해지면서 깊은 층으로 갈수록 기울기가 소멸되어 학습이 되지 않습니다. 이것이 과거 딥러닝 발전을 막았던 주요 원인이며, ReLU의 등장이 이를 해결했습니다.
Chapter 05

손실 함수와 목표 설정

5.1 손실 함수란?

손실 함수(Loss Function)는 모델의 예측값과 실제 정답 사이의 차이(오차)를 수치로 나타내는 함수입니다. 딥러닝의 학습 목표는 이 손실 함수의 값을 최소화하는 것입니다. 시험 점수에 비유하면, 손실 함수는 "감점"과 같습니다. 감점이 적을수록 모델이 정답에 가까운 예측을 하고 있다는 의미입니다.

5.2 회귀 문제의 손실 함수

연속적인 숫자를 예측하는 회귀(Regression) 문제에서는 주로 다음 손실 함수를 사용합니다.

MSE (Mean Squared Error, 평균 제곱 오차)

예측값과 실제값 차이를 제곱하여 평균을 낸 것입니다. 제곱하기 때문에 큰 오차에 더 큰 패널티를 줍니다. 가장 널리 사용되는 회귀 손실 함수입니다.

MSE = (1/n) × Σ(yᵢ - ŷᵢ)²

MAE (Mean Absolute Error, 평균 절대 오차)

차이의 절대값을 평균낸 것입니다. MSE보다 이상치(Outlier)에 덜 민감합니다.

MAE = (1/n) × Σ|yᵢ - ŷᵢ|

5.3 분류 문제의 손실 함수

Binary Cross-Entropy (이진 교차 엔트로피)

이진 분류(예: 스팸/정상 메일)에서 사용합니다. 모델이 정답에 가까운 확률을 출력할수록 손실이 작고, 정답과 정반대의 확률을 출력하면 손실이 매우 커집니다.

BCE = -(1/n) × Σ[yᵢ·log(ŷᵢ) + (1-yᵢ)·log(1-ŷᵢ)]

Categorical Cross-Entropy (범주형 교차 엔트로피)

다중 클래스 분류(예: 개/고양이/새/물고기)에서 사용합니다. 원-핫 인코딩된 정답 레이블과 Softmax 출력 사이의 교차 엔트로피를 계산합니다.

5.4 손실 함수 선택 가이드

문제 유형손실 함수출력층 활성화예시
회귀 (연속값)MSE / MAELinear (없음)집값 예측, 온도 예측
이진 분류Binary Cross-EntropySigmoid스팸 탐지, 양/음성 판별
다중 클래스 분류Categorical Cross-EntropySoftmax이미지 분류, 감정 분석
손실 함수 직관 — 손실 함수는 산에서 가장 낮은 골짜기를 찾는 문제와 같습니다. 산의 높이가 "손실"이고, 학습 과정은 산 꼭대기에서 시작해 가장 낮은 지점을 향해 조금씩 내려가는 것입니다. 이것이 바로 다음 장에서 배울 "경사하강법"의 핵심 아이디어입니다.
Chapter 06

역전파와 경사하강법

6.1 역전파(Backpropagation)란?

역전파는 신경망의 출력에서 발생한 오차를 입력 방향으로 거슬러 올라가면서, 각 가중치가 오차에 얼마나 기여했는지 계산하는 알고리즘입니다. 1986년 데이비드 루멜하트, 제프리 힌턴, 로널드 윌리엄스가 발표한 논문을 통해 널리 알려졌습니다.

비유를 들어보겠습니다. 요리 대회에서 3명의 셰프(A, B, C)가 순서대로 요리에 참여합니다. A가 재료를 손질하고, B가 조리하고, C가 플레이팅합니다. 심사위원이 "짜다"라고 평가하면, 역전파는 "C의 소금 추가 때문인지, B의 양념 때문인지, A의 재료 선택 때문인지"를 역순으로 추적하여 각자의 책임 비율을 계산하는 과정입니다.

[ 순전파(Forward) ] 입력 ──▶ 은닉층1 ──▶ 은닉층2 ──▶ 출력 ──▶ 손실 계산 [ 역전파(Backward) ] 입력 ◀── 은닉층1 ◀── 은닉층2 ◀── 출력 ◀── 손실의 기울기 ∂L/∂w₁ ∂L/∂w₂ ∂L/∂w₃ 가중치 업데이트 가중치 업데이트 가중치 업데이트

6.2 경사하강법(Gradient Descent)

역전파로 각 가중치의 기울기(Gradient)를 구했다면, 그 기울기의 반대 방향으로 가중치를 조금씩 조정합니다. 이것이 경사하강법입니다. 기울기란 "이 방향으로 가면 손실이 증가한다"는 신호이므로, 반대 방향으로 가면 손실이 줄어듭니다.

가중치 업데이트 공식:
w_new = w_old - η × (∂L/∂w)

η (에타) = 학습률(Learning Rate) ∂L/∂w = 손실 L에 대한 가중치 w의 기울기

6.3 학습률(Learning Rate)의 중요성

학습률(η)은 한 번에 얼마나 크게 가중치를 조정할지 결정하는 하이퍼파라미터입니다. 이것은 딥러닝에서 가장 중요한 하이퍼파라미터 중 하나입니다.

학습률 크기현상비유
너무 큼손실이 줄지 않고 발산 (오히려 증가)산에서 너무 큰 보폭으로 뛰어내려 반대편 산으로 넘어감
적절함손실이 안정적으로 감소하여 최적점에 도달산에서 적당한 보폭으로 골짜기에 도착
너무 작음학습이 매우 느리고, 지역 최솟값에 갇힐 수 있음아주 작은 걸음으로 내려가니 평생 걸려도 바닥에 도착 못함

6.4 경사하강법의 세 가지 변형

배치 경사하강법 (Batch GD)

전체 학습 데이터를 한 번에 사용하여 기울기를 계산합니다. 안정적이지만 데이터가 크면 매우 느리고 메모리를 많이 사용합니다.

확률적 경사하강법 (Stochastic GD, SGD)

데이터 1개씩 사용하여 기울기를 계산합니다. 빠르지만 진동이 심해 불안정합니다.

미니배치 경사하강법 (Mini-batch GD)

데이터를 작은 묶음(보통 32, 64, 128개)으로 나누어 사용합니다. 배치 GD와 SGD의 장점을 결합한 방식으로, 현재 가장 많이 사용되는 표준 방법입니다.

Epoch, Batch, Iteration
Epoch : 전체 학습 데이터를 한 바퀴 다 도는 것. 보통 수십~수백 에폭을 반복합니다.
Batch Size : 한 번에 처리하는 데이터 묶음의 크기. 32, 64, 128 등이 일반적입니다.
Iteration : 1 에폭을 완료하기 위해 필요한 배치 처리 횟수. 데이터 10,000개, 배치 100이면 1 에폭 = 100 이터레이션.
Chapter 07

옵티마이저 총정리

7.1 옵티마이저(Optimizer)란?

옵티마이저는 경사하강법을 발전시킨 알고리즘으로, 가중치를 어떤 전략으로 업데이트할지 결정합니다. 단순한 경사하강법은 학습률이 고정되어 있고, 모든 가중치에 같은 크기로 업데이트합니다. 고급 옵티마이저는 학습률을 자동으로 조절하거나, 이전 기울기 정보를 활용하여 더 빠르고 안정적으로 최적점을 찾습니다.

7.2 주요 옵티마이저 비교

SGD (Stochastic Gradient Descent)

가장 기본적인 옵티마이저입니다. 현재 기울기만을 사용하여 업데이트합니다. Momentum을 추가하면 이전 업데이트 방향의 관성을 반영하여 진동을 줄이고 수렴 속도를 높일 수 있습니다.

Adam (Adaptive Moment Estimation)

현재 가장 널리 사용되는 옵티마이저입니다. Momentum(기울기의 이동 평균)과 RMSprop(기울기 제곱의 이동 평균)을 결합했습니다. 각 가중치마다 학습률을 자동으로 조절하며, 대부분의 경우 좋은 성능을 보입니다. "무엇을 써야 할지 모르겠다면 Adam을 쓰라"는 조언이 있을 정도입니다.

AdamW

Adam에 가중치 감쇠(Weight Decay)를 올바르게 적용한 변형입니다. Transformer 기반 모델(BERT, GPT 등)에서 표준적으로 사용됩니다.

옵티마이저핵심 아이디어장점단점주요 사용처
SGD현재 기울기로 업데이트단순, 일반화 성능 좋음느림, 튜닝 어려움CNN (ImageNet 학습)
SGD+Momentum관성 반영진동 감소, 빠른 수렴학습률 튜닝 필요컴퓨터 비전
RMSprop기울기 크기에 따라 학습률 자동 조절적응적 학습률Adam보다 사용 줄어듦RNN 계열
AdamMomentum + RMSprop빠르고 안정적, 범용일반화 성능이 SGD보다 낮을 수 있음가장 많이 사용
AdamWAdam + 올바른 Weight DecayTransformer에 최적하이퍼파라미터 추가NLP, LLM
실전 팁 — 입문자라면 Adam에 학습률 0.001로 시작하세요. 성능을 더 끌어올리려면 SGD+Momentum에 학습률 스케줄러(Cosine Annealing 등)를 결합하는 방법도 있습니다. Transformer 기반 모델은 AdamW가 표준입니다.
Chapter 08

과적합과 정규화

8.1 과적합(Overfitting)이란?

과적합은 모델이 학습 데이터의 패턴뿐만 아니라 노이즈와 특이점까지 외워버리는 현상입니다. 학습 데이터에 대한 정확도는 매우 높지만, 처음 보는 데이터(테스트 데이터)에 대한 성능은 크게 떨어집니다. 수학 시험에 비유하면, 기출 문제의 답을 통째로 외웠지만 새로운 문제를 풀지 못하는 상태입니다.

반대로 과소적합(Underfitting)은 모델이 학습 데이터의 패턴조차 충분히 학습하지 못한 상태입니다. 학습 데이터와 테스트 데이터 모두에서 성능이 낮습니다.

8.2 과적합을 방지하는 정규화 기법

드롭아웃 (Dropout)

학습할 때마다 무작위로 일부 뉴런(보통 20~50%)을 꺼버립니다. 매번 다른 네트워크 구조로 학습하는 효과가 있어, 특정 뉴런에 과도하게 의존하는 것을 방지합니다. 2014년 힌턴 교수 팀이 제안한 이 간단한 아이디어는 놀라울 정도로 효과적입니다. 예측(추론) 시에는 드롭아웃을 적용하지 않습니다.

배치 정규화 (Batch Normalization)

각 층의 출력을 평균 0, 분산 1로 정규화합니다. 학습을 안정시키고 수렴 속도를 크게 높이며, 과적합 방지에도 도움이 됩니다. 2015년 제안 이후 거의 모든 딥러닝 모델에 기본적으로 포함되는 핵심 기법이 되었습니다.

가중치 감쇠 (Weight Decay / L2 Regularization)

손실 함수에 가중치 크기의 제곱합을 패널티로 추가합니다. 가중치가 지나치게 커지는 것을 방지하여 모델을 단순하게 유지합니다.

조기 종료 (Early Stopping)

검증 데이터의 손실을 모니터링하다가, 더 이상 개선되지 않으면 학습을 멈춥니다. 가장 실용적이고 효과적인 과적합 방지 방법 중 하나입니다.

데이터 증강 (Data Augmentation)

이미지를 회전, 반전, 크롭, 색상 변환 등으로 변형하여 학습 데이터를 인위적으로 늘립니다. 모델이 다양한 변형을 경험하여 일반화 성능이 향상됩니다.

Python (PyTorch)
import torch.nn as nn

# 드롭아웃 + 배치정규화 적용 예시
model = nn.Sequential(
    nn.Linear(784, 512),
    nn.BatchNorm1d(512),        # 배치 정규화
    nn.ReLU(),
    nn.Dropout(0.3),             # 30% 드롭아웃

    nn.Linear(512, 256),
    nn.BatchNorm1d(256),
    nn.ReLU(),
    nn.Dropout(0.3),

    nn.Linear(256, 10)           # 출력층 (드롭아웃 없음)
)
핵심 균형 — 좋은 모델이란 학습 데이터를 잘 맞추면서도 새로운 데이터에 대해 일반화 성능이 높은 모델입니다. 정규화 기법들은 모두 이 "편향-분산 트레이드오프(Bias-Variance Tradeoff)"의 균형을 찾기 위한 도구입니다.
Chapter 09

CNN - 합성곱 신경망

9.1 CNN은 왜 탄생했는가?

28×28 픽셀의 작은 흑백 이미지라도 784개의 입력 뉴런이 필요합니다. 224×224 컬러 이미지라면 150,528개입니다. 이것을 완전연결층(Dense Layer)으로 처리하면 매개변수가 폭발적으로 증가하여 학습이 거의 불가능합니다. 또한 완전연결층은 이미지의 공간적 구조(spatial structure)를 무시합니다. 픽셀 간의 인접 관계가 중요한 이미지에서 이는 치명적입니다.

합성곱 신경망(Convolutional Neural Network, CNN)은 인간의 시각 피질 구조에서 영감을 받아, 이미지의 지역적 패턴을 효율적으로 추출하는 구조입니다. 1989년 얀 르쿤(Yann LeCun)이 손글씨 숫자 인식을 위해 LeNet을 발표하면서 시작되었습니다.

9.2 CNN의 핵심 구성 요소

합성곱 층 (Convolutional Layer)

작은 필터(커널, 보통 3×3 또는 5×5)가 이미지 위를 슬라이딩하면서, 필터와 이미지의 겹치는 부분의 내적(element-wise multiplication + 합)을 계산합니다. 각 필터는 하나의 특정 패턴(수평 엣지, 수직 엣지, 색상 변화 등)을 감지합니다. 여러 개의 필터를 사용하여 다양한 패턴을 동시에 추출합니다. 핵심은 가중치 공유(Weight Sharing)입니다. 같은 필터가 이미지 전체를 순회하므로 매개변수가 극적으로 줄어듭니다.

[입력 이미지 5×5] [필터 3×3] [출력 특성맵 3×3] 1 0 1 0 1 1 0 1 0 1 0 1 0 * 0 1 0 = 4 3 4 1 0 1 0 1 1 0 1 2 4 2 0 1 0 1 0 4 3 4 1 0 1 0 1 필터가 이미지 위를 한 칸씩 이동(stride=1)하며 내적을 계산하여 특성맵(Feature Map) 생성

풀링 층 (Pooling Layer)

특성맵의 공간적 크기를 줄여 계산량을 감소시키고, 위치 변화에 대한 불변성을 부여합니다. 가장 많이 사용되는 Max Pooling은 영역 내 최대값만 남깁니다. 예를 들어 2×2 Max Pooling은 특성맵 크기를 절반으로 줄입니다.

완전연결 층 (Fully Connected Layer)

합성곱·풀링 층에서 추출한 특성을 평탄화(Flatten)하여 1차원 벡터로 만든 후, 완전연결층에서 최종 분류를 수행합니다.

9.3 CNN이 학습하는 것

CNN의 각 층은 점점 더 추상적인 특징을 학습합니다.

층 깊이학습하는 특징비유
초기 층 (1~2층)엣지, 색상, 그래디언트선, 점, 색의 변화
중간 층 (3~5층)텍스처, 패턴, 부분 형태눈, 코, 바퀴, 창문
깊은 층 (6층 이상)객체, 장면, 의미"고양이 얼굴", "자동차", "풍경"

9.4 유명한 CNN 아키텍처 변천사

모델연도층 수핵심 혁신
LeNet-519985CNN의 원조. 손글씨 인식
AlexNet20128GPU 학습, ReLU, Dropout. 딥러닝 시대 개막
VGGNet201416/193×3 필터만 사용한 단순하고 깊은 구조
GoogLeNet201422Inception 모듈 (다양한 크기의 필터 병렬 사용)
ResNet2015152잔차 연결(Skip Connection)로 초깊은 학습 가능
EfficientNet2019가변깊이·너비·해상도를 균형있게 스케일링
ResNet의 혁명 — Skip Connection
층을 깊게 쌓을수록 성능이 좋아지리라 기대하지만, 실제로는 일정 깊이 이상에서 오히려 성능이 떨어집니다(기울기 소실/폭발). ResNet은 입력을 출력에 직접 더하는 "잔차 연결"을 도입하여 이 문제를 해결했습니다. 이 아이디어는 이후 Transformer를 비롯한 거의 모든 딥러닝 아키텍처에 채택되었습니다.
Chapter 10

RNN · LSTM · GRU — 시퀀스 데이터의 처리

10.1 시퀀스 데이터란?

텍스트, 음성, 주가, 날씨, 음악 등 순서가 중요한 데이터를 시퀀스 데이터라 합니다. "나는 학교에 간다"에서 단어의 순서를 바꾸면 의미가 완전히 달라집니다. 일반 신경망(MLP)은 입력의 순서를 고려하지 않기 때문에 시퀀스 데이터를 처리하기 어렵습니다.

10.2 RNN (Recurrent Neural Network)

순환 신경망(RNN)은 이전 시간 단계의 출력을 현재 입력과 함께 사용합니다. 즉, 기억(Memory)을 가집니다. "나는"을 처리한 결과가 "학교에"를 처리할 때 영향을 주고, 그 결과가 다시 "간다"를 처리할 때 영향을 줍니다. 마치 문장을 왼쪽에서 오른쪽으로 읽으면서 맥락을 기억하는 것과 같습니다.

hₜ = f(Wₕhₜ₋₁ + Wₓxₜ + b) ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ h₁ │──▶│ h₂ │──▶│ h₃ │──▶│ h₄ │ └──▲─┘ └──▲─┘ └──▲─┘ └──▲─┘ │ │ │ │ "나는" "학교에" "가는" "길" 시간 t=1 t=2 t=3 t=4 같은 가중치(W)를 매 시간 단계마다 공유

10.3 RNN의 한계 — 장기 의존성 문제

RNN은 이론상 무한한 과거를 기억할 수 있지만, 실제로는 긴 시퀀스에서 초기 정보가 점점 사라집니다(기울기 소실). "어제 서울에서 출발해서... (50단어 후)... 그래서 나는 ___에 도착했다"에서 RNN은 "서울"이라는 정보를 50단어 뒤까지 기억하지 못합니다.

10.4 LSTM (Long Short-Term Memory)

1997년 호크라이터와 슈미트후버가 발명한 LSTM은 RNN의 장기 의존성 문제를 해결한 혁명적 구조입니다. 핵심은 셀 상태(Cell State)라는 정보 고속도로와 세 개의 게이트(Gate)입니다.

게이트역할비유
망각 게이트 (Forget Gate)과거 정보 중 버릴 것을 결정"이전 주제는 이제 중요하지 않다"
입력 게이트 (Input Gate)새 정보 중 기억할 것을 결정"이 새 정보는 기억해두자"
출력 게이트 (Output Gate)기억에서 현재 출력할 것을 결정"지금은 이 기억을 꺼내 쓰자"

10.5 GRU (Gated Recurrent Unit)

2014년 조경현 교수가 제안한 GRU는 LSTM을 단순화한 버전입니다. 게이트를 두 개(리셋, 업데이트)로 줄이고 셀 상태를 제거하여 매개변수가 적고 학습이 빠릅니다. 성능은 LSTM과 대체로 비슷하여, 더 적은 데이터나 빠른 학습이 필요할 때 좋은 선택입니다.

현재 위치 — RNN/LSTM/GRU는 2017년 이전까지 자연어 처리의 표준이었지만, Transformer의 등장 이후 NLP 분야에서는 대부분 대체되었습니다. 다만 시계열 예측, 음성 인식 등 일부 분야와 실시간 스트리밍 처리에서는 여전히 활용됩니다.
Chapter 11

Attention과 Transformer

11.1 어텐션 메커니즘의 탄생

RNN 기반 번역 모델에서 긴 문장을 번역할 때 성능이 크게 떨어지는 문제가 있었습니다. 입력 문장 전체를 하나의 고정된 벡터로 압축하면서 정보가 손실되기 때문입니다. 2014년 바다나우(Bahdanau)는 "디코더가 매 시점마다 입력 문장의 모든 단어를 직접 참조하게 하자"는 아이디어를 제안했습니다. 이것이 어텐션 메커니즘(Attention Mechanism)입니다.

번역할 때 "학교"라는 단어를 생성하려면 입력 문장에서 "school"에 더 많은 주의(Attention)를 기울이고, 다른 단어에는 적은 주의를 기울입니다. 어텐션은 이 "주의 분배"를 학습합니다.

11.2 Transformer — "Attention Is All You Need"

2017년 구글 연구팀은 논문 "Attention Is All You Need"에서 RNN을 완전히 제거하고 어텐션만으로 구성된 새로운 아키텍처 Transformer를 발표했습니다. 이것은 현대 AI 혁명의 가장 핵심적인 순간입니다.

Transformer의 핵심 혁신은 Self-Attention(자기 어텐션)입니다. 문장 내 모든 단어가 다른 모든 단어와의 관계를 동시에 파악합니다. "The cat sat on the mat because it was tired"에서 "it"이 무엇을 가리키는지 이해하려면 문장 내 모든 단어와의 관계를 봐야 합니다. Self-Attention은 이 과정을 한 번에 병렬로 처리합니다.

11.3 Self-Attention의 Q, K, V

Self-Attention은 세 가지 벡터로 작동합니다.

벡터이름역할비유
Q (Query)질문"나는 누구와 관련이 있지?"도서관에서 찾고 싶은 책의 키워드
K (Key)열쇠"나는 이런 내용을 담고 있어"책의 제목/태그
V (Value)"나의 실제 정보는 이것이야"책의 실제 내용

각 단어는 Q, K, V 세 가지 버전의 벡터로 변환됩니다. Q와 K의 내적(dot product)으로 관련도 점수를 계산하고, Softmax로 정규화한 후, 이 가중치로 V를 합산합니다.

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) × V

dₖ = Key 벡터의 차원 (스케일링 팩터)

11.4 Multi-Head Attention

하나의 어텐션 헤드만으로는 단어 간의 다양한 관계를 모두 포착하기 어렵습니다. 문법적 관계, 의미적 관계, 지시 관계 등이 동시에 존재하기 때문입니다. Transformer는 여러 개의 어텐션 헤드를 병렬로 실행하여 각 헤드가 서로 다른 관계에 집중하게 합니다. GPT-3의 경우 96개의 어텐션 헤드를 사용합니다.

11.5 Transformer의 구조

Encoder (인코더) Decoder (디코더) ┌─────────────────────┐ ┌─────────────────────┐ │ Self-Attention │ │ Masked Self-Attention│ │ ↓ │ │ ↓ │ │ Add & Normalize │ │ Add & Normalize │ │ ↓ │ │ ↓ │ │ Feed Forward │ ──▶ │ Cross-Attention │ │ ↓ │ (K,V) │ ↓ │ │ Add & Normalize │ │ Add & Normalize │ └─────────────────────┘ │ ↓ │ × N 층 │ Feed Forward │ │ ↓ │ │ Add & Normalize │ └─────────────────────┘ × N 층 인코더: 입력을 이해 │ 디코더: 출력을 생성

11.6 Transformer가 RNN을 대체한 이유

특성RNN/LSTMTransformer
병렬 처리불가 (순차적)가능 (모든 위치 동시 처리)
장기 의존성LSTM도 한계 있음Self-Attention으로 직접 연결
학습 속도느림GPU 병렬화로 매우 빠름
확장성제한적매개변수를 늘릴수록 성능 향상 (스케일링 법칙)
위치 인코딩(Positional Encoding) — Transformer는 RNN과 달리 순서를 자체적으로 알 수 없습니다. 모든 단어를 동시에 처리하기 때문입니다. 그래서 각 위치(1번째, 2번째, ...)에 대한 고유한 위치 벡터를 입력에 더해줍니다. 사인/코사인 함수를 이용한 절대 위치 인코딩(원래 Transformer)과, 상대적 위치를 학습하는 방식(RoPE 등) 등이 있습니다.
Chapter 12

자연어 처리(NLP)와 대형 언어 모델(LLM)

12.1 NLP의 혁명적 변화

자연어 처리(Natural Language Processing)는 컴퓨터가 인간의 언어를 이해하고 생성하는 분야입니다. Transformer 등장 이전에는 단어를 원-핫 벡터로 표현하고 RNN으로 처리하는 것이 일반적이었습니다. 2013년 Word2Vec이 등장하면서 단어를 의미를 담은 밀집 벡터(Embedding)로 표현하는 혁신이 일어났고, 2017년 Transformer가 등장한 이후 NLP는 완전히 새로운 시대에 돌입했습니다.

12.2 BERT — 양방향 이해

2018년 구글이 발표한 BERT(Bidirectional Encoder Representations from Transformers)는 Transformer의 인코더 부분만 사용합니다. 핵심 아이디어는 마스크 언어 모델(MLM)입니다. 문장에서 일부 단어를 [MASK]로 가리고, 주변 문맥(양방향)을 보고 가려진 단어를 맞추는 방식으로 학습합니다. "나는 [MASK]에 간다"에서 양쪽 문맥을 모두 활용하여 빈칸을 예측합니다.

BERT는 대량의 텍스트로 사전 학습(Pre-training)한 뒤, 특정 작업(감정 분석, 질의응답 등)에 맞게 미세 조정(Fine-tuning)하는 "사전 학습 → 미세 조정" 패러다임을 확립했습니다. 이 접근법은 적은 데이터로도 높은 성능을 달성할 수 있어, NLP의 게임 체인저가 되었습니다.

12.3 GPT 시리즈 — 생성의 시대

OpenAI의 GPT(Generative Pre-trained Transformer)는 Transformer의 디코더 부분만 사용하는 자기 회귀(Autoregressive) 모델입니다. 이전 단어들을 보고 다음 단어를 예측하는 방식으로 학습합니다. "오늘 날씨가" 다음에 올 단어를 확률적으로 생성하고, 이를 반복하여 문장을 만들어냅니다.

모델연도매개변수핵심 변화
GPT-120181.17억Transformer 디코더 기반 생성 모델
GPT-2201915억제로샷 학습 능력, 위험성 우려로 공개 지연
GPT-320201,750억few-shot 학습, 대규모 스케일링 효과 입증
GPT-42023비공개 (추정 수조)멀티모달(텍스트+이미지), 추론 능력 대폭 향상

12.4 스케일링 법칙 (Scaling Law)

2020년 OpenAI는 놀라운 발견을 발표했습니다. 모델 크기, 데이터 양, 연산량을 늘리면 성능이 예측 가능한 멱법칙(Power Law)에 따라 향상된다는 것입니다. 이 "스케일링 법칙"은 "더 크게 만들면 더 좋아진다"는 단순한 원칙으로, 초거대 모델 경쟁의 이론적 근거가 되었습니다.

12.5 RLHF와 인스트럭션 튜닝

GPT-3는 놀라운 텍스트 생성 능력을 보였지만, 유해한 답변을 하거나 사용자의 의도를 정확히 파악하지 못하는 문제가 있었습니다. 이를 해결하기 위해 OpenAI는 RLHF(Reinforcement Learning from Human Feedback)를 도입했습니다. 인간 평가자가 모델의 여러 답변을 비교·평가하고, 이 피드백을 보상 신호로 활용하여 강화학습을 적용합니다. 이 기법이 ChatGPT의 핵심이며, "도움이 되고, 정직하고, 무해한" 답변을 하도록 모델을 정렬(Alignment)하는 과정입니다.

모델 유형 정리
인코더 모델 (BERT 계열) : 문장 이해에 강함. 분류, 개체명 인식, 감정 분석 등에 적합.
디코더 모델 (GPT 계열) : 텍스트 생성에 강함. 문장 작성, 코드 생성, 대화 등에 적합.
인코더-디코더 모델 (T5, BART) : 입력을 이해하고 다른 형태로 출력. 번역, 요약 등에 적합.
Chapter 13

생성형 AI — GAN · VAE · Diffusion Model

13.1 생성 모델이란?

지금까지 본 모델 대부분은 입력 데이터를 분류하거나 값을 예측하는 판별 모델(Discriminative Model)이었습니다. 반면 생성 모델(Generative Model)은 학습 데이터와 비슷한 새로운 데이터를 만들어냅니다. 존재하지 않는 사람의 얼굴 사진, 새로운 음악, 새로운 글 등을 생성합니다.

13.2 GAN (Generative Adversarial Network)

2014년 이안 굿펠로우(Ian Goodfellow)가 제안한 GAN은 두 신경망을 경쟁시키는 독창적인 구조입니다.

생성자(Generator)는 랜덤 노이즈에서 가짜 이미지를 만들고, 판별자(Discriminator)는 진짜 이미지와 가짜 이미지를 구별합니다. 생성자는 판별자를 속이려 하고, 판별자는 속지 않으려 합니다. 이 경쟁(적대적 학습)이 반복되면 생성자는 진짜와 구별할 수 없는 이미지를 만들게 됩니다. 위조범(생성자)과 감별사(판별자)의 대결에 비유할 수 있습니다.

[랜덤 노이즈 z] ──▶ [생성자 G] ──▶ 가짜 이미지 │ ▼ [진짜 이미지] ──────────────────▶ [판별자 D] ──▶ "진짜?" / "가짜?" │ 피드백으로 양쪽 모두 학습

GAN은 놀라운 이미지를 생성하지만, 학습이 매우 불안정하고(모드 붕괴), 원하는 이미지를 제어하기 어렵다는 단점이 있었습니다. StyleGAN은 고해상도 인물 생성, Pix2Pix는 이미지 변환, CycleGAN은 스타일 변환 등의 응용이 유명합니다.

13.3 VAE (Variational Autoencoder)

VAE는 데이터를 잠재 공간(Latent Space)의 확률 분포로 압축(인코딩)한 뒤, 이 분포에서 샘플링하여 새로운 데이터를 복원(디코딩)하는 생성 모델입니다. 인코더는 입력을 평균(μ)과 분산(σ²)으로 구성된 정규분포로 매핑하고, 디코더는 이 분포에서 뽑은 벡터로부터 원래 데이터를 재구성합니다.

GAN보다 학습이 안정적이고 잠재 공간이 연속적이어서 이미지 보간(interpolation)이 자연스럽습니다. 다만 GAN에 비해 생성 이미지가 흐릿한 경향이 있습니다.

13.4 Diffusion Model — 현재의 주인공

확산 모델(Diffusion Model)은 현재 이미지 생성 분야에서 가장 강력한 성능을 보이는 모델입니다. Stable Diffusion, DALL-E, Midjourney 등이 모두 확산 모델 기반입니다.

원리는 놀라울 정도로 직관적입니다. 순방향(Forward) 과정에서 깨끗한 이미지에 조금씩 노이즈(가우시안 노이즈)를 추가하여 결국 완전한 노이즈(백색 소음)로 만듭니다. 그리고 역방향(Reverse) 과정에서 신경망이 노이즈를 조금씩 제거하여 깨끗한 이미지로 복원하는 법을 학습합니다. 학습이 완료되면, 순수한 랜덤 노이즈에서 시작하여 점진적으로 노이즈를 제거해 이미지를 생성합니다.

[순방향: 노이즈 추가] 깨끗한 이미지 → 약간 노이즈 → 더 노이즈 → ... → 완전한 노이즈 [역방향: 노이즈 제거 (학습 대상)] 완전한 노이즈 → 약간 복원 → 더 복원 → ... → 깨끗한 이미지

13.5 생성 모델 비교

특성GANVAEDiffusion
생성 품질매우 높음중간 (약간 흐릿)최고
학습 안정성불안정 (모드 붕괴)안정적매우 안정적
다양성모드 붕괴 위험좋음매우 좋음
생성 속도매우 빠름 (1 패스)빠름느림 (수십~수백 스텝)
제어 가능성어려움잠재 공간 조작텍스트 조건부 생성 강력
대표 모델StyleGANVQ-VAEStable Diffusion, DALL-E
Latent Diffusion Model (LDM) — Stable Diffusion의 핵심 아이디어는 고해상도 이미지 공간이 아닌 압축된 잠재 공간(Latent Space)에서 확산 과정을 수행하는 것입니다. VAE의 인코더로 이미지를 압축하고, 잠재 공간에서 노이즈 제거를 수행한 뒤, VAE 디코더로 복원합니다. 이를 통해 계산 비용을 크게 줄이면서도 높은 품질을 유지합니다.
Chapter 14

전이 학습과 파인튜닝

14.1 전이 학습(Transfer Learning)이란?

사람이 자전거를 탈 줄 알면 오토바이를 더 빠르게 배울 수 있습니다. 이미 학습한 지식을 새로운 문제에 전이(Transfer)하는 것입니다. 딥러닝에서도 동일한 원리가 적용됩니다. 대량의 데이터로 학습된 모델(사전 학습 모델)의 가중치를 가져와서, 적은 데이터의 새로운 작업에 활용하는 것을 전이 학습이라 합니다.

전이 학습이 중요한 이유는 현실적입니다. GPT-4 수준의 모델을 처음부터 학습하려면 수천 개의 GPU와 수백만 달러의 비용이 필요합니다. 대부분의 기업과 연구자는 이런 자원을 갖고 있지 않습니다. 전이 학습은 이미 학습된 지식을 재활용하여 적은 데이터와 비용으로 높은 성능을 달성할 수 있게 해줍니다.

14.2 파인튜닝(Fine-tuning) 방법

풀 파인튜닝 (Full Fine-tuning)

사전 학습된 모델의 모든 가중치를 새로운 작업의 데이터로 추가 학습합니다. 가장 많은 유연성을 제공하지만, 데이터가 적으면 과적합 위험이 있고 학습 비용이 높습니다.

특성 추출 (Feature Extraction)

사전 학습된 모델의 가중치를 동결(Freeze)하고, 마지막 분류 층만 새로 학습합니다. 빠르고 간편하지만 유연성이 제한됩니다.

PEFT (Parameter-Efficient Fine-Tuning)

전체 모델의 극히 일부(1~5%)만 추가로 학습하여 효율적으로 파인튜닝하는 최신 기법군입니다. 대표적으로 LoRA(Low-Rank Adaptation)가 있습니다. LoRA는 원래 가중치 행렬을 고정하고, 저랭크 분해된 작은 행렬만 학습합니다. 수조 개의 매개변수를 가진 LLM도 일반 GPU 하나로 파인튜닝할 수 있게 해주었습니다.

Python (HuggingFace)
from transformers import AutoModelForSequenceClassification, AutoTokenizer
from peft import LoraConfig, get_peft_model

# 사전 학습된 모델 로드
model = AutoModelForSequenceClassification.from_pretrained(
    "bert-base-uncased", num_labels=2
)

# LoRA 설정: 전체 모델의 ~0.5%만 학습
lora_config = LoraConfig(
    r=8,               # 저랭크 차원
    lora_alpha=32,     # 스케일링 계수
    target_modules=["query", "value"],  # 어텐션 레이어
    lora_dropout=0.1,
)

# LoRA 적용
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
# 출력: trainable params: 294,912 | all params: 109,778,434 | 0.27%
실전 선택 가이드
• 데이터가 매우 적다 (수백 건) → 특성 추출 또는 LoRA
• 데이터가 중간 (수천~수만 건) → LoRA 또는 풀 파인튜닝
• 데이터가 풍부하고 원본 도메인과 매우 다르다 → 풀 파인튜닝
• LLM을 커스터마이징하고 싶다 → LoRA / QLoRA (양자화 + LoRA)
Chapter 15

딥러닝 프레임워크

15.1 프레임워크란?

딥러닝 프레임워크는 신경망 설계, 학습, 평가를 위한 도구 모음입니다. 행렬 연산, 자동 미분(Autograd), GPU 가속 등 복잡한 구현을 추상화하여, 연구자와 개발자가 모델 설계에 집중할 수 있게 해줍니다.

15.2 주요 프레임워크 비교

프레임워크개발특징주요 사용처
PyTorchMeta (Facebook)직관적인 Pythonic API, 동적 연산 그래프, 디버깅 용이연구 분야 압도적 1위, 산업계에서도 급성장
TensorFlowGoogle정적 그래프(2.0에서 동적 지원), 배포 생태계 강력대규모 서비스 배포, 모바일(TFLite)
JAXGoogleNumPy 호환, JIT 컴파일, TPU 최적화Google DeepMind 연구, 대규모 학습
KerasGoogle고수준 API, 간결한 코드, 입문자 친화프로토타이핑, 교육, 빠른 실험

15.3 PyTorch vs TensorFlow

2024년 기준 학계에서는 PyTorch가 압도적으로 많이 사용되며, 주요 AI 논문의 80% 이상이 PyTorch로 구현됩니다. TensorFlow는 대규모 배포 환경과 모바일 분야에서 강점이 있으나, 연구 분야에서의 점유율은 계속 감소하고 있습니다. 입문자라면 PyTorch로 시작하는 것을 권장합니다.

15.4 상위 라이브러리 생태계

라이브러리역할설명
HuggingFace Transformers사전 학습 모델 허브수만 개의 NLP/비전/음성 모델을 쉽게 로드·사용
torchvision컴퓨터 비전데이터셋, 모델, 이미지 변환 도구 모음
Lightning (PyTorch Lightning)학습 코드 정리보일러플레이트 코드 제거, 분산 학습 간편화
Weights & Biases (wandb)실험 관리학습 로그, 하이퍼파라미터 추적, 시각화
ONNX모델 변환프레임워크 간 모델 호환 포맷
Python (PyTorch 기본 학습 루프)
import torch
import torch.nn as nn
import torch.optim as optim

# 모델, 손실 함수, 옵티마이저 정의
model = SimpleNet()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 학습 루프
for epoch in range(100):
    for inputs, labels in train_loader:
        # 1. 순전파
        outputs = model(inputs)
        loss = criterion(outputs, labels)

        # 2. 역전파
        optimizer.zero_grad()    # 기울기 초기화
        loss.backward()          # 기울기 계산
        optimizer.step()         # 가중치 업데이트

    print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}")
Chapter 16

데이터 전처리와 증강

16.1 "쓰레기를 넣으면 쓰레기가 나온다"

"Garbage In, Garbage Out"이라는 유명한 격언이 있습니다. 아무리 뛰어난 모델이라도 데이터의 품질이 나쁘면 좋은 결과를 낼 수 없습니다. 실무에서 딥러닝 엔지니어의 시간 중 60~80%는 데이터 수집, 정제, 전처리에 소요된다고 합니다. 데이터 전처리는 지루해 보이지만 모델 성능을 좌우하는 가장 중요한 단계입니다.

16.2 기본 전처리 기법

정규화 (Normalization)

입력 데이터의 범위를 일정하게 맞추는 작업입니다. 이미지의 픽셀값을 0~255에서 0~1로 스케일링하거나, 평균 0·표준편차 1로 표준화합니다. 정규화하지 않으면 큰 값을 가진 특성이 학습을 지배하여 수렴이 느려지거나 불안정해집니다.

원-핫 인코딩 (One-Hot Encoding)

범주형 데이터(예: "개", "고양이", "새")를 [1,0,0], [0,1,0], [0,0,1] 같은 이진 벡터로 변환합니다. 신경망은 숫자만 처리할 수 있기 때문입니다.

토큰화 (Tokenization)

자연어 텍스트를 의미 있는 단위(토큰)로 분할합니다. "딥러닝은 재밌다" → ["딥", "러닝", "은", "재밌", "다"]. 현대 LLM은 BPE(Byte Pair Encoding)나 SentencePiece 같은 서브워드 토크나이저를 사용합니다.

16.3 데이터 증강 (Data Augmentation)

데이터 증강은 기존 데이터를 변형하여 학습 데이터를 인위적으로 늘리는 기법입니다. 적은 데이터로도 모델의 일반화 성능을 크게 향상시킵니다.

분야증강 기법설명
이미지수평/수직 반전이미지 좌우/상하 뒤집기
회전무작위 각도로 회전
크롭 (Crop)이미지의 일부분만 잘라 사용
색상 변형밝기, 대비, 채도, 색조 무작위 변경
Cutout / Mixup이미지 일부를 가리거나 섞어 학습
텍스트동의어 치환단어를 동의어로 교체
역번역영어→한국어→영어로 번역하여 패러프레이즈
무작위 삽입/삭제단어를 무작위로 추가하거나 삭제
음성시간 확장/축소재생 속도 변경
배경 소음 추가다양한 환경 소음을 합성
Python (torchvision 이미지 증강)
from torchvision import transforms

# 학습용 데이터 증강 파이프라인
train_transform = transforms.Compose([
    transforms.RandomResizedCrop(224),        # 무작위 크롭 & 리사이즈
    transforms.RandomHorizontalFlip(),          # 50% 확률로 좌우 반전
    transforms.RandomRotation(15),              # ±15도 무작위 회전
    transforms.ColorJitter(                     # 색상 무작위 변형
        brightness=0.2, contrast=0.2,
        saturation=0.2, hue=0.1
    ),
    transforms.ToTensor(),                      # 텐서 변환 (0~1)
    transforms.Normalize(                       # ImageNet 평균/표준편차
        mean=[0.485, 0.456, 0.406],
        std=[0.229, 0.224, 0.225]
    )
])

# 검증/테스트용 (증강 없이 정규화만)
val_transform = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize(mean=[0.485, 0.456, 0.406],
                         std=[0.229, 0.224, 0.225])
])
Chapter 17

모델 학습 실전 파이프라인

17.1 전체 흐름 한눈에 보기

문제 정의 → ② 데이터 수집 → ③ 데이터 전처리 → ④ 모델 설계 ↓ ⑤ 학습(Training) → ⑥ 검증(Validation) → ⑦ 평가(Test) → ⑧ 배포(Deploy) ↑___________________↓ 하이퍼파라미터 튜닝 반복

17.2 데이터 분할

모든 데이터를 학습에 사용하면 과적합을 감지할 수 없습니다. 데이터를 세 부분으로 나누는 것이 표준입니다.

구분비율용도모델이 볼 수 있는 시점
학습 데이터 (Train)70~80%모델 가중치 학습학습 중 매 배치마다
검증 데이터 (Validation)10~15%하이퍼파라미터 튜닝, 조기 종료 기준학습 중 에폭 끝날 때마다
테스트 데이터 (Test)10~15%최종 성능 평가 (단 한 번만 사용)모든 학습과 튜닝 완료 후

17.3 주요 평가 지표

분류 문제

지표설명사용 상황
정확도 (Accuracy)전체 중 맞힌 비율클래스 균형이 좋을 때
정밀도 (Precision)"양성이라 예측한 것 중" 실제 양성 비율오탐(False Positive)이 치명적일 때 (스팸 필터)
재현율 (Recall)"실제 양성 중" 찾아낸 비율미탐(False Negative)이 치명적일 때 (암 진단)
F1 ScorePrecision과 Recall의 조화 평균정밀도와 재현율을 동시에 고려할 때
AUC-ROC임계값에 무관한 분류 성능전반적 분류 능력 평가

회귀 문제

회귀 문제에서는 MSE, RMSE(Root Mean Squared Error), MAE, R² 등을 사용합니다. RMSE는 MSE에 루트를 씌워 원래 단위로 해석할 수 있게 합니다. R²(결정 계수)는 0~1 사이의 값으로 모델이 데이터 변동의 얼마나 설명하는지를 나타냅니다.

17.4 하이퍼파라미터 튜닝

하이퍼파라미터는 사람이 직접 설정하는 값으로, 학습 과정에서 자동으로 결정되지 않습니다. 대표적으로 학습률, 배치 크기, 에폭 수, 층의 수, 뉴런 수, 드롭아웃 비율 등이 있습니다.

탐색 방법원리장단점
격자 탐색 (Grid Search)모든 조합을 시도확실하지만 조합이 많으면 비현실적
랜덤 탐색 (Random Search)무작위로 조합 시도격자 탐색보다 효율적, 실무에서 많이 사용
베이지안 최적화 (Optuna 등)이전 결과를 참고하여 다음 조합 결정가장 효율적, 라이브러리 활용 권장

17.5 학습률 스케줄러 (Learning Rate Scheduler)

학습률을 고정하지 않고 학습 진행에 따라 동적으로 변경하는 기법입니다. 초반에는 큰 학습률로 빠르게 수렴하고, 후반에는 작은 학습률로 세밀하게 조정합니다.

스케줄러설명사용 상황
StepLR일정 에폭마다 학습률을 일정 비율로 감소가장 단순, 기본적
CosineAnnealing코사인 곡선을 따라 부드럽게 감소CNN, Transformer 학습에 널리 사용
ReduceLROnPlateau검증 손실이 개선되지 않으면 감소적응적, 실전에서 안정적
Warmup + Decay초반에 학습률을 서서히 올린 후 감소Transformer 학습의 표준
Python (학습률 스케줄러 예시)
import torch.optim as optim
from torch.optim.lr_scheduler import CosineAnnealingLR

optimizer = optim.AdamW(model.parameters(), lr=1e-3)
scheduler = CosineAnnealingLR(optimizer, T_max=100, eta_min=1e-6)

for epoch in range(100):
    train_one_epoch(model, train_loader, optimizer)
    val_loss = evaluate(model, val_loader)
    scheduler.step()  # 에폭마다 학습률 갱신
    print(f"Epoch {epoch+1}, LR: {scheduler.get_last_lr()[0]:.6f}")
과적합 감지법 — 학습 손실은 계속 줄어드는데 검증 손실이 늘어나기 시작하면 과적합이 발생한 것입니다. 이 시점에서 학습을 멈추는 것이 "조기 종료(Early Stopping)"이며, 가장 실용적인 정규화 기법 중 하나입니다.
Chapter 18

딥러닝의 응용 분야

18.1 컴퓨터 비전 (Computer Vision)

딥러닝이 가장 먼저 인간 수준을 뛰어넘은 분야입니다. 이미지 분류(ResNet, EfficientNet), 객체 탐지(YOLO, DETR), 시맨틱 세그멘테이션(U-Net, SAM), 얼굴 인식, 자율주행, 의료 이미지 분석 등에 활용됩니다. 자율주행 자동차는 카메라로 촬영한 이미지에서 보행자, 차량, 신호등, 차선 등을 실시간으로 인식합니다. 의료 분야에서는 X-ray, CT, MRI 이미지에서 종양이나 병변을 전문의 수준으로 탐지합니다.

18.2 자연어 처리 (NLP)

기계 번역, 감정 분석, 텍스트 요약, 질의응답, 코드 생성, 대화형 AI 등 광범위한 영역을 다룹니다. ChatGPT, Claude 같은 대화형 AI는 인간과 자연스러운 대화가 가능하며, GitHub Copilot은 프로그래밍 코드를 자동으로 생성합니다. 기계 번역은 이제 많은 언어 쌍에서 사람 번역에 근접한 품질을 보입니다.

18.3 음성 인식 및 합성

Siri, Google Assistant, Alexa 등의 음성 비서는 딥러닝 기반 음성 인식(ASR)으로 구동됩니다. Whisper(OpenAI)는 다국어 음성 인식에서 놀라운 성능을 보입니다. 반대로 텍스트에서 자연스러운 음성을 생성하는 TTS(Text-to-Speech) 기술도 급격히 발전하여, 실제 사람과 구별하기 어려운 수준의 음성 합성이 가능합니다.

18.4 추천 시스템

넷플릭스, 유튜브, 스포티파이, 쿠팡 등에서 사용자의 취향을 분석하여 콘텐츠를 추천합니다. 딥러닝 기반 추천 시스템은 사용자의 행동 패턴, 아이템의 특성, 시간적 맥락 등 복잡한 요소를 종합적으로 고려합니다. Two-Tower 모델, Wide & Deep, DIN(Deep Interest Network) 등 다양한 아키텍처가 실무에서 사용됩니다.

18.5 과학 연구

AlphaFold(DeepMind)는 단백질의 3D 구조를 예측하여 생물학 분야에서 혁명적 변화를 가져왔습니다. 이 모델은 50년간 풀리지 않던 "단백질 접힘 문제"를 사실상 해결하여 2024년 노벨 화학상을 수상했습니다. 약물 설계, 기상 예측, 핵융합 플라즈마 제어, 수학 정리 증명 등 과학 전반에서 딥러닝이 새로운 돌파구를 열고 있습니다.

18.6 창작과 예술

Stable Diffusion, DALL-E, Midjourney는 텍스트 설명으로부터 고품질 이미지를 생성합니다. Suno, Udio 등은 텍스트에서 음악을 생성하고, Sora(OpenAI)는 텍스트에서 비디오를 생성합니다. 이러한 생성형 AI는 창작의 진입 장벽을 크게 낮추는 동시에, 저작권과 예술의 본질에 대한 새로운 논의를 촉발하고 있습니다.

18.7 응용 분야 종합 정리

분야주요 작업핵심 모델/기술
컴퓨터 비전분류, 탐지, 세그멘테이션ResNet, YOLO, Vision Transformer, SAM
자연어 처리번역, 요약, 생성, 대화GPT, BERT, LLaMA, Claude, T5
음성인식, 합성, 화자 분리Whisper, WaveNet, VALL-E
이미지 생성텍스트→이미지, 편집Stable Diffusion, DALL-E, Midjourney
비디오 생성텍스트→비디오Sora, Runway Gen, Kling
로보틱스로봇 제어, 조작강화학습 + 모방학습, RT-2
과학단백질 구조, 약물 설계AlphaFold, DiffDock, GNoME
게임게임 플레이, NPC AIAlphaGo, AlphaStar, DreamerV3
자율주행환경 인식, 경로 계획End-to-End 학습, BEV 인식
금융이상 거래 탐지, 시계열 예측Transformer, GNN
멀티모달 AI의 시대 — 최신 트렌드는 텍스트·이미지·음성·비디오 등 여러 형태의 데이터를 동시에 처리하는 멀티모달(Multimodal) AI입니다. GPT-4는 텍스트와 이미지를 함께 이해하고, Gemini는 텍스트·이미지·오디오·비디오를 통합 처리합니다. 앞으로의 AI는 인간처럼 여러 감각을 종합적으로 활용하는 방향으로 발전하고 있습니다.
Chapter 19

딥러닝의 윤리와 한계

19.1 편향(Bias)과 공정성

딥러닝 모델은 학습 데이터에 존재하는 편향을 그대로 학습하거나 증폭시킬 수 있습니다. 채용 AI가 과거의 편향된 채용 데이터로 학습하면 특정 성별이나 인종에 불리한 결정을 내릴 수 있습니다. 이미지 생성 모델이 특정 직업과 특정 성별·인종을 연결짓는 편향을 보이기도 합니다. AI 시스템을 개발할 때는 데이터의 편향을 인식하고, 공정성 지표를 모니터링하며, 다양한 그룹에 대한 성능을 균등하게 유지해야 합니다.

19.2 설명 가능성(Explainability)

딥러닝 모델은 종종 "블랙박스"로 불립니다. 수백만~수조 개의 매개변수가 어떻게 작동하여 특정 결정에 도달했는지 인간이 이해하기 어렵습니다. 의료 진단이나 법적 판결 같은 고위험 영역에서는 "왜 그런 결정을 내렸는가"를 설명할 수 있어야 합니다. Grad-CAM(이미지에서 모델이 주목한 영역 시각화), SHAP(각 특성의 기여도 분석), LIME(국소적 설명) 등의 설명 가능한 AI(XAI) 기법이 연구되고 있지만, 완전한 해결에는 아직 이르지 못했습니다.

19.3 딥페이크와 악용 위험

생성형 AI의 발전으로 사실적인 가짜 이미지, 비디오, 음성을 쉽게 만들 수 있게 되었습니다. 딥페이크 기술은 허위 정보 유포, 사기, 명예훼손 등에 악용될 수 있습니다. 특히 선거 기간의 가짜 영상이나 지인의 음성을 흉내 낸 보이스 피싱 등이 실제 피해를 발생시키고 있습니다. 이에 대응하여 워터마킹, AI 생성 콘텐츠 탐지, C2PA 같은 출처 인증 표준 등이 개발되고 있습니다.

19.4 환경 비용

대형 모델의 학습에는 막대한 에너지가 소비됩니다. GPT-3의 학습에는 약 1,287 MWh의 전력이 사용된 것으로 추정되며, 이는 미국 가정 약 120가구의 1년 전기 사용량에 해당합니다. GPT-4나 그 이후 모델의 학습 비용은 이보다 훨씬 큽니다. AI 산업의 탄소 발자국을 줄이기 위한 효율적인 모델 설계, 그린 에너지 사용, 모델 경량화(양자화, 지식 증류 등) 등이 중요해지고 있습니다.

19.5 프라이버시와 데이터 주권

딥러닝 모델은 방대한 데이터로 학습되며, 이 데이터에는 개인정보가 포함될 수 있습니다. 학습 데이터를 "기억"하여 개인정보를 노출하는 문제(Memorization), 동의 없이 수집된 데이터로 학습하는 문제, 생성 모델이 특정 개인의 얼굴이나 스타일을 재현하는 문제 등이 있습니다. GDPR(유럽), AI Act(유럽), 개인정보보호법(한국) 등 각국의 규제가 강화되고 있습니다.

19.6 현재의 기술적 한계

딥러닝의 놀라운 성능에도 불구하고 여전히 근본적인 한계가 있습니다.

한계설명현재 대응
환각 (Hallucination)사실이 아닌 정보를 자신 있게 생성RAG(검색 증강 생성), 사실 확인 시스템
인과 추론 부족상관관계는 찾지만 인과관계를 이해하지 못함인과 추론 모델 연구 중
상식 추론 한계인간에게 당연한 물리적·사회적 상식 부족월드 모델, 체화된 AI 연구
분포 외 일반화학습 데이터와 다른 상황에서 예측 불가능한 실패도메인 적응, 강건성 연구
에너지 효율인간 뇌(20W)에 비해 수백만 배 비효율적뉴로모픽 칩, 양자화, 경량 모델
책임감 있는 AI 개발 — 딥러닝 기술을 다루는 모든 사람은 그 영향력을 인식하고, 공정성·투명성·프라이버시·안전성을 핵심 가치로 삼아야 합니다. "기술적으로 할 수 있다"가 "해야 한다"를 의미하지는 않습니다. AI의 혜택을 극대화하면서 위험을 최소화하는 균형 잡힌 접근이 필요합니다.
Chapter 20

학습 로드맵과 부록

20.1 딥러닝 학습 로드맵

단계기간학습 내용이 튜토리얼
Level 0 준비2~4주Python, NumPy, 기초 수학(선형대수, 미적분, 확률통계)사전 지식
Level 1 입문4~6주퍼셉트론, MLP, 활성화 함수, 손실 함수, 역전파, 경사하강법Ch.1 ~ Ch.8
Level 2 핵심6~8주CNN, RNN/LSTM, Transformer, 전이 학습, 프레임워크 숙달Ch.9 ~ Ch.15
Level 3 실전2~3개월데이터 파이프라인, 학습 최적화, 평가 지표, 모델 배포Ch.16 ~ Ch.18
Level 4 심화3~6개월생성 모델(GAN, Diffusion), LLM 파인튜닝, 강화학습, 분산 학습추가 학습
Level 5 전문지속최신 논문 구현, 오픈소스 기여, 자체 연구, 특정 도메인 전문화지속 학습

20.2 필요한 수학 기초

딥러닝을 제대로 이해하기 위해 필요한 수학은 생각보다 범위가 한정적입니다. 다음 세 가지 분야의 기초만 다지면 대부분의 딥러닝 개념을 이해할 수 있습니다.

수학 분야필요한 개념딥러닝에서의 활용
선형대수벡터, 행렬, 행렬 곱셈, 전치, 내적신경망의 모든 연산이 행렬 곱셈
미적분미분, 편미분, 연쇄 법칙(Chain Rule)역전파, 기울기 계산
확률·통계확률 분포, 조건부 확률, 베이즈 정리, 기댓값손실 함수, 생성 모델, 확률적 추론
수학 학습 팁 — 처음부터 수학을 완벽하게 마스터할 필요는 없습니다. 코드를 먼저 실행해보고 결과를 확인한 뒤, "왜 이렇게 작동하는가?"에 대한 궁금증이 생길 때 관련 수학을 공부하는 것이 훨씬 효과적입니다. 3Blue1Brown의 "Essence of Linear Algebra"와 "Essence of Calculus" 유튜브 시리즈를 강력 추천합니다.

20.3 추천 학습 자료

유형자료명특징
무료 강의3Blue1Brown - Neural Networks시각적이고 직관적인 수학 설명, 최고의 입문 영상
무료 강의Andrej Karpathy - Zero to Hero밑바닥부터 GPT 구현, 설명력 최고
무료 강의Stanford CS231n (CNN)컴퓨터 비전 분야 최고의 강의
무료 강의Stanford CS224n (NLP)자연어 처리 분야 표준 강의
무료 강의MIT 6.S191 Introduction to DL매년 업데이트되는 최신 커리큘럼
무료 강의fast.ai Practical Deep Learning실습 중심, 탑다운 방식, 입문자 강추
도서밑바닥부터 시작하는 딥러닝 (사이토 고키)프레임워크 없이 직접 구현, 원리 이해 최적
도서Dive into Deep Learning (d2l.ai)무료 온라인 교과서, PyTorch/TF 코드 포함
도서Deep Learning (Ian Goodfellow 외)"꽃책", 이론 깊이가 뛰어난 교과서
실습Kaggle Competitions실전 데이터로 문제 해결 경험 축적
논문Papers With Code논문 + 코드 + 벤치마크 모음, 트렌드 파악
논문arXiv (arxiv.org)최신 논문 프리프린트 서버

20.4 핵심 용어 사전

용어영문설명
가중치Weight뉴런 간 연결의 강도. 학습의 핵심 대상
편향Bias활성화 함수의 기준점을 조절하는 상수
에폭Epoch전체 학습 데이터를 한 바퀴 도는 것
배치Batch한 번에 처리하는 데이터 묶음
학습률Learning Rate가중치 업데이트 크기를 조절하는 하이퍼파라미터
기울기Gradient손실 함수의 미분값. 가중치 업데이트 방향 결정
순전파Forward Pass입력 → 출력 방향으로 계산하는 과정
역전파Backpropagation출력 → 입력 방향으로 기울기를 전파하는 과정
과적합Overfitting학습 데이터에만 잘 맞고 새 데이터에 일반화되지 않는 상태
드롭아웃Dropout학습 시 무작위로 뉴런을 비활성화하는 정규화 기법
임베딩Embedding이산적 데이터(단어 등)를 연속적 벡터 공간으로 매핑
어텐션Attention입력의 각 부분에 다른 중요도를 부여하는 메커니즘
파인튜닝Fine-tuning사전 학습된 모델을 특정 작업에 맞게 추가 학습
잠재 공간Latent Space데이터의 핵심 특성이 압축된 저차원 표현 공간
환각HallucinationAI가 사실이 아닌 정보를 자신 있게 생성하는 현상
토큰Token모델이 처리하는 텍스트의 기본 단위 (단어, 서브워드)
추론Inference학습된 모델로 새 데이터에 대해 예측하는 과정
텐서Tensor다차원 배열. 딥러닝의 기본 데이터 구조
특성맵Feature MapCNN에서 필터 적용 후 생성되는 출력
풀링Pooling특성맵의 크기를 줄이는 다운샘플링 연산

20.5 딥러닝 역사 타임라인

연도사건의미
1943McCulloch-Pitts 인공 뉴런최초의 인공 뉴런 수학적 모델
1957Rosenblatt의 퍼셉트론최초의 학습 가능한 신경망
1969민스키 "Perceptrons" 저서XOR 문제 지적 → 1차 AI 겨울
1986역전파 알고리즘 대중화다층 신경망 학습 가능해짐
1997LSTM 발표장기 의존성 문제 해결
1998LeCun의 LeNet-5CNN의 원조, 손글씨 인식
2012AlexNet (ImageNet 대회)딥러닝 시대 개막, GPU 학습의 위력 입증
2013Word2Vec단어 임베딩 혁명, 의미 벡터 공간
2014GAN 발표생성 모델의 새로운 패러다임
2014어텐션 메커니즘번역 성능 획기적 향상
2015ResNet (152층)Skip Connection, 초깊은 네트워크 학습 가능
2015Batch Normalization학습 안정화, 거의 모든 모델에 적용
2017"Attention Is All You Need"Transformer 탄생 → 현대 AI의 초석
2018BERT, GPT-1사전 학습 언어 모델 시대 개막
2020GPT-3 (1,750억 매개변수)스케일링 법칙, few-shot 학습 입증
2020Vision Transformer (ViT)Transformer가 비전 분야도 정복 시작
2021AlphaFold2단백질 구조 예측 → 생물학 혁명
2022ChatGPT, Stable DiffusionAI의 대중화 원년, 생성형 AI 폭발
2023GPT-4, LLaMA, Claude멀티모달, 오픈소스 LLM 경쟁 본격화
2024Sora, Gemini, Claude 3, LLaMA 3비디오 생성, 다자간 LLM 경쟁 심화

20.6 자주 묻는 질문 (FAQ)

Q. 딥러닝을 배우려면 수학을 먼저 완벽히 해야 하나요?

아닙니다. 코드를 먼저 실행해보면서 직관을 쌓고, 필요할 때 관련 수학을 공부하는 "탑다운" 방식이 훨씬 효과적입니다. fast.ai의 제레미 하워드도 이 방식을 강력히 권장합니다. 물론 논문을 읽거나 새로운 아키텍처를 설계하려면 결국 수학이 필요하지만, 입문 단계에서 수학에 발목 잡힐 필요는 없습니다.

Q. GPU가 없으면 딥러닝을 할 수 없나요?

작은 모델과 데이터셋으로는 CPU에서도 충분히 학습할 수 있습니다. MNIST 같은 교육용 데이터셋은 CPU에서 몇 분이면 학습됩니다. GPU가 필요해지면 Google Colab(무료 GPU), Kaggle Notebooks(무료 GPU), 또는 클라우드 GPU 서비스를 활용할 수 있습니다.

Q. PyTorch와 TensorFlow 중 뭘 배워야 하나요?

2024년 기준 학계와 산업계 모두에서 PyTorch의 사용률이 압도적으로 높습니다. 최신 논문과 오픈소스 프로젝트의 대부분이 PyTorch로 구현되므로, PyTorch로 시작하는 것을 권장합니다. TensorFlow는 모바일 배포(TFLite)나 기존 시스템 유지보수가 필요할 때 학습하면 됩니다.

Q. 딥러닝 엔지니어가 되려면 어떤 경로가 좋을까요?

Python과 기초 수학을 다진 후, PyTorch로 기본 모델(MLP, CNN)을 직접 구현해보세요. 그 다음 Kaggle 대회에 참가하여 실전 경험을 쌓고, 관심 분야(비전, NLP, 생성형 AI 등)를 정해 깊이 파고들면 됩니다. 포트폴리오를 GitHub에 공개하고, 기술 블로그를 운영하면 취업에 큰 도움이 됩니다.

20.7 마치며

축하합니다! 전 20장의 '딥러닝의 모든 것' 튜토리얼을 모두 마치셨습니다.

딥러닝은 단순한 기술을 넘어 인류의 문제 해결 방식 자체를 바꾸고 있습니다. 과거에는 "사람이 규칙을 설계"했다면, 이제는 "데이터로부터 규칙을 발견"합니다. 이 패러다임의 전환은 과학, 의학, 예술, 일상생활 전반에 걸쳐 혁명적 변화를 만들어내고 있습니다.

이 튜토리얼은 딥러닝의 전체 그림을 조감도처럼 보여주는 것이 목표였습니다. 각 챕터의 주제는 그 자체로 수개월을 공부할 만큼 깊은 분야입니다. 이 튜토리얼을 출발점으로 삼아, 관심 있는 분야를 더 깊이 탐구해 보시기 바랍니다.

딥러닝 학습의 핵심 3원칙

1. 수학을 두려워하지 마세요 — 딥러닝의 수학은 선형대수(행렬 곱셈)와 미적분(미분, 연쇄 법칙)이 핵심입니다. 고등학교 수준의 수학 위에 조금만 쌓으면 됩니다. 수학을 모르고도 모델을 사용할 수는 있지만, 이해하고 개선하려면 수학이 필요합니다.

2. 직접 구현하세요 — 라이브러리 한 줄이면 되는 것을 밑바닥부터 구현해 보면, "왜 이렇게 작동하는지"가 체감됩니다. 역전파를 NumPy로 직접 구현한 사람과 그렇지 않은 사람의 이해 깊이는 완전히 다릅니다. Andrej Karpathy의 "Neural Networks: Zero to Hero" 시리즈가 이 접근법의 최고 교재입니다.

3. 논문을 읽으세요 — 딥러닝은 매주 새로운 돌파구가 나타나는 분야입니다. 블로그 해설로 시작해도 좋지만, 원본 논문을 읽는 습관을 길러야 최전선에 설 수 있습니다. arXiv, Papers With Code가 좋은 출발점입니다. 처음에는 Abstract와 Introduction만 읽는 것부터 시작하세요.

딥러닝의 세계에 오신 것을 환영합니다. 이 튜토리얼이 여러분의 AI 여정에 든든한 첫걸음이 되기를 바랍니다!