본문 바로가기
딥러닝 with Python

[개념정리] 인공지능에서 임베딩이란 / Embedding

by CodeCrafter 2024. 2. 9.
반응형

 

이번에 알아볼 내용은 embedding에 대해서 입니다. 

 

인공지능에서 임베딩, embedding에 대해 많이 다루고 있는데 이에 대해 정확한 개념을 잡지 못해 이번 기회에 정리해보려고 합니다.

 

1. Embedding이란? 임베딩이란?

- 임베딩이란, 고차원 데이터를 저차원의 공간으로 표현하는 것을 말합니다. 이 과정은 데이터의 중요한 특성이나 구조를 유지하면서, 데이터를 더 쉽게 처리하고 분석하며, 시각화할 수 있도록 도와주는데요

 * 여기서 차원 축소를 위해 사용되는 PCA(Principal Component Analysis)도 일종의 임베딩으로 볼 수도 있습니다. 하지만, 그 목적에는 조금 차이가 있습니다.(임베딩은 데이터의 특성을 캡처하기 위해 사용되고, PCA는 데이터의 주성분을 찾아내 차원을 축소하는데 그 목적이 있습니다.)

 

- 이러한 Embedding은 주로 자연어 처리와 컴퓨터 비전에서 널리 사용됩니다. 

 

a) 자연어(NL, Natural Language)

- 자연어에서 임베딩은 텍스트를 실수 벡터 형태로 표현한 결과물을 의미합니다. 아래 그림에서 보여주는 바와 같이, 특정한 단어, 문장 혹은 문서를 embedding 생성 모델에 입력하게 되면, 일정한 수의 실수들로 구성된 벡터가 출력되게 됩니다. 

[출처 : https://syncly.app/ko/blog/what-is-embedding-and-how-to-use]

 

Embedding이란 무엇이고, 어떻게 사용하는가? - 싱클리(Syncly)

본 글에서는, AI에서 중요하게 취급되는 개념 중 하나인 embedding에 대해서 알아보고자 합니다. 현재 Syncly에서도 Feedback Auto-Categorization, Sentiment Classification 등의 기능에 embedding이 활용되고 있습니

syncly.app

 

 이 임베딩 과정은 학습에 사용된 text의 구성과 임베딩 방식에 따라, 같은 단어도 다른 vector로서 표현될 수 있습니다. 이 임베딩 과정을 통해서 서로 다른 단어 또는 문서가 vector로서 표현이 되고, 이 vector들의 거리를 통해 유사도를 판단할 수 있습니다.

 

b) 이미지

- 이미지 데이터를 embedding 하는 것은 이미지의 픽셀 값을 직접 사용하는 대신, 이미지 내의 중요한 특성이나 패턴을 캡처하는 저차원의 벡터로 변환하는 과정을 의미합니다.

- 이러한 변환은 컴퓨터가 이미지를 이해하고 분류, 검색, 인식 등 다양한 작업을 진행할수 있게 해줍니다. 

- 유명한 Convolution 연산을 활용해 이미지를 feature map으로 만드는 것도 임베딩의 과정 중 하나입니다.

 

 

2. 이미지 데이터를 Embedding 하는 법

- CNN : 이미지 처리에 가장 널리 사용되는 방법 중 하나로, Convolution Filter를 활용해 이미지의 지역적 특성을 잘 캡처하는 방법입니다. 여러개의 Convolutional Layers를 거치면서 이미지 데이터는 점차 중요한 특징을 저차원의 벡터로 압축하게 됩니다. 

 

-  AutoEncoders : Autoencoders는 입력 이미지를 저차원의 벡터로 Encoding(압축)한 후, 이를 다시 복원 이미지로 Decoding(복원)하는 신경망을 의미합니다. 인코딩 과정에서 생성된 저차원의 벡터는 이미지의 embedding으로 사용이 됩니다.

- Transformers : 자연어 처리에서 효과를 발휘하고, 이미지 분야에서 Vision Transformer가 널리 사용되고 있습니다. 이는 이미지를 패치 단위로 나누어 마치 자연어 처럼 시퀀스로 처리하고, 이미지의 전역적인(Global)한 관계와 패턴을 효과적으로 학습할 수 있는 방법입니다.

반응형

댓글