딥러닝은 각각의 주요 은닉층의 Layer가 해당 모델의 이름 그 자체가 되었을만큼, 은닉층 Layer가 어떻게 설계되었느냐가 굉장히 중요하다.
기본적으로는 '입력층 - 은닉층 - 출력층' 으로 구성되는데
입력층은 연속적인 수치형의 데이터 기반일 때는 Dense, 비선형적인 카테고리컬한 데이터일때는 Embedding 등으로 은닉층에 입력할 수 있게끔 변환시킨다.
출력층은 일반적으로 1개의 자원에 대해 독립적인 출력은 Sigmoid, 다중 및 Percentile Like의 출력은 Softmax로 진행한다.
딥러닝 모델별 주요 레이어 구성 및 사용 이유
| NN | 주요 레이어 | 역할 및 이유 |
| MLP (다층 퍼셉트론) | Dense → ReLU → Dense → Softmax/Sigmoid | - Dense: 모든 입력 연결, 전형적인 구조화된 데이터 처리용 - ReLU: 비선형성 도입으로 복잡한 함수 근사 - Softmax/Sigmoid: 분류용 확률 출력 |
| CNN (합성곱 신경망) | Conv2D → ReLU → MaxPooling → Flatten → Dense → Softmax | - Conv2D: 지역 특징(엣지, 패턴 등) 추출 - ReLU: 비선형 처리로 표현력 증가 - MaxPooling: 특징 압축 및 연산량 감소 - Flatten: 2D → 1D 변환 - Dense + Softmax: 최종 분류 |
| RNN (순환 신경망) | Embedding → RNN → Dense → Softmax/Sigmoid | - Embedding: 텍스트 → 밀집 벡터로 변환 - RNN: 시퀀스 흐름(시간적 패턴) 학습 - Dense: 시퀀스의 요약된 정보로 예측 수행 |
| LSTM (장단기 메모리) | Embedding → LSTM → Dense → Softmax/Sigmoid | - LSTM: 장기 의존성 처리(RNN의 한계 극복) - 입력 순서를 고려한 문맥 유지 |
| GRU | Embedding → GRU → Dense | - GRU: LSTM보다 계산 간단, 학습 속도 빠름 - 적은 데이터에도 효율적 |
| Transformer (Encoder 기반) | Embedding → Positional Encoding → Multi-Head Attention → LayerNorm → FeedForward → Softmax | - Attention: 문맥 정보 전역 파악 - Positional Encoding: 순서 정보 부여 - LayerNorm: 안정적 학습 - FeedForward: 특성 변환 |
| Autoencoder | Dense → ReLU → Bottleneck → ReLU → Dense → Sigmoid | - Encoder: 입력 압축 - Bottleneck: 최소 정보 보존 - Decoder: 입력 복원 (이상치 탐지, 차원 축소용) |
| GAN (생성적 적대 신경망) | - Generator: Dense → ReLU → ConvTranspose - Discriminator: Conv → LeakyReLU → Dense |
- Generator: 랜덤 벡터 → 가짜 이미지 생성 - Discriminator: 진짜 vs 가짜 구분 - LeakyReLU: 죽은 ReLU 문제 보완 |
다양한 레이어가 보이지만 Sigmoid -> ReLU 혹은 RNN -> LSTM 등으로 특정 Layer의 단점을 상쇄하기 위한 Layer가 도입된 경우가 많고, 대체적으로 Layer 구조도 직관적으로 이해하기 쉽게 설계된 경우가 많다.
은닉층 레이어의 개선 과정
| 목적초기 | 기본 레이어개선 | 개선 레이어 | 설명 및 특징 |
| 비선형 활성화 | Sigmoid, Tanh | ReLU → Leaky ReLU, ELU, GELU | 학습 속도, 기울기 소실 문제 해결을 위해 ReLU 계열로 진화 |
| 이진/다중 분류 출력 | Sigmoid (2-class) | Softmax (n-class) | 출력층에서 확률 계산, Sigmoid는 독립 이진 분류, Softmax는 다중 분류 |
| 순차 데이터 처리 | RNN | LSTM → GRU | 장기 기억 문제 해결 위해 게이트 구조 도입, GRU는 간소화된 LSTM |
| 정규화 (학습 안정화) | 없음 (초기에는 수동 조정) | BatchNorm → LayerNorm, GroupNorm | 내부 공변량 변화 문제 해결, Transformer는 LayerNorm 주로 사용 |
| 과적합 방지 | 없음 | Dropout, SpatialDropout | 훈련 시 일부 뉴런 무작위 제거, 과적합 방지 |
| 특징 추출 (이미지) | Conv2D, Pooling | DepthwiseConv, DilatedConv, SE Block | CNN 구조의 경량화와 성능 향상을 위한 발전 형태 |
| 어텐션 메커니즘 | RNN+Context (초기) | Attention → Self-Attention, Multi-Head Attention | Transformer 중심 발전, 문맥 이해력 극대화 |
| 출력 공간 압축/복원 | Flatten, Dense | GlobalAvgPooling, Autoencoder Decoder | 피처 맵 → 벡터, 또는 압축된 표현 복원 |
| 임베딩/입력 처리 | One-hot, TF-IDF | Embedding Layer, Positional Encoding | 고차원 희소 표현 → 저차원 밀집 표현으로 진화 |
'ML & DL' 카테고리의 다른 글
| 역전파(BackPropagation)란 무엇인가? (0) | 2025.05.01 |
|---|---|
| Boosting vs Bagging 의 차이점은 ? ( feat. XGBoost / Random Forest ) (0) | 2025.05.01 |
| Classical ML vs. Deep Learning, 언제 무엇을 써야 할까? (0) | 2025.05.01 |
| Standard Scaler vs Robust Scaler (0) | 2025.04.28 |
| TF-IDF ( Term Frequency-Inverse Document Frequency ) (0) | 2025.04.27 |