딥러닝에서 많이 사용되고, 베이스가 되는 L1 Loss, L2 Loss에 대해 정리하려고 한다.
Norm
Norm은 벡터의 크기를 측정하는 방법이다. 두 벡터 사이의 거리를 측정하는 방법이기도 하다. Norm에는 다양한 방법이 있지만, 대표적으로 사용되는 것이 L1 Norm과 L2 Norm이다.
L1 Norm
$d_1(p,q) = ||p-q||_1 = \sum^{n}_{i=1} |p_i-q_i|$, where $p=(p_1,p_2,...,p_n)$ and $q=(q_1,q_2,q_n)$
L1 Norm은 위 수식과 같이, 두 원소의 절대 값의 합이다. 원점을 기준으로 하였을 때는, 해당 지점의 절대 값을 구하는 것과 같다. 아래는 L1 Norm의 예시이다.
p = (3, 1, -3)
q = (5, 0, 7)
$d_1(p,q) = |3-5| + |1-0| + |-3+7| = 13$
L2 Norm
$d_2(p,q) = \sqrt{\sum^{n}_{i=1}(p_i-q_i)^2}$, where $p=(p_1,p_2,...,p_n)$ and $q=(q_1,q_2,q_n)$
L2 Norm은 위 수식과 같이, 두 원소사이의 제곱합을 루트로 연산한 것이다. 두 점사이의 거리라고 배우는 것과 동일한 방법이다. 아래는 L2 Norm의 예시이다.
p = (1, 2, 3)
q = (-1, 2, 4)
$d_2(p,q) = \sqrt{(1+1)^2 + (2-2)^2 + (3-4)^2} = \sqrt{5}$
L1 Loss / L2 Loss
$L1 = \sum^{n}_{i=1}|y_i-f(x_i)|$
L1 Loss는 위 수식과 같이 실제 값과 예측치 사이의 차이(오차)의 절대 값을 구하고, 그 합을 구한것이다.
$L2 = \sum^{n}_{i=1}(y_i-f(x_i))^2$
L2 Loss는 위 수식과 같이 오차의 제곱의 합으로 정의한다.
L2 Loss는 오차의 제곱을 사용하기 때문에, 이상치(Outlier)에 더 큰 영향을 받는다. (제곱이기 때문, L1 Loss는 단순 절대 값) 이러한 이유로 L1 Loss는 L2 Loss에 비해 이상치에 영향을 덜 받지만, 0에서 미분이 불가능하다는 특징을 가지고 있다.
딥러닝에서는 L1 Loss를 MAE, L2 Loss를 MSE로 표현하여 사용하는데, 두 방법 모두 실제 값과 예측 값의 차이/제곱의 차이를 줄이는 것을 목표로 한다.
'딥러닝 이론 > BasicML' 카테고리의 다른 글
Univariate time series (0) | 2024.05.09 |
---|---|
Focal Loss (1) | 2024.05.08 |
Coarse-grained classification과 Fine-grained classification (0) | 2023.10.30 |
Concept shift (0) | 2023.10.26 |
Covariate shift (0) | 2023.10.26 |