가중치 규제 L1, L2 (Lasso, Ridge)

혜쿰·2023년 11월 15일
0
post-thumbnail

가중치 규제(L1, L2 규제)는 머신 러닝 모델에서 과적합을 방지하기 위해 가중치를 제한하는 방법이다. 주로 선형 회귀나 로지스틱 회귀와 같은 선형 모델에서 사용된다. 이 두가지 규제는 모델을 정규화하는 방법이다.
정규화에 대해서는 다음 포스팅에서 올릴 예정이다. -> 표준화&정규화

📕 L1 규제

📄 L1 규제란?

  • L1 규제는 가중치의 절대값 합에 비례하는 패널티를 부과하여 모델을 규제한다.
  • 목표 함수에 가중치의 절대값의 합을 추가하며, 이를 최소화하는 방향으로 학습한다.
  • L1 규제는 불필요한 가중치를 0으로 만들어 특성 선택의 효과를 가지며, 모델의 해석이 쉬워진다.

📄 라쏘 (Lasso)

규제 유형: L1 규제 (가중치의 절대값에 규제를 추가)
목적 함수: 비용 함수에 L1 norm을 추가하여 최적화
특징:

  • 일부 가중치를 완전히 0으로 축소하고 제거하는 특성이 있음. 따라서 특성 선택(Feature Selection)의 역할을 함.
  • 희소성(Sparsity)를 유발하여 일부 특성을 무시하고 모델을 간소화함.
  • 특히 특성이 많은 데이터셋에서 유용.

🖇️ 코드 예제

데이터 로드, 데이터 전처리, 데이터 분할 등은 했다고 가정하고 라쏘의 사용방법에 대해 살펴보자.

from sklearn.linear_model import Lasso

# L1 (Lasso) 규제
lasso = Lasso(alpha=0.1)  # alpha는 규제 강도를 조절하는 매개변수
lasso.fit(X_train, y_train)
lasso_pred = lasso.predict(X_test)

sklearn 라이브러리를 활용하여 라쏘 규제를 적용해보았다.

📙 L2 규제

📄 L2 규제란?

  • L2 규제는 가중치의 제곱합에 비례하는 패널티를 부과하여 모델을 규제한다.
  • 목표 함수에 가중치의 제곱합을 추가하며, 이를 최소화하는 방향으로 학습한다.
  • L2 규제는 가중치를 0에 가깝게 만들지만 완전히 0으로 만들지는 않습니다. 모델의 일반화 성능을 높여준다.
  • L2 규제는 가중치들을 0에 가깝게 만들어줌으로써 모든 특성이 적절히 고려되도록 한다.

📄 릿지 (Ridge)

규제 유형: L2 규제 (가중치의 제곱에 규제를 추가)
목적 함수: 비용 함수에 L2 norm을 추가하여 최적화
특징:

  • 가중치를 0에 가깝게 만들지만 완전히 0으로 만들지는 않음. 모든 특성을 포함하고 가중치를 조정하여 모델을 단순화함.
  • 특성 간의 상관관계가 높은 경우에 유용. 이를 통해 다중공선성(Multicollinearity) 문제를 완화시킬 수 있음.

🖇️ 코드 예제

데이터 로드, 데이터 전처리, 데이터 분할 등은 했다고 가정하고 라쏘의 사용방법에 대해 살펴보자.

from sklearn.linear_model import Ridge

# L2 (Ridge) 규제
ridge = Ridge(alpha=0.1)  # alpha는 규제 강도를 조절하는 매개변수
ridge.fit(X_train, y_train)
ridge_pred = ridge.predict(X_test)

sklearn 라이브러리를 활용하여 릿지 규제를 적용해보았다.

📗라쏘와 릿지 돌아보기..

라쏘(Lasso)와 릿지(Ridge)는 회귀 분석에서 사용되는 두 가지 주요한 규제(정규화) 기법이다. 이들은 모두 모델의 과적합을 방지하고 일반화 성능을 향상시키기 위해 사용된다. 각각의 방법은 모델의 복잡도를 조절하기 위해 가중치(w)에 페널티를 부여하는 방식으로 작동한다.

라쏘는 L1 규제, 릿지는 L2규제를 사용한다. 이 둘의 주요한 차이점은 가중치에 있다고 생각한다. L1은 가중치를 0까지 만들 수 있는 반면, L2는 가중치를 0에 근사한 값으로 만들지 완전히 0으로 만들진 않는다.
또한, 데이터의 유형에 따라 어떤 규제를 쓸지 달라질 수 있으니 더 적합한 규제를 쓰는 것이 좋을 것이라고 생각한다.

참고로, L1과 L2를 같이 쓰는 Elastic Net이라는 방법도 있다.

0개의 댓글