❗️블로그 옮김: https://www.taemobang.com
방태모
안녕하세요, 제 블로그에 오신 것을 환영합니다. 통계학을 전공으로 학부, 석사를 졸업했습니다. 현재는 가천대 길병원 G-ABC에서 Data Science를 하고있습니다. 통계학, 시계열, 통계적학습과 기계
www.taemobang.com
머신러닝에서 벡터들의 크기를 측정하는 함수를 "norm"이라고 한다. 형식적으로는 lp norm은 다음과 같이 주어진다.
\left \| \boldsymbol{x} \right \|_p = \left ( \sum_i \left |x_i \right |^p \right )^{\frac{1}{p}} ~\textrm{for}~p\in \mathbb{R},~p\geq 1
그럼 이제 많이쓰이는 몇가지 norm에 대해서 알아보자.
(1) l_2 norm
p = 2인 경우이며, "Euclidean norm"이라고 알려져있다. 원점으로부터 점 \boldsymbol{x}의 유클리드 거리(Euclidean distance)를 계산한것과 같다. l^2 norm은 머신러닝에서 매우 빈번하게 쓰이고, 간단하게 아래첨자기호 2는 뺀체로 \left \| x \right \|로 나타내기도 한다. 간단하게 \boldsymbol{x}^T \boldsymbol{x}로 계산되는 제곱(squared) l^2 norm을 사용해 벡터의 길이를 측정하는것 또한 흔히 쓰인다. 제곱 l_2 norm은 l_2 norm보다 계산적 그리고 수학적으로 훨씬 편하다. 예를 들면, 제곱 l_2 norm에서 \boldsymbol{x}의 각 성분에 해당하는 미분계수는 해당하는 \boldsymbol{x}의 각 성분에만 의존하는데, l_2 norm의 모든 미분계수는 전체 벡터에 의존한다.
그러나, 몇몇 머신러닝의 적용(application)에 있어서 성분들이 정확히 0인지 아니면 매우 작은 nonzero 값인지 식별해내는것은 중요하다. 그래서 많은 경우에 제곱 l_2 norm은 원점 근처에서 매우 느리게 증가한다는 이유로 바람직하지 않은 측도가 될 수 있다.
(2) l_1 norm
앞서 성분들이 정확히 0인지 아니면 매우 작은 nonzero 값인지 식별해내는 것이 중요할 때가 있다고 했다. 이러한 경우에, 우리는 모든 위치에서 같은 비율로 증가(또는 감소)하는 함수에 눈이 끌릴 수 밖에 없으며, 이러한 수학적 특성을 가진 함수가 바로 l_1 norm이다(l_2 norm의 경우 제곱항이 들어가므로 위치에따라 증감비율이 달라짐).
\left \| \boldsymbol{x} \right \|_1 = \sum_i \left | x \right |_i
l_1 norm은 머신러닝에서 0과 nonzero간의 차이가 중요할때 흔히 쓰인다. \boldsymbol{x}의 요소가 0에서 \epsilon만큼 이동할때마다, l_1 norm은 \epsilon씩 증가한다.
때때로 nonzero 성분의 개수를 세는것으로 벡터의 크기를 측정해야할때가 있다. 일부 사람들이 이 함수를 "l_0 norm"이라고 나타내는데, 이는 잘못된 용어표현이다. 벡터를 크기 \alpha만큼 scaling을 한다고해도 nonzero 성분들의 수는 변하지 않기때문에, 벡터의 nonzero 성분들의 개수는 norm이 아니다. 1l_1 norm이 벡터의 nonzero 성분들의 수에 대한 대체로서 종종 사용된다.
(3)l_{\infty } norm(max norm)
max norm 이라고도 알려져있으며, 벡터에서 가장 큰 값을 가지는 성분의 절대값으로 나타난다.
\left \| \boldsymbol{x}\right \|_{\infty} = \underset{i}{max}\left | x_i \right |
(4) Frobenius norm(프로베니우스 놈)
딥러닝의 많은 부분에서 행렬의 크기 측정을 필요로 할 때가 있으며, 이때 쓰이는 것이 Frobenius norm이다. 생긴 모양은 벡터의 경우에서 l_2 norm과 동일하다.
\left \| A \right \|_F = \sqrt{\sum_{i, j}A^2_{i,j} }
마지막 번외로, 두 벡터간의 내적(스칼라곱, dot product)도 norms의 관점에서 다음과 같이 다시 쓰일 수 있다.
\boldsymbol{x}^T \boldsymbol{y} = \left \| \boldsymbol{x} \right \|_2 \left \| \boldsymbol{y} \right \|_2cos\theta
여기서 \theta는 모두 알다시피 두 벡터 사이의 각이다.
참고 도서
Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. Deep Learning. The MIT Press, 2016
- norm 이란, 몇가지 성질을 만족하는 함수를 칭하며 l_0 norm이라고 칭하는 함수는 norm이라고 할 수 없음 [본문으로]
'딥러닝 > 선형대수' 카테고리의 다른 글
고윳값 분해 (0) | 2020.04.10 |
---|---|
특별한 종류의 행렬과 벡터 (0) | 2020.04.10 |
선형방정식과 선형종속, span (0) | 2020.04.10 |
행렬과 벡터의 곱연산 (0) | 2020.04.10 |
행렬의 전치와 브로드캐스팅 (0) | 2020.04.10 |
댓글