90. 정규화 및 과적합 방지 기법 (Regularization)
⚠️ 이 문서는 딥러닝 모델이 훈련 데이터(기출문제)를 수백 번 풀면서 문제의 패턴이 아니라 '답안지 번호 자체'를 통째로 외워버려, 처음 보는 실전 시험(수능)에서 낙제점을 받는 치명적 현상인 **'과적합(Overfitting)'을 막기 위해, 모델의 복잡도와 암기력을 강제로 떨어뜨려 상상력과 일반화(Generalization) 능력을 부여하는 수학적/구조적 제동 장치인 '정규화(규제) 기법'**을 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: 인공신경망은 너무 똑똑해서 데이터에 섞여 있는 쓸데없는 노이즈(먼지)까지 법칙으로 착각하고 암기해 버린다. 규제(Regularization)는 모델이 너무 복잡한 함수를 그리지 못하도록 가중치(Weight) 파라미터가 너무 커지는 것을 수학적으로 억누르는 벌점(Penalty) 시스템이다.
- 가치: 모델이 특정 소수의 훈련 데이터에 심하게 편향되는 것을 막아주어, 처음 보는 새로운 고객 데이터(Test Data)가 들어왔을 때도 부드럽고 무난하게 정답을 맞혀내는 안정적이고 실용적인 AI를 만들어낸다.
- 기술 체계: 손실 함수에 가중치 덩치를 더해 벌점을 주는 L1/L2 규제(가중치 감쇠), 훈련 중 뇌세포 일부를 강제로 기절시키는 드롭아웃(Dropout), 그리고 시험 공부를 일찍 강제 종료시키는 **얼리 스토핑(Early Stopping)**이 3대 핵심 무기다.
Ⅰ. 훈련의 저주: 과적합 (Overfitting)의 딜레마
완벽하게 공부한 학생이 실전에 약한 이유가 있다.
- 과적합의 정의:
- 강아지 사진 100장으로 AI를 훈련시켰다. 우연히 100장 중 90장의 배경이 잔디밭이었다.
- 훈련을 너무 오래(Epoch) 반복하면, AI는 강아지의 '귀와 꼬리 모양'을 학습하는 대신 "초록색 잔디밭이 있으면 무조건 강아지다"라는 쓸데없는 노이즈(배경색)까지 정답 공식으로 억지로 욱여넣어 암기(Overfitting)해 버린다.
- 복잡한 모델의 맹점:
- 층(Layer)이 깊고 가중치가 많은 모델일수록, 데이터를 가르는 선(결정 경계)을 부드러운 1차선 직진 도로가 아니라 꾸불꾸불하고 날카로운 100차 방정식의 톱니바퀴 선으로 그린다.
- 훈련 데이터는 100점 만점으로 가르지만, 처음 보는 강아지 사진(실전)이 들어오면 그 날카로운 선에 걸려 "강아지가 아니다"라고 틀려버린다 (일반화 성능 하락).
📢 섹션 요약 비유: 족집게 학원에서 모의고사(훈련 데이터) 문제지 100장을 달달 외우게 시켰더니, 학생이 수학의 원리를 이해한 게 아니라 "3번 문제의 답은 4, 5번 문제의 답은 2"라는 식으로 번호표만 외워버린 끔찍한 상태입니다. 수능(실전 테스트)에 숫자가 조금만 바뀌어 나오면 이 학생은 무조건 0점을 맞고 폭망하게 됩니다.
Ⅱ. 정규화의 핵심 무기 1: L1 / L2 규제 (Weight Decay)
비정상적으로 커진 가중치의 날개를 수학적으로 잘라버린다.
- 가중치가 커진다는 것의 의미:
- 과적합된 모델을 뜯어보면, 특정 특징(예: 잔디밭 픽셀)과 연결된 가중치 값($W$) 하나가 비정상적으로 $1000.0, 5000.0$ 처럼 거대하게 튀어 올라 그 요인이 예측을 완전히 지배하고 있는 것을 볼 수 있다.
- 손실 함수(Loss)에 벌점(Penalty) 추가:
- 기존에는 $\text{오차} = \text{정답} - \text{예측값}$ 만 줄이는 것이 목표였다.
- 정규화를 적용하면, $\text{새로운 오차} = (\text{정답} - \text{예측값}) + \lambda \times (가중치들의 총합 덩치)$ 로 수식을 뜯어고친다.
- 즉, 오차를 줄이면서 동시에 "가중치($W$) 크기 자체도 줄이지 않으면 전체 손실 점수가 커진다(벌점)!"라고 모델을 협박하는 것이다.
- L1 (Lasso) vs L2 (Ridge):
- L1 규제 (절댓값 합): 쓸모없는 가중치(잔디밭 픽셀)를 완전히 '0'으로 만들어버려 아예 기억 상실을 유도한다. 핵심 변수(귀 모양)만 남겨 모델을 다이어트(Sparse)시킬 때 쓴다.
- L2 규제 (제곱 합): 가중치를 0으로 만들지는 않지만, 전반적으로 골고루 숫자를 작게 '찍어 눌러서(Decay)' 튀는 놈이 없게 모서리를 둥글둥글 깎아내는 효과가 있어 딥러닝에서 훨씬 자주 쓰인다.
📢 섹션 요약 비유: 학생이 특정 과목(잔디밭 특징) 하나만 달달 외워서 평균 점수만 올리는 꼼수를 막기 위해, 학교 교칙을 "전 과목을 골고루 잘하지 않고 한 과목만 점수가 유독 높게 튀면 전체 성적에서 벌점을 깐다(L2 규제)"로 바꿔버린 것입니다. 학생(AI)은 울며 겨자 먹기로 꼼수를 버리고 모든 특징을 골고루 조금씩 학습하게 되어 둥글둥글한 모범생으로 진화합니다.
Ⅲ. 정규화의 무기 2: 조기 종료(Early Stopping)와 드롭아웃(Dropout)
물리적인 구조와 훈련 스케줄을 박살 내어 암기를 방해한다.
- 드롭아웃 (Dropout: 뇌세포 기절시키기):
- 훈련 스텝마다 신경망의 은닉층 뉴런(뇌세포) 중 30%~50%를 랜덤하게 골라 전원을 끄고(0으로 만듦) 신호를 아예 막아버린다.
- 이번 스텝에선 왼쪽 뇌세포가 기절하니 오른쪽 뇌세포만으로 개/고양이를 판별하려 애쓰고, 다음 스텝에선 반대로 훈련된다.
- 결과적으로 소수의 특정 뉴런에만 정답을 의존하는 사태(Co-adaptation)를 완벽히 찢어버리고, 네트워크 전체가 고르게 특징을 분산 학습하게 만들어 엄청난 앙상블(협동) 효과를 낸다. (실전 평가를 할 땐 모든 세포를 100% 다 켜서 예측한다.)
- 조기 종료 (Early Stopping):
- 1,000 에폭을 돌리기로 예약해 두었다.
- 훈련 데이터의 오차는 계속 0을 향해 줄어들지만, 100 에폭쯤부터 몰래 풀려보는 검증 데이터(Validation Set)의 오차가 오히려 치솟기 시작했다. ("아, 지금부터 기출문제 번호를 달달 외우고 있구나!")
- 이 꺾이는 순간(변곡점)을 기계가 귀신같이 캐치해서, 미련 없이 훈련을 그 자리에서 즉시 중단(Stop)시키고 가장 점수가 좋았던 99 에폭 시점의 모델을 저장해버리는 타이밍의 예술이다.
📢 섹션 요약 비유: 학생이 특정 단원만 파고드는 것을 막기 위해, 선생님이 수업 시간마다 무작위로 교과서의 반 페이지(드롭아웃)를 찢어버린 채로 문제를 풀게 강제합니다. 그럼 학생은 찢어진 부분 없이 남은 단서만으로 억지로 추론하며 전체적인 응용력을 기르게 됩니다. 그리고 학생이 원리 이해를 멈추고 답을 외우기 시작하는 표정이 보이면(조기 종료) 즉시 펜을 뺏고 하교시켜 버리는 완벽한 사교육 차단 시스템입니다.