머신러닝에 앞서 데이터를 학습에 적합하도록 전처리하는 과정이 필요하다. 이 때에 "정규화"라는 표현이 등장한다. 그런데 또 학습 과정에서 손실 함수를 정의할 때에도 "정규화"라는 단어가 등장한다.
한국어로는 동일하게 정규화지만 전처리 과정에서 등장하는 정규화는 Normalization을 의미하고, 손실 함수를 정의할 때 등장하는 정규화는 Regularization을 뜻한다. "Norm"이라는 용어를 이해하면, 왜 다른 영어 단어를 같은 한국어로 옮겼을지 납득되는 면이 있다
Norm은 일상 언어에서는 규범, 표준, 기준 등을 의미한다. 그리고 수학에서는 벡터의 크기(norm of a vector)를 의미한다. 우리가 흔히 알고 있는 벡터의 크기는 각 원소의 제곱합의 제곱근이다.
하지만 이건 피타고라스 법칙에 따른 유클리드 길이에 해당하고, 좀 더 일반적인 정의는 다음과 같다.
Lp는 르베그(Lebesgue) 공간을 의미하는데, 이것까지는 어려우니 넘어가도록 하자..
L1 norm이 맨해튼 거리(distance) 또는 택시 거리인 이유는,
맨해튼처럼 도로가 격자 구조일 때 한 지점에서 다른 지점으로 이동할 때
택시 기사가 운전해야하는 거리에 해당하기 때문이다.
L2 norm은 우리가 흔히 피타고라스의 직각삼각형 법칙을 이용해서 구하는 거리이다.
L_infinity norm은 가장 큰 성분의 절댓값을 벡터의 크기로 여긴다.
벡터를 정규화(Normalization)한다고 할 때에는 Lp norm을 1로 만드는 과정을 의미한다.
이 때 어떤 Lp norm을 적용하는지에 따라 의미가 달라지는데,
예를 들어 L2 norm을 적용하면,
L_infinity norm을 적용하면,
서로 다른 두 벡터가 있을 때에 정규화로 각 벡터의 크기를 1로 만들어주면,
두 벡터를 비교하기가 수월해진다.
즉, 두 벡터의 상대적인 크기를 동일하게 만들어줌으로써
동등하게 두 벡터를 비교할 수 있는 셈이다.
통계에서 도수분포를 확률분포로 변환하는 과정은 L1 normalization으로 이해할 수 있다.
확률의 합이 1이 되게 만들어서 확률적 해석이 가능하게 해준다.
머신러닝이든 데이터 분석이든, 데이터를 다루기 쉽게 만들기 위한 전처리 과정이 필요하다.
앞서 살펴본 정규화(Normalization)는 그러한 전처리 방법 중 하나다.
하지만 정규화 외에도, "동등하게 비교한다"는 관점에서
다른 방식의 전처리 기법들도 사용할 수 있다.
그 중 하나가 바로 스케일링(Scaling)이다.
영어 단어 scale은 '(특히 다른 것과 비교해서 본) 규모, 범위'라는 뜻을 갖고 있다.
데이터 전처리에서 스케일링은 데이터들의 스케일을 맞춰주는 과정이라고 이해할 수 있다.
대표적으로는 min-max 스케일링이 있다.
최소값을 0, 최대값을 1로 잡고, 모든 값을 0 ~ 1의 범위에 들어오게 조절하는 방식이다.
표준화(Standardization)는 데이터의 분포가 정규분포(normal distribution)를 따른다고 가정하고,
그 분포의 평균을 0, 분산을 1로 맞추는 작업을 의미한다.
참고로, 평균이 0이고 분산이 1인 정규분포를 표준 정규분포(standard normal distribution)라고 부른다.
처음에 ‘정규분포’라는 이름이 붙은 배경은 확실치 않지만 이후 통계의 기본 기준으로 자리잡으면서,
또 하나의 기준점이라는 의미에서 ‘표준(stardard)’이라는 용어가 붙은 듯 하다.
정규화(Regularization)에 대해서는 손실 함수에 대해서 소개한 다음에야 제대로 소개할 수 있다.
하지만 대략적으로는 Lp Norm을 활용한 개념이라고 이해하면 된다.
다른 영어 단어여도 같은 한국어로 옮기게 된 배경에는 이런 이유가 있었던게 아닐까 추측해본다.