01신경망 기본 구성 요소
1.1 퍼셉트론과 신경망 구조
| 한글 용어 | 영문 용어 | 수식/표현 | 설명 |
| 퍼셉트론 | Perceptron | $y = f(Wx + b)$ | 가장 기본적인 인공 뉴런 모델. 입력에 가중치를 곱하고 편향을 더한 후 활성화 함수를 적용하여 출력을 생성 |
| 뉴런/노드 | Neuron / Node | $a = f(z)$ | 신경망의 기본 계산 단위. 입력을 받아 가중합을 계산하고 활성화 함수를 통과시켜 출력 |
| 가중치 | Weight (W) | $W \in \mathbb{R}^{n \times m}$ | 각 입력의 중요도를 나타내는 학습 가능한 파라미터 |
| 편향 | Bias (b) | $b \in \mathbb{R}^n$ | 뉴런의 활성화 임계값을 조정하는 파라미터. 선형 함수의 y절편 역할 |
| 입력층 | Input Layer | $X \in \mathbb{R}^{batch \times features}$ | 데이터가 신경망에 처음 들어오는 층 |
| 은닉층 | Hidden Layer | $h = f(Wx + b)$ | 복잡한 패턴과 특징을 학습하는 중간 층 |
| 출력층 | Output Layer | $\hat{y} = f(Wh + b)$ | 최종 예측값을 출력하는 층 |
| 순전파 | Forward Propagation | $\hat{y} = f(x; \theta)$ | 입력에서 출력 방향으로 데이터가 흐르며 예측값을 계산하는 과정 |
| 역전파 | Backpropagation | $\frac{\partial L}{\partial W}$ | 출력에서 입력 방향으로 오차를 전파하며 가중치를 업데이트하는 알고리즘 |
💡 핵심 개념: 순전파와 역전파
순전파 (Forward Propagation): 입력 데이터가 신경망을 통과하며 최종 출력을 생성하는 과정
역전파 (Backpropagation): 손실 함수의 그래디언트를 계산하여 오차를 전파하고 가중치를 업데이트하는 과정
1.2 퍼셉트론 수학적 표현
# 퍼셉트론 Python 구현 예제
import numpy as np
class Perceptron:
def __init__(self, input_size, learning_rate=0.01):
self.weights = np.random.randn(input_size)
self.bias = np.random.randn()
self.lr = learning_rate
def activation(self, x):
"""계단 함수 (Step Function)"""
return 1 if x >= 0 else 0
def predict(self, x):
z = np.dot(x, self.weights) + self.bias
return self.activation(z)
def train(self, X, y, epochs=100):
for epoch in range(epochs):
for xi, target in zip(X, y):
prediction = self.predict(xi)
error = target - prediction
self.weights += self.lr * error * xi
self.bias += self.lr * error
02활성화 함수 (Activation Functions)
💡 활성화 함수란?
신경망에 비선형성을 도입하여 복잡한 패턴을 학습하게 하는 함수입니다.
| 함수명 | 수식 | 출력 범위 | 특징 및 사용처 |
| Sigmoid | $\sigma(x) = \frac{1}{1+e^{-x}}$ | (0, 1) | 이진 분류 출력층. 단점: 기울기 소실 |
| ReLU | $f(x) = \max(0, x)$ | [0, ∞) | 가장 널리 사용됨. 계산 효율적 |
| Softmax | $\sigma(x)_i = \frac{e^{x_i}}{\sum e^{x_j}}$ | (0, 1) | 다중 클래스 분류 출력층. 확률 분포로 변환 |
# 활성화 함수 Python 구현
def sigmoid(x):
return 1 / (1 + np.exp(-x))
def relu(x):
return np.maximum(0, x)
def softmax(x):
exp_x = np.exp(x - np.max(x))
return exp_x / np.sum(exp_x, axis=-1, keepdims=True)
03손실 함수 (Loss Functions)
| 손실 함수 | 수식 | 특징 |
| MSE | $L = \frac{1}{n} \sum(y_i - \hat{y}_i)^2$ | 회귀 문제의 표준. 이상치에 민감 |
| MAE | $L = \frac{1}{n} \sum|y_i - \hat{y}_i|$ | 이상치에 강건함(Robust) |
| Binary CE | $- \frac{1}{n} \sum[y\log(\hat{y}) + (1-y)\log(1-\hat{y})]$ | 이진 분류 표준 손실 함수 |
# 손실 함수 Python 구현
def mse_loss(y_true, y_pred):
return np.mean((y_true - y_pred) ** 2)
def binary_cross_entropy(y_true, y_pred):
y_pred = np.clip(y_pred, 1e-15, 1 - 1e-15)
return -np.mean(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))
04최적화 알고리즘 (Optimizers)
| 알고리즘 | 업데이트 수식 | 설명 |
| SGD | $W_{t+1} = W_t - \eta \nabla L$ | 가장 기본. 배치마다 업데이트 |
| Momentum | $v_t = \beta v_{t-1} + \eta \nabla L$ | 관성을 추가하여 진동 감소 |
| Adam | $W_{t+1} = W_t - \eta \frac{\hat{m}}{\sqrt{\hat{v}}+\epsilon}$ | Momentum + RMSprop 결합. 표준 최적화 |
05데이터 전처리 (Data Preprocessing)
| 기법 | 수식 | 설명 |
| Min-Max | $x' = \frac{x-x_{min}}{x_{max}-x_{min}}$ | 데이터를 0~1 범위로 변환 |
| Standardization | $x' = \frac{x-\mu}{\sigma}$ | 평균 0, 표준편차 1로 변환 |
06학습 프로세스 용어
| 용어 | 설명 |
| 에포크 (Epoch) | 전체 데이터를 한 번 완전히 학습하는 단위 |
| 배치 크기 (Batch Size) | 한 번의 업데이트에 사용되는 샘플 수 |
| 이터레이션 (Iteration) | 한 번의 배치 처리 과정 (Step) |
07신경망 아키텍처
| 구조 | 특징 | 사용처 |
| CNN | 공간적 패턴 학습 (합성곱, 풀링) | 이미지 처리, 컴퓨터 비전 |
| RNN | 시퀀스 데이터 처리 (은닉 상태 공유) | 자연어 처리, 시계열 데이터 |
| Transformer | Attention 기만 병렬 처리 | LLM (GPT, BERT) |
08정규화 기법 (Regularization)
| 기법 | 설명 | 효과 |
| Dropout | 랜덤하게 뉴런 비활성화 | 과적합 방지, 앙상블 효과 |
| Batch Norm | 배치별 정규화 수행 | 학습 안정화, 속도 향상 |
| Early Stopping | 성능 정체 시 조기 종료 | 불필요한 학습 방지 |
09평가 지표 (Evaluation Metrics)
| 지표 | 수식 | 특징 |
| Accuracy | $(TP+TN)/Total$ | 직관적이나 불균형 데이터에 취약 |
| F1 Score | $2 \cdot \frac{P \cdot R}{P+R}$ | 정밀도와 재현율의 조화 평균 |
| R² Score | $1 - \frac{SS_{res}}{SS_{tot}}$ | 회귀 모델 설명력 지표 |
10고급 기법 및 모델
| 용어 | 설명 |
| 전이 학습 | 사전 학습된 모델의 지식을 새 태스크에 활용 |
| GAN | 생성자와 판별자의 적대적 학습을 통한 데이터 생성 |
| Diffusion | 노이즈 제거 과정을 통한 고품질 이미지 생성 |
11양자화 및 최적화 (Quantization)
| 기법 | 설명 | 기대 효과 |
| Quantization | FP32를 INT8 등으로 변환 | 모델 크기 감소, 추론 속도 향상 |
| Pruning | 중요도 낮은 가중치 제거 | 모델 경량화, 연산 효율성 |
| Distillation | 교사 모델 지식을 학생 모델로 전수 | 작은 모델의 성능 극대화 |
🚀 최적화 가이드
- 모바일 앱: Quantization (INT8) + Pruning 추천
- 서버 추론: FP16 + TensorRT 활용
- 모델 압축: Knowledge Distillation 활용