딥러닝·AI 심화 — 1강: 신경망의 구조와 학습 원리
딥러닝(Deep Learning)이란?
AI 계층 구조:
인공지능 (AI)
└ 머신러닝 (ML)
└ 딥러닝 (DL)
딥러닝의 정의:
→ 여러 층(Layer)의 신경망으로 데이터에서 패턴을 학습하는 방법
→ 인간이 직접 특징(Feature)을 설계하지 않아도 됨 (자동 특징 추출)
딥러닝이 강한 분야:
→ 이미지 인식 (CNN)
→ 자연어 처리 (Transformer, BERT, GPT)
→ 음성 인식
→ 강화학습 (게임, 로봇)
딥러닝 발전의 3가지 요인:
→ 빅데이터 (데이터 폭발적 증가)
→ GPU (병렬 행렬 연산 가속)
→ 알고리즘 발전 (ReLU, Dropout, BatchNorm)
퍼셉트론 (Perceptron)
퍼셉트론의 정의 (Rosenblatt, 1958):
→ 가장 단순한 인공 신경세포 모델
구조:
입력 x₁, x₂, ..., xₙ
→ 각 입력에 가중치 w₁, w₂, ..., wₙ 곱
→ 편향(Bias) b 더하기
→ 활성화 함수(Activation)로 출력 결정
수식:
z = w₁x₁ + w₂x₂ + ... + wₙxₙ + b
y = f(z) (f: 활성화 함수)
단층 퍼셉트론 한계:
→ XOR 문제 해결 불가 (선형 분리 불가능)
→ 해결책: 다층 퍼셉트론 (MLP)
다층 신경망 (Multi-Layer Perceptron)
신경망 구조:
입력층 (Input Layer):
→ 데이터의 특성(Feature) 수 = 뉴런 수
→ 이미지 28×28px → 784개 입력 뉴런
은닉층 (Hidden Layer):
→ 1개 이상의 중간 계층
→ 깊은 신경망(Deep): 은닉층이 많을수록 더 복잡한 패턴 학습
→ 뉴런 수는 하이퍼파라미터로 설정
출력층 (Output Layer):
→ 분류: 클래스 수 = 뉴런 수 (Softmax 사용)
→ 회귀: 1개 뉴런
표기:
→ 층 L, 해당 층의 가중치 행렬 W⁽ᴸ⁾, 편향 벡터 b⁽ᴸ⁾
→ a⁽ᴸ⁾ = f(W⁽ᴸ⁾ a⁽ᴸ⁻¹⁾ + b⁽ᴸ⁾)
활성화 함수 (Activation Function)
활성화 함수의 역할:
→ 신경망에 비선형성(Non-linearity) 부여
→ 없으면 아무리 층을 쌓아도 선형 함수와 동일
주요 활성화 함수:
1. Sigmoid:
σ(z) = 1 / (1 + e^(-z))
→ 출력 범위: (0, 1)
→ 이진 분류 출력층에 사용
→ 문제: 기울기 소실 (Vanishing Gradient)
2. Tanh:
tanh(z) = (e^z - e^(-z)) / (e^z + e^(-z))
→ 출력 범위: (-1, 1)
→ Sigmoid보다 중심이 0에 가까워 학습 효율 좋음
→ 기울기 소실 문제 여전히 존재
3. ReLU (Rectified Linear Unit):
ReLU(z) = max(0, z)
→ z > 0: 그대로 통과, z < 0: 0 출력
→ 계산 간단, 기울기 소실 해결
→ 현대 딥러닝에서 기본 활성화 함수
→ 문제: Dead ReLU (뉴런이 항상 0 출력)
4. Softmax (출력층 다중 분류):
softmax(zᵢ) = e^(zᵢ) / Σ e^(zⱼ)
→ 출력이 합계 1인 확률 분포
→ 클래스 k개 분류에 사용
손실 함수 (Loss Function)
손실 함수의 역할:
→ 예측값과 실제값의 차이를 수치화
→ 학습의 목표: 손실 최소화
주요 손실 함수:
1. MSE (Mean Squared Error) - 회귀:
MSE = (1/n) Σ (ŷᵢ - yᵢ)²
→ 예측값과 실제값의 차이 제곱 평균
2. 교차 엔트로피 (Cross-Entropy) - 분류:
이진 분류: L = -[y·log(ŷ) + (1-y)·log(1-ŷ)]
다중 분류: L = -Σ yₖ·log(ŷₖ)
→ 예측 확률이 실제와 가까울수록 손실 작음
3. MAE (Mean Absolute Error) - 회귀:
MAE = (1/n) Σ |ŷᵢ - yᵢ|
→ MSE보다 이상값(Outlier)에 덜 민감
순전파와 역전파
순전파 (Forward Propagation):
→ 입력에서 출력 방향으로 데이터 흐름
→ 입력 → 은닉층 → 출력 → 손실값 계산
역전파 (Backpropagation):
→ 손실에서 입력 방향으로 기울기 전파
→ 연쇄 법칙(Chain Rule)으로 각 가중치에 대한 기울기 계산
→ 기울기를 이용해 가중치 업데이트
연쇄 법칙 적용:
∂L/∂W⁽¹⁾ = (∂L/∂a⁽²⁾) × (∂a⁽²⁾/∂z⁽²⁾) × (∂z⁽²⁾/∂a⁽¹⁾) × (∂a⁽¹⁾/∂W⁽¹⁾)
→ 여러 층의 기울기를 역방향으로 전달
경사하강법 (Gradient Descent)
경사하강법의 원리:
→ 손실 함수의 기울기(Gradient) 반대 방향으로 가중치 이동
→ 손실이 감소하는 방향으로 학습
W ← W - η × ∂L/∂W
→ η: 학습률 (Learning Rate)
경사하강법 유형:
1. BGD (Batch Gradient Descent):
→ 전체 데이터로 기울기 계산 후 업데이트
→ 안정적이지만 매우 느림
2. SGD (Stochastic Gradient Descent):
→ 데이터 1개씩 기울기 계산 후 업데이트
→ 빠르지만 불안정 (노이즈)
3. Mini-batch SGD:
→ 소규모 배치(32, 64, 128)로 기울기 계산
→ SGD의 속도 + BGD의 안정성 균형
→ 현대 딥러닝에서 표준
발전된 최적화:
→ Momentum: 관성을 이용해 진동 감소
→ Adam (Adaptive Moment Estimation): 학습률 자동 조정
→ AdaGrad, RMSProp
기울기 소실·폭발 문제
기울기 소실 (Vanishing Gradient):
→ 역전파 시 기울기가 앞 층으로 갈수록 0에 수렴
→ 깊은 신경망에서 초기 층 학습 불가
→ Sigmoid, Tanh 활성화 함수에서 자주 발생
→ 해결: ReLU 활성화, ResNet (Skip Connection)
기울기 폭발 (Exploding Gradient):
→ 기울기가 지수적으로 커져 학습 불안정
→ 주로 RNN에서 발생
→ 해결: Gradient Clipping (기울기 임계값 제한)
Batch Normalization:
→ 각 층의 출력을 정규화하여 학습 안정화
→ 기울기 소실/폭발 완화
→ 더 높은 학습률 사용 가능
자주 묻는 질문
Q. 딥러닝을 배우려면 수학을 얼마나 알아야 하나요? A. 선형대수(행렬 연산), 미적분(편미분, 연쇄 법칙), 확률·통계 기초가 필요합니다. PyTorch나 TensorFlow 같은 프레임워크를 사용하면 수식 구현은 자동화되어 있지만, 작동 원리를 이해하려면 수학적 배경이 중요합니다.
Q. 딥러닝과 머신러닝의 차이가 무엇인가요? A. 머신러닝은 인간이 설계한 특징(Feature)을 기반으로 알고리즘이 학습합니다. 딥러닝은 다층 신경망이 원시 데이터(이미지 픽셀, 텍스트)에서 스스로 특징을 추출합니다. 딥러닝은 머신러닝의 한 분야로, 대규모 데이터와 복잡한 패턴이 있는 분야에서 특히 뛰어납니다.
O
OIYO 편집부
Content Editor지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.