Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

웨이블릿 변환 데이터가 원본과 길이가 같아도 데이터 축소에 유용한 이유

웨이블릿 변환의 데이터 축소 원리

웨이블릿 변환된 데이터가 원본 데이터와 길이가 같음에도 불구하고 이 기술이 데이터 축소에 유용한 이유는, 변환된 데이터를 제한(truncate)할 수 있기 때문입니다. 웨이블릿 계수 중 핵심적인 일부만 저장함으로써 원래 정보의 압축된 근사치를 유지할 수 있습니다.

예를 들어, 사용자가 정의한 임계값보다 큰 모든 웨이블릿 계수는 그대로 유지하고, 나머지 계수는 0으로 설정하는 방식입니다. 그 결과 생성되는 데이터 표현은 매우 희소(sparse)해지므로, 데이터 희소성을 활용하는 서비스나 알고리즘은 웨이블릿 공간에서 구현될 경우 매우 빠른 연산 속도를 보입니다.

또한 이 방법은 데이터의 주요 특징을 평탄화하지 않으면서 노이즈만 제거할 수 있어, 데이터 클리닝(data cleaning)에도 효과적입니다. 주어진 계수 집합에 역 DWT(이산 웨이블릿 변환)를 적용하면 원본 데이터의 근사치를 다시 생성할 수 있습니다.

DWT와 DFT의 비교

DWT는 사인(sine)과 코사인(cosine)을 사용하는 신호 처리 기법인 이산 푸리에 변환(DFT)과 밀접한 관련이 있습니다. 일반적으로 DWT는 우수한 손실 압축(lossy compression) 성능을 보입니다.

동일한 수의 계수를 DWT와 DFT에 대해 유지했을 때, DWT 버전이 원본 데이터에 대해 더 정확한 근사치를 제공합니다. 즉, 같은 수준의 근사 오차를 달성하기 위해 DWT는 DFT보다 적은 저장 공간을 필요로 합니다.

또한 DFT와 달리 웨이블릿은 공간적으로 완전히 국소화(localized)되어 있어 데이터의 지역적 특성을 잘 보존합니다. DFT는 한 종류뿐이지만, DWT는 여러 계열(family)이 존재한다는 점도 특징입니다.

대표적인 웨이블릿 변환

널리 알려진 웨이블릿 변환으로는 Haar-2, Daubechies-4, Daubechies-6 변환 등이 있습니다. 이산 웨이블릿 변환의 일반적인 처리 과정은 각 반복(iteration)마다 데이터를 절반으로 줄여나가는 계층적 피라미드 알고리즘(hierarchical pyramid algorithm)을 활용하여 빠른 연산 속도를 실현합니다.

이산 웨이블릿 변환의 처리 절차

  • 입력 데이터 벡터의 길이 L은 2의 거듭제곱이어야 합니다. 이 조건은 필요에 따라 데이터 벡터 끝에 0을 패딩(padding)하여 충족할 수 있습니다 (L ≥ n).

  • 각 변환에는 두 개의 함수가 사용됩니다. 첫 번째 함수는 합(sum) 또는 가중 평균(weighted average)과 같은 데이터 스무딩(smoothing)을 적용합니다. 두 번째 함수는 가중 차분(weighted difference)을 수행하여 데이터의 세부 특징(detail)을 드러냅니다.

  • 두 함수는 데이터 포인트 쌍, 즉 모든 인접 데이터 쌍 (x2i, x2i+1)에 적용됩니다. 그 결과 길이 L/2인 두 개의 데이터 집합이 생성되며, 일반적으로 하나는 입력 데이터의 스무딩된 저주파(low-frequency) 버전, 다른 하나는 고주파(high-frequency) 성분을 나타냅니다.

  • 두 함수는 결과 데이터 집합의 길이가 2가 될 때까지 이전 단계에서 얻은 데이터 집합에 재귀적으로 적용됩니다.

  • 후속 반복에서 얻은 데이터 집합으로부터 선택된 값들이 최종적으로 변환된 데이터의 웨이블릿 계수(wavelet coefficients)로 결정됩니다.