L1, L2 Norm/Regularization

2021. 5. 22. 10:57Deep Learning/개념

728x90

Norm [선형대수학]

벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법 

(주의) 차원 != 길이 

 


L1, L2 Norm

이 식에서 p=1이면 L1 Norm, p=2이면 L2 Norm

s.sum(dim=1, keepdim=True) # L1
s.pow(2).sum(dim=1, keepdim=True).sqrt() # L2

L1 Norm

L1 Norm 은 벡터 p, q 의 각 원소들의 차이의 절대값의 합

L2 Norm

L2 Norm 은 벡터 p, q 의 유클리디안 거리(직선 거리)
위 식은 p = (x_1, x_2, ... , x_n), q = (0, 0, ... , 0) 일 때라고 할 수 있음.

 

검정색 두 점사이의

L1 Norm : 빨간색, 파란색, 노란색 

L2 Norm: 초록색

L2 Norm 은 Unique shortest path 를 가짐.

 

 

 

 

 

 

 

 

 

 

 

L1 Loss

y_i = 실제 값

f(x_i) = 예측값

실제 값과 예측값 사이의 차이(오차) 값의 절대값의 합 = L1 Loss
= Least absolute deviations(LAD), Least absolute Errors(LAE), Least absolute value(LAV), Least absolute residual(LAR), Sum of absolute deviations

 

 

L2 Loss

y_i = 실제 값

f(x_i) = 예측값

실제 값과 예측값 사이의 차이(오차) 값의 제곱의 합= L2 Loss

= Least squares error(LSE)

 

 

L2 Loss가 제곱의 합이다 보니 Outlier값에 더 영향을 많이 받음 = L1 Loss가 L2 Loss에 비해 Outlier 에 대해 더 Robust함

L1 Loss 는 0인 지점에서 미분이 불가능하다.

 

- weight regularization (정규화) (overfitting 방지)

L1 Regularization  = Lasso

기존 Cost function 뒤에 L1 항을 추가해준 것

일반적인  cost function에 여기에 가중치 절대값을 더해준다. 

편미분 을 하면 w값은 상수값이 되어버리고, 그 부호에 따라 +-가 결정됨

중치가 너무 작은 경우는 상수 값에 의해서 weight 0이 되어버림.

 

==> 결과적으로 몇몇 중요한 가중치 들만 남게되는 효과

 

L2 Regularization = Ridge

기존 Cost function 뒤에 L2 항을 추가해준 것

Cost function에 제곱한 가중치 값을 더해줌으로써

편미분 을 통해 back propagation 할 때

Cost 뿐만 아니라 가중치 또한 줄어드는 방식으로 학습을 한다.

위 식을 미분하여 GD 에서 사용하면, 전체적으로 W 값이 작아지도록 한다.

특정 weight가 비이상적으로 커지는 상황을 방지하고, Weight decay 가능해짐

= 전체적으로 가중치를 작아지게 하여 overfitting 방지

일반 GD 가중치 업데이트 식 / Ridge 가중치 업데이트 식

일반 GD 에서 (1-a*(lambda)/m)이 추가 되어 가중치가 일정 비율 더 감소하는 것을 식으로도 알 수 있음.

Lasso처럼 일부 항 계수를 0으로 만들어버리진 않지만 전체적인 weight의 절댓값을 감소시켜 그래프가 덜 구불구불하게만들어 과적합을 방지하게 됨.

 

728x90

'Deep Learning > 개념' 카테고리의 다른 글

ResNet  (0) 2021.06.15
stochastic function(확률함수)  (0) 2021.06.08
Receptive Field  (0) 2021.05.06
Batch Normalization  (0) 2021.04.02
여러가지 Convolution연산  (0) 2021.03.19