Norm, 노름 절대값을 이용하여 벡터의 길이를 구 혹은 크기를 측정 하는 방법이다. 머신러닝 딥러닝 규제 (regularization) 알고리즘에 사용된다.
실제로 노름을 써서, 규제를 실행 한 적은 없다. 하지만, 머신러닝에서 무언가 잘되지 않았을때, 노름을 사용할 수 있다.
L1 Norm, 노름 L1 Norm은 맨하튼 노름(Manhattan norm) 이라고 함, L1 norm은 벡터 요소의 절대 값을 합한 것이다.
L1 = $\sum_{i}^n |x_i| $ = $ |x_1| + |x_2| + |x_3| + .... |x_n| $
벡터 X 의 L1 Norm은 아래와 같이 계산된다. x = [1, 2, 3, 4, 5] $||x||_1 = (|1| +|2| + |3| + |4| + |5| )= 15 $
아래의 영역에서 주로 사용된다. - L1 regularization
- computer Vision
모바일 사용자를 위하여 그림 파일로 함 L2 Norm은 n 차원 좌표평면(유클리드 공간)에서 계산 하기 때문에 유클리드 노름(Euclidean norm) 이라고 한다.
L2 = $ \sqrt{ \sum_{i}^n |x_i|^2 } $ = $ \sqrt{ x \cdot x } $ = $ \sqrt{ x^T \cdot x } $ = $ \sqrt{ x_1 * x_1 + x_2 * x_2 + x_3 * x_3 + .....+ x_n * x_n }$
벡터 x 의 L Norm은 다음과 같이 계산 된다. x = [1, 2, 3, 4, 5] $ ||x||_2 = \sqrt{|1|^2 + |2|^2 + |3|^2 + |4|^2 + |5|^2 } $
L2 Norm 은 아래의 영역에서 사용된다.
- L1 regularization
- computer Vision
모바일 사용자를 위하여 그림 파일로 함
L2 Norm은 n 차원 좌표평면(유클리드 공간)에서 계산 하기 때문에 유클리드 노름(Euclidean norm) 이라고 한다.
L2 = $ \sqrt{ \sum_{i}^n |x_i|^2 } $
= $ \sqrt{ x \cdot x } $
= $ \sqrt{ x^T \cdot x } $
= $ \sqrt{ x_1 * x_1 + x_2 * x_2 + x_3 * x_3 + .....+ x_n * x_n }$
벡터 x 의 L Norm은 다음과 같이 계산 된다.
x = [1, 2, 3, 4, 5]
$ ||x||_2 = \sqrt{|1|^2 + |2|^2 + |3|^2 + |4|^2 + |5|^2 } $
numpy 계산은 아래와 같이 한다.
# random 하게 데이터 셋 만들기
import numpy as np
x = np.random.randint(low = 1, high=10, size=(5,3))
x
array([[9, 6, 3],
[4, 2, 6],
[6, 8, 3],
[5, 2, 9],
[1, 4, 5]])
# L1 norm 계산
L1_norm = np.linalg.norm(x, axis=1, ord=1)
L1_norm
array([18., 12., 17., 16., 10.])
# norm 계산
L2_norm = np.linalg.norm(x, axis=1, ord=2)
L2_norm
array([11.22497216, 7.48331477, 10.44030651, 10.48808848, 6.4807407 ])
댓글 없음:
댓글 쓰기