본문 바로가기
IT/Transformer 공부

이론) Transformer 차근차근 이해하기(2) - Input Embedding

by 한동두 2024. 12. 23.
반응형

 

▼ 이전글 보기

2024.12.18 - [IT/Transformer 공부] - 이론) Transformer 차근차근 이해하기 (1) - 구조 익히기

 

이론) Transformer 차근차근 이해하기 (1) - 구조 익히기

Transformer를 안다 라고 자신있게 얘기 할 수 있도록Transformer의 모든 단계를 이해하고싶어서 각 단계를 차근차근 살펴보고 왜 이런 작업을 하는지, 어떤 계산을 하는지 알아볼 것이다. 깊게 들어

dongdu-blog.tistory.com

위 글에서 대략적인 구조를 확인 할 수 있다.

 

 


1. Transformer의 구조

이번 게시글에서는 이 그림에서 첫번째 단계인 Input Embedding에 대해서 설명하도록 하겠다.

 

 

 


2. Embedding이란

사람이 쓰는 단어, 이미지 등을 기계가 이해할 수 있도록 숫자형태인 vector로 바꾸는 것을 뜻한다.

학습을 시킬 때 단어만 툭 던져 넣으면 컴퓨터는 이 데이터를 이해하지 못하기 때문에 활용할 수가 없다.

 

Embedding을 하게 되면 다양한 개체들을 일정한 크기의 벡터로 표현할 수 있으며

대부분의 Embedding은 유사한 단어의 vector를 서로 가까운 위치에 배치시킨다. 

비슷한 개체일수록 서로 가깝게 위치하게 되며 개체 간 관계를 이해할 수 있게 된다.

 

 

2-1. 단어 임베딩

문장의 경우 주로 단어 단위로 임베딩을 진행한다.

 "나는 인공지능을 공부하고 복습한다."

이런 문장이 있고 임베딩 벡터의 크기를 5로 설정했다고 가정해보자.

 

임베딩을 진행하면 단어별로 크기 5의 임베딩의 벡터를 만들어낸다.

직접 돌려보진 않았지만 예를들어 아래와 같은 벡터가 생성될 것이다.

나는 = [0.04, 0.6, 0.23, 0.52, 0.65]

인공지능을 = [0.5, 0.33, 0.02, 0.1, 0.09]

공부하고 = [0.2, 0.5, 0.37, 0.44, 0.67]

복습한다 = [0.16, 0.43, 0.11, 0.53, 0.4]

(*숫자값은 임의로 집어넣은 것이기 때문에 전혀 상관없는 값임)

 

그리고 위처럼 나온 벡터는 비슷할수록 근처에 위치하게 된다

예를들어 '공부하고', '복습한다'는 의미적으로 유사한 "공부" 의 의미를 갖기 때문에

상당히 가까이 위치 할 것이다.

그리고 '인공지능을' 도 스스로 학습한다는 의미가 들어있기 때문에

 두 단어와 가까이 위치할 가능성이 높다.

 

그와 반면에 '물컵', '양말'과 같은 단어는 전혀 관련이 없기 때문에 멀리에 위치할 것이다.

 

 

2-2. 이미지 임베딩

보통 이미지는 CNN계열로 학습하기 떄문에 별도의 Embedding을 하지 않는 경우가 대부분이지만,

Transformer에서 이미지를 Input으로 사용하려면

이미지도 예외없이 Embedding을 해줘야 한다.

 

먼저 큰 이미지를 작은 이미지인 Patch로 잘라준다.

예를들어 224*224*3(RGB) 크기의 이미지가 있고 16*16 사이즈의 Patch로 나눈다고 가정해보자.

그러면 총 14*14 =196개의 Patch가 만들어진다.

 

그러면 196개, 16*16*3(RGB)사이즈의 Patch들이 만들어지고

각각의 Patch를 펼쳐 16*16*3 크기의 1차원 벡터로 만들어준다.

 

임베딩 크기를 8로 설정한 경우 가중치 행렬 W를 곱해 길이가 8인 벡터로 선형 변환 해준다.

결과적으로 196개의 길이 8인 Embedding vector들이 생성이 된다.

 

이 Embedding vector들은 비슷하게 생긴 Patch들 일수록 가까이 위치하게 된다.

 

 


3.  요약

Embedding은 개체를 컴퓨터가 이해할 수 있도록 숫자 벡터화 시키는 것을 의미한다.

대부분의 Embedding은 유사할 수록 가까운 위치에 배치된다. (아닌 경우도 있음!)

 

 

 


Word Embedding의 경우 다양한 기법들이 있는데
현재는 Transformer를 중점적으로 설명해 나갈 것이기 때문에 자세한 설명은 적지 않도록 하겠다.

나중에 여유가 되면 임베딩 기법 글도 작성해 보도록 하겠다!

 

반응형