728x90
반응형
딥러닝 / 머신 러닝 핵심 개념 정리 : 과적합 방지, 복잡도, 정규화
이번 포스팅에서는 면접에서 자주 다루어지는 과적합(Overfitting) 방지 수단, 시간 및 공간 복잡도의 중요성, 그리고 정규화(Normalization)의 필요성에 대해 핵심만 짚어보겠습니다.
1. 과적합(Overfitting) 방지 수단
과적합은 모델이 합습 데이터에 너무 특화되어 새로운 데이터(테스트 데이터)에 대한 일반화 성능이 떨어지는 현상을 말합니다. 이를 방지하는 대표적인 수단은 다음과 같습니다.
| 수단 | 설명 | 면접 시 논의 내용 반영 |
| 데이터 증강(Data Augmentation) | 기존 학습 데이터를 변형(회전, 확대, 자르기 등)하여 학습 데이터 세트의 크기를 실질적으로 늘려 모델이 다양한 패턴을 학습하게 합니다. | 학습 데이터는 가장 많이야한다. 데이터 증강을 통해 학습 set을 증강 시키는 것이 핵심입니다. |
| 규제(Regularization) | 모델의 복잡도를 줄여 과적합을 방지합니다. 가중치(Weight)의 크기에 패널티를 부여하는 L1 또는 L2 규제가 대표적입니다. | 과적합 방지의 필수적인 수단으로 데이터 증강과 함께 언급되는 주요 방법입니다. |
| 드롭아웃(Dropout) | 학습 시 일부 뉴런을 무작위로 비활성화하여 뉴런들 간의 공동 적응(Co-adaptation)을 막고, 모델이 특정 특성에 의존하지 않도록 일반화 능력을 키웁니다. | |
| 조기 종료(Early Stopping) | 학습 데이터에 대한 손실(Loss)은 계속 감소하지만, 검증 데이터(Validation Data)에 대한 손실이 증가하기 시작하는 시점에서 학습을 멈춥니다. | 검증 데이터가 굳이 많을 필요는 없다는 논의는 이처럼 검증 데이터의 역할이 학습 종료 시점을 결정하는 모니터링에 있음을 시사합니다. |
참고 : 배치 사이즈 조절과 과적합
면접 시 배치 사이즈(Batch Size) 조절이 과적합 방지보다는 속도 및 성능이 관련이 있다고 언급하셨습니다.
- 배치 사이즈는 주로 학습 속도, 메모리 효율성, 그리고 최적화의 안정성에 영향을 미칩니다.
- 작은 배치 사이즈는 노이즈가 크지만 더 넓고 다양한 영역을 탐색하여 일반화 성능에 도움이 될 수 있으며, 큰 배치 사이즈는 학습 속도가 빠르지만 날카로운 최소점(Sharp Minima)에 수렴하여 일반화 성능이 저하될 수 있습니다.
- 따라서 배치 사이즈는 직접적인 과적합 방지 수단이라기보다는, 최적화 과정에서 성능 및 일반화에 영향을 미치는 하이퍼파라미터로 보는 것이 적절합니다.
2. 시간 복잡도와 공간 복잡도의 중요성
복잡도(Complexity)는 알고리즘의 효율성을 측정하는 척도이며, 주로 빅 0 표기법 $\text{O(n)}$, $\text{O(log n)}$ 등 으로 나타냅니다.
시간 복잡도(Time complexity)
- 정의 : 알고리즘의 실행 시간을 입력 크기(n)의 함수로 일반화한 것입니다.
- 중요성 : 알고리즘이 데이터가 증가함에 따라 얼마나 빠르게 작업을 완료할 수 있는지 예측하여, 비효율적인 알고리즘을 피하고 실행 시간을 최적화하는데 필요합니다.
- 예시 :
- for 문 한번 : $\text{O(n)}$ (선형 복잡도)
- 중첩된 for문 두 번 : $\text{O(n)}$ (제곱 복잡도)
- 로그 복잡도(log for 문) : $\text{O(n)}$ (이진 탐색 등)
공간 복잡도(Space Complexity)
- 정의 : 알고리즘 실행에 필요한 메모리(저장 공간)를 입력 크기(n)의 함수로 일반화한 것입니다.
- 중요성 : 특히 제한된 메모리 환경이나 대규모 모델(예 : LLM)에서 모델 메모리 개선 및 효율적인 자원 사용을 위해 필수적입니다.
- LLM(거대 언어 모델)의 결우 파라미터 수로 모델 크기를 표시하는데, 이는 공간 복잡도와 밀접하게 관련되며 배포 환경에서 중요한 제약 조건이 됩니다.
시간 복잡도 vs 공간 복잡도 : 무엇이 더 중요할까?
- 과거에는 메모리(공간)가 비싸고 제한적이었기 때문에 공간 복잡도가 더 중요했지만, 현대에는 메모리가 저렴해지고 용량이 커지면서 대부분의 경우 시간 복잡도를 우선적으로 고려합니다.
- 다만 임베디드 시스템, 모바일 환경 또는 초거대 AI 모델(LLM)처럼 메모리 자원이 여전히 중요한 제약 조건인 경우에는 공간 복잡도가 매우 중요하게 다루어집니다.
- 결국, 중요한 이유는 알고리즘을 실행하기 전에 복잡도를 파악하여 자원의 비효율적인 낭비를 방지하고 최적의 성능을 보장하기 위함입니다.
3. 정규화(Normalization)
정규화는 데이터 전처리 과정이 핵심 단계 중 하나이며, 피처(Feature) 들의 스케일(Scale)을 조정하여 학습의 안정성과 성능을 향상시키는 과정입니다.
정의 및 목적
- 정의 : 서로 다른 범위와 단위를 가진 피처들의 값을 일정한 범위(예 : 0과 1 사이)나 표준 분포(평균 0, 표준 편차 1)로 맞춰주는 과정입니다.
- 핵심 목적 :
- 학습 안정화 : 피처 값들이 극단적으로 차이가 날 경우, 가중치 업데이트 시 특정 피처에 편향되어 학습이 불안정해지는 것을 방지합니다.
- 수렴 속도 향상 : 경사하강법(Gradient Descent) 기반의 최적화 알고리즘에서 더 빠르고 효율적인 수렴을 가능하게 합니다.
정규화의 필요성 (Outlier/편향 문제)
면접에서 논의된 예시가 정규화의 중요성을 잘 보여줍니다.
- 예시 : 남자/여자, 나이, 키 피처가 있을 때 키가 200cm 인 사람이 여자라고 가정해 봅시다.
- 문제 : 키 피처가 정규화되지 않은 상태에서, 모델은 극단적으로 큰 값인 200cm에 크게 영향을 받게 되어, 199cm인 새로운 데이터를 넣었을 때 이를 남자 대신 여자로 편향되게 예측할 가능상이 높아집니다.
- 해결 : 정규화를 통해 모든 피처를 비슷한 스케일로 조정하면, 모델은 키의 절대적인 값이 아니라 상대적인 패턴과 다른 피처들과의 관계를 더 잘 학습하게 되어 아웃라이어나 특정 피처에 의한 편향 문제를 줄일 수 있습니다.
- 참고 : 이상치(Outlier)에 민감한 민맥스 정규화(Min-Max Normalization) 대신, 이상치에 덜 민감한 표존화(Standardization)가 더 적합할 수 있습니다.
반응형
'카카오 부트캠프 회고록' 카테고리의 다른 글
| [카카오테크 부트 캠프] 회고록 6주차 (0) | 2025.10.24 |
|---|---|
| [카카오테크 부트 캠프] 회고록 5주차 (0) | 2025.10.19 |
| [카카오테크 부트 캠프] 회고록 3주차 (0) | 2025.09.28 |
| [카카오테크 부트 캠프] 회고록 2주차 (0) | 2025.09.21 |
| [카카오 테크 부트캠프] 회고록 1주차 (1) | 2025.09.14 |