벡터 양자화
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
벡터 양자화는 N차원 공간의 벡터를 유한한 수의 대표값으로 묶어 양자화하는 기술이다. 초기에는 인간의 지식에 기반하여 대표 벡터를 지정했지만, 데이터 기반 학습 알고리즘이 개발되었으며, 클러스터링, K-평균 알고리즘, 린데-부조-그레이 알고리즘(LBG 알고리즘) 등이 사용된다. 벡터 양자화는 데이터 압축, 손실 데이터 보정, 패턴 인식, 밀도 추정, 클러스터링, 생성적 적대 신경망(GAN) 등 다양한 분야에 활용된다.
더 읽어볼만한 페이지
- 비지도 학습 - 챗GPT
챗GPT는 오픈AI가 개발한 GPT-3.5 기반의 대화형 인공지능 서비스로, 인간과 유사한 텍스트 생성, 코드 생성, 보고서 작성, 번역 등의 다양한 기능을 제공하지만, 편향된 정보 생성, 데이터 유출, 윤리 및 저작권 문제 등의 논란도 있으며, 유료 서비스를 포함한 다양한 형태로 제공되고, 지속적인 모델 개발을 통해 성능을 향상시키고 있다. - 비지도 학습 - 환각 (인공지능)
인공지능 환각은 인공지능이 사실이 아닌 정보를 사실처럼 생성하는 현상으로, 대규모 언어 모델의 부정확한 정보 생성 문제를 설명하기 위해 사용되며, 데이터 불일치, 모델 오류, 훈련 데이터 부족 등이 원인으로 발생하여 다양한 완화 기술이 연구되고 있다. - 손실 압축 알고리즘 - JPEG
JPEG은 정지 화상의 디지털 압축 및 코딩을 위한 국제 표준이자 이를 만든 위원회의 이름으로, 1992년 최초 표준 발표 이후 웹 환경에서 널리 사용되는 이미지 형식이 되었다. - 손실 압축 알고리즘 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다.
벡터 양자화 |
---|
2. 역사
2. 1. 초기 역사
2. 2. 발전 과정
벡터 양자화를 위해서는 대표 벡터를 결정해야 한다. 초기에는 인간의 지식에 기반하여 대표 벡터를 지정했지만, 데이터 기반으로 대표 벡터를 학습하는 다양한 알고리즘이 개발되었다.자주 사용되는 알고리즘은 클러스터링이다. 전체 데이터를 K개의 클러스터로 분류하고 각 클러스터를 표현하는 값을 대표 벡터로 사용한다. 구체적인 알고리즘으로는 K-평균 알고리즘이 있으며, 수렴 시 클러스터 중심이 대표 벡터가 된다. 이 방법은 벡터의 차원을 늘려 짧은 부호 길이로 양자화가 가능하지만, 차원이 증가하면 최적의 클러스터링과 대표 벡터 선택에 대한 계산량이 증가하는 문제가 있다. 이 문제를 해결하기 위해 린데-부조-그레이 알고리즘(LBG 알고리즘) 등 여러 방법이 제안되었다.
TwinVQ는 MPEG-4의 음성 압축에 사용되고 있다. 최근에는 생성적 적대 신경망(GAN)과 같은 딥러닝 기술에도 활용되어 이미지 생성 등 다양한 분야에서 성능 향상을 이끌어내고 있다.
3. 원리
일반적인 (스칼라) 양자화는 연속값을 유한한 개수의 대표값으로 집약한다. 예를 들어, 표본화한 아날로그 음성 신호의 각 샘플을 가장 가까운 비트/디지털 부호로 대체한다. 샘플과 대표값은 모두 1차원/스칼라이다.
이에 반해 벡터 양자화는 N차원 공간 내의 벡터를 대상으로 양자화를 수행한다. 예를 들어, 스테레오 2채널 신호를 각 채널별로 처리하지 않고 좌우 세트(=2차원 벡터)로 취급하여, 이 벡터를 묶어 유한한 개수의 대표값으로 부호화한다. 벡터 단위로 양자화가 이루어지기 때문에 벡터 양자화라고 불린다.
3. 1. 기본 개념
일반적인 (스칼라) 양자화는 연속값을 유한한 개수의 대표값으로 집약한다. 예를 들어, 표본화한 아날로그 음성 신호의 각 샘플을 가장 가까운 비트/디지털 부호로 대체한다. 샘플과 대표값은 모두 1차원/스칼라이다.이에 반해 벡터 양자화는 N차원 공간 내의 벡터를 대상으로 양자화를 수행한다. 예를 들어, 스테레오 2채널 신호를 각 채널별로 처리하지 않고 좌우 세트(=2차원 벡터)로 취급하여, 이 벡터를 묶어 유한한 개수의 대표값으로 부호화한다. 벡터 단위로 양자화가 이루어지기 때문에 벡터 양자화라고 불린다.
벡터 양자화(추론)에서는 K개의 대표 벡터 및 동일 차원의 입력 연속 벡터 가 주어지며, 입력 벡터와 코드북 내의 코드벡터 간의 거리를 계산하여 가장 가까운 코드벡터를 선택하고, 입력 벡터를 해당 코드벡터로 대체한다.
즉, 벡터 양자화란 로 표시되는 수학적 연산이다.
3. 2. 훈련 알고리즘
벡터 양자화의 가장 간단한 훈련 알고리즘은 무작위 샘플 포인트를 선택하고, 가장 가까운 양자화 벡터 중심을 샘플 포인트 방향으로, 거리의 작은 부분만큼 이동시키는 과정을 반복한다.[1] 보다 정교한 알고리즘은 밀도 매칭 추정의 바이어스를 줄이고, 모든 점이 사용되도록 민감도 매개변수를 포함한다.시뮬레이티드 어닐링과 같은 냉각 스케줄을 사용하여 수렴을 유도할 수 있다. K-평균 군집화를 기반으로 하는 린데-부조-그레이 알고리즘(LBG)이 널리 사용된다.[1]
데이터 세트에서 무작위 점을 선택하는 대신 '실시간' 데이터를 사용하여 반복적으로 업데이트할 수 있지만, 데이터가 여러 샘플에 걸쳐 시간적으로 상관관계가 있는 경우 약간의 바이어스가 발생한다. 대표 벡터를 결정하기 위해 인간의 지식에 기반하거나, 클러스터링과 같은 알고리즘을 통해 데이터를 K개의 클러스터로 분류하고 각 클러스터의 중심을 대표 벡터로 사용할 수 있다. K-평균 알고리즘이 대표적인 예시이다. 벡터 차원을 늘려 부호 길이를 줄일 수 있지만, 계산량이 증가하는 문제가 있어 다양한 해결 방법이 제안되고 있다.
4. 응용 분야
벡터 양자화는 손실 데이터 압축, 손실 데이터 보정, 패턴 인식, 밀도 추정 및 클러스터링에 사용된다.
- '''데이터 압축'''
Bink 비디오[2], 시네팩, 다알라(변환된 계수에 피라미드 벡터 양자화를 사용)[3], 디지털 비디오 인터랙티브(프로덕션 레벨 비디오 및 실시간 비디오), 인디오, 마이크로소프트 비디오 1, 퀵타임(애플 비디오(RPZA) 및 그래픽 코덱(SMC)), 소렌슨 SVQ1 및 SVQ3, 스매커 비디오, VQA 형식(많은 게임에서 사용됨) 등 다양한 비디오 코덱에 사용되었다.
벡터 양자화를 기반으로 하는 비디오 코덱의 사용은 모션 보상 예측과 변환 코딩을 결합한 코덱, 예를 들어 MPEG 표준에 정의된 코덱을 선호하여 크게 감소했다. 이는 벡터 양자화의 낮은 디코딩 복잡성이 덜 중요해졌기 때문이다. 특히 1990년대 후반부터 2000년대 초반, 대한민국에서 MPEG과 같은 압축 효율이 높은 기술이 보편화되면서 두드러지게 나타났다.
벡터 양자화는 "블록 양자화" 또는 "패턴 매칭 양자화"라고도 하며, 손실 데이터 압축에 사용된다. 다차원 벡터 공간의 값을 차원이 더 낮은 이산 부분 공간의 유한한 값 집합으로 인코딩하여 작동한다. 더 낮은 공간 벡터는 더 적은 저장 공간을 필요로 하므로 데이터가 압축된다. 벡터 양자화의 밀도 매칭 속성으로 인해 압축된 데이터는 밀도에 반비례하는 오류를 갖는다.
변환은 일반적으로 투영하거나 코드북을 사용하여 수행된다. 경우에 따라 코드북은 엔트로피 코딩을 사용하여 동일한 단계에서 이산 값을 접두사 코드로 부호화된 가변 길이 인코딩 값으로 생성하여 출력할 수도 있다.
이산 진폭 레벨 집합은 각 샘플이 개별적으로 양자화되는 대신 공동으로 양자화된다. 진폭 레벨의 ''k''차원 벡터 를 고려해 보십시오. 이 벡터는 일련의 ''n''차원 벡터 에서 가장 가까운 일치하는 벡터를 선택하여 압축되며, 여기서 ''n'' < ''k''이다.
가능한 모든 ''n''차원 벡터 의 조합은 모든 양자화된 벡터가 속한 벡터 공간을 형성한다.
양자화된 값 대신 코드북에서 코드워드의 인덱스만 전송된다. 이는 공간을 절약하고 더 많은 압축을 달성한다.
트윈 벡터 양자화(VQF)는 MPEG-4 표준의 일부로, 시간 도메인 가중 인터리브 벡터 양자화를 다룬다.
다음은 벡터 양자화를 사용하는 오디오 코덱 목록이다.
- AMR-WB+
- CELP
- CELT (현재 오푸스의 일부)는 변환 기반이지만 변환된 계수에 피라미드 벡터 양자화를 사용한다.
- Codec 2
- DTS
- G.729
- iLBC
- Ogg Vorbis[4]
- TwinVQ
린데-부조-그레이 알고리즘 (LBG 알고리즘)는 벡터 양자화 알고리즘의 한 종류이며, 오디오 코덱 개발에 활용될 수 있다.
TwinVQ는 MPEG-4의 음성 압축에 사용되고 있다.
- '''손실 데이터 보정'''
벡터 양자화는 손실 데이터 보정, 패턴 인식, 밀도 추정 및 클러스터링에 사용된다.
손실 데이터 보정은 일부 차원에서 누락된 데이터를 복구하는 데 사용된다. 이는 사용 가능한 데이터 차원을 가진 가장 가까운 그룹을 찾은 다음, 누락된 차원의 값을 예측하는 방식으로 이루어진다. 이때 누락된 차원의 값은 그룹의 중심점과 동일한 값을 갖는다고 가정한다.
- '''패턴 인식'''
벡터 양자화는 음성[5] 및 화자 인식[6], 최근접 이웃 탐색[7], 온라인 서명 인식[8] 등에 활용된다.
패턴 인식 응용 분야에서 각 클래스(생체 인식 응용 분야에서 각 클래스는 사용자)에 대해 해당 사용자의 음향 벡터를 사용하여 하나의 코드북을 구성한다. 테스트 단계에서는 훈련 단계에서 얻은 전체 코드북 세트를 사용하여 테스트 신호의 양자화 왜곡을 계산한다. 가장 작은 벡터 양자화 왜곡을 제공하는 코드북이 식별된 사용자를 나타낸다.
동적 시간 워핑(DTW) 및 은닉 마르코프 모델(HMM)과 같은 다른 기술에 비해 계산 부담이 적다는 장점이 있다. 그러나 신호(음성, 서명 등)의 시간적 진화를 고려하지 않는다는 주요 단점이 있는데, 이는 모든 벡터가 혼합되어 있기 때문이다. 이러한 문제를 극복하기 위해 다중 섹션 코드북 접근 방식이 제안되었다.[9] 다중 섹션 접근 방식은 신호를 여러 섹션으로 모델링한다(예를 들어, 초기 부분에 대한 하나의 코드북, 중앙 부분에 대한 다른 코드북, 마지막 부분에 대한 마지막 코드북).
- '''밀도 추정'''
벡터 양자화는 밀도 추정에 사용된다. 다른 어떤 중심점보다 특정 중심점에 더 가까운 영역/부피는 알고리즘의 밀도 일치 속성으로 인해 밀도에 반비례한다.
- '''클러스터링 알고리즘'''
벡터 양자화(VQ)는 인접한 샘플의 밀도 점으로 중심점을 찾기 때문에 프로토타입 기반 클러스터링 방법으로 사용할 수 있다.[10] 각 중심점은 하나의 프로토타입과 연결된다. 예상 제곱 양자화 오류를 최소화하고, 로빈스-몬로 조건을 충족하는 감소하는 학습 이득을 도입하여, 구체적이지만 고정된 수의 프로토타입을 사용하여 전체 데이터 세트를 여러 번 반복하면 k-평균 군집화 알고리즘의 해로 점진적으로 수렴한다.[10]
대표 벡터를 결정하기 위해 인간의 지식에 기반하여 지정하거나, 데이터 기반으로 대표 벡터를 학습하는 다양한 알고리즘을 활용할 수 있다. 자주 사용되는 알고리즘 클래스는 클러스터링이다. 전체 데이터를 K개의 클러스터로 분류하고 각 클러스터를 표현하는 값을 대표 벡터로 사용한다. K-평균 알고리즘은 수렴 시 클러스터 중심이 대표 벡터가 되는 구체적인 알고리즘이다. 벡터의 차원을 늘려 통상보다 짧은 부호 길이로 양자화가 가능하지만, 차원이 증가하면 최적의 클러스터링과 대표 벡터 선택에 대한 계산량이 증가하는 문제가 있다. 이 문제를 해결하기 위한 다양한 방법들이 제안되고 있다.
- '''생성적 적대 신경망(GAN)'''
VQ는 생성적 적대 신경망(GAN)의 판별자에서 특징 표현 계층을 양자화하는 데 사용되어 왔다. 특징 양자화(FQ) 기술은 암묵적인 특징 매칭을 수행한다.[11] 이는 GAN 훈련을 향상시키고, 이미지 생성의 BigGAN, 얼굴 합성을 위한 StyleGAN, 비지도 이미지-이미지 변환을 위한 U-GAT-IT 등 다양한 인기 GAN 모델에서 성능 향상을 가져온다.[11]
4. 1. 데이터 압축
벡터 양자화는 "블록 양자화" 또는 "패턴 매칭 양자화"라고도 하며, 손실 데이터 압축에 사용된다. 다차원 벡터 공간의 값을 차원이 더 낮은 이산 부분 공간의 유한한 값 집합으로 인코딩하여 작동한다. 더 낮은 공간 벡터는 더 적은 저장 공간을 필요로 하므로 데이터가 압축된다. 벡터 양자화의 밀도 매칭 속성으로 인해 압축된 데이터는 밀도에 반비례하는 오류를 갖는다.변환은 일반적으로 투영하거나 코드북을 사용하여 수행된다. 경우에 따라 코드북은 엔트로피 코딩을 사용하여 동일한 단계에서 이산 값을 접두사 코드로 부호화된 가변 길이 인코딩 값으로 생성하여 출력할 수도 있다.
이산 진폭 레벨 집합은 각 샘플이 개별적으로 양자화되는 대신 공동으로 양자화된다. 진폭 레벨의 ''k''차원 벡터 를 고려해 보십시오. 이 벡터는 일련의 ''n''차원 벡터 에서 가장 가까운 일치하는 벡터를 선택하여 압축되며, 여기서 ''n'' < ''k''이다.
가능한 모든 ''n''차원 벡터 의 조합은 모든 양자화된 벡터가 속한 벡터 공간을 형성한다.
양자화된 값 대신 코드북에서 코드워드의 인덱스만 전송된다. 이는 공간을 절약하고 더 많은 압축을 달성한다.
트윈 벡터 양자화(VQF)는 MPEG-4 표준의 일부로, 시간 도메인 가중 인터리브 벡터 양자화를 다룬다.
4. 1. 1. 비디오 코덱
Bink 비디오[2], 시네팩, 다알라(변환된 계수에 피라미드 벡터 양자화를 사용)[3], 디지털 비디오 인터랙티브(프로덕션 레벨 비디오 및 실시간 비디오), 인디오, 마이크로소프트 비디오 1, 퀵타임(애플 비디오(RPZA) 및 그래픽 코덱(SMC)), 소렌슨 SVQ1 및 SVQ3, 스매커 비디오, VQA 형식(많은 게임에서 사용됨) 등 다양한 비디오 코덱에 사용되었다.벡터 양자화를 기반으로 하는 비디오 코덱의 사용은 모션 보상 예측과 변환 코딩을 결합한 코덱, 예를 들어 MPEG 표준에 정의된 코덱을 선호하여 크게 감소했다. 이는 벡터 양자화의 낮은 디코딩 복잡성이 덜 중요해졌기 때문이다. 이러한 변화는 특히 1990년대 후반부터 2000년대 초반, 대한민국에서 MPEG과 같은 압축 효율이 높은 기술이 보편화되면서 두드러지게 나타났다.
4. 1. 2. 오디오 코덱
다음은 벡터 양자화를 사용하는 오디오 코덱 목록이다.- AMR-WB+
- CELP
- CELT (현재 오푸스의 일부)는 변환 기반이지만 변환된 계수에 피라미드 벡터 양자화를 사용한다.
- Codec 2
- DTS
- G.729
- iLBC
- Ogg Vorbis[4]
- TwinVQ
린데-부조-그레이 알고리즘 (LBG 알고리즘)는 벡터 양자화 알고리즘의 한 종류이며, 오디오 코덱 개발에 활용될 수 있다.
TwinVQ는 MPEG-4의 음성 압축에 사용되고 있다.
4. 2. 손실 데이터 보정
벡터 양자화는 손실 데이터 보정, 패턴 인식, 밀도 추정 및 클러스터링에 사용된다.손실 데이터 보정은 일부 차원에서 누락된 데이터를 복구하는 데 사용된다. 이는 사용 가능한 데이터 차원을 가진 가장 가까운 그룹을 찾은 다음, 누락된 차원의 값을 예측하는 방식으로 이루어진다. 이때 누락된 차원의 값은 그룹의 중심점과 동일한 값을 갖는다고 가정한다.
4. 3. 패턴 인식
벡터 양자화는 음성[5] 및 화자 인식[6], 최근접 이웃 탐색[7], 온라인 서명 인식[8] 등에 활용된다.패턴 인식 응용 분야에서 각 클래스(생체 인식 응용 분야에서 각 클래스는 사용자)에 대해 해당 사용자의 음향 벡터를 사용하여 하나의 코드북을 구성한다. 테스트 단계에서는 훈련 단계에서 얻은 전체 코드북 세트를 사용하여 테스트 신호의 양자화 왜곡을 계산한다. 가장 작은 벡터 양자화 왜곡을 제공하는 코드북이 식별된 사용자를 나타낸다.
동적 시간 워핑(DTW) 및 은닉 마르코프 모델(HMM)과 같은 다른 기술에 비해 계산 부담이 적다는 장점이 있다. 그러나 신호(음성, 서명 등)의 시간적 진화를 고려하지 않는다는 주요 단점이 있는데, 이는 모든 벡터가 혼합되어 있기 때문이다. 이러한 문제를 극복하기 위해 다중 섹션 코드북 접근 방식이 제안되었다.[9] 다중 섹션 접근 방식은 신호를 여러 섹션으로 모델링한다(예를 들어, 초기 부분에 대한 하나의 코드북, 중앙 부분에 대한 다른 코드북, 마지막 부분에 대한 마지막 코드북).
4. 4. 밀도 추정
벡터 양자화는 밀도 추정에 사용된다. 다른 어떤 중심점보다 특정 중심점에 더 가까운 영역/부피는 알고리즘의 밀도 일치 속성으로 인해 밀도에 반비례한다.4. 5. 클러스터링 알고리즘
벡터 양자화(VQ)는 인접한 샘플의 밀도 점으로 중심점을 찾기 때문에 프로토타입 기반 클러스터링 방법으로 사용할 수 있다.[10] 각 중심점은 하나의 프로토타입과 연결된다. 예상 제곱 양자화 오류를 최소화하고, 로빈스-몬로 조건을 충족하는 감소하는 학습 이득을 도입하여, 구체적이지만 고정된 수의 프로토타입을 사용하여 전체 데이터 세트를 여러 번 반복하면 k-평균 군집화 알고리즘의 해로 점진적으로 수렴한다.[10]대표 벡터를 결정하기 위해 인간의 지식에 기반하여 지정하거나, 데이터 기반으로 대표 벡터를 학습하는 다양한 알고리즘을 활용할 수 있다. 자주 사용되는 알고리즘 클래스는 클러스터링이다. 전체 데이터를 K개의 클러스터로 분류하고 각 클러스터를 표현하는 값을 대표 벡터로 사용한다. K-평균 알고리즘은 수렴 시 클러스터 중심이 대표 벡터가 되는 구체적인 알고리즘이다. 벡터의 차원을 늘려 통상보다 짧은 부호 길이로 양자화가 가능하지만, 차원이 증가하면 최적의 클러스터링과 대표 벡터 선택에 대한 계산량이 증가하는 문제가 있다. 이 문제를 해결하기 위한 다양한 방법들이 제안되고 있다.
4. 6. 생성적 적대 신경망 (GAN)
VQ는 생성적 적대 신경망(GAN)의 판별자에서 특징 표현 계층을 양자화하는 데 사용되어 왔다. 특징 양자화(FQ) 기술은 암묵적인 특징 매칭을 수행한다.[11] 이는 GAN 훈련을 향상시키고, 이미지 생성의 BigGAN, 얼굴 합성을 위한 StyleGAN, 비지도 이미지-이미지 변환을 위한 U-GAT-IT 등 다양한 인기 GAN 모델에서 성능 향상을 가져온다.[11]5. 한국의 벡터 양자화 기술
5. 1. 연구 개발 현황
5. 2. 산업적 활용
5. 3. 한계와 극복 노력
참조
[1]
서적
An Introduction to Natural Computation
MIT Press
2000
[2]
웹사이트
Bink video
http://lists.mplayer[...]
2013-03-16
[3]
간행물
Pyramid Vector Quantization for Video Coding
http://tools.ietf.or[...]
IETF
2013-12-17
[4]
웹사이트
Vorbis I Specification
http://xiph.org/vorb[...]
Xiph.org
2007-03-09
[5]
서적
ICASSP '83. IEEE International Conference on Acoustics, Speech, and Signal Processing
[6]
서적
ICASSP '85. IEEE International Conference on Acoustics, Speech, and Signal Processing
[7]
논문
Product Quantization for Nearest Neighbor Search
http://hal.archives-[...]
[8]
논문
offline and On-line signature recognition based on VQ-DTW
[9]
논문
Efficient On-line signature recognition based on Multi-section VQ
[10]
논문
Vector Quantization
[11]
웹사이트
Feature Quantization Improves GAN Training
https://arxiv.org/ab[...]
[12]
논문
Neural Discrete Representation Learning
https://papers.nips.[...]
2017
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com