Ch.11
규제 (Regularization): 암기왕의 한계 극복하기
머신러닝 모델이 문제집의 정답만 달달 외우는 '암기왕'이 되는 것을 막아주는 핵심 기술입니다. 훈련 데이터에 너무 꼭 맞추려다 보면, 조금만 다른 새로운 문제가 나와도 쩔쩔매게 되는데 이를 과적합(Overfitting)이라고 부릅니다. 규제(Regularization)는 모델이 '데이터의 오차'를 줄이는 동시에 '너무 복잡하고 억지스러운 수식을 만들지 않도록' 페널티(벌점)를 부여합니다. 이를 통해 잔가지는 쳐내고 진짜 중요한 패턴만 깨우친, 실전(일반화)에 강한 모델을 만들어냅니다.
챕터별 머신러닝 도식화
챕터를 선택하면 아래 도식이 해당 챕터 내용으로 바뀌어요. 머신러닝 흐름을 한눈에 보세요.
손실을 줄일 때 '데이터 오차'뿐 아니라 '모델이 너무 복잡해지는 것'에 페널티를 더해, 암기왕이 아니라 원리를 아는 모델을 만듭니다.
① 규제 없음 — 훈련 손실만 줄이면 훈련 데이터에 과하게 맞춤(과적합)
② 규제 도입 — 손실 = 데이터 손실 + λ × 페널티. λ가 크면 가중치가 억제됨
③ L2 규제 — 가중치 제곱합 을 페널티로 더해 가중치를 작게 유지
④ L1 규제 — 가중치 절댓값 를 더해 일부 가중치를 0으로 만들어 스파스함
⑤ 일반화 — 적당한 λ로 훈련·검증 모두에서 잘 맞는 모델을 얻음
규제: 손실 + λ·페널티로 과적합을 막고 일반화 성능을 높입니다.
규제: 암기왕의 한계 극복하기
규제(Regularization)란? 복잡함에 가하는 '벌점'
모델이 훈련 데이터의 사소한 노이즈나 예외 상황까지 억지로 맞추려다 보면 모델의 수식이 꼬불꼬불하고 쓸데없이 복잡해집니다. 규제는 모델의 총 손실(Loss)을 계산할 때, 단순히 '정답과 얼마나 틀렸는가(오차)'에만 신경 쓰지 않고 '모델이 얼마나 복잡한가(가중치의 크기)'를 더해 벌점을 줍니다. 벌점을 받기 싫은 모델은 자연스럽게 더 단순하고 깔끔한 형태를 유지하게 됩니다.
직관적 비유: 벼락치기 암기왕 vs 원리를 파고드는 학생
문제집(훈련 데이터)의 숫자 하나하나까지 외워버린 벼락치기 학생은 모의고사 점수는 100점이지만, 수능(새로운 데이터)에서는 참패합니다. 반면 원리를 이해한 학생은 모의고사에서 한두 개 틀릴지언정 수능에서는 흔들리지 않고 고득점을 받습니다. 규제는 모델에게 '잔가지(과도한 가중치)를 쳐내고 큰 줄기(핵심 패턴)만 보라'고 강제하여 실전 융통성을 길러주는 선생님 같은 역할을 합니다.
수학적 형태: 두 가지 마법의 수식 (L1과 L2)
규제는 모델에 벌점을 주는 방식에 따라 크게 두 가지로 나뉩니다.
- L2 규제 (Ridge): 가중치의 제곱을 벌점으로 사용합니다. 목표 함수는 가 됩니다. 가중치가 너무 커지는 것을 둥글둥글하게 골고루 눌러줍니다.
- L1 규제 (Lasso): 가중치의 절댓값을 벌점으로 사용합니다. 목표 함수는 가 됩니다. 덜 중요한 특징의 가중치를 아예 0으로 만들어버려서, 핵심 특징만 남기는(스파스) 특징이 있습니다.
실생활 예시: 스팸 메일 필터링과 의료 진단
스팸 메일을 걸러낼 때, 훈련 메일에 우연히 들어있던 평범한 단어('안녕하세요' 등)에 높은 가중치를 주면 정상 메일도 스팸으로 걸러내는 끔찍한 실수를 합니다. 이때 규제를 적용하면 특정 단어 하나에만 집착하는(가중치가 폭발하는) 현상을 막아줍니다. 의료 진단에서도 수많은 환자 데이터 중 '환자복 색깔' 같은 무의미한 정보에 AI가 속지 않도록 돕습니다.
수식 읽기: 초보자를 위한 수식 해부
- 총 손실 수식 (L2 예시):
- (제이): 우리가 최종적으로 제일 작게(최소화) 만들고 싶은 '최종 성적표'입니다. 이 값이 작을수록 좋은 모델입니다.
- : 예측값과 실제 정답이 얼마나 차이 나는지 보여주는 '오차 점수'입니다.
- (람다): 우리가 직접 설정하는 '벌점의 강도'입니다. 이 값이 커지면 호랑이 선생님처럼 복잡한 모델에 엄청난 벌점을 내리고, 작아지면 벌점을 거의 주지 않습니다.
- (L2 페널티): 모델이 가진 모든 가중치()를 제곱해서 더한 값입니다. 가중치가 조금이라도 커지면 이 값이 확 늘어나서 가 커지므로, 모델은 알아서 가중치를 작게 유지하려고 노력합니다.
- L1 페널티 ()
- L2가 제곱을 썼다면, L1은 가중치의 절댓값()을 씁니다. L1은 마치 깐깐한 정리 정돈 전문가 같아서, 쓸모없는 가중치는 가차 없이 0으로 지워버립니다.
실전(일반화) 성능이 진정한 목표이기 때문입니다
머신러닝의 진정한 가치는 연습할 때가 아니라 '처음 보는 데이터(테스트 데이터)'를 만났을 때 빛을 발해야 합니다. 규제를 적용하면 훈련 데이터에서의 정확도는 살짝 떨어질 수 있지만, 실전에서의 정확도는 훨씬 높아집니다. 이처럼 미지의 데이터에도 잘 대응하는 능력을 일반화(Generalization)라고 합니다.
균형의 미학: 편향-분산 트레이드오프 (Bias-Variance Tradeoff)
모델이 너무 단순하면 문제를 아예 못 푸는 편향(Bias, 과소적합)이 커지고, 너무 복잡하면 데이터의 노이즈까지 외우는 분산(Variance, 과적합)이 커집니다. 이 둘은 시소 같아서 하나가 내려가면 하나가 올라갑니다. 규제 강도 를 조절하는 것은 이 시소의 완벽한 수평(균형점)을 찾는 과정입니다.
인간의 몫: (하이퍼파라미터) 찾기
는 AI가 스스로 학습하는 값이 아니라, 사람이 직접 세팅해 주어야 하는 다이얼(하이퍼파라미터)입니다. 다이얼을 너무 세게 돌리면 모델이 바보가 되고, 너무 약하게 돌리면 다시 암기왕이 됩니다. 그래서 여러 개의 값을 돌려보고 가장 실전 성적이 좋은 값을 찾아내는 과정이 꼭 필요합니다.
기본 모델에 날개 달기 (Ridge & Lasso)
우리가 흔히 쓰는 선형 회귀나 로지스틱 회귀 수식 끝에 방금 배운 L1, L2 벌점 수식을 슬쩍 더해주기만 하면 됩니다.
- 선형 회귀 + L2 규제 = 릿지(Ridge) 회귀
- 선형 회귀 + L1 규제 = 라쏘(Lasso) 회귀
컴퓨터가 알아서 벌점이 포함된 총 손실을 줄이는 방향(경사 하강법 등)으로 학습하며 가중치를 조절해 줍니다.
실무에서의 3단계 파이프라인 (적용 순서)
실무에서는 다음 순서로 규제를 다룹니다.
1. 데이터 분할: 전체 데이터를 [훈련용 / 검증용 / 테스트용]으로 나눕니다.
2. 오디션 진행: 값을 0.01, 0.1, 1, 10 등 다양하게 바꿔가며 훈련용 데이터로 여러 개의 모델을 만듭니다.
3. 우승자 선정 및 실전 투입: 검증용 데이터로 시험을 쳐서 가장 점수가 높은 모델을 최종 우승자로 뽑습니다. 그리고 마지막으로 테스트용 데이터로 단 한 번의 최종 실력을 평가합니다.
정리 — 이 챕터에서는 규제(Regularization)의 역할과 수식, 활용을 정리했습니다.
① 목적 — 규제는 모델이 훈련 데이터에만 과하게 맞추는 과적합을 완화하기 위해, 손실 함수에 페널티를 더하는 방법입니다. 훈련 오차만 줄이는 것이 아니라, 모델 복잡도를 억제하는 항을 더해 일반화 성능을 높입니다.
② 총 손실 — 총 손실은 데이터 오차(예: MSE)와 규제 항(λ×페널티)의 합입니다. λ(람다)가 클수록 페널티가 커져 가중치가 억제되고, 더 단순한 모델이 됩니다. λ는 사람이 정하는 하이퍼파라미터이며, 보통 교차 검증으로 선택합니다.
③ L2 vs L1 — L2 규제(Ridge)는 가중치 제곱합 을 페널티로 써 가중치를 골고루 작게 유지합니다. L1 규제(Lasso)는 절댓값 합 를 써 일부 가중치를 정확히 0으로 만들어 스파스한 모델을 만듭니다.
④ 활용 — 실무에서는 선형·로지스틱 회귀에 Ridge(L2)·Lasso(L1)를 적용하고, 검증 성능을 보고 λ를 고릅니다. 풀이에 필요한 수식과 예시는 아래 문제 풀이를 위한 설명에서 확인하세요.