728x90
반응형
🎯 학습 목표
- 활성화 함수의 개념과 종류를 이해한다.
- 오차 역전파(Backpropagation)의 개념을 이해한다.
- 경사하강법(Gradient Descent)의 다양한 종류를 학습한다.
- Keras에서의 적용 방법을 이해한다.
🔋 1. 활성화 함수 (Activation Function)
🧩 개념
- 신경망은 단순한 선형 회귀와 달리 각 층의 출력을 그대로 전달하지 않고,
활성화 함수를 통해 비선형 변환을 수행한다. - 실제 뉴런처럼 “역치(threshold)” 이상일 때만 다음 뉴런으로 신호를 전달하는 구조를 모방.
- 비선형성을 도입해야 다층 구조의 효과가 살아난다.
→ 복잡한 패턴 인식이 가능
🔸 활성화 함수의 역할
- 모델에 비선형성(Non-linearity) 추가
- 학습된 패턴의 일반화 성능 향상
- 분류 문제 해결을 위해 필수적
🔹 주요 활성화 함수 비교
함수수식 / 개념특징주요 사용처
| Step Function | 출력이 0 또는 1 | 단순한 분류, 미분 불가 | 고전적 구조 |
| Sigmoid | f(x)=11+e−xf(x)=\frac{1}{1+e^{-x}} | 출력 범위 (0~1), 미분 가능 | 이진 분류 |
| Tanh | f(x)=tanh(x)f(x)=\tanh(x) | 출력 (-1~1), 중심화된 데이터 처리 | RNN |
| ReLU | f(x)=max(0,x)f(x)=\max(0,x) | 학습 속도 빠름, Gradient Vanishing 해결 | CNN, 대부분의 신경망 |
| Softmax | 각 클래스 확률 합=1 | 다중 분류에서 확률화된 출력 | 분류 모델 출력층 |
💡 중간층에서 선형 함수 사용 시 문제점
- 선형함수 h(x)=xh(x) = x 를 사용하면, 아무리 층을 쌓아도 단층 선형 모델과 동일한 효과
- 즉, 비선형 활성화 함수를 반드시 사용해야 함
🧠 다중분류(Softmax) 예시
- 출력층의 각 퍼셉트론이 각 클래스의 확률을 출력
- 모든 확률의 합이 1이 되도록 정규화
- 예측값과 실제 정답(원-핫 인코딩된 벡터)을 비교하여 학습
- 오차 계산을 위해 출력의 범위가 0~1이어야 함 (Sigmoid/Softmax 사용)
🔢 활성화 함수 & 손실함수 매칭
문제 유형출력층 활성화 함수손실함수(Loss Function)
| 회귀(Regression) | Linear (항등 함수) | MSE (Mean Squared Error) |
| 이진 분류(Binary) | Sigmoid | Binary Crossentropy |
| 다중 분류(Multi-Class) | Softmax | Categorical Crossentropy |
🔁 2. 오차 역전파 (Backpropagation)
🔹 개념
- 순전파(Forward Propagation)
입력 데이터를 네트워크를 통해 전달하며 예측값 계산 - 역전파(Backward Propagation)
예측값과 실제값의 오차(Error) 를 계산하고,
그 오차를 역방향으로 전파하여 가중치(w)와 편향(b) 을 업데이트
🔸 핵심 아이디어
- 손실함수 LL 을 각 가중치 ww 에 대해 미분(∂L/∂w)
- 기울기(Gradient)를 이용해 손실이 줄어드는 방향으로 업데이트
- 이 과정을 반복하며 모델을 최적화
🔹 학습 흐름 요약
입력 → 순전파 → 손실 계산 → 역전파 → 가중치 업데이트 → 반복
⛰️ 3. 경사하강법 (Gradient Descent)
🧮 개념
손실함수의 기울기(Gradient)를 이용해
가장 낮은 손실값(최적점, Minimum) 을 찾는 최적화 알고리즘
w=w−α∂L∂ww = w - \alpha \frac{\partial L}{\partial w}
- α\alpha: 학습률(Learning Rate)
- ∂L∂w\frac{\partial L}{\partial w}: 기울기(Gradient)
⚙️ 경사하강법의 종류
알고리즘설명장단점
| Batch Gradient Descent | 전체 데이터를 이용해 한 번에 업데이트 | 안정적이지만 느림 |
| Stochastic Gradient Descent (SGD) | 1개의 샘플로 즉시 업데이트 | 빠르지만 불안정 |
| Mini-Batch Gradient Descent | 일부 샘플(batch_size) 단위로 업데이트 | 효율적, 가장 일반적 방식 |
🧠 모멘텀 (Momentum)
- 이전 기울기의 방향을 일정 비율로 유지하며 업데이트
- 진동(Zigzag)을 줄이고 수렴을 빠르게 함
- 일반적으로 m=0.9m = 0.9 정도 사용
수식:
vt=mvt−1−α∇L(wt)v_t = m v_{t-1} - \alpha \nabla L(w_t)
wt+1=wt+vtw_{t+1} = w_t + v_t
⚡ 네스테로프 모멘텀 (Nesterov Accelerated Gradient)
- 모멘텀의 단점(불필요한 overshoot) 개선
- **“미리 이동한 위치”**에서 기울기를 계산해 더 효율적
- 불필요한 방향 이동 감소 → 수렴 가속화
🧮 적응적 학습률 (Adaptive Learning Rate)
알고리즘특징
| Adagrad | 학습 초기에 큰 보폭으로, 이후 점차 학습률 감소 |
| RMSProp | Adagrad의 단점(학습률 급감) 개선, 최근 기울기 반영 |
| Adam | Momentum + RMSProp 결합, 대부분의 딥러닝에서 표준 |
| Nadam / AdamW | Adam의 변형, 정규화와 안정성 향상 |
💻 Keras에서의 Optimizer 예시
from tensorflow.keras.optimizers import SGD, Adam model.compile(
optimizer=Adam(learning_rate=0.001),
loss='categorical_crossentropy',
metrics=['accuracy']
)
지원 Optimizer: SGD, Momentum, NAG, Adagrad, RMSprop, Adam 등
🧩 종합 정리
항목핵심 내용
| 활성화 함수 | 비선형성을 추가해 복잡한 패턴 학습 가능 |
| 오차 역전파 | 손실의 기울기를 계산하여 가중치 갱신 |
| 경사하강법 | 손실을 최소화하는 방향으로 학습 진행 |
| 최적화 기법 | SGD → Momentum → NAG → Adam 순으로 발전 |
| Keras 적용 | Optimizer와 Activation 함수 조합으로 손쉽게 구현 가능 |
✨ 한 줄 요약
활성화 함수는 신경망의 비선형성을 부여하고,
오차 역전파와 경사하강법은 그 신경망이 학습하도록 만드는 핵심 엔진이다.
728x90
반응형
'학습 > AI' 카테고리의 다른 글
| 합성곱 신경망(CNN), 신경망 성능 개선, 전이학습 (0) | 2025.11.11 |
|---|---|
| [ 딥러닝 ] Batch의 개념을 비유하여 설명하기 (0) | 2025.11.10 |
| 퍼셉트론과 다층 퍼셉트론 (0) | 2025.11.07 |
| 딥러닝 개요 (Deep Learning Overview) (0) | 2025.11.06 |
| 머신러닝 (3) | 2025.11.04 |