본문 바로가기

DEVELOP_NOTE/ML

[Norm] L2 Norm? L1 Norm? 이제 제대로 알고 사용하자!

오늘은 L1 Norm과 L2 Norm에 대해서 구체적으로 분석해보려한다.

 

Norm?

먼저 Norm(놈, 노름)은 뭘까?

선형대수학에서 Norm은 벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법을 의미하다.

여기서 길이(length)는 차원(dimension)과는 다른 의미라는 것을 알자.

 

예를들어 다음과 같은 열벡터가 있다고 가정해보자.

이 벡터의 차원은 3이고, 길이가 3인것이 아니다.

그리고, 차원이 3이라는것은 3차원공간에 아래와 같이 벡터를 그릴 수 있다는 의미이다.

이때, 빨간선에 해당하는 벡터의 길이를 구하는것이 바로 오늘 다룰 Norm으로 수행할 수 있는것이다.

그런데, 왜 벡터의 길이를 구해야하는것이고, 또 왜 Norm을 활용해야하는 걸까?

 

Norm은 머신러닝에서 아래 과정에서 활용될 수 있는 개념이다.

1) Normalization(정규화)
: Norm을 이용하여 벡터를 특정 길이로 조정할 수 있다. 이를 통해 모델이 학습 데이터의 스케일에 민감하지 않도록 일반화 성능을 강화할 수 있다.

2) Similarity Measurement(유사도 측정)
Norm은 벡터간의 거리나 유사도를 측정하는데 사용된다. Text관련 task 또는 추천시스템에 자주 활용된다.

3) Loss Function(손실함수)
모델의 예측결과가 실제 데이터로부터 얼마나 벗어나 있는지 측정하기 위해 사용되며, Norm은 그 차이를 정량화하는데 활용된다.

 

그럼 이제 가장 대표적인 Norm인 L1 Norm과 L2 Norm에 대해서 알아보자.

 

1. L1 Norm

L1 Norm은 Manhattan norm(맨해튼 놈) 또는 Taxicab norm(택시 놈)으로 불려지기도 한다.

L1 Norm은 벡터의 모든 성분의 절대값을 더한다. 만약 아래와 같은 2차원의 벡터가 있다면,

이 벡터의 L1Norm은 5가 됩니다.

위 표기한 것 처럼 L1Norm은

으로 표기한다. 

여기서 왜 L1 Norm을 택시 놈으로 부르는지 한번 생각해보자.

원점(0,0)에서 (2,3)까지 택시를 타고 가려면 어떤길로 가더라도 가장 빠르게 갈 수 있는 거리는 5이다.

L1 Norm은 이런 방식으로 길이를 측정하기 때문에 택시놈이라 불린다.

 

즉, 각 점의 위치의 합에 단순히 '절대값'을 적용하기 때문에, 계단식 거리가 계산되며, 직각 경로 거리가 측정되는 것이다.

L1 Norm

 

 

2. L2 Norm

L2 Norm은 출발점에서 도착점까지의 거리를 직선거리로 측정한다.

으로 표현하고, 유클리드 놈(Euclidean norm)이라고 불리기도 한다.

L2 Norm은 다음과 같이 계산한다.

 

L2 Norm

 

 

Euclidean distance가 Manhattan Norm과 다르게, 각 포인트 간의 차이의 절대값의 합산이 아닌, 제곱의 합산에 루트를 적용하는 이유는 아래와 같다.


1) 수식적으로 Euclidean Distance가 피타고라스의 정의를 따름

위 피타고라스 정리 공식에서 빗변 C를 구하려면, 제곱합에 루트를 씌워야한다.

 

2) 차원의 영향을 줄이기 위한 목적(스케일 조정)

제곱합은 점들의 차이가 누적된 값이다. 이 값을 루트로 조정하지 않으면, 값의 스케일이 왜곡될 수 있다.


3) 거리의 기하학적 해석을 보존하기

루트를 씌우지 않으면 제곱합 값이 나오는데, 이는 거리라기 보다는 거리의 제곱에 해당한다. 따라서, 루트를 씌워야

직관적으로 이해 가능한 "직선거리"를 얻을 수 있다.

또한, 루트는 값이 작을수록 더 작게, 클 수록 더 크게 표현하기 때문에각 점간의 차이를 좀 더 분명하게 표현할 수 있는 효과를 가진다.


 

 

 

그렇다면, L1 Norm과 L2 Norm은 머신러닝에서 구체적으로 어떻게 활용될까?

 

3. Normalization

Norm은 데이터의 벡터를 특정한 크기로 조정하여, 각 데이터포인트들이 동일한 스케일을 가지도록 조정하는 기능을 할 수 있다.

먼저, '벡터의 Norm'은 = '벡터의 길이 또는 크기'를 의미하는데, 이 성질을 이용하여 벡터의 각 데이터포인트에 Norm 값을 나누어

모든 데이터포인트를 동일한 스케일안에 둘 수 있게 한다.

예를들어, 두 특성(feature) A와 B가 있을때, 각 특성에 속하는 값(row, instance)이 A=1, B=1000이라고 하자.

이때 L2 Norm을 적용하면 이 데이터의 L2 Norm은 아래와 같다.

그리고 이 값은 대략 1000정도 되는데, 이 Norm값으로 각 특성값을 나누면, 정규화된 벡터는

[0.001, 0.9999995]가 된다.

따라서, 벡터의 각 요소(1과 1000)를 Norm값인 1000으로 나누면, 모든 특성이 동일한 스케일을 갖게된다.

물론 위 예시는 '행(row)'을 기준으로 스케일링을 진행한것으로, 만약 '열'을 기준으로 스케일링을 진행한다면, 

Min-Max scaling과 Standard Scaling으로 진행하는것이 대표적인 예시이다.

 

여기서, 참고로 scaling과 normalization을 혼용해서 설명을 했는데, 물론 유사한 개념이지만,

엄밀히 따지면 차이점이 존재한다는 점은 알고있어야한다.

normalization의 경우 데이터를 특정범위로 조정하는 과정을 의미하며, 데이터의 범위를 [0, 1]또는 [-1, 1]로 조정하는걸 의미한다.

스케일링은 데이터의 스케일을 조정하는 좀 더 포괄적인, 일반적인 용어로 normalization은 scaling의 한 부분으로 이해할 수 있다.

 

4. Loss Function

두번째로 Norm은 손실함수에서도 중요한 역할을 한다.

손실함수는 모델의 예측이 실제 데이터로부터 얼마나 벗어나 있는지 측정하기 위해서 사용되고, Norm은 그 차이를 정량화하는데 활용된다.

그 대표적인 예를 몇가지 살펴보자.

 

1) L2 Norm - Mean Squared Error(MSE)

  • 가장 흔하게 회귀문제에 사용되는 손실함수로,
  • 모델 예측과 실제 값 사이의 유클리드 거리(제곱 거리(차이))의 평균을 계산한다.
  • L2 Norm은 예측 오차의 제곱합으로 큰 오차에 더 큰 패널티를 부여한다.

 

2) L1 Norm - Mean Absoute Error(MAE)

  • 또다른 회귀 손실함수로, 예측과 실제 값 사이의 '절대값' 거리의 평균을 사용한다.
  • L1 Norm은 오차의 절대값의 합으로, 이상치에 덜 민감하고 오차의 크기에 따라 선형적인 패널티를 부여한다.

 

다만, 위에서 L2 Norm의 예시로 MSE를, L1 Norm의 예시로 MAE를 기재하였는데, Norm과 각 loss function이 밀접한 관련이 있지만, 엄밀히 따지면 같은 것은 아니다. 

 

MSE <-> L2 Norm

MSE는 예측값과 실제값의 차이를 제곱하여 평균낸것이다. 즉, 각 샘플에 대한 오차를 제곱한 뒤 이를 모두 더하고, 샘플의 수로 나누어 평균을 구한다. 이는 회귀 문제에서 일반적인 손실함수로 많이 활용된다.

L2 Norm은 벡터의 각 요소의 제곱합의 제곱근을 구하는것으로 벡터의 '길이'를 측정한다. 이는 MSE와 비슷한 계산과정을 거치지만,

MSE는 평균을 내는 반면, L2 Norm은 평균을 내지않고! 제곱합의 제곱근을 계산한다.

결국 MSE는 L2 Norm을 평균화한것으로 볼 수 있다.

 

 

MAE <-> L1 Norm

MAE는 예측값과 실제값의 차이의 절대값을 평균낸 것이다. 즉, 각 샘플에 대한 오차의 절대값을 모두 더하고, 샘플의 수로 나누어 평균을 구한다. 

L1 Norm은 벡터의 각 요소의 절대값의 합을 구하는 것으로, 이는 벡터 내 요소들의 절대값의 총합을 의미한다.

결국 MAE는 L1 Norm을 평균한것이라고 볼 수 있다.

 

 

결국, MSE와 L2 Norm, MAE와 L1 Norm은 각각의 계산방식이 유사하며, 오차를 측정하는 방법에서 유래한 개념들이다.

다만, MSE와 MAE는 머신러닝에서 손실함수로 사용되며 모델의 평균적인 성능을 평가하는 반면, L1 Norm과 L2 Norm은 더 

일반적인 수학적 및 물리적 개념으로 벡터의 길이나 크기를 측정하는데 사용된다.

 

 

 

 

 

 

 

 

Reference

https://bskyvision.com/entry/%EC%84%A0%ED%98%95%EB%8C%80%EC%88%98%ED%95%99-%EB%86%88norm%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

[선형대수학] 놈(norm)이란 무엇인가?

오늘은 놈(norm)에 대해 설명을 드리고자 합니다. 놈은 노름으로 발음하기도 하는데 둘다 어감이 좀 그렇죠? 선형대수학에서 놈은 벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법을 의미합

bskyvision.com