728x90
1. CNN을 구성하는 각 레이어의 역할에 대해 설명해보세요.
1) 입력/전처리 레이어(Input, Normalize)
- 역할: 이미지 텐서의 스케일을 맞추고 분포를 안정화.
예를 들어 [0, 255] 픽셀을 [0, 1] 또는 평균 0, 표준편차 1로 정규화해 학습을 빠르고 안정적으로 만든다.- 포인트: 배치 차원과 채널 차원 순서(NCHW vs NHWC)를 모델/프레임워크 요구에 맞춥니다. PyTorch는 일반적으로 NCHW를 사용.
2) 합성곱 레이어(Convolution)
- 역할: 지역(receptive field) 정보를 이용해 에지, 텍스처, 형태 같은 특징을 추출. 필터(커널)가 이미지 위를 슬라이딩하며 특징 맵을 만듦.
- 하이퍼파라미터: 커널 크기(예: 3×3), 스트라이드, 패딩, 필터 수(출력 채널).
- 효과: 필터 수가 늘면 더 많은 종류의 특징을 병렬로 학습. 스트라이드/패딩은 출력 해상도에 직접 영향을 줌.
3) 비선형 활성화(Activation: ReLU, GELU 등)
- 역할: 비선형성을 도입해 복잡한 함수 근사 능력을 부여. 단순 선형 조합의 한계를 넘어 다양한 패턴을 학습하게 함.
- 실무 팁: ReLU는 빠르고 안정적, 최근에는 GELU/SiLU가 성능 면에서 선호.
4) 정규화 레이어(Normalization: BatchNorm/LayerNorm 등)
- 역할: 중간 특징의 분포를 정규화해 학습을 안정화하고 수렴을 빠르게 함.
- 선택 기준: 합성곱 기반 백본에서는 BatchNorm이 흔하고, 배치 크기가 작거나 시퀀스형 구조에서는 GroupNorm/LayerNorm을 쓰기도 한다.
5) 풀링 레이어(Pooling: Max/Average Pool)
- 역할: 공간 해상도를 줄이며(다운샘플링) 불변성(translation invariance)을 키우고 파라미터·연산량을 줄인다.
- MaxPool vs AvgPool: MaxPool은 가장 강한 활성만 전달해 경계/패턴에 민감, AvgPool은 평균을 취해 더 부드러운 표현을 만듦
- 설계 팁: 합성곱의 스트라이드로 다운샘플링을 대신하는 추세(예: stride 2 conv).
6) 드롭아웃/규제(Regularization: Dropout, Weight Decay 등)
- 역할: 과적합을 줄임. 드롭아웃은 일부 활성화를 확률적으로 0으로 만들어 네트워크의 공변 특화(co-adaptation)를 방지
- 비고: Conv 블록에서는 SpatialDropout2d나 DropBlock 같은 변형을 사용하기도 함
7) 스킵/잔차 연결(Skip/Residual Connection)
- 역할: 입력을 출력에 더해(또는 연결해) 그라디언트 흐름을 원활히 하여 깊은 네트워크 학습을 쉽게 함. ResNet, U-Net 등에서 핵심.
- 효과: 정보 손실을 줄이고, 깊어질 때 생기는 기울기 소실 문제를 완화.
8) 병목/집약 레이어(Global Average Pool, Flatten)
- 역할: 공간 차원을 벡터로 요약합니다. Global Average Pool은 각 채널을 하나의 값으로 집약해 파라미터 없이 특징을 요약하고, Flatten은 그대로 펼쳐 완전연결층에 전달합니다.
- 추세: 파라미터 효율과 과적합 방지 측면에서 Global Average Pool이 자주 쓰입니다.
9) 완전연결 레이어(FC, Classifier Head)
- 역할: 추출된 특징을 최종 태스크(분류, 회귀 등)로 매핑. 분류의 경우 마지막에 소프트맥스로 클래스 확률을 출력.
- 팁: 채널 축은 특징의 “종류”, 공간 축은 “위치”로 이해하면 집약 후 FC가 왜 필요한지 직관적
10) 출력/손실 함수(Output, Loss)
- 역할: 태스크에 맞는 로짓/확률을 내고, 손실 함수로 정답과의 차이를 정량화 함
- 예시: 다중분류는 CrossEntropy, 이진분류는 BCEWithLogits, 회귀는 MSE/L1 등을 사용.
11) 보조 레이어/연산(주의할 요소)
- 패딩: 출력 크기를 제어하고 경계 정보 손실을 줄여준다. same 패딩은 입력과 동일 해상도를 유지, valid는 줄어듦.
- 스트라이드/커널/패딩 상호작용: 해상도 계산과 파라미터·연산량이 크게 달라짐. 입력 크기와 커널/스트라이드/패딩을 명확히 설계하면 디버깅이 쉬움.
- 혼합정밀/정규화 순서: Conv → Norm → Activation 순서가 널리 쓰이며, 프로젝트에 따라 Activation → Norm을 쓰는 변형도 있음
전체 흐름 요약
- 초반 블록: 합성곱+활성화(+정규화)로 저수준 특징 추출 → 다운샘플링으로 해상도 감소, 채널 확장
- 중간/후반 블록: 더 추상적인 특징을 깊게 학습, 스킵/잔차 연결로 정보 흐름 보존
- 헤드: Global Pool/Flatten → FC → 소프트맥스(또는 태스크별 출력)로 최종 예측
2. 오토 인코더가 적용되기 적합한 상황에 대해 설명하고, 오토 인코더를 구성하는 인코더(Encoder)와 디코더(Decoder) 각각의 개념과 차이점에 대해 설명하세요.
오토인코더가 적합한 상황
오토인코더는 “레이블이 없거나 부족한 상황에서 데이터의 본질적 구조를 학습해 압축·복원”하는 데 강하다.
- 노이즈 제거/복원: 얼룩, 찢김, 블러 등 손상된 이미지를 원본에 가깝게 복원할 때 유용. 문서 복원 미션처럼 손상 패턴이 다양할 때, 노이즈 제거 오토인코더(Denoising AE)가 특히 효과적
- 차원 축소/특징 추출: PCA보다 비선형 구조를 더 잘 포착해, 시각화나 다운스트림 모델 입력용 임베딩으로 사용하기 좋다.
- 이상치 탐지: 정상 패턴을 잘 복원하도록 학습되면, 이상 데이터는 복원 오차가 커지므로 탐지에 활용할 수 있다.(제조 불량, 네트워크 이상 등).
- 데이터 압축: 손실 압축 형태로 잠재공간에 효율적으로 정보를 담아 전송·저장 비용을 낮출 수 있다.
- 사전학습/표현학습: 라벨이 적은 태스크에서, 오토인코더로 학습한 인코더를 다운스트림 과제에 전이해 성능을 끌어올릴 수 있다.
실무 체크포인트
- 복원 대상의 “정상 패턴”이 충분히 대표되도록 학습 데이터가 다양해야 함
- 손상 종류가 특정하다면, 데이터 증강으로 손상 패턴을 학습에 주입하면 복원력이 좋아짐
- 평가지표는 PSNR/SSIM(이미지), MSE/MAE(수치), 문자 인식 정확도 같은 태스크 지표를 함께 보면 좋음
인코더(Encoder)와 디코더(Decoder): 개념과 차이
- 인코더(Encoder)
- 개념: 입력 데이터를 점점 “축약”해 핵심 정보만 남기는 모듈입니다. 합성곱/풀링(또는 스트라이드 컨볼루션) 등으로 해상도를 줄이고 채널 표현을 풍부하게 만들어, 잠재공간(latent space) 벡터나 맵으로 압축.
- 역할 초점: 정보 추출과 압축. 잡음·불필요한 세부를 걸러내고, 데이터의 구조적 특징을 응축
- 설계 특징: 다운샘플링 반복(예: Conv → Norm → Activation → Down), 마지막에 잠재표현 z를 출력.
- 디코더(Decoder)
- 개념: 잠재표현을 다시 “복원”해 원래 공간으로 재구성하는 모듈. 업샘플링(또는 전치 합성곱)으로 해상도를 높이며, 누락된 세부를 단계적으로 복원
- 역할 초점: 정보 복원과 세부 재구성. 인코더가 보존한 핵심 정보를 바탕으로 자연스러운 출력을 만듦
- 설계 특징: 업샘플링 반복(예: Upsample/ConvTranspose → Norm → Activation), 마지막에 원본과 동일한 크기/채널로 출력.
핵심 차이 한줄 요약
- 인코더는 “압축(정보 요약)”, 디코더는 “복원(세부 재생성)”.
- 인코더는 정보 손실을 최소화하며 요약하고, 디코더는 그 정보를 최대한 자연스럽게 펼칩니다.
'#위클리 페이퍼' 카테고리의 다른 글
#위클리 페이퍼 8 (3) | 2025.08.29 |
---|---|
#위클리 페이퍼 7 (0) | 2025.08.22 |
#위클리 페이퍼 5 (3) | 2025.08.08 |
#위클리 페이퍼 4 (2) | 2025.07.31 |
#위클리 페이퍼 3 (3) | 2025.07.26 |