잘난 척을 위한 한 줄 요약
L1·L2 규제는 모델에게 “훈련 데이터를 너무 열심히 외우지 말고, 중요한 변수만 적당한 크기로 써라”라고 벌점을 주는 방법이고, Ridge는 전부 조금씩 줄이고, Lasso는 일부를 아예 빼고, Elastic Net은 둘을 섞는다.
L1 규제, L2 규제, Ridge·Lasso·Elastic Net: 모델은 왜 일부러 ‘덜 맞게’ 만들어야 할까?
먼저, 왜 규제가 필요할까
머신러닝 모델은 훈련 데이터를 잘 맞히는 것이 목표다. 문제는 너무 잘 맞히려다 보면 훈련 데이터에만 있는 우연한 패턴, 잡음, 예외까지 외워버릴 수 있다는 점이다.
예를 들어 집값을 예측하는 모델이 있다고 해보자.
면적, 역과의 거리, 방 개수, 연식 같은 정보로 집값을 예측하는 것은 자연스럽다. 그런데 학습 데이터가 적거나 변수가 너무 많으면 모델은 별로 중요하지 않은 변수까지 과하게 믿을 수 있다.
“이 집은 현관문 색이 파란색이라 가격이 높다.”
“특정 동네의 우편번호 끝자리가 7이라 비싸다.”
“훈련 데이터에만 우연히 있던 조건이 집값을 결정한다.”
이런 식으로 훈련 데이터에는 잘 맞지만, 새 데이터에서는 성능이 떨어지는 현상을 과적합(overfitting)이라고 한다.
규제(regularization)는 이런 과적합을 줄이기 위해 모델의 복잡도에 벌점을 주는 방법이다.
Stanford CS229 강의노트는 규제를 “데이터 적합도에 더해, 파라미터 크기를 작게 유지하도록 하는 항을 목적함수에 추가하는 방식”으로 설명한다.
쉽게 말하면 이렇다.
모델이 훈련 데이터를 잘 맞히는 것만 평가하지 않는다.
“계수가 너무 크면 벌점”도 함께 준다.
그래서 모델이 극단적인 판단을 덜 하도록 만든다.
규제는 손해를 보는 방법이 아니라 일반화 성능을 얻는 방법
처음에는 이상하게 들릴 수 있다.
“훈련 데이터를 더 잘 맞히면 좋은 것 아닌가?”
“왜 일부러 벌점을 줘서 성능을 낮추지?”
하지만 머신러닝의 목표는 훈련 문제집을 많이 맞히는 것이 아니다. 처음 보는 시험 문제에서도 잘 맞히는 것이다.
훈련 데이터 오차만 줄이면 모델은 외운 학생처럼 될 수 있다. 반면 규제를 넣으면 훈련 성능은 아주 조금 떨어질 수 있지만, 새로운 데이터에서는 더 안정적인 예측을 할 가능성이 커진다.
이것을 일반화(generalization)라고 한다.
정리하면,
훈련 데이터에 딱 맞는 모델이 항상 좋은 모델은 아니다.
새 데이터에서도 잘 작동하는 모델이 좋은 모델이다.
규제는 그 균형을 잡는 장치다.
기본 구조: 오차 + 벌점
선형회귀를 예로 들면, 원래는 예측값과 실제값의 차이를 줄이는 것이 목표다.
손실함수 = 예측 오차
규제를 넣으면 이렇게 바뀐다.
손실함수 = 예측 오차 + 규제 강도 × 벌점
여기서 중요한 값이 보통 λ 또는 alpha로 표현되는 규제 강도다.
- 규제 강도가 작으면: 원래 회귀모델에 가까움
- 규제 강도가 크면: 계수를 더 강하게 줄임
- 너무 약하면: 과적합 위험
- 너무 강하면: 중요한 변수까지 죽여서 과소적합 위험
즉, 규제는 “넣는다 vs 안 넣는다”의 문제가 아니라, 얼마나 강하게 넣을 것인가의 문제다.
scikit-learn 문서도 Ridge·Lasso·Elastic Net에서 alpha를 규제 강도를 조절하는 값으로 사용한다.
L1 규제와 L2 규제는 무엇이 다를까
L1과 L2의 차이는 벌점을 계산하는 방식에 있다.
L1 규제
L1 규제는 계수의 절댓값을 더해서 벌점을 준다.
L1 벌점 = |β₁| + |β₂| + |β₃| + ...
L1 규제가 들어간 대표 모델이 Lasso 회귀다.
L2 규제
L2 규제는 계수를 제곱해서 벌점을 준다.
L2 벌점 = β₁² + β₂² + β₃² + ...
L2 규제가 들어간 대표 모델이 Ridge 회귀다.
가장 중요한 차이
L1은 일부 계수를 정확히 0으로 만들 수 있다.
L2는 계수를 작게 줄이지만, 보통 정확히 0으로 만들지는 않는다.
이 차이가 실제 모델 선택에서 매우 중요하다.
Ridge 회귀: 모든 변수를 조금씩 줄이는 방식
Ridge Regression은 L2 규제를 사용하는 회귀모델이다.
기본 목적함수는 대략 이렇게 표현할 수 있다.
예측 오차 + λ × (β₁² + β₂² + β₃² + ...)
Ridge는 계수가 너무 커지는 것을 막는다. 하지만 대부분의 변수를 완전히 제거하지는 않는다.
예를 들어 집값 예측에 변수가 30개 있다고 해보자.
일반 선형회귀에서는 어떤 변수의 계수가 지나치게 커질 수 있다.
Ridge는 모든 계수를 조금씩 줄인다.
그래서 특정 변수 하나가 모델을 지배하는 것을 완화한다.
scikit-learn은 Ridge를 최소제곱 손실에 L2 규제를 더한 선형회귀 모델이라고 설명한다.
Ridge가 잘 맞는 상황
Ridge는 특히 변수끼리 서로 비슷한 정보를 담고 있을 때 유용하다.
예를 들어 집값 예측에서 다음 변수가 있다고 해보자.
- 지하철역까지 거리
- 버스정류장까지 거리
- 도심까지 이동시간
- 상권 접근성 점수
이 변수들은 서로 어느 정도 연관돼 있을 수 있다. 이런 경우 일반 회귀는 어느 한 변수의 계수를 과하게 키우거나 불안정하게 만들 수 있다.
Ridge는 관련 있는 변수들의 영향을 완만하게 나눠 가지도록 도와준다.
즉, Ridge는 이런 상황에 가깝다.
“변수는 다 어느 정도 의미가 있어 보이는데, 계수들이 너무 요동치지 않게 만들고 싶다.”
Lasso 회귀: 중요하지 않은 변수를 아예 빼는 방식
Lasso Regression은 L1 규제를 사용하는 회귀모델이다.
기본 목적함수는 대략 이렇게 표현할 수 있다.
예측 오차 + λ × (|β₁| + |β₂| + |β₃| + ...)
Lasso의 가장 큰 특징은 일부 계수를 정확히 0으로 만들 수 있다는 점이다.
즉, 중요하지 않다고 판단한 변수는 모델에서 사실상 제거한다.
scikit-learn은 Lasso를 L1 규제를 통해 희소한 계수, 즉 많은 계수가 0인 모델을 추정하는 선형모델이라고 설명한다.
Lasso가 잘 맞는 상황
예를 들어 마케팅 성과를 예측하는 모델에 변수 300개가 있다고 해보자.
광고 채널별 클릭 수
캠페인별 노출 수
시간대
요일
고객군
지역
앱 사용 패턴
이메일 반응
쿠폰 사용 여부
페이지 체류시간
변수는 많지만 실제로 중요한 변수는 몇 개뿐일 수 있다.
이때 Lasso는 중요하지 않은 변수의 계수를 0으로 만들어 모델을 단순하게 만들 수 있다.
그래서 Lasso는 예측 모델이면서 동시에 변수 선택(feature selection) 도구로도 자주 쓰인다.
즉, Lasso는 이런 상황에 가깝다.
“변수가 너무 많으니, 정말 중요한 변수만 남기고 싶다.”
왜 L1은 0을 만들고, L2는 작게만 줄일까
이 부분은 수학적으로 보면 L1과 L2의 벌점 모양 차이에서 나온다.
L1 규제는 절댓값을 사용한다. 그래프 모양이 뾰족한 다이아몬드에 가깝다. 최적화 과정에서 계수가 0이 되는 지점에 닿기 쉬운 구조다.
L2 규제는 제곱을 사용한다. 그래프 모양이 둥근 원에 가깝다. 계수를 작게 줄이지만, 정확히 0으로 보내기보다는 여러 변수에 조금씩 나누는 경향이 있다.
입문자 관점에서는 이렇게 이해하면 충분하다.
L1은 “애매하면 빼자”에 가깝다.
L2는 “다 쓰되, 과하게 쓰지는 말자”에 가깝다.
Elastic Net: Lasso와 Ridge를 섞는 방법
Elastic Net은 L1 규제와 L2 규제를 함께 사용하는 모델이다.
쉽게 말하면 Lasso와 Ridge의 절충안이다.
예측 오차
+ λ₁ × L1 벌점
+ λ₂ × L2 벌점
scikit-learn은 Elastic Net을 L1과 L2 규제를 모두 사용해 학습하는 선형회귀 모델로 설명한다. Lasso처럼 일부 계수를 0으로 만들 수 있으면서, Ridge처럼 계수 안정화 효과도 유지하려는 방식이다.
Elastic Net이 필요한 이유
Lasso는 변수 선택에 좋지만, 서로 강하게 연관된 변수들이 많을 때는 한 변수만 남기고 나머지를 버리는 식으로 작동할 수 있다.
예를 들어 다음 변수가 거의 비슷한 정보를 담는다고 해보자.
- 최근 30일 구매금액
- 최근 4주 구매금액
- 최근 1개월 구매금액
셋은 거의 같은 패턴을 가질 수 있다.
Lasso는 이 중 하나만 선택하고 나머지를 0으로 만들 수 있다. 그런데 실제로는 세 변수 모두 어느 정도 의미가 있을 수 있다.
Elastic Net은 L1의 변수 선택 능력과 L2의 안정성을 결합해, 상관관계가 높은 변수들이 있는 상황에서도 더 균형 있게 작동할 수 있다.
즉, Elastic Net은 이런 상황에 가깝다.
“변수는 줄이고 싶지만, 서로 비슷한 변수들이 너무 많아서 Lasso만 쓰기는 불안하다.”
Ridge, Lasso, Elastic Net 비교
| 구분 | Ridge | Lasso | Elastic Net |
| 규제 방식 | L2 | L1 | L1 + L2 |
| 계수 변화 | 모두 작게 줄임 | 일부를 0으로 만듦 | 일부는 0, 나머지는 완만하게 축소 |
| 변수 선택 | 직접적으로는 어려움 | 가능 | 가능 |
| 상관 높은 변수 | 함께 유지하는 경향 | 하나만 남길 수 있음 | 그룹 단위 유지에 더 유리 |
| 모델 해석 | 변수는 대부분 남음 | 비교적 쉬움 | 중간 |
| 추천 상황 | 변수 대부분이 의미 있어 보일 때 | 중요한 변수만 추리고 싶을 때 | 변수 선택과 안정성 둘 다 필요할 때 |
한 문장으로 압축하면 이렇다.
Ridge는 전부 살리되 작게 만든다.
Lasso는 일부를 과감하게 제거한다.
Elastic Net은 일부는 제거하고, 남은 변수는 안정적으로 줄인다.
실제 예시: 고객 이탈 예측
고객 이탈을 예측하는 모델이 있다고 해보자.
변수는 다음과 같다.
- 최근 로그인 횟수
- 최근 구매 횟수
- 최근 구매금액
- 고객센터 문의 횟수
- 할인쿠폰 사용 여부
- 가입 기간
- 앱 실행 시간
- 최근 7일 활동량
- 최근 30일 활동량
- 최근 90일 활동량
- 이메일 열람 여부
- 푸시 알림 클릭 여부
이때 세 모델은 다르게 행동할 수 있다.
Ridge를 쓰면
대부분의 변수를 유지한다. 다만 최근 7일·30일·90일 활동량처럼 서로 비슷한 변수들의 계수를 과도하지 않게 조정한다.
Lasso를 쓰면
최근 활동량 변수 셋 중 하나만 남기고 나머지를 0으로 만들 수 있다. 이메일 열람이나 앱 실행 시간처럼 영향이 약한 변수도 제거할 수 있다.
Elastic Net을 쓰면
일부 영향이 약한 변수는 제거한다. 동시에 최근 활동량처럼 서로 연관된 변수들은 하나만 무조건 남기기보다 어느 정도 함께 반영할 수 있다.
그래서 데이터 구조에 따라 “정답 모델”은 달라진다.
규제 강도는 어떻게 정할까
Ridge, Lasso, Elastic Net에서 가장 중요한 하이퍼파라미터는 규제 강도다.
보통 alpha, lambda, C 같은 이름으로 표현된다. 다만 라이브러리마다 방향이 다를 수 있으므로 주의해야 한다.
예를 들어 scikit-learn의 Ridge, Lasso, ElasticNet에서는 일반적으로 alpha가 커질수록 규제가 강해진다.
규제가 너무 약하면 일반 회귀와 차이가 거의 없다.
규제가 너무 강하면 중요한 변수도 지나치게 줄어든다.
그래서 적절한 값은 보통 검증 데이터나 교차검증으로 찾는다.
대표적인 방법이 교차검증(Cross Validation)이다.
데이터를 여러 조각으로 나눈다.
일부로 학습한다.
남은 일부로 성능을 확인한다.
규제 강도를 여러 값으로 바꿔본다.
새 데이터 성능이 가장 좋은 값을 고른다.
즉, 규제 강도는 감으로 정하면 안 된다.
훈련 성능이 아니라 검증 성능을 기준으로 정하는 것이 핵심이다.
변수 스케일링은 왜 중요할까
Ridge, Lasso, Elastic Net을 쓸 때는 보통 변수의 크기를 맞추는 작업이 중요하다.
예를 들어 이런 변수가 있다고 해보자.
- 연봉: 30,000,000
- 나이: 35
- 구매횟수: 7
- 클릭 여부: 0 또는 1
숫자 크기가 크게 다른 상태에서 규제를 적용하면, 큰 단위를 가진 변수와 작은 단위를 가진 변수에 규제가 불균형하게 작용할 수 있다.
그래서 보통 표준화(Standardization)를 한다.
표준화 후 값 = (원래 값 - 평균) / 표준편차
이렇게 하면 변수들이 비슷한 기준 위에서 규제받게 된다.
특히 Ridge·Lasso·Elastic Net에서는 표준화 후 학습이 실무적으로 매우 중요하다.
Ridge는 다중공선성에 왜 도움이 될까
다중공선성(multicollinearity)은 독립변수끼리 너무 비슷한 정보를 갖는 상황이다.
예를 들어 집값 모델에 이런 변수가 동시에 들어갈 수 있다.
- 전용면적
- 공급면적
- 방 개수
- 가족 수용 가능 인원
이 변수들은 서로 꽤 강하게 관련될 수 있다.
이때 일반 선형회귀는 계수가 불안정해질 수 있다. 데이터가 조금만 바뀌어도 어떤 변수의 계수가 크게 달라질 수 있다.
Ridge는 계수를 작게 만들면서 이런 불안정을 완화하는 데 도움이 된다.
Ridge는 계수 크기에 L2 벌점을 더해 과도한 계수값을 억제하는 방식으로 작동한다.
즉, Ridge는 “변수가 서로 너무 비슷해서 누가 얼마나 중요한지 모델이 헷갈리는 상황”에서 유용할 수 있다.
Lasso는 변수 선택을 해주니 항상 더 좋은가
아니다.
Lasso는 모델을 단순하게 만들고 변수 선택까지 할 수 있다는 장점이 있다. 하지만 모든 문제에서 Ridge보다 좋은 것은 아니다.
특히 서로 상관관계가 높은 변수가 많을 때 Lasso는 한 변수만 남기고 나머지를 버릴 수 있다. 이 선택은 데이터가 조금 바뀌면 달라질 수도 있다.
예를 들어 “최근 30일 구매금액”과 “최근 4주 구매금액”이 거의 같은 정보를 담고 있다면, Lasso는 둘 중 하나를 선택할 수 있다. 하지만 어느 것이 선택될지는 데이터 분할에 따라 달라질 수 있다.
그래서 해석이 목적이라면 Lasso 결과를 너무 절대적으로 믿기보다, 변수 선택이 안정적인지 확인하는 것이 좋다.
L1과 L2는 선형회귀에만 쓰일까
아니다.
Ridge, Lasso, Elastic Net은 회귀 문제에서 많이 배우지만, L1·L2 규제 자체는 더 넓게 쓰인다.
로지스틱 회귀
서포트 벡터 머신
신경망
딥러닝
이미지 분류 모델
자연어 처리 모델
등에서도 가중치 크기를 제한하는 규제가 쓰일 수 있다.
딥러닝에서는 L2 규제를 weight decay라고 부르는 경우가 많다. 다만 구현 방식에 따라 엄밀한 의미가 조금 다를 수 있으므로, 라이브러리 문서를 확인하는 습관이 필요하다.
핵심은 같다.
모델이 파라미터를 너무 극단적으로 키우지 않게 하고, 새로운 데이터에서도 안정적으로 작동하도록 돕는 것이다.
Ridge, Lasso, Elastic Net은 언제 선택할까
실무에서 처음 선택할 때는 다음 기준을 잡으면 편하다.
Ridge를 먼저 고려할 때
- 변수 대부분이 어느 정도 의미 있다고 생각될 때
- 변수 간 상관관계가 높을 때
- 예측 안정성이 중요할 때
- 변수 제거보다 성능이 우선일 때
Lasso를 먼저 고려할 때
- 변수 수가 많을 때
- 중요한 변수만 남기고 싶을 때
- 모델을 단순하게 설명해야 할 때
- 변수 선택 자체가 목적일 때
Elastic Net을 먼저 고려할 때
- 변수 수가 많고, 서로 비슷한 변수도 많을 때
- Lasso의 변수 선택 능력은 필요하지만 결과가 불안정할 때
- 예측 성능과 해석 가능성을 함께 고려할 때
처음부터 하나만 정답처럼 고르기보다, Ridge·Lasso·Elastic Net을 모두 교차검증으로 비교하는 편이 안전하다.
자주 헷갈리는 포인트
1. L1 규제와 Lasso는 같은 말인가?
완전히 같은 말은 아니지만 매우 밀접하다. L1 규제는 절댓값 기반 벌점 방식이고, Lasso는 L1 규제를 사용한 대표적인 회귀모델이다.
2. L2 규제와 Ridge는 같은 말인가?
마찬가지로 완전히 같은 말은 아니지만, Ridge 회귀는 L2 규제를 사용하는 대표적인 회귀모델이다.
3. Lasso는 항상 변수 선택을 잘하나?
변수를 0으로 만들 수는 있지만, 상관관계가 높은 변수들이 많으면 선택 결과가 불안정할 수 있다. 중요한 변수 하나만 남기고 비슷한 변수들을 제거할 수도 있다.
4. 규제가 강할수록 무조건 좋은가?
아니다. 규제가 너무 강하면 모델이 지나치게 단순해져 중요한 패턴까지 놓칠 수 있다. 과적합과 과소적합 사이의 균형이 중요하다.
5. Ridge와 Lasso는 회귀에만 쓰이나?
대표적으로는 회귀에서 배우지만, L1·L2 규제 개념은 분류모델과 신경망 등 다양한 머신러닝 모델에 적용된다.
결국 핵심은 이것이다
L1·L2 규제는 모델에게 “훈련 데이터를 너무 과하게 외우지 말라”고 말하는 장치다.
L2 규제, 즉 Ridge는 모든 변수의 영향을 조금씩 줄인다.
L1 규제, 즉 Lasso는 덜 중요한 변수의 계수를 0으로 만들 수 있다.
Elastic Net은 둘을 섞어 변수 선택과 안정성을 함께 노린다.
한마디로 정리하면 이렇다.
Ridge는 다 같이 조금씩 양보하게 만들고, Lasso는 중요하지 않은 변수는 퇴장시키고, Elastic Net은 둘 사이의 균형을 잡는다.
좋은 머신러닝 모델은 훈련 데이터를 가장 잘 외우는 모델이 아니다. 처음 보는 데이터에서도 덜 흔들리고, 왜 그런 예측을 했는지 어느 정도 설명할 수 있는 모델이다.
규제는 모델의 자유를 제한하는 벌처럼 보이지만, 실제로는 모델이 현실에서 더 잘 살아남게 만드는 안전장치다.
참고 자료
- scikit-learn / Linear Models
https://scikit-learn.org/stable/modules/linear_model.html
Ridge, Lasso, Elastic Net의 기본 개념과 scikit-learn 구현 방식을 정리한 공식 문서다. - scikit-learn / Ridge
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html
Ridge 회귀가 최소제곱 손실에 L2 규제를 더한 모델이라는 점과 주요 파라미터를 설명한 공식 문서다. - scikit-learn / Lasso
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html
Lasso가 L1 규제를 통해 희소한 계수, 즉 일부 계수가 0인 모델을 만든다는 점을 설명한 공식 문서다. - scikit-learn / Ridge Coefficients as a Function of the L2 Regularization
https://scikit-learn.org/stable/auto_examples/linear_model/plot_ridge_coeffs.html
L2 규제 강도가 커질수록 Ridge 회귀 계수가 어떻게 줄어드는지 시각적으로 보여주는 공식 예제다. - Stanford CS229 / Machine Learning Notes
https://cs229.stanford.edu/main_notes.pdf
L1과 L2 규제를 포함한 머신러닝의 규제 개념, 모델 선택, 일반화 문제를 다룬 강의노트다. - Stanford CS229 / Ridge Regression Lecture Notes
https://cs229.stanford.edu/notes2021fall/lecture10-ridge-regression.pdf
Ridge 회귀가 데이터 적합도와 계수 크기 제한을 어떻게 결합하는지 설명한 강의자료다. - Trevor Hastie / Ridge Regularization: An Essential Concept in Data Science
https://pmc.ncbi.nlm.nih.gov/articles/PMC9410599/
Ridge, 즉 L2 규제가 통계학과 머신러닝에서 왜 중요한지 역사와 응용 관점에서 설명한 논문이다. - arXiv / Lecture Notes on Ridge Regression
https://arxiv.org/abs/1509.09169
고차원 데이터와 다중공선성 문제에서 Ridge 규제가 어떤 역할을 하는지 정리한 강의노트다.
참고 영상
- LASSO, Ridge, and Elastic Net Regularization in Python
https://www.youtube.com/watch?v=PAOkp9CEn58
Lasso·Ridge·Elastic Net의 기본 개념과 차이를 파이썬 예제로 설명하는 영상이다. - Regularization in ML Explained Simply
https://www.youtube.com/watch?v=VNrdslReSZU
과적합과 규제, L1·L2의 차이를 입문자 수준에서 설명하는 영상이다. - Stanford CS229 / Linear Regression and Regularization
https://www.youtube.com/watch?v=4b4MUYve_U8
선형회귀와 규제 개념을 대학 강의 수준에서 설명하는 Stanford 공식 강의 영상이다. - Ridge Regression Explained
https://www.youtube.com/results?search_query=ridge+regression+L2+regularization+explained
Ridge 회귀와 L2 규제의 직관, 수식, 활용 사례를 설명하는 영상을 찾을 수 있다. - Elastic Net Explained
https://www.youtube.com/results?search_query=elastic+net+regularization+explained
Elastic Net이 Lasso와 Ridge를 어떻게 결합하는지 설명하는 영상을 찾을 수 있다.
'개념 잡동사니' 카테고리의 다른 글
| 인컨텍스트 러닝(In-Context Learning, ICL) (1) | 2026.07.02 |
|---|---|
| 커버드콜(Covered Call) (0) | 2026.07.01 |
| 규제 샌드박스(Regulatory Sandbox) (0) | 2026.06.29 |
| VASP(Virtual Asset Service Provider) (0) | 2026.06.28 |
| 베어 허그(Bear Hug) (0) | 2026.06.27 |