What is Regularization?
머신러닝에서 Regularization(정규화)는 overfitting을 방지하기 위해 모델의 복잡도를 조정하는 것입니다. 이때의 Regularization(정규화)는 Normalization(정규화)와 다릅니다. 번역은 둘 다 '정규화'로 되지만 Regularization(정규화)와 달리 Normalization(정규화)는 feature scaling의 한 종류로 데이터의 scale이 매우 다를 경우(최댓값과 최솟값의 범위가 너무 큰 경우)에 feature의 데이터 간 다른 특성으로 인해 왜곡이 발생하지 않도록 데이터에 변형을 가하는 것입니다.
Regularization(정규화)는 특정 가중치가 너무 과도하게 커지지 않도록 모델의 학습을 방해하는 것이라고 할 수 있습니다. 둘의 차이는 명확하지만, 두 가지 모두 모델의 일반화(generalization) 성능을 높여줍니다.
Regularization(정규화)의 방법에는 L1 Regularization와 L2 Regularization, Dropout, Early stopping 등 여러 가지가 있지만, 이번에는 L1 Regularization와 L2 Regularization에 대해 알아보도록 하겠습니다.
L1 Norm, L2 Norm :
L1 Regularization와 L2 Regularization에 대해 이해하기 위해서는 먼저 L1 Norm, L2 Norm이 무엇인지 알아야 합니다.
Norm이란 벡터의 크기(혹은 길이)를 측정하는 함수입니다. 두 벡터 간 거리를 측정할 때 쓰입니다. Norm에는 여러 종류가 있는데 L1 Norm과 L2 Norm은 대표적인 Norm의 종류입니다.
L1 Norm :
L1 Norm은 위와 같이 절댓값의 합으로 표현됩니다. Manhattan norm이라고도 하며, Lasso regression에서 loss 값을 규제하는 방법으로 L1 Norm을 사용합니다.
L2 Norm :
L2 Norm은 각 성분의 제곱의 합을 루트로 씌워준 값으로 Ridge regresson에서 주로 사용됩니다. 또한 2차원에서는 삼각형의 대각선을 구하는 피타고라스 정리와 동일한 방법으로 Euclidean norm이라고도 합니다. L2 Norm의 경우에는 장애물을 고려하지 않고 직선의 최단거리로 이동하게 됩니다.
그림으로 L1 Norm 과 L2 Norm의 차이를 명확히 알아봅시다.
두 점 사이를 잇는 선들이 여러개 있습니다. 이때 L2 Norm은 오직 최단 거리를 나태 내는 직선인 초록색 선으로만 표현될 수 있습니다. 그리고 나머지 빨간색, 파란색, 노란색 선은 L1 Norm으로 표현 가능합니다. 이처럼 L1 Norm은 여러 가지 경로를 가질 수 있지만 L2 Norm은 하나의 최단 경로만을 가질 수 있습니다.
L1 Regularization & L2 Regularization
L1 Regularization :
L1 Regularization에서는 Lose 함수를 다음과 같이 변형하여 사용합니다.
위 수식은 기존 Cost 함수에 L1 Regularization을 위한 새로운 항을 추가한 변형된 형태의 Cost 함수입니다.
여기서 W(Weight)의 Regularization을 위해서 Weight의 L1 Norm을 새로운 항으로 추가하고 있습니다.
기존의 cost function에 가중치의 크기가 포함되면서 가중치가 너무 크지 않은 방향으로 학습되도록 합니다. 이때 람다(λ)가 0에 가까워질수록 정규화의 효과는 낮아집니다.
L1 Regularization을 사용하는 회귀 모델을 Lasso Regression이라고 합니다.
L1 Regularization을 적용하면, 작은 weight 값은 0이 되어버리기 떄문에 벡터가 sparse 하게 되는 경향이 있습니다. 따라서 weight의 수를 줄여 중요한 feature를 쉽게 선택(feature selection)할 수 있습니다.
L2 Regularization :
L2 Regularization에서는 가중치의 제곱을 더하는 방법을 사용하여 L1 Regularization과 마찬가지로 가중치가 너무 크지 않은 방향으로 학습하게 됩니다. L2 Regularization을 사용하는 회귀 모델을 Ridge Regression이라고 합니다. L2 Regularization에서는 모든 가중치를 균등하게 작게 유지하려고 합니다.
가중치에 제곱을 하기 때문에 L2 Regularization이 L1 Regularization보다 이상치에 민감할 수밖에 없습니다. 하지만 값이 균등하게 작을 때에는 L2의 결과 값이 더 작아지게 되므로 일반적으로 L1 보다 L2가 더 좋은 성능을 냅니다. L1, L2 연산 값을 Error에 더하는데, 이 값이 너무 커져버리면 학습하는데 방해가 될 수 있기 때문입니다.
만약 vector가 있을 때, L1으로 계산하면 |1|+|0|=1이 되고 L2로 계산하여도 1+0=1이 됩니다. 반면 (0.5,0.5) vector가 있을 때, L1으로 계산하면 |0.5|+|0.5|=1이 되지만 L2로 계산하면 $ 0.5^2 + 0.5^2 = 0.5 $ 가 됩니다. 이처럼 값이 균등하게 작을 때에는 L1보다 L2의 값이 더 작아지게 됩니다. 이러한 이유로 L1 보다 L2를 많이 사용합니다.
reference
https://gaussian37.github.io/dl-concept-regularization/
https://sooho-kim.tistory.com/85
https://light-tree.tistory.com/125
https://analyticsindiamag.com/a-guide-to-generalization-and-regularization-in-machine-learning/
'AI' 카테고리의 다른 글
Gradient boost (0) | 2022.08.29 |
---|---|
SVM(Support Vector Machine) (0) | 2022.08.14 |
Generalization, Normalization, Standardization (0) | 2022.08.12 |
binary & multinomial (0) | 2022.08.08 |
분류(classification), 군집화(clustering), 회귀(regression) (0) | 2022.07.17 |
댓글