Skip to Content
독학사독학사 2단계머신러닝08. 릿지·라쏘 회귀와 정규화

이번 문서의 목표: L2 정규화(릿지)와 L1 정규화(라쏘)가 각각 손실함수에 어떤 항을 더하는지 수식으로 설명하고, 실제 숫자로 경사하강법 한두 스텝을 갱신해 두 방법의 계수 축소 방식이 어떻게 다른지, 왜 라쏘만 계수를 정확히 0으로 만들 수 있는지 계산으로 확인한다.

왜 정규화가 필요한가 — 회귀계수가 커지는 문제

08편에서 선형회귀는 평균제곱오차(Mean Squared Error, MSE)를 최소화하는 방향으로 계수(coefficient)를 추정한다고 배웠습니다. 그런데 데이터에 노이즈가 섞여 있거나, 특징(feature)들끼리 서로 강하게 관련되어 있는 다중공선성(Multicollinearity, 여러 독립변수가 서로 높은 상관관계를 가지는 현상)이 있으면, 훈련 데이터의 MSE를 조금이라도 더 줄이기 위해 계수가 비정상적으로 크게 튀는 경우가 생깁니다. 계수가 크다는 것은 입력값이 아주 조금만 바뀌어도 예측값이 크게 흔들린다는 뜻이고, 이는 훈련 데이터에는 잘 맞지만 새로운 데이터에는 잘 맞지 않는 과적합(Overfitting, 모델이 훈련 데이터의 노이즈까지 외워버려 일반화 성능이 떨어지는 현상)으로 이어집니다.

쉽게 말하면: 정규화(Regularization)는 “계수가 너무 커지지 않도록 손실함수에 벌점(penalty)을 추가하는 것”입니다.

1. L2 정규화와 릿지 회귀

릿지 회귀(Ridge Regression)는 기존 MSE 손실함수에 계수 제곱의 합을 벌점으로 더합니다. 이 벌점을 L2 정규화(L2 Regularization)라고 부르는데, L2는 벡터의 크기를 계수들의 제곱합의 제곱근으로 재는 유클리드 노름(Euclidean Norm)에서 따온 이름입니다.

Jridge(w)=1ni=1n(yiy^i)2+λj=1pwj2J_{ridge}(w) = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} w_j^2
  • Jridge(w)J_{ridge}(w): 릿지 회귀의 손실함수(비용함수) 값
  • nn: 훈련 데이터의 샘플 개수
  • yiy_i: ii번째 샘플의 실제 정답값
  • y^i\hat{y}_i (와이 햇): ii번째 샘플에 대한 모델의 예측값
  • λ\lambda (람다): 정규화의 세기를 조절하는 하이퍼파라미터(사람이 학습 전에 직접 정하는 값)
  • wjw_j: jj번째 특징에 곱해지는 회귀계수, pp: 특징(feature)의 개수

앞부분 1n(yiy^i)2\frac{1}{n}\sum(y_i-\hat{y}_i)^2은 08편에서 본 MSE와 같습니다. 뒷부분 λwj2\lambda \sum w_j^2이 새로 추가된 벌점항으로, 계수 wjw_j가 커질수록 이 값도 커지므로 손실함수를 최소화하려는 모델은 계수를 무작정 키우지 못하고 적당히 억제하게 됩니다.

2. L1 정규화와 라쏘 회귀

라쏘 회귀(Lasso Regression, Least Absolute Shrinkage and Selection Operator의 약자)는 계수의 제곱이 아니라 절댓값의 합을 벌점으로 더합니다. 이를 L1 정규화(L1 Regularization)라고 부릅니다.

Jlasso(w)=1ni=1n(yiy^i)2+λj=1pwjJ_{lasso}(w) = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 + \lambda \sum_{j=1}^{p} |w_j|
  • wj|w_j|: jj번째 계수의 절댓값(부호를 떼고 크기만 본 값)

제곱을 쓰느냐 절댓값을 쓰느냐가 사소한 차이처럼 보이지만, 뒤에서 실제 숫자로 확인하듯 이 차이가 변수 선택(Feature Selection, 중요하지 않은 특징의 계수를 정확히 0으로 만들어 모델에서 사실상 제외하는 것) 가능 여부를 가릅니다.

3. 실제 숫자로 확인하는 경사하강법 갱신 — 릿지 vs 일반 회귀

작은 예제로 시작합니다. 공부 시간(x)과 시험 점수(y)를 나타내는 데이터 4개가 있고, 절편은 이미 처리되었다고 가정해 기울기 계수 ww 하나만 봅니다.

xx1234
yy35710

현재 모델은 y^=wx\hat{y} = w \cdot x이고, 현재 계수 w=1w=1, 학습률(learning rate) η\eta (에타) =0.1=0.1이라고 합시다. 경사하강법(Gradient Descent)은 손실함수의 기울기(gradient) 반대 방향으로 계수를 조금씩 움직여 최소값을 찾는 방법입니다.

일반 선형회귀(정규화 없음)의 기울기 계산:

예측값은 w=1w=1일 때 y^=(1,2,3,4)\hat{y}=(1,2,3,4)이고, 오차 (y^iyi)(\hat{y}_i-y_i)(2,3,4,6)(-2,-3,-4,-6)입니다.

Jw=2ni=1n(y^iyi)xi=24[(2)(1)+(3)(2)+(4)(3)+(6)(4)]\frac{\partial J}{\partial w} = \frac{2}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)x_i = \frac{2}{4}\big[(-2)(1)+(-3)(2)+(-4)(3)+(-6)(4)\big] Jw=24×(44)=22\frac{\partial J}{\partial w} = \frac{2}{4} \times (-44) = -22 wnew=wηJw=10.1×(22)=3.2w_{new} = w - \eta \frac{\partial J}{\partial w} = 1 - 0.1 \times (-22) = 3.2

정규화가 없으면 ww11에서 3.23.2로 크게 뛰어오릅니다.

릿지 회귀(λ=0.5\lambda=0.5)의 기울기 계산: 릿지 벌점항 λw2\lambda w^2ww로 미분하면 2λw2\lambda w가 더해집니다.

Jridgew=22+2λw=22+2(0.5)(1)=21\frac{\partial J_{ridge}}{\partial w} = -22 + 2\lambda w = -22 + 2(0.5)(1) = -21 wnew,ridge=10.1×(21)=3.1w_{new,ridge} = 1 - 0.1 \times (-21) = 3.1

같은 데이터, 같은 학습률인데도 릿지는 ww3.13.1까지만 올립니다. 벌점항이 “너무 크게 가지 마라”고 제동을 건 셈입니다. 두 번째 스텝으로 검산해 보면 이 제동 효과가 누적됨을 확인할 수 있습니다.

2스텝째(일반 회귀, w=3.2w=3.2): 예측값 (3.2,6.4,9.6,12.8)(3.2,6.4,9.6,12.8), 오차 (0.2,1.4,2.6,2.8)(0.2,1.4,2.6,2.8)

Jw=24[(0.2)(1)+(1.4)(2)+(2.6)(3)+(2.8)(4)]=24(22)=11\frac{\partial J}{\partial w} = \frac{2}{4}\big[(0.2)(1)+(1.4)(2)+(2.6)(3)+(2.8)(4)\big] = \frac{2}{4}(22) = 11 wnew=3.20.1×11=2.1w_{new} = 3.2 - 0.1 \times 11 = 2.1

2스텝째(릿지, w=3.1w=3.1): 예측값 (3.1,6.2,9.3,12.4)(3.1,6.2,9.3,12.4), 오차 (0.1,1.2,2.3,2.4)(0.1,1.2,2.3,2.4)

Jw=24[(0.1)(1)+(1.2)(2)+(2.3)(3)+(2.4)(4)]=24(19.0)=9.5\frac{\partial J}{\partial w} = \frac{2}{4}\big[(0.1)(1)+(1.2)(2)+(2.3)(3)+(2.4)(4)\big] = \frac{2}{4}(19.0) = 9.5 Jridgew=9.5+2(0.5)(3.1)=9.5+3.1=12.6\frac{\partial J_{ridge}}{\partial w} = 9.5 + 2(0.5)(3.1) = 9.5+3.1 = 12.6 wnew,ridge=3.10.1×12.6=1.84w_{new,ridge} = 3.1 - 0.1 \times 12.6 = 1.84

두 스텝이 지난 뒤 일반 회귀는 w=2.1w=2.1, 릿지는 w=1.84w=1.84로 수렴하는 궤적 자체가 다릅니다. 릿지의 벌점 2λw2\lambda w계수의 크기에 비례하므로, ww가 클 때는 강하게, ww가 작아지면 약하게 제동을 겁니다. 이것이 릿지가 계수를 “0에 가깝게는 줄이지만 정확히 0으로 만들지는 못하는” 이유입니다 — 벌점 자체가 w0w \to 0이면 함께 00으로 사라지기 때문입니다.

4. 라쏘가 계수를 정확히 0으로 만드는 순간

라쏘의 벌점 λw\lambda|w|ww로 미분하면 w>0w>0일 때 λ\lambda, w<0w<0일 때 λ-\lambda부호(sign)만 나오고 크기는 항상 일정합니다. 이 차이가 변수 선택을 만들어내는 핵심입니다. 어떤 특징이 예측에 거의 기여하지 않아 MSE 쪽 기울기가 거의 00이라고 합시다. 현재 그 특징의 계수가 w=0.05w=0.05로 아주 작고, λ=0.5\lambda=0.5, η=0.1\eta=0.1이며 MSE 쪽 기울기는 00에 가깝다고 가정합니다.

Jlassow=0+λsign(w)=0.5×1=0.5\frac{\partial J_{lasso}}{\partial w} = 0 + \lambda \cdot \text{sign}(w) = 0.5 \times 1 = 0.5 wnew=0.050.1×0.5=0.050.05=0w_{new} = 0.05 - 0.1 \times 0.5 = 0.05 - 0.05 = 0

정확히 00이 됩니다. 같은 상황에서 릿지였다면 벌점이 2λw=2(0.5)(0.05)=0.052\lambda w = 2(0.5)(0.05)=0.05로 훨씬 작아서 wnew=0.050.1×0.05=0.045w_{new}=0.05-0.1\times0.05=0.045처럼 아주 조금만 줄어들고 절대 정확히 00에 닿지 못합니다. 라쏘의 벌점은 ww가 작아져도 크기가 줄지 않고 일정하게 밀어내므로, 기여가 작은 계수를 원점까지 밀어 넘길 수 있는 것입니다. 이 성질 때문에 라쏘는 자동으로 불필요한 특징의 계수를 00으로 만들어 변수 선택 효과를 내고, 릿지는 모든 특징을 조금씩 남겨둔 채 크기만 줄이는 계수 축소(Shrinkage)에 머무릅니다.

5. 정규화 강도 λ\lambda의 해석

λ\lambda는 “MSE를 줄이는 것”과 “계수를 작게 유지하는 것” 사이의 균형을 조절하는 손잡이입니다.

λ\lambda효과위험
λ=0\lambda = 0벌점이 사라져 일반 선형회귀와 동일과적합 위험이 그대로 남는다
λ\lambda가 작음계수를 약하게만 축소여전히 과적합 여지가 있다
λ\lambda가 적절함훈련 오차는 조금 늘어도 검증·시험 데이터 성능이 개선됨교차검증(19편)으로 최적값을 찾아야 한다
λ\lambda가 매우 큼계수가 거의 다 00에 가까워짐모델이 지나치게 단순해져 과소적합(Underfitting)이 생긴다

λ\lambda는 사람이 직접 정하거나 교차검증으로 탐색하는 하이퍼파라미터(Hyperparameter, 학습 과정에서 데이터로부터 자동으로 정해지는 파라미터와 달리 학습 전에 미리 정해두는 값)입니다. 이 값 자체를 데이터에 완전히 맡길 수 없다는 점이 자주 출제되는 포인트입니다.

6. 릿지·라쏘·일반 회귀 비교

구분일반 선형회귀릿지(L2)라쏘(L1)
벌점항없음λwj2\lambda\sum w_j^2λwj\lambda\sum \lvert w_j \rvert
계수를 정확히 0으로 만드는가해당 없음만들지 못한다(축소만)만들 수 있다(변수 선택)
다중공선성에 강한가약하다강하다상대적으로 약하다(상관된 변수 중 하나만 남기는 경향)
해석계수 부호·크기 그대로 해석계수가 전반적으로 작아짐일부 계수가 사라져 모델이 단순해짐
적합한 상황특징이 적고 과적합 우려가 낮을 때특징이 많고 서로 관련이 있을 때특징 중 일부만 진짜 중요할 때

자주 틀리는 점: “릿지와 라쏘 둘 다 계수를 0으로 만들 수 있다”는 설명은 틀렸습니다. 정확히 0으로 만드는 것은 라쏘의 고유한 특성이며, 릿지는 계수를 작게 줄일 뿐 0으로 만들지 못합니다. 또한 “λ\lambda가 클수록 항상 좋다”는 설명도 틀렸습니다 — λ\lambda가 지나치게 크면 과소적합이 생깁니다.

핵심 정리

  • 릿지(L2)는 계수 제곱합 λwj2\lambda\sum w_j^2을, 라쏘(L1)는 계수 절댓값합 λwj\lambda\sum|w_j|을 MSE에 더해 계수가 커지는 것을 억제한다.
  • 실제 경사하강법 계산에서 릿지의 벌점 기울기 2λw2\lambda www에 비례해 작아지므로 정확히 0에 도달하지 못하지만, 라쏘의 벌점 기울기 λsign(w)\lambda \cdot \text{sign}(w)는 크기가 일정해 작은 계수를 정확히 0으로 밀어낼 수 있다(변수 선택).
  • λ\lambda는 하이퍼파라미터로, 0이면 일반 회귀와 같고 너무 크면 과소적합이 생기므로 교차검증으로 적절한 값을 찾는다.

마무리 복습

문제 14지선다
릿지 회귀와 라쏘 회귀의 벌점항을 옳게 짝지은 것은?
문제 24지선다
본문의 경사하강법 예제에서 w=1, 학습률 0.1, MSE 기울기가 -22일 때, 람다=0.5인 릿지 회귀의 1스텝 후 계수 값은?
문제 34지선다
라쏘 회귀가 릿지 회귀와 달리 계수를 정확히 0으로 만들 수 있는 이유로 가장 적절한 것은?
문제 44지선다
정규화 강도 lambda에 대한 설명으로 옳지 않은 것은?
문제 54지선다
다중공선성(서로 상관관계가 높은 특징들)이 있는 데이터에서 모든 특징을 유지하면서 계수만 안정적으로 줄이고 싶을 때 가장 적절한 방법은?
문제 64지선다
특징이 100개인데 실제로 예측에 기여하는 특징은 5개뿐이라고 알려져 있을 때, 변수 선택 효과를 얻기 위해 가장 적절한 방법은?
문제 74지선다
릿지 회귀의 손실함수 J_ridge(w) = MSE + lambda * sum(w_j^2)에서 lambda*sum(w_j^2) 항의 역할로 가장 적절한 것은?

참고 자료

Last updated on