[ML/DL] 가중치 규제 L1, L2 Regularization(Ridge, Lasso)
L1, L2 가중치 규제는 손실함수 최적화에 사용되는 개념입니다.
오버피팅의 문제를 해결하는데 사용되는 기법입니다.
본 글에서 L1, L2 가중치 규제에 대해 자세히 알아보겠습니다
1. 손실함수 최적화
2. 오버피팅의 문제
3. 오버피팅 해결 - 가중치 규제 L1, L2 Regularization
손실함수 최적화
최적화란 목적함수(Objective Function)을 최소화 혹은 최대화시키는 최적해(파라미터)를 찾는 것을 말합니다.
학습 기반의 ml/dl 알고리즘은 모델 성능을 높이기 위해 이 손실함수를 최소화할 수 있는 방향으로 학습이 진행되고, 손실함수의 최적화 문제라고 볼 수 있습니다.
오버피팅 문제
그러나 학습을 시킬 때 일부의 학습 데이터로만 학습을 시키므로,
학습 데이터에만 존재하는 특징(노이즈)들이 과하게 모델에 반영되어 손실함수가 필요이상으로 작아지는 과적합(오버피팅) 문제가 발생합니다.
학습데이터에만 적합하고 일반적인 데이터의 특징을 잘 반영하지 못하는 문제가 발생하는 것입니다.
오버피팅 문제를 해결하기 위한 방법으로는 아래 방법들이 있습니다
- 학습 데이터 양 늘리기
- 배치 정규화
- 모델의 복잡도 줄이기
- 드롭아웃
- 가중치 규제
가중치 규제 L1, L2 Regularization
이 중 가중치 규제란 학습 기반의 알고리즘에서 모델이 과적합 되지 않도록 손실함수에 특정한 규제함수를 더하여 손실함수가 너무 작아지지 않도록 weight에 패널티를 주는 기법입니다.
이를 통해 weight값이 과도하게 커져서 일부 특징에 의존하는 현상을 방지하고 데이터의 일반적인 특징을 잘 반영할 수 있도록 해줍니다.
가중치 규제에는 L1규제(Lasso), L2규제(Ridge)가 있습니다.
수식
구체적인 수식은 다음과 같습니다.
L1 Regularization(Lasso)
계산방식
기존 cost function에 가중치의 절대값의 합을 더하는 형태로 미분 시 weight의 크기에 상관 없이 부호에 따라 일정한 상수 값을 빼거나 더해주게 됩니다.
오버피팅 해결 작동원리
따라서 특정 weight들을 0으로 만들 수 있어 원하는 weight만 남길 수 있는 feature selection 역할을 할 수 있습니다.
이를 통해 특정 가중치를 삭제해 모델의 복잡도를 낮출 수 있습니다.
L2 Regularization(Ridge)
계산방식
기존 Cost Function에 가중치 제곱의 합을 더하는 형태로, weight의 크기에 따라 weight 값이 큰 값을 더 빠르게 감소시키게 됩니다.
오버피팅 해결 작동원리
weight의 크기에 따라 가중치의 패널티 정도가 달라지기 때문에 가중치가 전반적으로 작아져서 학습효과가 L1 대비 더 좋게 나타납니다.
람다 값에 따라 패널티의 정도를 조절할 수 있습니다.
기하학적 의미
- 규제 영역 : 해당 영역을 벗어날 수 없다는 뜻입니다. Loss Function의 space에서 L1, L2 규제영역을 두어 실제 최적값에 대한 bias에 손해를 보더라도 variance를 낮춰 overfitting 발생을 낮추는 것입니다.
- 최적값 : L1, L2규제에 대한 Loss Function의 최적해 위치는 위와 같이 표현될 수 있습니다. 규제 영역 내에서 Loss Function의 Global Optimum과 제일 가까운 지점이라고 볼 수 있습니다.
- 람다 : 람다 값이 커질수록 규제 영역 크기가 작아지게 되어 bias는 더 커지고 variance는 줄어들게 됩니다.
- L1 Norm : 세타1값이 0인 것을 볼 수 있는데, 이를 통해 특정 변수(feature)를 삭제 할 수 있다는 것을 알 수 있습니다.
- L1 + L2 Norm : L1과 L2 regularization을 모두 사용하는 것을 Elastic Net이라고 합니다.
참조링크