본문 바로가기

Learning/Tuning

Regularization : L1, L2 regularization

반응형

본문을 읽기 전에 regularization글을  읽고 오시면 좋습니다.

 

 

L1, L2 norm이란 무엇인가?

Norm에 대해 알아보자

norm이란 벡터의 크기(길이)를 측정하는 방법입니다. 쉽게 말해, 두 벡터 사이의 거리를 측정하는 방법입니다.

image

여기에서 p는 Norm 의 차수를 말합니다. `p=1`일 경우 L1 norm을, `p=2`일 경우 L2 norm을 뜻합니다. 간단하게 L1, L2냐에 따라 항이 1차항인지, 2차항인지 나뉜다고 생각하시면 됩니다. 위의 식에서 n은 해당 벡터의 원소 수를 일컫습니다.

 

L1 norm (p=1)

스크린샷 2020-03-15 오전 10 47 31

L1 norm은 벡터 p, q 의 각 원소들의 차이의 절대값의 합입니다. 

예를 들어 vector `p = (3,1,-3)`이고 `q = (5,0,7)`일 때, p, q의 L1 norm은

$|3-5| + |1-0| + |-3 -7| = 2 + 1 + 10 = 13$ 이 됩니다.

 

L2 norm (p=2)

image

벡터 p, q 의 유클리디안 거리(직선 거리)를 의미합니다.

예를 들어 `q` 가 원점일 경우 벡터 `p, q`의 L2 Norm은 벡터 p 의 원점으로부터의 직선거리를 의미한다 할 수 있습니다. 따라서

`p = (x_1, x_2, ... , x_n), q = (0, 0, ... , 0)` 입니다.

 

L1, L2 norm의 차이

image

L1 Norm은 빨간색, 파란색, 노란색 선으로 표현 가능합니다. L2 Norm은 초록색 선으로만 표현이 가능합니다.

그림으로 보았을 때, L1 Norm은 여러가지 path 를 가지지만 L2 Norm 은 Unique shortest path 를 가집니다. 

예를들어, `p = (1, 0), q = (0, 0)` 일 때 L1 Norm = 1, L2 Norm = 1 로 값은 같지만 여전히 Unique shortest path를 가집니다.

 

L1, L2 Loss란 무엇일까?

L1 Loss

image

여기에서 `y_i`은 GT Label을 의미하고, `f(x_i)`는 input `x_i`를 모델에 넣었을 때 얻는 output을 의미합니다. 상단의 L1 norm을 생각했을 때, 이는 Label과 output 사이의 오차 값의 절대값을 구한 후 그 오차들의 합을 더한 결과를 의미합니다.

이 동의어는 다음과 같습니다.

  • Least absolute deviations(LAD)
  • Least absolute Errors(LAE)
  • Least absolute value(LAV)
  • Least absolute residual(LAR)
  • Sum of absolute deviations

 

L2 Loss

image

L1 Loss과 다르게 오차의 제곱의 합을 의미합니다.

동의어는 다음과 같습니다.

  • Least squares error(LSE)

 

L1 Loss, L2 Loss

L1 Loss는 0인 지점에서 미분이 불가능하다는 단점이 있습니다. L2 Loss는 직관적으로 오차의 제곱을 더하기 때문에 Outlier에 더 큰 영향을 받습니다. 이는 즉, L1 Loss 가 L2 Loss 에 비해 Outlier 에 대하여 더 Robust하다고 할 수 있습니다. 그러므로 L1 Loss는 Outlier 가 적당히 무시되길 원할 때 사용하고, L2 Loss는 Outlier 의 등장에 신경써야 하는 경우 사용합니다.

 

L1, L2 regularization은 무엇인가?

L1 regularization (Lasso)

L1 regularization은 다음과 같습니다.

image

기존의 loss function에 $\lambda/2 * |w|$를 더해줍니다. 실험 case에 따라 `\lambda`에 곱해주는 `1/n/(1/2)`가 달라지기도 합니다. 여기에서 `\lambda`는 상수를 의미합니다. 우리는 역전파(backpropagation)을 할 때 이 `w`에 대해 편미분을 하게되는데, 여기서 보아 이 `\lambda`가 0에 가까워질 수록 regularization의 효과는 없어진다고 할 수 있습니다.

스크린샷 2020-03-15 오후 12 09 15

위와 같은 식으로도 표현할 수 있습니다. 의미는 똑같으며, 여기서 `C_0`은 원래의 loss function을 일컫습니다.

 

regularization의 식에서는 loss function에 가중치의 절대값을 더해준다는 것이 중요합니다.

가중치 `w`에 대해 편미분을 하면 다음 식과 같습니다.

스크린샷 2020-03-15 오후 12 09 17

이를 보면, `w`값 자체를 줄이는 것이 아닌 `w`의 부호에 따라 상수값을 빼주는 방식으로 regularization을 수행한다는 것을 알 수 있습니다. 이는 기존의 loss function 에 가중치의 크기가 포함되면서 가중치가 너무 크지 않은 방향으로 학습하게 됩니다. 

L1 Regularization 을 사용하는 Regression model으로는 Least Absolute Shrinkage and Selection Operater(Lasso) Regression이 있습니다.

 

L2 regularization (Lidge)

L1 regularization은 다음과 같습니다.

image

이 역시 실험 case에 따라 앞의 `1/n`가 달라지는 경우가 있습니다. `L`은 기존의 loss function, `n`은 train data의 수, `\lambda`는 regularization 변수를 의미합니다. `\lambda`는 상수이고, 0에 가까울 수록 정규화의 효과는 없어집니다. `w`는 가중치를 의미합니다.

이 식은 다음과 같은 식으로도 표현할 수 있습니다.

스크린샷 2020-03-15 오후 12 08 25

여기서 `C_0`은 원래의 loss function을 의미합니다.

 

L2 regularization은 `L`(기존의 loss function)에 가중치를 포함한 식을 더함으로써 (1) `L`이 작아지는 방향으로 학습하고, (2) `w`이 작아지는 방향으로 학습하게 됩니다. 이 때 `w`에 대해 편미분하면 값이 작아지는 방향으로 진행하게 됩니다. 이를 우리는 Weight decay라 합니다.

해당 식을 `w`에 대해 편미분하면 다음과 같아집니다.

스크린샷 2020-03-15 오후 12 07 45

이 때, L2 regularization은 weight decay에 의해 특정 가중치가 비이상적으로 커지고 학습에 큰 영향을 끼치는 것을 방지합니다. 

L2 Regularization 을 사용하는 Regression model으로는 Ridge Regression가 있습니다.

 

L1,L2 regularization의 차이

그래서 결국 Regularization은 가중치 `w가 작아지도록 학습한다는 것, Local noise 에 영향을 덜 받도록 하겠다는 것이라는 것을 배웠습니다. 이는 즉, Outlier 의 영향을 더 적게 받도록 하겠다는 것입니다.

 

예시를 들면, 

`a = (0.3, -0.3, 0.4)`

`b = (0.5, -0.5, 0)` 

일 때 a,b에 대하여 L1 norm을 계산하면

image

a,b에 대하여 L2 norm을 계산하면

image

을 얻을 수 있습니다. 이는 즉

L1 Norm을 사용할 시, 경우에 따라 특정 Feature(벡터의 요소) 없이도 같은 값을 낼 수 있다는 것을 알 수 있고, L2 Norm을 사용할 시 각각의 벡터에 대해 항상 Unique 한 값을 낼 수 있다는 것을 알 수 있습니다.

 

image

위 그림을 보며 다시 한번 정리하겠습니다. L1 Norm 은 파란색 선 대신 빨간색 선을 사용하여 특정 Feature 를 0으로 처리하는 것이 가능합니다. 즉, L1 Norm 은 Feature selection 이 가능합니다.

이 특징은 L1 Regularization 에 동일하게 적용 될 수 있습니다. L1 은 Sparse model(coding) 에 적합하고, convex optimization 에 유용하게 쓰입니다.

image

단, L1 Regularization 의 경우 위 그림처럼 미분 불가능한 점이 있기 때문에 Gradient-base learning 에는 주의가 필요합니다.

 

reference

반응형

'Learning > Tuning' 카테고리의 다른 글

Batch Normalization  (0) 2020.04.12
Dropout  (0) 2020.04.12
Regularization  (0) 2020.04.12
Hyperparameter  (0) 2020.04.12
Overfitting과 Underfitting 정의 및 해결 방법  (2) 2020.04.12