웹사이트 검색

Python의 벡터 노름 - 계산 단계


벡터의 노름은 벡터의 길이 또는 크기를 나타냅니다. 길이를 계산하는 방법에는 여러 가지가 있습니다. 벡터의 노름은 음수가 아닌 값입니다. 이 자습서에서는 벡터의 다양한 유형의 규범을 계산하는 방법을 배웁니다.

벡터 x의 노름은 다음과 같이 표시됩니다. ‖x

벡터의 노름은 벡터 공간에서 원점으로부터의 거리를 측정한 것입니다.

규범을 계산하려면 Scipy를 사용할 수 있습니다. 둘 다 규범을 계산하는 유사한 기능을 제공합니다.

이 튜토리얼에서는 기계 학습 분야에서 가장 일반적인 두 가지 유형의 규범을 살펴보겠습니다.

이것들은 :

  • L1 표준
  • L2 표준

벡터의 L1 Norm을 계산하는 방법은 무엇입니까?

벡터의 L1 노름은 맨해튼 거리 또는 택시 노름이라고도 합니다. 벡터 x의 L1 노름에 대한 표기법은 ‖x‖1입니다.

노름을 계산하려면 절대 벡터 값의 합을 구해야 합니다.

이를 이해하기 위해 예를 들어 보겠습니다.

a = [1,2,3,4,5]

위 배열의 경우 L1 표준은 다음과 같습니다.

1+2+3+4+5 = 15 

다른 예를 들어 보겠습니다.

a = [-1,-2,3,4,5]

이 배열의 L1 표준은 다음과 같습니다.

|-1|+|-2|+3+4+5 = 15 

두 벡터에 대한 L1 규범은 계산하는 동안 절대값을 고려하는 것과 동일합니다.

L1 표준의 Python 구현

Python에서 벡터의 L1 표준을 계산하는 방법을 살펴보겠습니다.

넘파이 사용

Numpy를 사용하여 L1 규범을 계산하는 Python 코드는 다음과 같습니다.

from numpy import array
from numpy.linalg import norm
arr = array([1, 2, 3, 4, 5])
print(arr)
norm_l1 = norm(arr, 1)
print(norm_l1)

출력 :

[1 2 3 4 5]
15.0

위의 예에서 음수 항목이 있는 배열에 대해 계산해 봅시다.

from numpy import array
from numpy.linalg import norm
arr = array([-1, -2, 3, 4, 5])
print(arr)
norm_l1 = norm(arr, 1)
print(norm_l1)

출력 :

[-1 -2  3  4  5]
15.0

Scipy 사용

Scipy를 사용하여 L1을 계산하는 것은 위의 구현과 크게 다르지 않습니다.

동일한 코드는 다음과 같습니다.

from numpy import array
from scipy.linalg import norm
arr = array([-1, -2, 3, 4, 5])
print(arr)
norm_l1 = norm(arr, 1)
print(norm_l1)

출력 :

[-1 -2  3  4  5]
15.0

코드는 Numpy 코드와 정확히 유사합니다.

벡터의 L2 Norm을 계산하는 방법은 무엇입니까?

벡터 x의 L2 노름에 대한 표기법은 ‖x‖2입니다.

벡터의 L2 놈을 계산하려면 제곱 벡터 값 합계의 제곱근을 취하십시오.

벡터의 L2 놈의 또 다른 이름은 유클리드 거리입니다. 이는 기계 학습 모델에서 오류를 계산하는 데 자주 사용됩니다.

평균 제곱근 오차는 모델의 실제 출력과 예상 출력 사이의 유클리드 거리입니다.

기계 학습 모델의 목표는 이 오류를 줄이는 것입니다.

이해를 돕기 위해 예를 들어보겠습니다.

a = [1,2,3,4,5]

위의 L2 표준은 다음과 같습니다.

sqrt(1^2 + 2^2 + 3^2 + 4^2 + 5^2) = 7.416

L2 규범은 값을 더하기 전에 제곱하기 때문에 항상 양수입니다.

파이썬 구현

파이썬 구현은 다음과 같습니다.

from numpy import array
from numpy.linalg import norm
arr = array([1, 2, 3, 4, 5])
print(arr)
norm_l2 = norm(arr)
print(norm_l2)

출력 :

[1 2 3 4 5]
7.416198487095663

여기서 우리는 기본적으로 norm 메서드가 L2 norm을 반환한다는 것을 알 수 있습니다.

결론

이 튜토리얼은 Python에서 L1 및 L2 규범을 계산하는 방법에 관한 것입니다. Numpy와 Scipy를 사용하여 두 규범을 계산했습니다. 저희와 함께 즐거운 학습이 되셨기를 바랍니다!