관리 메뉴

bright jazz music

선형대수 : 6. 놈 (노름, norm) 본문

Math/선형대수

선형대수 : 6. 놈 (노름, norm)

bright jazz music 2022. 7. 24. 21:26

놈 (노름, norm)

  • 놈은 벡터의 크기(magnitude)를 나타내는 양이다.
  • 인공지능에서는 L² 놈과 L¹ 이 자주 쓰인다.
  • 놈의 종류에 따라 벡터의 크기(magnitude)는 다른 값이 된다.
  • 놈은 인공지능의 정칙화에 쓰인다.
  • 정칙화란 파라미터로 조절해서  필요 이상으로 네트워크 학습이 진행되는 것을 예방하는 것이다.

 

 

L² 놈

  • L² 놈은 아래와 같이 표기한다.
L² 놈의 표기
 

 

  • L² 놈은 벡터의 각 요소(스칼라)를 제곱합 한 뒤, 제곱근을 구해 계산한다.
LaTeX 수식
$\begin{align} ||\vec{x}||_{2} &= \sqrt{x_{1}^2 + x_{2}^2 + \cdots + x_{n}^2}\\ &= \sqrt{\sum_{k=1}^n x_{k}^2} \end{align}$
 

 

 

 

L¹ 놈

  • L¹ 놈은 아래와 같이 표기한다.
L¹ 놈

 

  • L² 놈은 벡터의 각 요소(스칼라)의 절대값을 더해서 계산한다
LaTeX 수식
$\begin{align} ||\vec{x}||_{1} &= |x_{1}| + |x_{2}| + \cdots + |x_{n}| \\ &= \sum_{k}^n |x_{k}| \end{align}$
 

 

일반화 된 놈

놈을 더욱 일반화 한 L^p 놈은 다음과 같이 나타낸다.

L² 놈에서 거듭제곱의 차수만 변경된 형태이다.

각 스칼라에 대해서 P승 한 뒤 총합을 구한다. 그 후 1/p승 한다. 즉, p제곱근을 구한다.

 

LaTeX 수식
$\begin{align} L^p = ||\vec x||_p &= (x_{1}^p + x_{2}^p + \cdots + x_{n}^p)^\frac{1}{p} \\ &= (\sum_{k=1}^n x_{k}^p)^\frac{1}{p} \end{align}$

이외에도 여러 가지 형태의 놈이 존재한다.

 

 

파이썬에서의 놈의 구현

  • 놈은 Numpy의 linalg.norm() 함수를 사용해서 구할 수 있다.
  • lianlg.norm()은 기본적으로 L² 값을 반환한다.
import numpy as np

a = np.array([1, 1, -1, -1]) #벡터

print("--- L2 norm ---")
print(np.linalg.norm(a))    #L2 norm #default

print("--- L1 norm ---")
print(np.linalg.norm(a, 1)) #L1 norm

print("--- L99 norm ---")
print(np.linalg.norm(a, 99)) #Lp norm test : 이게LP 놈이라고는 확언할 수 없다.
							#값이 나오는지 확인하고 싶었을 뿐이다.

# --- L2 norm ---
# 2.0
# --- L1 norm ---
# 4.0
# --- L99 norm ---
# 1.0141014742071979

 

실습

 

주어진 벡터 a와 벡터 b의 내적을 구하라

벡터 a의 L2과 L1 놈을 구하라

 

import numpy as np

a = np.array([1, -2, 2])    	#벡터 a
b = np.array([2, -2, 1])   	#벡터 b


print("--- dot product ---")
print(np.dot(a, b))    		#dot함수
print(np.sum(a * b))   		#요소별 곱의 합

print("--- L2 norm ---")
print(np.linalg.norm(a)) 	#L2 norm

print("--- L1 norm ---")
print(np.linalg.norm(a, 1)) 	#L1 norm

 

------

 

 

LaTeX의 절대값 표기

LaTeX에서 절대값을 나타내는 방법은 여러 가지가 있다. 

가장 쉬운 방법은 "|(=/vert)" 를 사용하는 것이다. 그러나 이 방법은 분수 나누기 분수처럼 높이가 높아졌을 때 문제가 있다.

 

$ | \frac{\frac{3}{4}}{\frac{1}{2}} | $
$\vert \frac{\frac{3}{4}}{\frac{1}{2}} \vert$

 

수식에 맞춰 절대값 기호가 높아지지 않기 때문이다.

 

 

이를 해결하는 가장 쉬운 방법은 "\left |"와 "\right |"를 사용하는 것이다.

 

$\left| \frac{\frac{3}{4}}{\frac{1}{2}} \right|$

 

이외에도 "\bigg" 또는 "\Bigg"을 사용하는 방법도 있다. 그러나 "\left |"와 "\right |"가 가장 편했다.

 

참고:https://latex-tutorial.com/absolute-value-symbol/

 

 

 

 

Comments