AI

규제_Lasso, Ridge, Elastic-Net

boals 2024. 9. 26. 17:52

::규제(Regularization)란?::

규제(Regularization)란 독립변수(x)의 수가 지나치게 많은 경우 회귀 모델의 적합 성능을 향상시키기 위한 방법 중 하나이다.

회귀계수를 구할 때 회귀계수의 크기에 제약을 두어 설명력이 낮은 독립변수에 대한 가중치를 줄이는 방향으로 진행된다.

정확하게, 회귀계수를 추정하기 위한 최적화 식에 회귀 계수의 크기에 대한 제약식을 추가하는 것을 말한다.

 

어려운 말들로만 설명을 한 것 같다.

회귀 모델의 목적을 생각해보면, 우리가 가지고 있는 데이터에 딱 맞는 회귀식을 구하는 것이 아니라,

새로운 데이터를 예측하기 위해 우리가 가지고 있는 데이터의 '경향성'을 잘 설명해줄 수 있는 회귀식을 구하는 것이 목적이다.

따라서 우리는 회귀식이 학습 데이터에만 적용되지 않도록(= 과대적합되지 않도록) 적절한 규제를 해 줄 필요가 있다는 것이다!

 

과정을 보면, 

 

  1. 과소적합 피하기 위해 고차 회귀 모델 셀계 (<- 독립변수의 수가 많아짐)
  2. 모델의 차원을 높였기 때문에 과소적합은 피할 수 있으나 과대적합의 우려가 있음
  3. 과대적합이 발생하면 훈련데이터에만 잘 맞도록 학습되어 훈련데이터에 민감해짐 (훈련 데이터가 조금만 바뀌더라도 학습 결과가 크게 바뀔 수 있음) 따라서 회귀 계수의 분산이 커지게 되고 일부 회귀 계수의 값이 매우 커질 수 있음.
  4. 회귀 계수의 값이 매우 커지는 것을 방지하면 회귀 계수의 분산이 작아져 과대적합을 방지할 수 있음

따라서 설명력이 부족한 독립변수에 대하여 회귀계수의 크기를 효과적으로 억압하는 것은 과대적합 가능성을 줄일 수 있다.


::Ridge::

규제의 대표적인 방법으로는 Ridge와 Lasso가 있다.

Ridge와 Lasso 모델에 대하여 간단하게 설명을 하자면, Ridge 모델은 계수를 제곱한 값을 기준으로 규제를 적용하며 Lasso 모델은 계수의 절대값을 기준으로 규제를 적용한다.

 

식을 보면 더 무슨 말인지 이해가 될 것 같다!

이전에 정리했던 내용이 있어 추가해보자면,

 

위의 식은 각각의 값들을 기준으로 작성된 식이고

왼쪽의 식은 벡터를 기준으로 작성된 식이다.

(형태는 동일)

 

 

 

 

 

 

 

 

 

식으로만 설명해서 더 어렵게 느껴질 수 있다. 정규화 방식을 그림으로 나타내면,

 

이렇게 나타낼 수 있다!


::Lasso::

Lasso는 아까 설명했듯이 계수의 절대값을 기준으로 규제를 적용한다.

 

마찬가지로 식을 살펴보자.

 

Lasso 도 벡터로 식을 나타내면 왼쪽과 같이 나타낼 수 있다.

 

 

 

 

 

Lasso는 회귀와는 달리 회귀계수를 0으로 만들 수 있다는 특징을 가진다.

그림을 통해 무슨 말인지 알아보자!

 

Lasso regularizationθsparser(더 희소한) 표현이 되도록 함

- 대부분의 점에 대해, 다이아몬드 형태의 가장 가까운

  점은 꼭짓점임(θ_1  = 0 or θ_2  = 0인 점)

- 예를 들어 오른쪽 예시에서 모든 빨간 점들은

  θ_2 = 0으로 정규화됨

-> 필요 없는 θ에 대하여 값을 0으로 바꿈

     cf) Ridge Regularization

         모든 θ를 균등하게 값을 줄임

 

 

회귀계수가 0이 될 수 있다는 특징 때문에 Ridge의 경우 입력변수가 전반적으로 비슷한 수준으로 출력변수에 영향을 미치는 경우 사용하고, Lasso의 경우 출력변수에 미치는 입력변수의 영향력 편차가 큰 경우에 사용하는 것이 좋다고 한다. 


::Elastic-Net::

 

Elastic-Net 규제는 Ridge와 Lasso를 합쳐놓은 형태이다.

Elastic-Net의 수식을 보면, lambda_1과 lambda_2는 각각 Ridge와 Lasso 속성에 대한 강도를 조절하는 계수이다. 이를 통해 Ridge의 정규화 속성과 Lasso의 변수축소 속성을 모두 갖는 모델을 만들 수 있다!

 

또한 Elastic-Net은 group effect를 유도하는 특징을 가지는데, 변수간 상관관계가 큰 변수들에 유사한 가중치를 줌으로써 중요한 변수들은 똑같이 중요하게 취급하고 중요하지 않은 변수들은 모두 공평하게 중요하지 않게 취급한다. 따라서 변수간 상관관계가 크더라도 중요하지 않은 변수들을 모두 버리면서 중요한 변수들만 잘 골라내어 중요도와 상관관계에 따라 적합한 가중치를 적용할 수 있다. 따라서 Elastic-Net은 다수의 변수간에 상관관계가 존재할 때 유용하다.

 

칼럼을 위해 작성했던 글이라 간단하게 정리한 카드뉴스가 있어서 추가적으로 첨부한다!

 

참고문헌

https://velog.io/@cleansky/%EC%9D%B8%EC%82%AC%EC%9D%B4%EB%93%9C-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%8C%80%ED%91%9C%EC%A0 %81%EC%9D%B8-%EA%B7%9C%EC%A0%9CRegularization%EA%B8%B0%EB%B2%95 %EB%93%A4-Ridge-Lasso-Elastic-Net

2) https://todayisbetterthanyesterday.tistory.com/12

3) https://towardsdatascience.com/from-linear-regression-to-ridge-regression-the-lasso-and-the-elastic-net-4eaecaf5f7e6 4) https://www.youtube.com/watch?v=pJCcGK5omhE&list=PLpIPLT0Pf7IoTxTCi2MEQ94MZnHaxrP0j&index=23