규제의 기술: 과적합과의 싸움
딥러닝 모델이 강력해질수록 역설적이게도 하나의 위험이 커진다. 바로 과적합이다. 모델이 훈련 데이터를 너무 완벽하게 외워버려서 실제 세상에서는 제대로 작동하지 못하는 현상. 오늘은 이 과적합을 막기 위한 다양한 규제 기법들, 그리고 그 이면에 숨겨진 수학적 원리에 대해 이야기해보려 한다.
용량의 딜레마
모델의 용량과 성능의 관계는 단순하지 않다. 그래프로 보면 흥미로운 패턴이 나타난다. 훈련 집합에 대한 오류는 모델이 커질수록 계속 감소한다. 당연하다. 큰 모델일수록 더 복잡한 패턴을 학습할 수 있으니까. 하지만 테스트 집합은 다르다. 처음에는 오류가 감소하지만, 어느 순간부터 다시 증가하기 시작한다. 이 전환점이 바로 과적합이 시작되는 지점이다.
과적합 구간은 훈련 오류와 테스트 오류의 차이가 큰 구간이다. 일반화 간극이 벌어지는 것이다. 모델은 훈련 데이터에서는 완벽하지만, 새로운 데이터에서는 형편없다. 반대편 극단도 있다. 모델 용량이 너무 작으면 어떻게 될까? 훈련 오류도 크고 테스트 오류도 크다. 복잡한 결정 경계를 그려야 하는데 직선밖에 못 그리는 상황이다. 이것이 과소적합이다.
이상적인 지점은 딱 그 중간, 테스트 오류가 증가하기 직전이다. 하지만 현대 딥러닝은 다른 전략을 택했다. 모델 크기를 계속 바꿔가며 최적의 용량을 찾는 대신, 일단 큰 모델을 만든다. 그리고 규제를 걸어서 학습 과정에서 실효 용량을 조절한다. VGGNet 같은 경우 분류층만 해도 1억 개가 넘는 파라미터를 가진다. 규제 없이는 암기에 빠지기 쉽다.
규제란 무엇인가
수학에서 규제는 오래된 주제다. 특히 불량 조건 문제에서 자주 쓰인다. Ill-posed problem. 관측보다 추정해야 할 파라미터가 더 많은 경우다.
간단한 예를 들어보자. w₁ + w₂ = 1이라는 관측이 하나 있다. 하지만 구해야 할 변수는 w₁과 w₂ 두 개다. 해가 무한히 많다. (0.5, 0.5)도 되고 (0.3, 0.7)도 되고 (0.9, 0.1)도 된다. 이럴 때 어떻게 할까? 단서를 단다. "w₁과 w₂는 0.5보다 크고 1보다 작다"같은 제약을 추가하면 해의 범위가 좁혀진다. 이것이 규제의 본질이다.
딥러닝에서 가장 널리 쓰이는 단서는 매끄러움이다. "입력과 출력 사이의 매핑은 자연 상태에서 매끄럽다"는 사전 지식이다. 매끄러운 함수는 어떤 모양일까? 입력 1, 2, 3, 4가 출력에서도 1, 2, 3, 4 순서대로 나온다. 간격도 비슷하게 유지된다. 반대로 매끄럽지 않은 함수는? 1은 저쪽, 2는 이쪽, 3은 또 저쪽으로 중구난방이다. 자연에서 이런 함수는 드물다는 것이 핵심 가정이다.
목적 함수의 재구성
규제를 적용하면 목적 함수가 바뀐다. 원래는 J(θ; x, y)만 최소화했다. 손실 함수 하나만. 이제는 J(θ; x, y) + λR(θ)를 최소화한다. 두 개의 목적이 생긴 것이다.
첫 번째 목적은 원래의 목적이다. MSE를 줄이거나 Cross Entropy를 줄이는 것. 데이터를 잘 맞추는 것이다. 두 번째 목적은 매끄러움이다. 함수가 부드러운 곡선을 갖도록 하는 것이다. λ는 둘 사이의 균형을 조절한다. 데이터셋에 따라 λ를 0.1로 할 수도 있고 100으로 할 수도 있다. 과적합이 심한 데이터라면 λ를 크게 해서 규제를 강화한다.
여기서 중요한 차이가 있다. J는 x와 y에 조건화되어 있다. 데이터에 의존한다. 데이터가 달라지면 목적 함수 모양도 달라진다. 하지만 R(θ)는? 데이터와 무관하다. 순수하게 파라미터만의 함수다. "모든 함수는 부드럽다"는 자연의 사전 지식을 표현한 것이다.

가중치 감쇠의 원리
매끄러운 가정을 어떻게 수식으로 표현할까? 가중치 감쇠가 그 답이다. 함수가 뾰족하려면 어떻게 해야 할까? 가중치가 커야 한다. -90000×x₁ + 100000×x₂ - 1000000×x₃ 같은 식으로. 큰 계수들이 급격한 변화를 만든다. 반대로 부드러운 함수는? 가중치가 0에 가깝다. 따라서 가중치를 0에 가깝게 만들면 함수가 부드러워진다.
가중치 감쇠는 모델의 용량을 조절한다. 용량에는 두 종류가 있다. 구조적 용량과 수치적 용량. 구조적 용량은 파라미터의 개수다. 네트워크가 몇 층인지, 노드가 몇 개인지. 학습 전에 결정된다. 수치적 용량은 각 가중치가 가질 수 있는 값의 범위다. -∞에서 +∞인가, 아니면 -0.1에서 0.1인가. 가중치 감쇠는 수치적 용량을 줄인다. 값의 범위를 제한해서 표현력을 제한하는 것이다.
L2 Regularization: 제곱의 힘
규제항으로 무엇을 쓸까? 가장 흔한 선택은 L2 놈이다. R(w) = w₁² + w₂² + ... + wₐ². 제곱의 합이다. 이것을 목적 함수에 더하면 어떤 일이 일어날까?
최적화는 이제 두 가지를 동시에 하려 한다. 원래 손실을 줄이면서, 동시에 가중치 제곱의 합도 줄인다. 가중치를 0에 가깝게 만드는 압력이 생긴다. 미분해보면 그 메커니즘이 명확해진다.
L2 규제항을 미분하면 2λw가 나온다. 그래디언트에 이 항이 추가된다. 업데이트 식을 정리하면 놀라운 형태가 나온다. θ_new = θ_old × (1 - 2λη) - η∇J. 원래 theta에 (1 - 2λη)를 곱한다. 학습률이 0.01이고 λ가 1이라면? (1 - 0.02) = 0.98을 곱한다. 매 스텝마다 가중치의 98%만 유지한다. 2%씩 깎아먹는 것이다.
그림으로 보면 더 명확하다. 원래 theta에서 그래디언트만큼 업데이트한 다음, 원점으로 약간 수축한다. 정확히 (1 - 2λη)배만큼. 이것이 "감쇠"라는 이름의 유래다.


L2의 비선형성
L2 규제의 흥미로운 특성이 있다. w가 1000일 때와 1일 때를 비교해보자. 둘 다 0.9를 곱한다고 하자. 1000은 100이 깎여서 900이 된다. 1은 0.1이 깎여서 0.9가 된다. 비율은 같지만 절댓값 변화는 천지 차이다.
먼 곳에 있을 때는 빠르게 원점으로 날아온다. 100씩 깎이니까. 하지만 원점에 가까워질수록 느려진다. 0.1씩만 깎이니까. 하지만 결코 0에 도달하지는 못한다. 0에 무한히 가까워질 뿐이다. 수학적으로 점근적 수렴이다.
Linear Regression에서의 L2
L2 규제의 효과를 Linear Regression에서 명확히 볼 수 있다. Linear Regression은 y = wx의 간단한 모델이다. Activation 함수가 없는 Perceptron이라고 볼 수 있다. 목적 함수는 MSE다. ||xw - y||². 여기에 L2 규제를 더한다.
놀라운 점은 이 문제가 미분 한 방으로 풀린다는 것이다. 아래로 볼록한 2차 함수니까. 미분해서 0이 되는 점이 최솟값이다. 정리하면 w = (X^T X + 2λI)^(-1) X^T y가 나온다.
원래는 w = (X^T X)^(-1) X^T y였다. 분모에 2λI가 추가됐다. λ가 커지면? 분모가 커지니 w가 작아진다. 규제가 강할수록 가중치가 줄어드는 것이 수식으로 증명된다. X^T X는 공분산 행렬이다. 특징들 간의 상관관계를 담고 있다. 데이터로부터 오는 값이라 우리가 어쩔 수 없다. 하지만 λ는 조절할 수 있다. λ로 w를 통제하는 것이다.
L2 규제를 쓴 Linear Regression을 Ridge Regression이라고 부른다. 통계학에서 온 이름이다.



L1 Regularization: 절댓값의 날카로움
L2도 좋지만 한계가 있다. 0에 가까워지기만 할 뿐 0이 되지 못한다. 그래서 등장한 것이 L1 놈이다. R(w) = |w₁| + |w₂| + ... + |wₐ|. 절댓값의 합이다.
L1의 미분은 독특하다. w > 0이면 +1, w < 0이면 -1. sign(w) 함수다. 원점에서는? 미분이 안 된다. 하지만 실전에서는 정확히 0이 나올 확률이 거의 없다. 실수 연산이니까. 설령 나와도 +1이나 -1로 처리하면 된다.
그래디언트 업데이트는 어떻게 될까? θ_new = θ_old - η∇J - ηλ sign(θ). L2와 다르다. L2는 theta에 비례했다. 비율로 깎았다. L1은 상수다. ηλ라는 고정된 값만큼 무조건 원점으로 당긴다. θ가 +면 -방향으로, -면 +방향으로. 항상 원점을 향해.


L1 vs L2: 두 거인의 대결
두 규제를 비교해보자. theta가 멀리 있을 때. L2는 제곱이니까 엄청난 힘으로 당긴다. 1000이면 1000²의 그래디언트. L1은? 항상 일정하다. 상수 ηλ만큼만. L2가 압도적이다.
하지만 원점 가까이에서는 역전된다. L2는 약해진다. 비율이니까. theta가 0.01이면 0.01배만큼만. 미미하다. L1은? 여전히 ηλ다. 변함없다. 작은 값에도 일정한 힘으로 밀어붙인다. 결과적으로 0에 도달할 확률이 높다.
이것이 L1의 핵심 특성이다. Sparsity. 0이 되는 파라미터가 많다는 것. 이것이 좋은 걸까? 매우 좋다. 왜? 계산을 안 해도 되니까.
예를 들어보자. 악력을 예측하는 모델이다. y = w₁×키 + w₂×몸무게 + w₃×MBTI. 키와 몸무게는 악력과 관련 있다. 하지만 MBTI는? 관련 없다. L1 규제를 하면 w₃가 0이 된다. 그러면? w₃×MBTI 계산을 아예 안 하면 된다. 곱셈 한 번 절약. 모델 경량화다.
L1은 Feature Selection 효과가 있다. 의미 있는 특징은 0이 아닌 가중치로 남긴다. 의미 없는 특징은 0으로 만들어 버린다. 자동으로 중요한 특징을 골라주는 것이다. 선형 모델에 L1을 쓰면 입력 차원까지 줄일 수 있다. 수치적 용량뿐 아니라 구조적 용량도 줄어든다. L1 규제를 쓴 Linear Regression을 Lasso Regression이라고 한다.
기하학적 관점
왜 L1이 더 sparse할까? 기하학으로 보면 명확하다. 2차원으로 생각해보자. w₁과 w₂ 두 가중치가 있다.
L1 규제는 |w₁| + |w₂| ≤ 1. 이것을 그리면? 마름모다. 꼭짓점이 네 개 있다. 각 꼭짓점은 한 가중치가 0인 지점이다. 예를 들어 한 꼭짓점은 w₁ = 0, w₂ = 1이다.
이제 손실 함수 등고선을 그려보자. 0, 1, 2, 3... 마름모 안에서 해를 찾아야 한다. 가능한 해가 여러 개다. 어느 것을 선택할까? 당연히 손실이 가장 작은 곳. 마름모가 등고선에 처음 닿는 점이다.
흥미로운 사실은 이 점이 꼭짓점일 확률이 높다는 것이다. 마름모는 뾰족하니까. 등고선이 어디서 오든 꼭짓점에 먼저 부딪힐 가능성이 크다. 꼭짓점은 sparse solution이다. 한 가중치가 0이니까.
L2는 어떨까? w₁² + w₂² ≤ 1. 원이다. 꼭짓점이 없다. 모든 점의 곡률이 같다. 등고선이 어디서 오든 원 전체에 골고루 닿을 수 있다. 특정 위치가 선호되지 않는다. 결과적으로 0이 될 확률이 L1보다 낮다.
마름모의 꼭짓점이라는 기하학적 특성이 sparsity를 만드는 것이다. 놀랍게 직관적인 설명이다.

규제의 스펙트럼
L1과 L2만 있는 게 아니다. Lp 놈의 일반적 형태가 있다. R(w) = (|w₁|^p + |w₂|^p + ...)^(1/p). p를 바꾸면 어떻게 될까?
p = 2: L2. 원 모양. p = 1: L1. 마름모 모양. p → ∞는? L∞ 놈이다. 정의는 max(|w₁|, |w₂|, ...). 가장 큰 절댓값만 본다. 모양은? 정사각형이다. 한 변이 1인 정사각형. Sparsity는? L1보다 낮다. 꼭짓점은 있지만 변 전체도 평평하니까.
반대로 p < 1은? 예를 들어 p = 0.5. 더 뾰족해진다. 안으로 움푹 들어간 모양. 꼭짓점이 더 날카롭다. Sparsity는? 더 높아진다. 실제로 쓸 수 있을까? 계산이 복잡하다. 루트가 들어가니까. 그래서 잘 안 쓴다.
극단은 p = 0이다. L0 놈. 정의는 non-zero 원소의 개수. 100개 중 20개가 0이 아니면 20을 반환한다. 모양은? 십자가다. w₁ = 0인 축과 w₂ = 0인 축. 하나는 반드시 0이어야 한다. 완벽한 sparsity다.
왜 안 쓸까? 미분이 안 된다. 개수를 세는 건 if-else 로직이다. 미분 불가능하다. 이론적으로는 최고지만 실용적이지 않다.
흥미로운 질문이 나왔다. "L1과 L2를 섞으면?" λ₁L1 + λ₂L2. Elastic Net이라고 부른다. 모양은? 마름모와 원의 중간. 꼭짓점이 약간 둥글어진다. Sparsity는 L1과 L2 사이. 유연하게 조절할 수 있다는 장점이 있다.
명시적 규제와 암시적 규제
규제에는 두 종류가 있다. 인간 사회의 법과 도덕처럼.
명시적 규제는 법이다. 직접적이다. 가중치 감쇠로 수치적 용량을 줄인다. 쓸모없는 필터를 제거해서 구조를 직접 수정한다. 목적 함수에 명시적으로 규제항을 추가한다.
암시적 규제는 도덕이다. 간접적이다. 조기 멈춤(Early Stopping)이 대표적이다. Validation error가 증가하기 시작하면 학습을 중단한다. 과적합이 시작되는 순간 멈추는 것이다. 데이터 증강도 암시적 규제다. 데이터가 많으면 과적합이 줄어든다. 잡음 추가도 마찬가지다. 약간의 노이즈가 일반화를 돕는다.
현대 딥러닝은 사용 가능한 모든 규제를 총동원한다. 명시적이든 암시적이든. 과적합은 그만큼 심각한 문제다.
마무리하며
규제는 예술이다. 너무 강하면 과소적합, 너무 약하면 과적합. 적절한 균형이 필요하다. L1은 sparse solution을 만든다. Feature selection과 모델 경량화. L2는 부드러운 solution을 만든다. 안정적인 학습. 둘의 차이는 제곱과 절댓값, 비례와 상수, 원과 마름모로 요약된다.
수학적으로 우아하고, 기하학적으로 직관적이며, 실용적으로 효과적이다. 딥러닝의 성공은 이런 섬세한 규제 기법들 위에 세워졌다. 모델을 크게 만들되 규제로 제어한다. 표현력을 최대화하되 일반화를 보장한다. 이것이 현대 딥러닝의 전략이다.