컴퓨터 비전 데이터 큐레이션을 위한 이미지 임베딩이란 무엇인가요?
머신러닝(ML) 및 컴퓨터 비전(CV) 개발자는 주변 사물의 미세한 차이를 인식하는 사람의 능력을 모델로 구현하기 위해 노력합니다. 여기서 궁금해지는 것은 기계가 주변 환경의 사물을 정확하게 식별하도록 어떻게 훈련시킬 수 있을지입니다. 신경망이나 ML 모델에서 일정 수준의 일관된 성능을 달성하는 것과 마찬가지로, 그 해답은 모델 훈련에 사용된 데이터에 있습니다.
일반적인 모델로 최적의 결과를 얻으려면 상당한 양의 데이터가 필요할 수 있으며, 여기에는 의도된 알고리즘에 따라 클래스당 수백 또는 수천 개의 예제에 라벨링이 필요할 수 있습니다. 인풋과 아웃풋 속성 간의 복잡한 관계를 해석하는 것을 목표로 설계된 정교한 모델일수록 더욱 구체적이고 포괄적인 훈련용 데이터가 필요합니다.
다행히 딥러닝 모델이 필요로 하는 양의 다양한 도메인별 데이터를 제공하는 맞춤형 솔루션이 존재하며, 이를 임베딩(embedding)이라고 합니다. 벡터(vector)라고도 하는 임베딩은 기본적으로 숫자를 나열한 형태로 표현되며, 시각적 클러스터링 및 의미적 유사성 검색과 같은 작업을 수행할 수 있도록 합니다.
벡터 임베딩을 활발히 사용하면 데이터에서 가장 유의미하고 컴퓨팅 효율이 높은 측면을 비교 대조할 수 있으며, 이는 큐레이션에 소요되는 시간을 효율화하는 동시에 높은 정확도와 확장성으로 이어집니다.
이 글에서는 다음과 같은 내용을 다룹니다.
- 벡터 임베딩에 대한 간략한 설명
- 임베딩 모델을 구축하는 데 필요한 사항
- 사전 훈련 임베딩 모델의 작동 방식
- 가장 일반적인 사전 훈련 임베딩 모델
벡터 임베딩의 모든 것
값을 추출해야하는 막대한 데이터의 양과 모델이 올바르게 작동하기 위해 필요한 태깅과 라벨링에 드는 엄청난 양의 시간을 생각하면 임베딩이 가진 장점을 쉽게 이해할 수 있습니다.
인풋 이미지를 벡터 공간에 임베딩하고 시각적 유사성 관점에서 평가함으로써 ML 팀은 모델이 제대로 이해하고 있는 데이터와 그렇지 않은 데이터를 식별해 가장 큰 차이를 만드는 부분을 훈련 및 검증하는 데에 리소스를 집중할 수 있습니다.
즉, 벡터 또는 임베딩은 머신러닝 알고리즘을 처리하기 위한 이상적인 데이터 구조라고 할 수 있습니다. 모델은 데이터를 스스로 이해할 수 없기 때문에 모델이 이해할 수 있는 형식으로 변환해주어야 합니다. 일반적으로는 (0, 0, 0)과 같이 임베딩 공간의 한 지점을 나타내는 번호가 매겨진 값이 사용되며 어떤 값은 가깝게, 어떤 값은 멀리 떨어져 있습니다.
이러한 포인트들은 가깝게 뭉쳐있을 수도 있지만 드문드문 흩어져있을 수도 있습니다. 또한 벡터 임베딩 기법은 단어, 이미지, 오디오, 비디오 등 모든 형태의 데이터를 가져와 벡터로 표현할 수 있다는 점도 주목할 필요가 있습니다. 하지만 그렇다고 해서 데이터가 바로 벡터로 변환되는 것은 아닙니다.
ML 실무자는 변환된 데이터가 원래의 의미를 잃어버리지 않고 태스크를 수행할 수 있는지 확인해야 합니다. 데이터를 비교할 때는 데이터간의 관계와 유의미한 유사성을 기반으로 비교해야 합니다. 보통 많은 개발자들은 임베딩 모델을 활용해 더 깊은 의미와 연관성을 더 깊게 파악하고자 합니다.
임베딩 모델 구축하기
임베딩 모델은 다른 모델과 마찬가지로 대량의 라벨링된 데이터를 사용하여 신경망을 훈련하는 방식으로 구축됩니다. 일반적인 절차를 따른다면 임베딩을 활용하고자 한다면 어떤 ML팀도 일반적인 절차를 따라 임베딩을 직접 구축하는 것이 가능합니다. 하지만 시간이 많이 소요되는 수동 큐레이션 작업은 어떤 조직에게나 큰 부담일 수 밖에 없습니다.
- 임베딩 처음부터 생성하기
임베딩 모델을 자체적으로 구축하기로 결정한 경우에는 지도 학습(supervised learning)으로 신경망에 인풋 및 아웃풋 쌍으로 구성된 대량의 훈련 데이터를 공급하거나, 라벨링된 아웃풋이 필요 없는 자가 지도 학습 및 비지도 학습을 선택할 수 있습니다. - 의미적 유사성
효과적인 임베딩 모델은 인풋 데이터로 의미를 파악할 수 있어야 하며, 의미적으로 유사한 데이터는 더 가까운 임베딩을, 그렇지 않은 데이터는 더 먼 임베딩이 사용되어야 합니다. 예를 들어 컴퓨터 이미지에 이미지의 내용을 설명하는 벡터를 사용한다면 첫 번째 좌표는 색상을, 두 번째 좌표는 오브젝트의 형태를, 마지막 좌표는 로고나 주요 브랜딩 요소와 같은 특성을 나타낼 수 있습니다.
다시 말해, 어떤 이미지에 어떤 오브젝트가 포함되어 있는지 등 유사성에 따라 이미지를 그룹화하거나 구성하는 것과 관련된 질문에 답하는 데 중점을 두는 시맨틱 검색을 통해 기계는 데이터 구조의 핵심인 벡터 임베딩을 사용하여 이미지, 텍스트, 사운드 또는 비디오 간의 유사성 차이를 이해하는 인간의 능력을 모방하는 것이 가능해집니다. 벡터 임베딩은 컴퓨터 비전 모델을 훈련 시 데이터 큐레이션의 핵심 요소입니다.
- 임베딩 인덱싱
기존의 CV 애플리케이션을 개발할 때 데이터 구조는 데이터베이스 또는 인덱스에 소싱되거나 저장되는 오브젝트로 표현됩니다. 편리하게도 해당 데이터베이스 또는 인덱스에 추가되거나 업로드되는 각 데이터 오브젝트에 대해 임베딩을 계산할 수 있으며, 실무자는 이를 통해 선택한 쿼리에 가장 가까운 벡터를 빠르게 검색하여 찾을 수 있습니다.
인덱스에 저장된 오브젝트에는 빌드 중인 애플리케이션과 관련이 있어야 하는 속성 또는 열이 존재합니다. 시간이 지남에 따라 오브젝트의 속성 수가 개발 팀이 목표한 작업을 완료하는 데 필요한 속성에 대해 보다 의도적으로 고려해야 할 시점까지 증가해야 합니다. - 식별자 추가
효과적인 임베딩 모델을 사용하면 이미지 데이터 내에서 가장 중요한 정보를 추상화하고 축소시켜 쉽게 비교할 수 있습니다. 데이터에서 특성을 추출하고 비교하는 것에서 더 나아가 이미지 데이터 벡터는 이미지 내용이나 주제에 따라 색상, 객체 클래스, 형식 등의 다른 식별자와 결합되어야 합니다.
- 유즈 케이스에 맞는 임베딩
임베딩 모델을 개발하는 목적은 데이터셋에서 최대한 많은 의미론적 인사이트를 수집한 다음 이를 오브젝트 인식, 분류, 로컬라이제이션 등과 같은 유즈 케이스로 확대하는 것입니다. 이러한 성과를 달성하려면 신경망에 의미론적으로 유의미하고 밀도가 높은 이미지 벡터 표현을 사전 훈련 시켜야 하는데, 여기에는 많은 시간과 비용이 소요됩니다. 또한 프로세스 도중에 필요할 수 있는 도메인별 사전 훈련 레이어가 어떤 것이냐에 따라 달라질 수도 있습니다.
사전 훈련 임베딩 모델
근본적으로 사전 훈련 모델은 데규모 데이터셋에 대해 과거에 한번 사용되었던 네트워크로 일반적으로 이미지 분류 작업에 사용되었던 네트워크인 경우가 많습니다. 사전 훈련 모델은 ML팀이 가진 임베딩의 필요성에 따라 그대로 사용되거나 채택될 수 있으며, 전이 학습(tranfer learning)을 사용하여 특정 태스크에 맞게 모델을 조정할 수도 있습니다.
이미지 분류에 전이 학습을 사용하는 이론적인 이유는 모델 훈련에 충분히 크고 일반적인 데이터셋을 활용한 경우, 실무자가 유사한 크기의 데이터셋이 필요한 모델을 처음부터 똑같이 구축하고 훈련시키지 않아도 훈련된 특성 맵을 제공할 수 있기 때문입니다.
사전 훈련 모델의 조정에는 흔히 두 가지 방법이 사용됩니다.
- 특성 추출(Feature Extraction)
이전 네트워크에서 학습한 표현을 활용하여 새로운 샘플에서 유의미한 특성을 추출합니다. 새로운 분류자의 추가가 필요하며, 이 분류자는 사전 훈련 모델을 활용해 처음부터 새롭게 훈련되어 과거 데이터셋으로 학습된 특성 맵의 용도를 새롭게 정의합니다.
이 방법을 사용하려면 전체 모델을 다시 훈련시켜야 합니다. 기본 CNN은 이미지 분류에 유용한 일반적 특성이 이미 포함되어 있어야 합니다. 그러나 이 접근 방식을 활용할 때 주의할 점은 사전 훈련 모델의 마지막 분류 단계는 기존의 분류 작업에 맞게 유지되며 기존에 훈련된 클래스 역시 마찬가지라는 점입니다. - 미세 조정(Fine-Tuning)
ML 실무자는 모델 베이스의 최상위 레이어 여러 개를 고정 해제하고 새로 추가된 분류자 레이어와 베이스 모델의 마지막 레이어 수 개를 모두 훈련시켜야 합니다. 이렇게 하면 베이스 모델의 고차 특성 표현을 '미세 조정'하여 특정 태스크를 실행하는 데 적합하도록 조정할 수 있습니다.
전체적으로 봤을 때 실무자는 머신러닝 워크플로우의 주요 단계를 따릅니다.
- 데이터의 검토 및 완전한 이해
- 데이터를 활용한 인풋 파이프라인 구축
- 사전 훈련된 가중치를 활용해 사전 훈련 모델을 로드
- 사전 훈련 모델 위에 분류 레이어 쌓기
- 사전 훈련 모델의 훈련
- 사전 훈련 모델의 평가
다음은 ML 팀이 반드시 거쳐야 하는 필수 단계와 시나리오입니다.
- 데이터셋 다운로드 또는 로드를 통한 데이터 전처리
- 사전 로드된 데이터셋을 활용한 테스트용 데이터셋 생성 및 테스트용 데이터셋으로 옮기기 전 검증용
- 데이터셋에서 활용 가능한 데이터 배치 결정
- 성능 향상을 위한 데이터셋 구성
- 사용 가능한 데이터가 부족한 경우 데이터 증강 실행
- 컨볼루션 베이스를 고정해 이를 사용한 특성 추출
- 사전 훈련 모델 컴파일 및 훈련 후 훈련용 데이터셋과 검증용 데이터셋 간의 정확도 및 손실 불일치를 고려하여 미세 조정
일반적인 사전 학습 임베딩 모델
다음은 이미지 분류 작업에 자주 사용되는 대표적인 CV 모델 세 가지입니다.
- VGG-16
이 모델은 이미지 분류 작업에 가장 널리 사용되는 모델 중 하나입니다. 한때 업계 표준이었던 AlexNet을 제치고 그 입지를 굳혔습니다. VGG-16은 13개의 컨볼루션 레이어, 5개의 풀링 레이어, 3개의 고밀도 레이어로 구성되어 있습니다. 순차적으로 작동하며 여러 필터를 활용합니다. 각 단계에서 숨겨진 레이어의 매개변수를 줄이기 위해 소형 3x3 필터가 사용됩니다. 이 때문에 다른 모델에 비해 훨씬 느리고 큰 모델입니다. - Inceptionv3
7백만 개의 파라미터로 구성된 Inception은 VGG나 AlexNet과 같이 널리 사용되는 모델보다 작고 오류율이 낮습니다. 또한 Inception 모듈 기능도 뛰어나다는 평가를 받고 있습니다. 기본적으로 이 모듈은 인풋에 대해 다양한 필터 크기로 컨볼루션을 수행하고, 맥스 풀링(Max pooling)을 수행하며, 다음 모듈을 위해 결과를 병합할 수 있습니다. 22개의 레이어를 가지고 있지만, 1x1 컨볼루션 연산을 통해 파라미터를 전반적으로 줄였기 때문에 다른 모델들이 이기기 힘든 모델입니다. - ResNet50
ResNet50는 정확도 저하를 방지하는 것을 목표로 개발되었습니다. 기울기 소실(vanishing gradient) 문제의 해결을 목표로 사전 훈련된 이 모델은 2번의 컨볼루션을 거친 후 레이어를 우회하거나 건너뜁니다. 이렇게 건너뛴 컨볼루션을 ‘아이덴티티 쇼트컷 커넥션(Identity Shortcut Connection)’이라고 하며 잔여 블록을 사용합니다. 이 기능은 잔여 맵핑을 맞추는 것이 실제 맵핑을 맞추고 모든 레이어에 적용하는 것보다 쉽다는 개념에 기반합니다. 이러한 이유로 ResNet50은 VGG-16이나 Inception처럼 레이어를 쌓는 대신 기본 맵핑을 변경하기만 하면 됩니다. - EfficientNet
구글 개발자들이 개발하고 지원하는 EfficientNet은 컴파운드 스케일링(Compount Scaling)이라는 새로운 스케일링 방법을 도입했습니다. 이 새로운 방법은 차원을 임의로 확장하고 여러 레이어를 추가하는 기존의 접근 방식에서 벗어났습니다. EfficientNet을 통한 실증적인 노력을 통해 고정된 양만큼 차원을 동시에 확장함으로써 실무자들이 더 높은 퍼포먼스를 달성할 수 있다고 할 수 있습니다.
임베딩 기반 큐레이션
모델 훈련에 충분한 로우 데이터를 수집하는 작업과 의미론적 비교에 적합하도록 데이터를 큐레이션하는 작업은 어떤 ML팀에게도 감당하기 어려운 일입니다. 이러한 어려움들이 슈퍼브에이아이(Superb AI)의 임베딩 기반 자동 큐레이션 제품인 슈퍼브 큐레이트(Superb Curate)를 탄생시켰습니다.
이 제품은 임베딩을 기반 기술로 사용하여 AI 모델이 데이터베이스에 있는 이미지 간의 배경, 색상, 구도 각도 등의 시각적 유사성을 비교하고 효과적으로 이해할 수 있도록 지원합니다.
AI 기반 기능을 견고히 받쳐주는 임베딩을 활용해 각종 도메인별 ML이나 CL 프로젝트에 아래와 같은 태스크를 도입하고 간소화할 수 있습니다.
- 고른 분포와 최소화된 중복의 비정형 데이터셋 큐레이션
- 동일한 클래스 표현과 각 클래스 내 오브젝트의 분포가 균등한 균형 잡힌 라벨링된 이미지 데이터셋
- 유사성 또는 클러스터링에 따라 데이터셋 내의 데이터를 그룹화하고, 희소한 것으로 식별된 이미지 또는 AI 모델이 엣지 케이스일 가능성이 높다고 예측한 이미지의 큐레이션
- 일반적인 이미지 또는 반복적이거나 중복될 가능성이 높은 이미지를 타겟팅한 큐레이션
슈퍼브에이아이 플랫폼 사용자에게 제공되는 오토 큐레이션 도구는 반응형 모델 빌드를 설계할 때 가장 시간이 많이 소요되는 두 가지 성능 문제를 해결합니다.
첫째, 데이터셋에서 가장 도메인 관련성이 높고 성능에 직결된 세그먼트를 큐레이션하여 효과적인 훈련 및 검증을 실현하고,
둘째, 사전 훈련 임베딩 모델을 사용하거나 커스터마이즈 모델을 만드는 수고를 들여 균형 잡힌 데이터셋을 생성해야하는 두 가지 기존 옵션에 대한 대안을 제공합니다.